> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cotizave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Todas las tasas

> Obtén el snapshot de mercados disponibles en tu plan y el índice cuando puede calcularse.

`GET /v1/fx/rates` · Todos los planes. La respuesta se filtra según el acceso de la cuenta.

<span id="request" />

## Consulta

No requiere parámetros. Admite `format` para [CSV/XML](/api/formats) y `markup` para aplicar una configuración de markup guardada, cuando el plan la incluye. No hay selector `country` ni un parámetro para convertir todo el snapshot a AUD.

Con `markup=<tag>` se usa una representación distinta: añade `markup_applied` en la raíz y, en las filas afectadas, `mid_with_markup` y `markup_applied`. `mid` conserva la referencia original. Actualmente esa representación no incluye `base`, `effective_date` ni `stale_after_sec` por fila. No la uses para obtener la fecha valor de una factura; consulta la tasa sin markup. Requiere un plan de pago y una regla activa; una regla ausente devuelve `404 markup_not_found`.

Los ejemplos se ejecutan en el servidor. JavaScript y Python usan los clientes del [inicio rápido](/api/quickstart#paso-2); configura allí `COTIZAVE_API_KEY`.

<CodeGroup>
  ```bash curl theme={null}
  curl --fail-with-body --max-time 10 "https://api.cotizave.com/v1/fx/rates" \
    -H "X-API-Key: $COTIZAVE_API_KEY"
  ```

  ```javascript Node.js theme={null}
  import { cotizave } from './cotizave.mjs';

  const data = await cotizave('/v1/fx/rates');
  console.log(data);
  ```

  ```python Python theme={null}
  from cotizave import cotizave

  data = cotizave('/v1/fx/rates')
  print(data)
  ```
</CodeGroup>

<span id="response" />

## Respuesta

Respuesta ilustrativa: las cifras y fechas no son cotizaciones actuales.

```json theme={null}
{
  "country": "VE",
  "currency": "VES",
  "base": "USD",
  "rates": [
    {
      "market": "reference",
      "type": "reference",
      "mid": 475.0083,
      "updated_at": "2026-10-19T04:00:00Z",
      "effective_date": "2026-10-19"
    },
    {
      "market": "eur_reference",
      "type": "reference",
      "base": "EUR",
      "mid": 550.12,
      "updated_at": "2026-10-19T04:00:00Z",
      "effective_date": "2026-10-19"
    },
    {
      "market": "parallel",
      "type": "parallel",
      "mid": 638.87,
      "updated_at": "2026-10-19T17:25:00Z"
    }
  ],
  "fetched_at": "2026-10-19T17:29:15Z"
}
```

El ejemplo contiene tres mercados y no incluye el campo opcional `index`. En producción pueden aparecer más mercados. `country`, `currency`, `base`, `rates` y `fetched_at` describen el snapshot. **La base general USD no convierte las filas de EUR a USD**: lee la base de cada tasa. `index` se omite si no puede calcularse; consulta su [referencia](/api/endpoints/index).

| Campo | Significado |
| - | - |
| `market` | Identificador estable del mercado. |
| `type` | `reference`, `parallel`, `p2p`, `remittance`, `cash` o `exchange_house`. Tolera nuevos tipos. |
| `base` | Moneda base opcional. Si falta, USD; `eur_reference` usa EUR. |
| `mid` | VES por unidad de la moneda base. |
| `ask`, `bid` | Cotizaciones opcionales; pueden omitirse. No todos los mercados tienen ambos lados. |
| `updated_at` | Actualización de la cotización, ISO 8601. |
| `effective_date` | Fecha valor opcional del BCV, `YYYY-MM-DD` en el calendario de Caracas. |
| `stale_after_sec` | Umbral de antigüedad opcional, en segundos, proporcionado para esa fuente. |

| Mercado | Base | Tipo / acceso mínimo |
| - | - | - |
| `reference` | USD | BCV oficial · Gratis |
| `eur_reference` | EUR | BCV oficial · Gratis |
| `parallel` | USD | Referencia de mercado libre · Gratis |
| `binance`, `bybit`, `okx`, `bitget`, `mexc`, `bingx`, `saldo` | USD | Cotizaciones P2P USDT/VES normalizadas · Gratis |
| `paypal`, `zelle` | USD | Remesas, solo hacia VES · Esencial |
| `syklo`, `yadio`, `zoom`, `western_union` | USD | Mercados extendidos · Profesional |
| `cash`, `cucuta` | USD | Efectivo · Escala |

<span id="casos-uso" />

## Comparar tasas de una misma moneda

```javascript theme={null}
import { cotizave } from './cotizave.mjs';
const snapshot = await cotizave('/v1/fx/rates');
const usdRates = snapshot.rates.filter(rate =>
  (rate.base ?? (rate.market === 'eur_reference' ? 'EUR' : 'USD')) === 'USD'
);
for (const rate of usdRates) {
  console.log({ market: rate.market, ves_per_usd: rate.mid, updated_at: rate.updated_at });
}
```

Este ejemplo usa el cliente del [inicio rápido](/api/quickstart#paso-2). Para cálculos de importes usa precisión decimal y la política de redondeo de tu aplicación.

<span id="errores" />

## Errores

Además pueden producirse los [errores comunes](/api/errors) de autenticación, cuota o disponibilidad. Las respuestas de error de la API son JSON; decide por `code`, no por el texto de `message`.

<span id="notas" />

## Disponibilidad y frescura

Busca por `market`, nunca por posición. Una fuente puede faltar o conservar su última cotización; `fetched_at` reciente no garantiza que todos los `updated_at` lo sean. Las cotizaciones P2P son representativas, no un libro de órdenes ni operaciones ejecutadas. La lista puede crecer.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.