API de KambioX

Consulta el tipo de cambio en Bolivia: la compra y venta del dólar en los principales bancos, el tipo de cambio oficial del Banco Central y el USDT en Binance P2P. Es gratuita, no requiere registro ni clave y responde en JSON.

URL base

https://…

Todas las rutas aceptan solo GET y permiten llamadas desde el navegador de cualquier origen (CORS abierto). Los nombres de rutas y campos están en inglés. Un primer ejemplo:

¿Usas un asistente o agente de IA? Conéctalo directamente con el servidor MCP.

Formato de los datos

  • Los montos son números en bolivianos por 1 dólar estadounidense, con punto decimal. buy es la compra y sell la venta.
  • Las fechas son texto ISO 8601 en UTC, por ejemplo 2026-10-20T15:30:00.000Z. Bolivia está en UTC−4.
  • Un monto que la entidad no publica se devuelve como null.
  • Los precios se consultan cada 15 minutos. Cada cotización indica desde cuándo tiene ese valor y cuándo se confirmó por última vez:
Campo Descripción
effective_date Fecha de vigencia (AAAA-MM-DD) cuando la fuente la publica, como el tipo de cambio oficial del BCB. null para las demás.
valid_since Primera lectura en que la entidad publicó estos valores.
verified_at Última lectura que confirmó los mismos valores.
stale true si no se pudo confirmar en las últimas 3 horas, por ejemplo porque el sitio de la entidad no responde. El motivo aparece en status.error.

Tipos de cotización

Una misma entidad puede publicar varias tasas. El campo type las distingue:

Tipo Qué representa
bank Precio propio del banco. buy es lo que el banco paga por cada dólar; sell, lo que cobra.
official Tipo de cambio oficial del BCB vigente hoy, tal como lo publica la entidad. Es un valor único, por eso buy y sell son iguales.
official_next Solo en bcb: el tipo de cambio oficial que el BCB ya publicó para el día siguiente (lo hace por la tarde). Rige desde su effective_date; ese día deja de aparecer y pasa a ser official.
reference Valor referencial que publica el banco. El Banco Ganadero solo publica la venta.
usdt Compra y venta de la stablecoin USDT. La publican BCP y BISA. Para la entidad binance es la mediana de los anuncios de Binance P2P en cada lado, obtenidos a través de Trydent Services o, si no responde, directamente de Binance.

Si necesitas un solo valor de referencia, usa la cotización official de la entidad bcb.

Entidades

Usa el id en las rutas que reciben una entidad.

id Entidad Tipos que publica
Cargando…

Cotizaciones de todas las entidades

GET/v1/rates

Devuelve la cotización vigente de cada entidad, junto con el estado de su última consulta.

Respuesta

Campo Descripción
currency Siempre "BOB per USD".
generated_at Momento en que se armó la respuesta.
banks[] Una entrada por entidad con id, name, short_name, source_url (página donde publica), rates[] y status.
rates[] type, buy, sell, effective_date, valid_since, verified_at y stale.
status last_attempt, last_success, error (null si la última consulta funcionó) y consecutive_failures (consultas fallidas seguidas). Cada consulta se reintenta hasta 2 veces antes de contar como fallida, y un cambio de precio de más del 8% se acepta recién cuando la consulta siguiente lo confirma.

Cotización de una entidad

GET/v1/rates/{bank}

Devuelve la misma entrada que /v1/rates, solo para la entidad indicada.

Parámetro Descripción
bank ruta Identificador de la entidad, por ejemplo bisa. Ver Entidades.

Histórico de una entidad

GET/v1/rates/{bank}/history

Devuelve los períodos en que la entidad mantuvo cada precio, ordenados por tipo y fecha. Hay un registro por cada cambio de precio, no por cada consulta. Para bcb, el oficial tiene un registro por día de vigencia desde el 5 de enero de 2026; hasta el 26 de junio, con el tipo de cambio fijo, la compra era 6,86 y la venta 6,96.

Parámetro Descripción
bank ruta Identificador de la entidad.
from opcional Fecha inicial AAAA-MM-DD en hora de Bolivia. Por defecto, 30 días antes de to.
to opcional Fecha final AAAA-MM-DD, incluida. Por defecto, el momento actual.

El rango puede abarcar hasta 366 días. La respuesta trae from, to y history[] con type, buy, sell, effective_date, valid_since y verified_at.

Lista de entidades

GET/v1/banks

Devuelve el id, name, short_name y source_url de cada entidad disponible.

Estado del servicio

GET/health

Responde {"ok": true} si el servicio está en línea. Para saber si una entidad en particular se está leyendo bien, revisa su status en /v1/rates.

Errores

Los errores responden con un código HTTP y un cuerpo JSON con un código (error) y una explicación (message):

404 Not Found
{
  "error": "bank_not_found",
  "message": "Bank \"xyz\" does not exist. Available banks: bcb, bnb, bmsc, …"
}
Código Cuándo ocurre
400 Fechas con formato inválido, from posterior a to o un rango mayor a 366 días (invalid_range).
404 El bank no corresponde a ninguna entidad (bank_not_found).
429 Se superó el límite de consultas por minuto. Espera los segundos que indica retry-after.

Límites y caché

  • Cada IP puede hacer 60 consultas por minuto a las rutas /v1. Las cabeceras x-ratelimit-limit, x-ratelimit-remaining y x-ratelimit-reset indican tu consumo.
  • Las respuestas incluyen Cache-Control: public, max-age=60. Los precios cambian como mucho cada 15 minutos, así que no hace falta consultar más de una vez por minuto.
  • Los datos provienen de los sitios públicos de cada entidad y son referenciales. Para mostrar el origen, enlaza al campo source_url.