Actualización de la API pública · 21 de agosto de 2026

API de cotizaciones de la región

Un equipo de estudiantes de la Universidad Tecnológica (UTEC) nos escribió contando que ampliaron el alcance de su proyecto académico a las cotizaciones de la región y preguntando si teníamos algo que cubriera divisas regionales. No teníamos: la API era uruguaya. Ahora sí — GET /regional devuelve el dólar y los cruces de Argentina, Brasil, Paraguay, Chile, Bolivia y Uruguay con todos los mercados que publica cada país, y GET /regional/history devuelve las series diarias: los dólares argentinos desde 2011, la referencia del BCRA desde 1996, el fixing brasileño desde el Plano Real y el dólar observado chileno desde 1984. Y GET /regional/changes devuelve cada movimiento de precio, por chico que sea.

El pedido, y qué no vas a leer acá

El mensaje llegó por correo desde casillas institucionales de UTEC. Publicamos qué se pidió —cobertura de divisas regionales en una API pública— y qué hicimos. No publicamos nombres, direcciones de correo, la carrera, la cátedra ni ningún dato que permita identificar a quienes escribieron: ni acá, ni en el repositorio, ni en el historial de commits. Una casilla de correo es un dato personal en los términos del artículo 4 de la Ley Nº 18.331 y difundirla exige un consentimiento que nadie da al mandar una consulta técnica. El razonamiento completo, con los artículos, está en la página del endpoint intradía, que salió del mismo modo.

Por qué el pedido tenía razón

Comparar el dólar entre países vecinos parece trivial y no lo es. Argentina publica siete precios simultáneos para la misma moneda; Brasil tiene un fixing legal y un precio de mostrador que difieren varios puntos; Paraguay publica una planilla oficial y un referencial que se recalcula cada media hora; Chile publica el promedio de la rueda anterior; Bolivia tiene un oficial que casi nadie usa. Una API que devuelva "el dólar" de cada país sin decir cuál de todos ellos es, entrega un número que no se puede comparar con nada. Esta devuelve todos, etiquetados.

Los ocho endpoints

Todos son GET, públicos, sin autenticación, sobre HTTPS y con CORS abierto. Base: https://api.cambio-uruguay.com

GET
/regional Probar

El tablero completo: cada cotización con su mercado, su tipo, su fuente y su hora, más el tablero por país, las brechas, la matriz de cruces, la comparación de rutas y lo que el validador descartó.

Sin parámetros.

GET
/regional/history Probar

Serie diaria (un punto por día, el cierre) de un mercado. Sin filtros devuelve todas las series mezcladas.

ParámetroPor defectoQué hace
countryAR, BR, CL, PY, BO o UY.
marketblue, oficial, ptax, turismo, observado, referencial, casas…
baseMoneda unidad, normalmente USD.
quoteMoneda en la que se expresa el precio (ARS, BRL…).
from / toRango de días, YYYY-MM-DD.
limit5000Máximo de puntos (1 a 20000). Se recortan los más viejos.
GET
/regional/series Probar

Inventario de series: clave, país, mercado, par, cantidad de días y rango de fechas. Útil para saber qué pedirle a /regional/history antes de pedírselo.

Sin parámetros.

GET
/regional/compare Probar

La comparación de rutas: comprar la moneda del vecino en Uruguay contra comprar dólares acá y cambiarlos allá, con el costo por unidad de cada una y cuál gana.

ParámetroPor defectoQué hace
currencytodasARS, BRL, PYG, CLP o BOB.
amountCantidad de moneda extranjera: agrega el total de cada ruta.
GET
/regional/convert Probar

Conversión entre monedas de la región, pasando por el dólar. Devuelve las cotizaciones usadas en legs para que el resultado se pueda rehacer a mano.

ParámetroPor defectoQué hace
from / toobligatoriosCódigos ISO de tres letras.
amount1Cantidad a convertir.
marketel oficialFija el mercado del lado de origen: blue, oficial, ptax, turismo…
GET
/regional/sources Probar

Las fuentes con el estado de la última corrida: si respondió, cuánto tardó, qué mercados publica, en cuáles queda corroborando a otra, qué se le descartó y por qué. El resumen trae `singleSourceMarkets`, que es el número a vigilar: los mercados que todavía dependen de una sola lectura.

