{"openapi":"3.1.0","info":{"title":"API de datos UY/AR","version":"0.1.0","description":"Datos oficiales de Uruguay y Argentina (BCU, Jefatura de Gabinete, DGI) con pago por llamada vía x402 (USDC en Base). Red actual: eip155:8453. Endpoints /try/* son gratis y no requieren wallet.","contact":{"url":"https://api-datos-uy-ar.vercel.app"}},"servers":[{"url":"https://api-datos-uy-ar.vercel.app","description":"Producción (v1). Header X-API-Version en cada respuesta."}],"tags":[{"name":"uruguay"},{"name":"argentina"},{"name":"demo","description":"Gratis, sin pago"}],"paths":{"/uy/ui":{"get":{"tags":["uruguay"],"summary":"Unidad Indexada (BCU) por fecha","operationId":"getUyUi","x-price-usd":"$0.002","x-payment":{"protocol":"x402","scheme":"exact","network":"eip155:8453","asset":"USDC"},"parameters":[{"name":"fecha","in":"query","required":false,"description":"YYYY-MM-DD. Default: hoy (UTC-3). BCU publica la UI con ~1 mes de anticipación.","schema":{"type":"string","format":"date","example":"2026-10-06"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Ui"},"source":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"fetchedAt":{"type":"string","format":"date-time"}}},"cached":{"type":"boolean"}}}}}},"400":{"description":"Parámetros inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Pago requerido (x402). El header PAYMENT-REQUIRED (y el body) describen precio, red y wallet. Reintentar con header PAYMENT-SIGNATURE.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"Sin datos para la consulta","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uy/ui/historico":{"get":{"tags":["uruguay"],"summary":"Serie diaria de la Unidad Indexada","operationId":"getUyUiHistorico","x-price-usd":"$0.005","x-payment":{"protocol":"x402","scheme":"exact","network":"eip155:8453","asset":"USDC"},"parameters":[{"name":"desde","in":"query","required":true,"description":"Inicio del rango","schema":{"type":"string","format":"date","example":"2026-10-06"}},{"name":"hasta","in":"query","required":false,"description":"Fin del rango (default hoy). Máximo 366 días.","schema":{"type":"string","format":"date","example":"2026-10-06"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UiHistorico"},"source":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"fetchedAt":{"type":"string","format":"date-time"}}},"cached":{"type":"boolean"}}}}}},"400":{"description":"Parámetros inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Pago requerido (x402). El header PAYMENT-REQUIRED (y el body) describen precio, red y wallet. Reintentar con header PAYMENT-SIGNATURE.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}}}}},"/uy/cotizaciones":{"get":{"tags":["uruguay"],"summary":"Cotizaciones oficiales del BCU","operationId":"getUyCotizaciones","x-price-usd":"$0.003","x-payment":{"protocol":"x402","scheme":"exact","network":"eip155:8453","asset":"USDC"},"parameters":[{"name":"moneda","in":"query","required":false,"description":"Lista separada por coma. Default USD,EUR,ARS,BRL. Válidas: UI, UP, UR, USD, USD_CABLE, USD_INTERBANCARIO, EUR, ARS, ARS_INTERBANCARIO, BRL, BRL_INTERBANCARIO, CLP, PYG, GBP, JPY, CHF, MXN, COP, PEN, CNY","schema":{"type":"string","example":"USD,EUR"}},{"name":"fecha","in":"query","required":false,"description":"Día hábil. Default: último cierre publicado por BCU.","schema":{"type":"string","format":"date","example":"2026-10-06"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Cotizaciones"},"source":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"fetchedAt":{"type":"string","format":"date-time"}}},"cached":{"type":"boolean"}}}}}},"400":{"description":"Parámetros inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Pago requerido (x402). El header PAYMENT-REQUIRED (y el body) describen precio, red y wallet. Reintentar con header PAYMENT-SIGNATURE.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"Sin datos para la consulta","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ar/feriados/{anio}":{"get":{"tags":["argentina"],"summary":"Feriados nacionales de Argentina por año","operationId":"getArFeriados","x-price-usd":"$0.002","x-payment":{"protocol":"x402","scheme":"exact","network":"eip155:8453","asset":"USDC"},"parameters":[{"name":"anio","in":"path","required":true,"schema":{"type":"integer","example":2026}},{"name":"tipo","in":"query","required":false,"schema":{"type":"string","enum":["inamovible","trasladable","no_laborable","turistico","especial"]}},{"name":"mes","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":12}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Feriados"},"source":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"fetchedAt":{"type":"string","format":"date-time"}}},"cached":{"type":"boolean"}}}}}},"400":{"description":"Parámetros inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Pago requerido (x402). El header PAYMENT-REQUIRED (y el body) describen precio, red y wallet. Reintentar con header PAYMENT-SIGNATURE.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"Sin datos para la consulta","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ar/feriados/proximo":{"get":{"tags":["argentina"],"summary":"Próximo feriado nacional de Argentina","operationId":"getArFeriadoProximo","x-price-usd":"$0.002","x-payment":{"protocol":"x402","scheme":"exact","network":"eip155:8453","asset":"USDC"},"parameters":[{"name":"desde","in":"query","required":false,"description":"Default: hoy (UTC-3)","schema":{"type":"string","format":"date","example":"2026-10-06"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/FeriadoProximo"},"source":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"fetchedAt":{"type":"string","format":"date-time"}}},"cached":{"type":"boolean"}}}}}},"400":{"description":"Parámetros inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Pago requerido (x402). El header PAYMENT-REQUIRED (y el body) describen precio, red y wallet. Reintentar con header PAYMENT-SIGNATURE.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"Sin datos para la consulta","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uy/rut":{"post":{"tags":["uruguay"],"summary":"Validar RUT uruguayo (formato + dígito verificador)","operationId":"postUyRut","x-price-usd":"$0.001","x-payment":{"protocol":"x402","scheme":"exact","network":"eip155:8453","asset":"USDC"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["rut"],"properties":{"rut":{"type":"string","example":"21-100342-001-7"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Rut"}}}}}},"400":{"description":"Parámetros inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Pago requerido (x402). El header PAYMENT-REQUIRED (y el body) describen precio, red y wallet. Reintentar con header PAYMENT-SIGNATURE.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}}}}},"/try/uy/ui":{"get":{"tags":["demo"],"summary":"Demo gratis: UI de hoy","operationId":"tryUyUi","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Ui"},"source":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"fetchedAt":{"type":"string","format":"date-time"}}},"cached":{"type":"boolean"}}}}}},"404":{"description":"Sin datos para la consulta","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/try/uy/cotizaciones":{"get":{"tags":["demo"],"summary":"Demo gratis: USD último cierre","operationId":"tryUyCotizaciones","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Cotizaciones"},"source":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"fetchedAt":{"type":"string","format":"date-time"}}},"cached":{"type":"boolean"}}}}}}}}},"/try/ar/feriados/proximo":{"get":{"tags":["demo"],"summary":"Demo gratis: próximo feriado AR","operationId":"tryArFeriadoProximo","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/FeriadoProximo"},"source":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"fetchedAt":{"type":"string","format":"date-time"}}},"cached":{"type":"boolean"}}}}}},"404":{"description":"Sin datos para la consulta","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/try/uy/rut":{"get":{"tags":["demo"],"summary":"Demo gratis: validar RUT","operationId":"tryUyRut","parameters":[{"name":"rut","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Rut"}}}}}},"400":{"description":"Parámetros inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/health":{"get":{"tags":["demo"],"summary":"Health check","operationId":"health","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"ts":{"type":"string","format":"date-time"}}}}}}}}},"/mcp":{"post":{"tags":["demo"],"summary":"Servidor MCP (Streamable HTTP). Gratis, 30 llamadas/día por cliente","description":"Protocolo MCP sobre JSON-RPC. Identidad por header X-Client-Id (opcional) o IP. Tools: uy_ui, uy_ui_historico, uy_cotizaciones, ar_feriados, ar_feriado_proximo, uy_rut, cuota.","operationId":"mcp","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Mensaje JSON-RPC 2.0 de MCP"}}}},"responses":{"200":{"description":"Respuesta JSON-RPC","content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{},"result":{"type":"object"},"error":{"type":"object"}}}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}}},"PaymentRequired":{"type":"object","properties":{"error":{"type":"string","const":"payment_required"},"price":{"type":"string"},"network":{"type":"string"},"docs":{"type":"string"},"openapi":{"type":"string"}}},"Ui":{"type":"object","properties":{"fecha":{"type":"string","format":"date"},"valor":{"type":"number","example":6.6537},"moneda":{"type":"string","const":"UYU"},"unidad":{"type":"string","const":"UI"}}},"UiHistorico":{"type":"object","properties":{"desde":{"type":"string","format":"date"},"hasta":{"type":"string","format":"date"},"cantidad":{"type":"integer"},"valores":{"type":"array","items":{"type":"object","properties":{"fecha":{"type":"string","format":"date"},"valor":{"type":"number"}}}}}},"Cotizaciones":{"type":"object","properties":{"fecha":{"type":"string","format":"date"},"base":{"type":"string","const":"UYU"},"cotizaciones":{"type":"array","items":{"type":"object","properties":{"moneda":{"type":"string"},"codigoBcu":{"type":"integer"},"nombre":{"type":["string","null"]},"compra":{"type":["number","null"]},"venta":{"type":["number","null"]},"arbitraje":{"type":["number","null"]},"fecha":{"type":["string","null"]}}}}}},"Feriado":{"type":"object","properties":{"fecha":{"type":"string","format":"date"},"nombre":{"type":"string"},"tipo":{"type":"string","enum":["inamovible","trasladable","no_laborable","turistico","especial","otro"]},"descripcion":{"type":"string"},"diaSemana":{"type":"string"}}},"Feriados":{"type":"object","properties":{"anio":{"type":"integer"},"cantidad":{"type":"integer"},"feriados":{"type":"array","items":{"$ref":"#/components/schemas/Feriado"}}}},"FeriadoProximo":{"type":"object","properties":{"desde":{"type":"string","format":"date"},"feriado":{"$ref":"#/components/schemas/Feriado"},"diasRestantes":{"type":"integer"}}},"Rut":{"type":"object","properties":{"valid":{"type":"boolean"},"rut":{"type":["string","null"]},"formatted":{"type":["string","null"]},"checks":{"type":"array","items":{"type":"string"}},"error":{"type":"string","enum":["length","format","prefix","sequence","suffix","checksum"]},"note":{"type":"string"}}}}}}