JSON · CORS abierto · sin API key
API de tipo de cambio CRC — JSON para developers
Compra y venta del BCCR en un GET. Contrato v1 estable: {compra, venta, fecha}.
GET/api
Último tipo de cambio disponible (hoy hábil, o el registro previo si aún no hay dato).
GEThttps://tipodecambio.paginasweb.cr/api
curl -s https://tipodecambio.paginasweb.cr/api
const res = await fetch("https://tipodecambio.paginasweb.cr/api");
const { compra, venta, fecha } = await res.json();
console.log(compra, venta, fecha);
import json, urllib.request
url = "https://tipodecambio.paginasweb.cr/api"
with urllib.request.urlopen(url) as res:
data = json.load(res)
print(data["compra"], data["venta"], data["fecha"])
GET/api/dd/mm/yyyy
Tipo de cambio de una fecha. Si ese día no hay fila (finde o feriado), responde el último dato hábil anterior.
GEThttps://tipodecambio.paginasweb.cr/api/02/09/2026
curl -s https://tipodecambio.paginasweb.cr/api/02/09/2026
Respuesta
{
"compra": 445.58,
"venta": 451.72,
"fecha": "02/09/2026"
}
compra/venta: números del BCCR (indicadores 317 y 318).fecha: día del dato, formatodd/mm/yyyy.- CORS
*. Sin autenticación. - 400 si la fecha no es válida. 500 si no hay dato en la base.
Spec: openapi.json · llms.txt
Preguntas frecuentes
¿De dónde salen los datos?
Del Banco Central de Costa Rica. El worker los guarda en D1 varias veces al día. Esta página no inventa un tipo de cambio propio.
¿Puedo usarlo desde el browser?
Sí. El API manda Access-Control-Allow-Origin: *. Para el valor de hoy, no dependás de un caché agresivo del cliente: el dato actual se cachea 5 minutos.
¿Hay tipo de cambio sábado y domingo?
El BCCR no publica esos días. Pedí la fecha igual: el API te devuelve el último hábil disponible y fecha indica de qué día es el número.