curl "https://apibcb.cucu.bo/api/v1/historico/tco?desde=2026-09-28&hasta=2026-10-07"
const url = 'https://apibcb.cucu.bo/api/v1/historico/moneda_bs?codigo=EUR&desde=2026-01-01&hasta=2026-06-30';
const { puntos } = await fetch(url).then(r => r.json());
import requests
ufv = requests.get('https://apibcb.cucu.bo/api/v1/tc/ufv', params={'fecha': '2026-10-04'}).json()['ufv']
{
"serie": "tco",
"codigo": null,
"unidad": "Bs/USD",
"descripcion": "Tipo de cambio oficial del BCB. Desde 2026-06-29 (régimen flexible) es el TCO único (compra = venta); antes, la cotización oficial de COMPRA del BCB (columna oficial de su tabla de cotizaciones; la venta era Bs 0,10 más).",
"desde": "2026-09-28",
"hasta": "2026-10-07",
"puntos": [
{
"fecha": "2026-09-29",
"valor": 12.02,
"granularidad": "diaria",
"version": 1,
"errata": false,
"fuentes": 1,
"fuente": "api_observado",
"tabla_bcb": null
},
{
"fecha": "2026-09-30",
"valor": 12.02,
"granularidad": "diaria",
"version": 1,
"errata": false,
"fuentes": 1,
"fuente": "api_observado",
"tabla_bcb": null
},
{
"fecha": "2026-10-01",
"valor": 12.0,
"granularidad": "diaria",
"version": 1,
"errata": false,
"fuentes": 1,
"fuente": "api_observado",
"tabla_bcb": null
}
],
"truncado": false,
"fuente": "Banco Central de Bolivia (bcb.gob.bo)",
"disclaimer": "API independiente, no afiliada ni avalada por el Banco Central de Bolivia. Datos tomados de cifras públicas del BCB (bcb.gob.bo), con fines informativos; no es el registro oficial. Sin garantía; uso bajo su responsabilidad. Histórico: lo publicado por el BCB para cada fecha, con su procedencia; lo que no pasó las invariantes de la API no se publica."
}
Endpoints
Histórico
Lo que el BCB publicó para cada fecha, con su procedencia: ?fecha= y rangos.
GET
/
api
/
v1
/
historico
/
{serie}
curl "https://apibcb.cucu.bo/api/v1/historico/tco?desde=2026-09-28&hasta=2026-10-07"
const url = 'https://apibcb.cucu.bo/api/v1/historico/moneda_bs?codigo=EUR&desde=2026-01-01&hasta=2026-06-30';
const { puntos } = await fetch(url).then(r => r.json());
import requests
ufv = requests.get('https://apibcb.cucu.bo/api/v1/tc/ufv', params={'fecha': '2026-10-04'}).json()['ufv']
{
"serie": "tco",
"codigo": null,
"unidad": "Bs/USD",
"descripcion": "Tipo de cambio oficial del BCB. Desde 2026-06-29 (régimen flexible) es el TCO único (compra = venta); antes, la cotización oficial de COMPRA del BCB (columna oficial de su tabla de cotizaciones; la venta era Bs 0,10 más).",
"desde": "2026-09-28",
"hasta": "2026-10-07",
"puntos": [
{
"fecha": "2026-09-29",
"valor": 12.02,
"granularidad": "diaria",
"version": 1,
"errata": false,
"fuentes": 1,
"fuente": "api_observado",
"tabla_bcb": null
},
{
"fecha": "2026-09-30",
"valor": 12.02,
"granularidad": "diaria",
"version": 1,
"errata": false,
"fuentes": 1,
"fuente": "api_observado",
"tabla_bcb": null
},
{
"fecha": "2026-10-01",
"valor": 12.0,
"granularidad": "diaria",
"version": 1,
"errata": false,
"fuentes": 1,
"fuente": "api_observado",
"tabla_bcb": null
}
],
"truncado": false,
"fuente": "Banco Central de Bolivia (bcb.gob.bo)",
"disclaimer": "API independiente, no afiliada ni avalada por el Banco Central de Bolivia. Datos tomados de cifras públicas del BCB (bcb.gob.bo), con fines informativos; no es el registro oficial. Sin garantía; uso bajo su responsabilidad. Histórico: lo publicado por el BCB para cada fecha, con su procedencia; lo que no pasó las invariantes de la API no se publica."
}
Uso justo: 120 solicitudes/hora por IP. El pasado casi no cambia: guarda lo que consultes (las respuestas históricas se pueden cachear hasta un día). Insistir tras un
429 se bloquea (403). Políticaerrata), no se pisa. Lo que no pasa las validaciones de la API (rangos, Bs = TCO ÷ M.E. en monedas, picos aislados) no se publica.
Un día: ?fecha= en cada indicador
| Endpoint | Parámetro |
|---|---|
/api/v1/tc/oficial · /tc/ufv · /tc/oro · /tc/sdr · /tc/sofr · /tc/monedas | ?fecha=AAAA-MM-DD |
/api/v1/tc/inflacion · /tc/oma · /tc/tre | ?fecha=AAAA-MM (son mensuales) |
historico:
| Campo | Descripción |
|---|---|
fecha_consultada | La fecha que pediste. Un sábado, domingo o feriado sin tabla responde el último valor publicado antes (su fecha es la del dato) |
fuentes | Cuántas fuentes del BCB coincidieron en ese valor |
version · errata | Versión del dato; errata: true si el BCB corrigió un valor anterior |
fuente | De dónde salió: bcb_ods (tabla de cotizaciones del BCB de esa fecha), bcb_panel (panel de estadísticas del BCB, mensual), api_bcb (lectura en vivo de esta API), api_observado / api_servido (lo que esta API ya había leído antes de existir el histórico) |
tabla_bcb | Número de tabla del BCB, cuando sale de su tabla de cotizaciones |
granularidad | diaria o mensual (un valor mensual sólo responde a su fecha exacta) |
404. Fecha futura o mal escrita: 400. /api/v1/tc y /tc/usd no tienen histórico: con ?fecha= responden 400.
Ejemplo real: GET /api/v1/tc/oficial?fecha=2026-10-04 (domingo: rige el TCO del sábado 3)
{
"tc_oficial": {
"regimen": "flexible",
"valor": 12.0,
"base": 12.0,
"compra": 12.0,
"venta": 12.0,
"moneda": "USD/BOB",
"fecha": "2026-10-03",
"vigencia_desde": "2026-10-03",
"nota": "TCO flexible (RD BCB 142/2026): compra = venta.",
"fuente": "Banco Central de Bolivia (bcb.gob.bo)",
"historico": {
"fecha_consultada": "2026-10-04",
"fuentes": 1,
"version": 1,
"errata": false,
"fuente": "api_observado",
"tabla_bcb": null,
"granularidad": "diaria"
}
},
"fuente": "Banco Central de Bolivia (bcb.gob.bo)",
"disclaimer": "API independiente, no afiliada ni avalada por el Banco Central de Bolivia. Datos tomados de cifras públicas del BCB (bcb.gob.bo), con fines informativos; no es el registro oficial. Sin garantía; uso bajo su responsabilidad. Histórico: lo publicado por el BCB para cada fecha, con su procedencia; lo que no pasó las invariantes de la API no se publica."
}
Un rango: /api/v1/historico/{serie}
?desde=AAAA-MM-DD&hasta=AAAA-MM-DD (por defecto, hasta = hoy) o ?fecha=. Tope: 366 días por consulta (120 meses en las series mensuales). Las monedas llevan &codigo=EUR.
| Serie | Unidad |
|---|---|
tco | Bs/USD. Desde el 29-jun-2026, el TCO del régimen flexible (compra = venta); antes, la cotización oficial de compra del BCB |
ufv | Bs/UFV |
oro_usd_otf · plata_usd_otf | USD por onza troy fina |
deg_usd | USD por DEG |
sofr_pct | % |
moneda_bs · moneda_me | Bs por unidad · unidades por USD (con codigo) |
inflacion_ipc · inflacion_mensual_pct · inflacion_acumulada_pct · inflacion_anual_pct | Índice y % (mensual) |
inflacion_nucleo_mensual_pct · inflacion_nucleo_acumulada_pct · inflacion_nucleo_anual_pct | % (mensual) |
oma_reporto_pct (con codigo = plazo, p. ej. 7D) · oma_subasta_273d_pct · oma_credito_ral_pct | % (mensual) |
tre_pct (con codigo = MN, ME, MVDOL, MN_UFV) | % (mensual) |
curl "https://apibcb.cucu.bo/api/v1/historico/tco?desde=2026-09-28&hasta=2026-10-07"
const url = 'https://apibcb.cucu.bo/api/v1/historico/moneda_bs?codigo=EUR&desde=2026-01-01&hasta=2026-06-30';
const { puntos } = await fetch(url).then(r => r.json());
import requests
ufv = requests.get('https://apibcb.cucu.bo/api/v1/tc/ufv', params={'fecha': '2026-10-04'}).json()['ufv']
{
"serie": "tco",
"codigo": null,
"unidad": "Bs/USD",
"descripcion": "Tipo de cambio oficial del BCB. Desde 2026-06-29 (régimen flexible) es el TCO único (compra = venta); antes, la cotización oficial de COMPRA del BCB (columna oficial de su tabla de cotizaciones; la venta era Bs 0,10 más).",
"desde": "2026-09-28",
"hasta": "2026-10-07",
"puntos": [
{
"fecha": "2026-09-29",
"valor": 12.02,
"granularidad": "diaria",
"version": 1,
"errata": false,
"fuentes": 1,
"fuente": "api_observado",
"tabla_bcb": null
},
{
"fecha": "2026-09-30",
"valor": 12.02,
"granularidad": "diaria",
"version": 1,
"errata": false,
"fuentes": 1,
"fuente": "api_observado",
"tabla_bcb": null
},
{
"fecha": "2026-10-01",
"valor": 12.0,
"granularidad": "diaria",
"version": 1,
"errata": false,
"fuentes": 1,
"fuente": "api_observado",
"tabla_bcb": null
}
],
"truncado": false,
"fuente": "Banco Central de Bolivia (bcb.gob.bo)",
"disclaimer": "API independiente, no afiliada ni avalada por el Banco Central de Bolivia. Datos tomados de cifras públicas del BCB (bcb.gob.bo), con fines informativos; no es el registro oficial. Sin garantía; uso bajo su responsabilidad. Histórico: lo publicado por el BCB para cada fecha, con su procedencia; lo que no pasó las invariantes de la API no se publica."
}
Cobertura: /api/v1/historico
Desde qué fecha hay datos de cada serie, cuántas fechas, erratas y rechazados. CUCU reconstruye el pasado leyendo de madrugada las tablas del BCB, con pausas para no cargar su sitio: la cobertura crece día a día. Consúltala antes de pedir fechas viejas.
Ejemplo real (recortado a 2 series)
{
"series": [
{
"serie": "moneda_bs",
"unidad": "Bs/unidad",
"descripcion": "Bolivianos por unidad de moneda extranjera (código ISO).",
"granularidad": "diaria",
"desde": "2026-10-06",
"hasta": "2026-10-07",
"fechas": 2,
"codigos": 22,
"erratas": 0,
"rechazados": 0
},
{
"serie": "tco",
"unidad": "Bs/USD",
"descripcion": "Tipo de cambio oficial del BCB. Desde 2026-06-29 (régimen flexible) es el TCO único (compra = venta); antes, la cotización oficial de COMPRA del BCB (columna oficial de su tabla de cotizaciones; la venta era Bs 0,10 más).",
"granularidad": "diaria",
"desde": "2026-09-26",
"hasta": "2026-10-07",
"fechas": 8,
"codigos": 0,
"erratas": 0,
"rechazados": 0
}
],
"max_dias_por_consulta": 366,
"max_meses_por_consulta": 120,
"fuente": "Banco Central de Bolivia (bcb.gob.bo)",
"disclaimer": "API independiente, no afiliada ni avalada por el Banco Central de Bolivia. Datos tomados de cifras públicas del BCB (bcb.gob.bo), con fines informativos; no es el registro oficial. Sin garantía; uso bajo su responsabilidad. Histórico: lo publicado por el BCB para cada fecha, con su procedencia; lo que no pasó las invariantes de la API no se publica."
}