Sin parámetros.

GET
/regional/sources/{id} Probar

La misma ficha, de una sola fuente.

ParámetroPor defectoQué hace
idobligatorioEl id de la fuente, como lo lista /regional/sources.
GET
/regional/changes Probar

Cada movimiento de precio, sin umbral mínimo: un guaraní o una diezmilésima de peso entran igual. Es la otra mitad de /regional/history, porque la fila diaria se sobrescribe y lo que pasa adentro del día sólo existe acá.

ParámetroPor defectoQué hace
keyClave exacta del mercado, por ejemplo AR:blue:USDARS.
country / market / base / quoteLos mismos filtros que en /regional/history.
from / toRango por fecha y hora (ISO 8601).
limit500Máximo de movimientos (1 a 5000).

Una respuesta de verdad, de hace un rato

Esto no es un ejemplo escrito a mano: es una cotización del tablero de este momento (hace 6 min), servida por el mismo endpoint.

Cotizaciones

57

Fuentes que respondieron

22/22

Cruces derivados

30

Dólar blue (ARS)

1.550,00

{
  "id": "AR:blue:USDARS",
  "country": "AR",
  "market": "blue",
  "label": "Dólar blue",
  "kind": "parallel",
  "base": "USD",
  "quote": "ARS",
  "buy": 1530,
  "sell": 1550,
  "avg": 1540,
  "spreadPct": 1.3072,
  "high": null,
  "low": null,
  "variationPct": 0,
  "updatedAt": "2026-08-22T22:31:15.000Z",
  "source": "ar_criptoya",
  "sourceUrl": "https://criptoya.com/api/dolar",
  "corroboratedBy": [
    "ar_dolarapi",
    "ar_bluelytics",
    "ar_dolarhoy",
    "ar_ambito"
  ],
  "disagreementPct": 0.4221
}

Qué historia hay, y desde cuándo

Inventario en vivo de GET /regional/series. Las series largas son las que publica el propio emisor; las de un solo día empezaron cuando este tablero salió, porque nadie publica su historia y la estamos construyendo un día por vez.

SeriePaísDíasDesdeHasta
CL:observado:USDCLPCL10.6291984-01-022026-08-24
BR:ptax:USDBRLBR8.0681994-07-012026-08-21
AR:referencia:USDARSAR7.4371996-01-022026-08-21
AR:blue:USDARSAR5.7112011-01-032026-08-22
AR:oficial:USDARSAR5.7112011-01-032026-08-22
AR:mayorista:USDARSAR5.7102011-01-032026-08-21
AR:contadoconliqui:USDARSAR4.9812013-01-022026-08-22
AR:bolsa:USDARSAR2.8552018-10-292026-08-22
AR:tarjeta:USDARSAR2.4352019-12-232026-08-22
AR:cripto:USDARSAR1.2932023-02-072026-08-22
UY:casas:ARSUYUUY1.1612023-05-252026-08-22
UY:casas:USDUYUUY1.1612023-05-252026-08-22
UY:casas:BRLUYUUY1.1482023-05-252026-08-22
UY:casas:EURUYUUY1.1482023-05-252026-08-22
UY:casas:PYGUYUUY1.1472023-05-252026-08-22
UY:bcu:USDUYUUY1.1242023-05-252026-08-21
UY:casas:CLPUYUUY7272023-05-252026-08-22
PY:referencial:USDPYGPY4272024-11-262026-08-21

Hay 40 series más, todas de mercados que ningún tercero publica en forma histórica (Paraguay, Bolivia, el mostrador uruguayo, los cruces). Se pueden listar todas con GET /regional/series.

Las fuentes, y a quién citar

Salvo la fila de Uruguay, ningún dato es nuestro: somos un intermediario que normaliza. Si publicás un número tomado de acá, citá a quien lo publica —el catálogo está en GET /regional/sources y trae la URL de cada original—. Si además nos mencionás, mejor, pero lo importante es lo primero.

