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
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.
buyes la compra ysellla 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
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
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
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
Devuelve el id, name, short_name y source_url de cada
entidad disponible.
Estado del servicio
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):
{
"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 cabecerasx-ratelimit-limit,x-ratelimit-remainingyx-ratelimit-resetindican 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.