GET /v1/fx/bcv/banks
Devuelve el snapshot diario de tasas de compra y venta de USD por institución bancaria, tal como las publica el Banco Central de Venezuela en bcv.org.ve.
El snapshot se actualiza una vez al día desde la fuente oficial del Banco Central de Venezuela. Incluye las tasas de entidades como Banesco, BBVA Provincial, Banco Mercantil, Banco Exterior, N58 Banco Digital y Otras Instituciones.
Ruta legacy: /v1/beta/fx/bcv/banks
Si tu aplicación usa la ruta beta, sigue funcionando hasta el 14 de julio de 2026. Las respuestas legacy llevan los headers Sunset, Deprecation: true y un Link rel="successor-version". Migra a la ruta estable cuando puedas.
Request
GET /v1/fx/bcv/banks HTTP/1.1
Host: api.cotizave.com
X-API-Key: ctz_live_aB3cD8fG2hJ5kL9mN1pQ4rS7tU0vWxYzA6bC3dEste endpoint no acepta parámetros de query. Siempre devuelve el snapshot más reciente disponible.
Ejemplo con curl
curl https://api.cotizave.com/v1/fx/bcv/banks \
-H "X-API-Key: ctz_live_aB3cD8fG2hJ5kL9mN1pQ4rS7tU0vWxYzA6bC3d"Response
200 OK
{
"indicator_date": "2026-05-09",
"bank_rates": [
{
"bank": "Banco de Venezuela",
"buy": 88.5432,
"sell": 89.1234
},
{
"bank": "Banesco",
"buy": 88.4210,
"sell": 89.0050
},
{
"bank": "BBVA Provincial",
"buy": 88.3900,
"sell": 88.9870
},
{
"bank": "Banco Mercantil",
"buy": 88.4100,
"sell": 89.0100
},
{
"bank": "Banco Exterior",
"buy": 88.3750,
"sell": 88.9600
},
{
"bank": "N58 Banco Digital",
"buy": 88.5000,
"sell": 89.0500
},
{
"bank": "Otras Instituciones",
"buy": 88.3500,
"sell": 88.9200
}
],
"captured_at": "2026-05-09T12:15:03Z"
}Schema de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
indicator_date | string (YYYY-MM-DD) | Fecha de negociación a la que corresponden las tasas bancarias |
bank_rates | BankRate[] | Lista de tasas por institución |
bank_rates[].bank | string | Nombre del banco con su prefijo numérico si aplica (ej: N58 Banco Digital). Verbatim de la fuente BCV. |
bank_rates[].buy | number | Tasa de compra de USD (VES por USD) |
bank_rates[].sell | number | Tasa de venta de USD (VES por USD) |
captured_at | string (ISO 8601) | Cuándo Cotizave extrajo y persistió el snapshot |
Casos de uso típicos
Dashboard de tasas bancarias
Para mostrar una tabla comparativa de compra/venta por banco:
const res = await fetch('https://api.cotizave.com/v1/fx/bcv/banks', {
headers: { 'X-API-Key': process.env.COTIZAVE_API_KEY! }
})
const data = await res.json()
console.log(`Fecha indicador: ${data.indicator_date}`)
for (const { bank, buy, sell } of data.bank_rates) {
console.log(`${bank}: compra ${buy} | venta ${sell}`)
}Verificar frescura antes de usar el dato
El snapshot se actualiza una vez al día. Verifica captured_at si tu aplicación necesita garantizar que el dato tiene menos de 24 horas:
const data = await fetchBCVBanks()
const capturedAt = new Date(data.captured_at)
const ageHours = (Date.now() - capturedAt.getTime()) / 3_600_000
if (ageHours > 24) {
console.warn('El snapshot BCV tiene más de 24h de antigüedad')
}Errores posibles
| Código | error.code | Causa |
|---|---|---|
401 | invalid_api_key | API Key inválida, faltante o revocada |
404 | bcv_snapshot_unavailable | El cron diario aún no ejecutó o la variable OPEN_ROUTER_COTIZAVE_BCV no está configurada |
429 | rate_limit_exceeded | Cuota mensual agotada |
500 | internal_error | Error inesperado del lado de Cotizave |
Notas importantes
Frecuencia de actualización
El snapshot se actualiza una vez al día desde la fuente oficial del Banco Central de Venezuela (bcv.org.ve). El campo captured_at indica cuándo se procesó exitosamente la última actualización.
Nombres de banco verbatim
El campo bank preserva el nombre exactamente como aparece en la fuente BCV, incluyendo prefijos numéricos como N58 Banco Digital. No normalices ni aliases estos nombres en tu aplicación sin verificar primero que la fuente no cambió.
USD excluido de /bcv/currencies
La cotización USD/VES ya está implícita en las columnas buy y sell de este endpoint. Por eso el endpoint hermano /v1/fx/bcv/currencies omite USD de su respuesta y solo devuelve EUR, CNY, TRY y RUB.