idFuentePaísAccesoQué aporta
ar_dolarapiDolarAPIARAPILos siete dólares argentinos (oficial, blue, bolsa, CCL, mayorista, cripto y tarjeta) más euro, real, peso chileno y peso uruguayo en pesos argentinos.
ar_bluelyticsBluelyticsARAPIDólar oficial y blue con promedio propio, más el euro blue (el único precio de calle del euro que se publica).
ar_ambitoÁmbito FinancieroARAPIOficial, informal, CCL, MEP, cripto, turista, euro y real, cada uno con la variación del día — el único que publica el cambio, no sólo el nivel.
ar_dolarhoyDolarHoyARScrapingTercer relevamiento independiente del blue, más oficial, MEP, CCL, USDC y tarjeta, leídos de la página que mira el público argentino.
ar_criptoyaCriptoYaARAPIQuinta lectura de los dólares argentinos, con los financieros desglosados por bono y liquidación (se usa AL30 a 24 h) y el cripto por stablecoin.
ar_bcraBCRAARAPITabla oficial del banco central argentino: toda la región (real, guaraní, peso chileno, boliviano, peso uruguayo) cotizada en pesos argentinos el mismo día.
br_bcbBanco Central do Brasil (PTAX)BRAPIEl fixing PTAX (compra y venta) con el que se liquidan contratos, tarjetas e impuestos en Brasil, y su serie diaria completa desde 1984.
br_awesomeapiAwesomeAPIBRAPIDólar comercial y dólar TURISMO (lo que realmente cobra un câmbio), euro y el cruce directo peso argentino/real, con máximo, mínimo y variación del día.
cl_mindicadormindicador.cl (Banco Central de Chile)CLAPIDólar observado y euro del Banco Central de Chile, con su serie diaria por año, más la UF.
cl_boostrBoostrCLAPISegunda lectura del dólar observado y el euro del Banco Central de Chile, para contrastar la primera.
cl_dolarapiDolarAPI ChileCLAPIPrecio de mostrador (compra y venta) del dólar, el euro y el peso argentino en pesos chilenos.
py_bcpBanco Central del ParaguayPYScrapingTipo de cambio referencial del mercado libre (compra y venta, actualizado cada media hora) y la planilla oficial con ~26 monedas en guaraníes.
py_dolarpyDolarPyPYAPIEl referencial del BCP más el mostrador de once casas de cambio paraguayas en una sola respuesta: la única forma de tener consenso en Paraguay.
py_maxicambiosMaxicambiosPYScrapingPrecio de mostrador de una casa de cambio paraguaya: dólar, real, peso argentino, peso uruguayo, euro y yen en guaraníes.
bo_bcbBanco Central de BoliviaBOScrapingEl tipo de cambio oficial que fija el banco central boliviano, leído de su portada. Es la única forma de contrastar el oficial de Bolivia.
bo_dolarapiDolarAPI BoliviaBOAPIDólar oficial boliviano y el precio paralelo (Binance P2P), que es donde se ve la brecha real.
uy_externalDolarAPI UruguayUYAPILectura de un tercero sobre el mercado uruguayo: el control externo de nuestros propios datos.
world_currencyapiCurrency API (jsDelivr)APIReferencia diaria del dólar contra las seis monedas de la región. Una de las cuatro que se contrastan entre sí.
world_floatratesFloatRatesAPISegunda referencia diaria independiente, con su propia fecha de publicación por moneda.
world_coinbaseCoinbaseAPITercera referencia independiente: el tipo de cambio que Coinbase publica para monedas fiat, sin clave ni registro.
world_erapiExchangeRate-API (open)APIReferencia diaria del dólar contra todas las monedas de la región. Se usa como respaldo cuando una fuente nacional no responde y como control cruzado de las demás.
uy_localcambio-uruguay.comUYAPIEl mejor precio de mostrador entre ~46 casas de cambio uruguayas, más la cotización oficial del BCU. Datos propios, actualizados cada 5 minutos.
ar_argentinadatosArgentinaDatosARAPISerie diaria de los siete dólares argentinos; oficial y blue desde enero de 2011.

Límites, y qué NO garantiza

Se refresca cada 20 minutos

La respuesta se cachea 2 minutos. Pedirlo cada segundo no trae nada nuevo: lo que devuelve es la última corrida, no una consulta en vivo a trece sitios.

Frescura ≠ hora de lectura

