Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/cambio-uruguay:cambio-uruguay-indicators-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Cambio Uruguay Indicators API
version: 1.0.0
description: '# Cambio Uruguay API
API completa para obtener tipos de cambio y información de casas de cambio en Uruguay.
Esta API proporciona:
- Tipos de cambio actualizados en tiempo real
- Cotizaciones preferenciales por proveedor, monto e histórico diario
- Información de ubicaciones de casas de cambio
- Datos históricos de evolución de monedas
- Cotizaciones regionales (Argentina, Brasil, Paraguay, Chile y Bolivia) con series diarias
- Búsqueda por geolocalización
- Información del Banco Central del Uruguay (BCU)
## Base URL
**Producción:** `https://api.cambio-uruguay.com`
## Formatos de respuesta
Todas las respuestas de la API están en formato JSON.
## Zona horaria
Todos los timestamps y fechas están en la zona horaria de Uruguay (America/Montevideo).'
contact:
name: Cambio Uruguay
url: https://cambio-uruguay.com
email: info@cambio-uruguay.com
license:
name: MIT
url: https://opensource.org/licenses/MIT
termsOfService: https://cambio-uruguay.com/terminos
servers:
- url: https://api.cambio-uruguay.com
description: Servidor de Producción
- url: http://localhost:3528
description: Servidor de Desarrollo
security:
- {}
- ApiKeyAuth: []
tags:
- name: Indicators
paths:
/uy-figures:
get:
tags:
- Indicators
summary: Indicadores clave de Uruguay (salario mínimo, BPC, boleto, inflación)
description: 'Datos que alimentan /salud-financiera, /indicadores y /herramientas/costo-de-vida:
salario mínimo nacional, BPC, boleto común de Montevideo (STM) e inflación anual (IPC),
vía una búsqueda con grounding (Gemini + Google Search). Se sincroniza una vez por día
(pm2 `currency-figures`).
Cada valor debe caer dentro de una banda de plausibilidad para ser aceptado; un valor
fuera de banda se descarta y se mantiene el último dato bueno (o el baseline verificado).
`updated[]` lista qué campos vinieron de una búsqueda en vivo en este ciclo — todo lo
demás es el baseline verificado. `asOf: null` significa que todavía no se generó ningún
dato en vivo (nunca corrió el job con GEMINI_API_KEY configurada).'
responses:
'200':
description: Indicadores clave de Uruguay
content:
application/json:
schema:
type: object
properties:
salarioMinimo:
type: number
description: UYU/mes, nominal
bpc:
type: number
description: Base de Prestaciones y Contribuciones, UYU
boletoStm:
type: number
description: Boleto común de Montevideo con STM, UYU
inflacionAnual:
type: number
description: Variación anual del IPC, %
asOf:
type:
- string
- 'null'
updated:
type: array
items:
type: string
description: Campos actualizados en vivo en este ciclo.
sources:
type: array
items:
type: object
properties:
label:
type: string
url:
type: string
operationId: getUyFigures
x-operation-id-source: derived
/combustibles:
get:
tags:
- Indicators
summary: Precios de combustibles de ANCAP (vigentes e histórico mensual desde 2021)
description: Nafta Súper 95, Premium 97, Gasoil 50-S, Gasoil 10-S, queroseno (pesos por litro) y supergás (pesos por kg), una fila por vigencia, leídas de la tabla pública de ANCAP. `asOf` es null cuando se sirve el baseline horneado.
responses:
'200':
description: latest, previous y rows ascendentes
operationId: getCombustibles
x-operation-id-source: derived
/site-analytics-realtime:
get:
tags:
- Indicators
summary: Actividad en vivo del sitio (últimos 30 minutos, GA4 Realtime)
description: 'Lo único de /estadisticas-del-sitio que no puede salir de la foto diaria: cuánta gente hay
ahora, cómo se movió minuto a minuto en la última media hora y qué páginas están abiertas.
Fuente: Google Analytics 4 Realtime API.
Sólo agregados: un conteo, una forma por minuto y TÍTULOS de página (la API en tiempo real
no expone rutas, así que ni siquiera existe la posibilidad de filtrar un query string).
`activeUsers` son usuarios ÚNICOS de los últimos 30 minutos: no es la suma de `perMinute`,
donde la misma persona aparece en cada minuto en que estuvo activa.
Cacheado 45 s en Redis (compartido por las dos instancias del cluster). Si el servidor no
tiene GA4 configurado responde todo en cero — nunca un 500.'
responses:
'200':
description: Actividad de los últimos 30 minutos
content:
application/json:
schema:
type: object
properties:
asOf:
type: string
format: date-time
activeUsers:
type: number
description: Usuarios únicos, últimos 30 min
activeUsersLast5:
type: number
description: Pico por minuto en los últimos 5 min
perMinute:
type: array
description: 30 entradas, de la más vieja a la más nueva.
items:
type: object
properties:
minutesAgo:
type: number
activeUsers:
type: number
pages:
type: array
items:
type: object
properties:
title:
type: string
activeUsers:
type: number
views:
type: number
operationId: getSiteAnalyticsRealtime
x-operation-id-source: derived
/cost-of-living:
get:
tags:
- Indicators
summary: Figuras en vivo para el costo de vida en Uruguay (salario, boleto, alquileres)
description: 'Datos que alimentan /herramientas/costo-de-vida: salario mínimo, boleto común de
Montevideo (STM) y alquileres típicos (monoambiente, 1 y 2 dormitorios) vía una búsqueda
con grounding (Gemini + Google Search). Se sincroniza una vez por día (pm2
`currency-costs`).
Devuelve SOLO las cinco figuras validadas — la app aplica esos valores sobre su propio
modelo de costos (COST_MODEL), que no vive acá para no duplicar esa tabla. Cada figura
debe caer dentro de una banda de plausibilidad para ser aceptada; una fuera de banda
simplemente no aparece en `figures` ni en `updated`. `asOf: null` significa que todavía
no se generó ningún dato en vivo.'
responses:
'200':
description: Figuras en vivo de costo de vida
content:
application/json:
schema:
type: object
properties:
figures:
type: object
properties:
salarioMinimo:
type:
- number
- 'null'
boletoStm:
type:
- number
- 'null'
rentMono:
type:
- number
- 'null'
rent1:
type:
- number
- 'null'
rent2:
type:
- number
- 'null'
asOf:
type:
- string
- 'null'
updated:
type: array
items:
type: string
sources:
type: array
items:
type: object
properties:
label:
type: string
url:
type: string
operationId: getCostOfLiving
x-operation-id-source: derived
/temas-analysis:
get:
tags:
- Indicators
summary: Lectura trimestral por IA de los temas de dinero más consultados en Uruguay
description: 'Análisis generado con Gemini (grounded) sobre el ranking de temas de dinero de Reddit, regenerado cada 90 días. Solo lee el último snapshot almacenado; nunca gasta una llamada de IA. Devuelve `{ overview: string[], topics: {id,trend,insight}[], sources, asOf }`.'
responses:
'200':
description: Análisis almacenado (o vacío si aún no se generó).
operationId: getTemasAnalysis
x-operation-id-source: derived
/debt-relief:
get:
tags:
- Indicators
summary: Topes de usura vigentes del BCU (crédito al consumo)
description: 'Datos que alimentan /saldar-deudas-uruguay: los topes de usura que publica el Banco
Central del Uruguay (Ley 18.212) para crédito al consumo, con y sin autorización de
descuento, tramo menor a 10.000 UI — vía una búsqueda con grounding (Gemini + Google
Search). Se sincroniza una vez por mes (pm2 `currency-debt-relief`, día 1).
Devuelve SOLO los topes (`usuryCaps`, índice 0 = con descuento, 1 = sin) — `refiRates` y
`period` son contenido estático de la página y no viven acá. Cada valor debe caer dentro
de una banda de plausibilidad para ser aceptado; si nada pasa la banda se sirve el
último baseline verificado. `asOf: null` significa que todavía no se generó ningún dato
en vivo.'
responses:
'200':
description: Topes de usura vigentes
content:
application/json:
schema:
type: object
properties:
usuryCaps:
type: array
items:
type: object
properties:
segmento:
type: string
tasaMedia:
type: number
topeTasa:
type: number
topeMora:
type: number
asOf:
type:
- string
- 'null'
updated:
type: array
items:
type: string
sources:
type: array
items:
type: object
properties:
label:
type: string
url:
type: string
operationId: getDebtRelief
x-operation-id-source: derived
/bcu-rates:
get:
tags:
- Indicators
summary: Tasas medias y topes de usura del BCU (Ley 18.212) para crédito al consumo
description: 'La grilla que publica el BCU cada mes (ventana trimestral móvil) para
Familias > Consumo > SIN autorización de descuento, capital menor a 2:000.000 UI.
Seis filas: pesos y dólares, por tramo de 10.000 UI y por plazo.
Cada fila trae la tasa media publicada y los dos topes. Los topes se validan contra
la aritmética de la Ley 18.212 (media x 1,55 y x 1,80) antes de almacenarse, así que
una lectura mal hecha nunca llega a servirse: se conserva la anterior.
Se refresca a diario (pm2 `currency-bcu-rates`) porque la tabla entra en vigencia el
día 1 y el comunicado aparece en un día impredecible del mes anterior.'
responses:
'200':
description: Tabla vigente
content:
application/json:
schema:
type: object
properties:
periodo:
type: string
example: abril-junio de 2026
vigenteDesde:
type: string
example: '2026-08-01'
asOf:
type:
- string
- 'null'
rows:
type: array
items:
type: object
properties:
bracket:
type: string
enum:
- menor10kUI
- mayor10kUI
cortoPlazo:
type: boolean
currency:
type: string
enum:
- UYU
- USD
media:
type: number
example: 84.47
tope:
type: number
example: 130.9285
topeMora:
type: number
example: 152.046
sources:
type: array
items:
type: object
properties:
label:
type: string
url:
type: string
operationId: getBcuRates
x-operation-id-source: derived
/loan-rates:
get:
tags:
- Indicators
summary: Tasas efectivas anuales (TEA) publicadas por prestamistas uruguayos
description: 'Datos que alimentan \prestamos-uruguay: la TEA representativa publicada por cada
prestamista (bancos, financieras, cooperativas, fintech), obtenida por un parser regex
sobre la propia página del prestamista y, cuando no hay parser o falla, por una búsqueda
con grounding (Gemini + Google Search) que exige que la cita resuelva al dominio propio
del prestamista. Se sincroniza una vez por día (pm2 `currency-loans`).
`rates` trae solo el último valor conocido por prestamista; `history` guarda una entrada
por prestamista y por día — una serie temporal que nunca se trunca ni se regenera. Un
scrape fallido o implausible nunca borra el último valor bueno.'
responses:
'200':
description: TEAs vigentes por prestamista
content:
application/json:
schema:
type: object
properties:
rates:
type: object
description: Por id de prestamista.
additionalProperties:
type: object
properties:
teaPct:
type: number
scrapedAt:
type: string
history:
type: object
description: Por id de prestamista, un array con una entrada por día.
additionalProperties:
type: array
items:
type: object
properties:
date:
type: string
teaPct:
type: number
source:
type: string
method:
type: string
enum:
- regex
- gemini
updatedAt:
type: string
operationId: getLoanRates
x-operation-id-source: derived
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: 'Opcional. Sin clave la API funciona con el techo anónimo; con clave te identifica, mide tu uso y aplica tu plan. También se acepta `Authorization: Bearer cu_…` o `?api_key=`. Claves en https://cambio-uruguay.com/empresas.'
x-provenance:
method: harvested
publisher: Cambio Uruguay
source: https://api.cambio-uruguay.com/api-docs.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)