# Mercados

## GET /api/quantis/v3/rates/markets/

Devuelve la tasa de cambio USDT/VES de Binance más dos valores calculados: `average` (punto medio entre BCV-USD y USDT) y `difference` (la diferencia entre USDT y BCV-USD).

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

### Solicitud

```bash
curl --request GET \
  --url 'https://app.vzla.io/api/quantis/v3/rates/markets/' \
  --header 'Authorization: Bearer qapi_TU_CLAVE_AQUI'
```

---

### Respuesta

#### `data`

| Campo | Tipo | Descripción |
|---|---|---|
| `timestamp` | string (datetime ISO 8601) | Cuándo se obtuvo este snapshot |
| `usdt` | object | Tasa USDT/VES de Binance |
| `computed` | object | Valores derivados que comparan USDT contra BCV-USD |

**`data.usdt`**

| Campo | Tipo | Descripción |
|---|---|---|
| `rate` | string | VES por 1 USDT |
| `indicator_pct` | string | Variación porcentual respecto a la tasa anterior |
| `indicator_amount` | string | Variación absoluta respecto a la tasa anterior en VES |
| `market` | string | Siempre `"Binance"` |

**`data.computed.average`**

Punto medio entre la tasa BCV-USD y la tasa USDT.

| Campo | Tipo | Descripción |
|---|---|---|
| `rate` | string | Tasa promedio calculada en VES |
| `indicator_pct` | string | Variación porcentual de este promedio respecto al snapshot anterior |
| `indicator_amount` | string | Variación absoluta de este promedio en VES |

**`data.computed.difference`**

Cuánto más cotiza el USDT frente a la tasa oficial BCV-USD.

| Campo | Tipo | Descripción |
|---|---|---|
| `amount` | string | Tasa USDT menos tasa BCV-USD, en VES |
| `indicator_pct` | string | Variación porcentual del spread respecto al snapshot anterior |
| `indicator_amount` | string | Variación absoluta del spread en VES |

#### `meta`

| Campo | Tipo | Descripción |
|---|---|---|
| `source` | string | Siempre `"markets"` |
| `currency_quote` | string | Siempre `"VES"` |
| `instrument` | string | Siempre `"USDT"` |

---

### Ejemplo de respuesta

```json
{
  "data": {
    "timestamp": "2026-05-06T20:08:56.581073+00:00",
    "usdt": {
      "rate": "656.92582500",
      "indicator_pct": "0.00060890",
      "indicator_amount": "0.00400000",
      "market": "Binance"
    },
    "computed": {
      "average": {
        "rate": "575.15116250",
        "indicator_pct": "1.70015878",
        "indicator_amount": "9.61501250"
      },
      "difference": {
        "amount": "163.54932500",
        "indicator_pct": "7.62450901",
        "indicator_amount": "11.58642500"
      }
    }
  },
  "meta": {
    "source": "markets",
    "currency_quote": "VES",
    "instrument": "USDT"
  }
}
```

---

### Códigos de estado HTTP

| Código | Significado |
|---|---|
| `200 OK` | Éxito. |
| `401 Unauthorized` | Clave ausente, inválida o revocada. |
| `405 Method Not Allowed` | Solo se admite GET. |
| `429 Too Many Requests` | Cuota mensual agotada (`quota_exceeded`) o límite de velocidad alcanzado (`throttled`). Ver [Planes y límites](/es/quantis/v3/tiers-and-limits/). |
| `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: clave inválida

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

#### 429: cuota mensual agotada

```json
{
  "error": {
    "code": "quota_exceeded",
    "message": "Monthly quota exceeded. It resets on the 1st of next month."
  }
}
```

#### 429: límite de velocidad alcanzado

```json
{
  "error": {
    "code": "throttled",
    "message": "Rate limit exceeded",
    "details": {
      "retry_after": 1
    }
  }
}
```
**Note:** Este endpoint tiene caché de **5 minutos**, acorde a la cadencia de actualización de Binance.