updatedAt es la hora que declara la fuente. El observado chileno es de la rueda anterior, el PTAX se fija una vez al día y la planilla paraguaya se publica una vez por jornada. oldestQuoteAt, en la raíz, es la más vieja del tablero.

Una fuente puede faltar

Veintiuna fuentes en seis países: alguna se cae. El tablero se publica igual y sources dice quién no respondió. Si una corrida trae menos de la mitad de lo guardado, se conserva la anterior antes que publicar un tablero mutilado.

No es asesoramiento ni cotización en firme

Son precios publicados por terceros, normalizados. Ninguna casa de cambio está obligada a operar a estos valores y nada de esto es una recomendación financiera.

Citá a la fuente primaria

Casi nada de esto es nuestro. Cada cotización trae source y sourceUrl; si publicás un número, el crédito va a quien lo publica.

La historia empieza donde empieza

Las series argentinas arrancan en 2011 y el PTAX brasileño en 1995 porque sus publicadores las dan así. Las de Paraguay, Bolivia, Uruguay y los cruces arrancan el día que salió este tablero: nadie las publica y se están construyendo.

Tres llamadas para empezar

# El tablero completo de la región
curl -s "https://api.cambio-uruguay.com/regional" | jq '.board[] | {country, oficial: .official.avg}'

# La serie diaria del dólar blue desde 2011
curl -s "https://api.cambio-uruguay.com/regional/history?country=AR&market=blue&base=USD&quote=ARS&from=2011-01-01" \
  | jq '.count, .points[0], .points[-1]'

# Cuántos pesos uruguayos son 10.000 pesos argentinos al blue
curl -s "https://api.cambio-uruguay.com/regional/convert?from=ARS&to=UYU&amount=10000&market=blue" | jq

Para series largas conviene filtrar por country + market + base + quote: sin filtros el endpoint devuelve todas las series mezcladas, que es casi nunca lo que se quiere.

Preguntas frecuentes

¿Necesito una clave o registrarme?
No. Son endpoints públicos, sin autenticación, sobre HTTPS y con CORS abierto. No se recolecta nada de quien llama más allá de los registros técnicos normales de un servidor web.
¿Hay límite de llamadas?
No hay un límite formal, pero la respuesta se cachea dos minutos y los datos se recalculan cada veinte, así que llamar más seguido que eso no devuelve información nueva. Si necesitás un volumen alto o una descarga masiva, escribinos antes: es más fácil darte los datos de otra forma que aguantar el tráfico.
¿Qué monedas cubre exactamente?
El dólar contra las seis monedas de la región (ARS, BRL, CLP, PYG, BOB, UYU), el euro donde el país lo publica, y los cruces directos que alguna fuente cotiza: el real en pesos argentinos, el peso argentino en reales y en pesos chilenos, el peso uruguayo en guaraníes y en pesos argentinos, entre otros. Además, la matriz completa de cruces implícitos entre las seis monedas, anclada siempre en cotizaciones oficiales.
¿En qué se diferencia de las APIs de tipo de cambio que ya existen?
La mayoría devuelve un número por moneda. Esta devuelve todos los mercados que cada país publica, etiquetados por tipo, con la fuente y la hora de cada uno, y dice cuáles fuentes se corroboran entre sí y cuáles descartó el validador. Para Argentina, "el dólar" son siete precios distintos; una API que devuelve uno solo obliga a adivinar cuál.
¿Y los datos de Uruguay?
La fila uruguaya del tablero regional es un resumen: el mejor precio entre las casas que operan cada moneda. El detalle casa por casa vive en los endpoints uruguayos de siempre (GET / para el tablero completo, /intraday para la variación del día, /analytics/rates para series por hora o por día), documentados en la página de desarrolladores.
¿Puedo usar esto en un trabajo académico o en un producto?
Sí, en los dos casos, gratis y sin permiso previo. Lo único que pedimos es que cites a la fuente primaria de cada dato, que está en el campo sourceUrl de cada cotización y en el catálogo de /regional/sources.

¿Necesitás otra cosa?

Esta página existe porque alguien preguntó. Si te falta una moneda, un país, un campo o un formato, escribinos: si es razonable y la fuente es pública, se hace.