# Crypto

## GET /api/quantis/v2/rates/crypto/

Devuelve precios en USD para nueve criptomonedas principales, obtenidos de CoinMarketCap.

| | |
|---|---|
| **Método** | `GET` |
| **URL** | `https://app.vzla.io/api/quantis/v2/rates/crypto/` |
| **Autenticación** | `Authorization: Bearer vzlaio_...` |
| **Parámetros** | Ninguno |

### Solicitud

```bash
curl --request GET \
  --url 'https://app.vzla.io/api/quantis/v2/rates/crypto/' \
  --header 'Authorization: Bearer vzlaio_TU_TOKEN_AQUI'
```

---

### Respuesta

#### `data`

| Campo | Tipo | Descripción |
|---|---|---|
| `timestamp` | string (datetime ISO 8601) | Cuándo se obtuvo este snapshot de CoinMarketCap |
| `rates` | object | Mapa de símbolo → precio en USD (string) |

**`data.rates`**

Símbolos disponibles: `BTC`, `ETH`, `USDT`, `XRP`, `BNB`, `SOL`, `USDC`, `DOGE`, `TRX`.

Cada valor es un string que representa el precio actual en USD de esa criptomoneda.

#### `meta`

| Campo | Tipo | Descripción |
|---|---|---|
| `source` | string | Siempre `"CoinMarketCap"` |
| `currency_quote` | string | Siempre `"USD"` |

---

### Encabezados de respuesta

| Encabezado | Descripción |
|---|---|
| `X-API-Version` | `2.0` |
| `X-Quota-Limit` | Tu límite mensual de solicitudes |
| `X-Quota-Remaining` | Solicitudes restantes este mes |
| `X-Quota-Reset` | Timestamp ISO 8601 del próximo reinicio de cuota |
| `X-Request-ID` | UUID de esta solicitud |

---

### Ejemplo de respuesta

```json
{
  "data": {
    "timestamp": "2026-05-06T20:00:02.045590+00:00",
    "rates": {
      "BTC": "81466.183799",
      "XRP": "1.42773",
      "DOGE": "0.112865",
      "USDT": "0.999785",
      "ETH": "2348.375715",
      "BNB": "650.482695",
      "TRX": "0.346772",
      "USDC": "0.99971",
      "SOL": "89.198836"
    }
  },
  "meta": {
    "source": "CoinMarketCap",
    "currency_quote": "USD"
  }
}
```

---

### Códigos de estado HTTP

| Código | Significado |
|---|---|
| `200 OK` | Éxito. |
| `401 Unauthorized` | Token ausente o inválido. |
| `405 Method Not Allowed` | Solo se admite GET. |
| `429 Too Many Requests` | Cuota mensual agotada. |
| `500 Internal Server Error` | Error del servidor. Reintenta después de un momento. |

#### 401 — sin encabezado Authorization

```json
{
  "error": {
    "code": "auth_missing",
    "message": "Authentication credentials were not provided"
  }
}
```

#### 401 — token inválido

```json
{
  "error": {
    "code": "auth_token_unknown",
    "message": "Invalid token format"
  }
}
```

#### 429

```json
{
  "error": {
    "code": "quota_exceeded",
    "message": "Monthly quota limit exceeded.",
    "details": {
      "reset_at": "2026-06-01T00:00:00Z"
    }
  }
}
```
**Note:** Este endpoint tiene caché de **5 minutos**, acorde a la cadencia de actualización de CoinMarketCap.