{"openapi":"3.1.0","info":{"title":"Cognivo Currency Center","summary":"Tipos de cambio de Costa Rica, sincronizados a diario.","description":"\nTipos de cambio de Costa Rica, sincronizados a diario desde el Banco Central\ny servidos como JSON.\n\n**Esta API es de solo lectura.** Devuelve datos ya almacenados; no expone\nninguna forma de modificarlos ni de disparar una actualizacion. El servicio se\nactualiza solo, de madrugada, sin intervencion de quien la consume.\n\nCubre **47 monedas**: el dolar en colones (compra y venta, indicadores 317 y\n318 del BCCR) y 45 paridades internacionales del cuadro 520. El historico se\nguarda dia con dia, asi que se puede consultar cualquier fecha pasada.\n\n## Autenticacion\n\n**Todos los endpoints exigen una clave.** Se envia en el encabezado\n`X-API-Key` en cada solicitud:\n\n```bash\ncurl -H \"X-API-Key: $CLAVE\"   \"$SERVIDOR/api/v1/rates/latest?base=USD&quote=CRC\"\n```\n\nSin clave, o con una invalida, la respuesta es `401`. Para obtener una,\nsolicitela al administrador del servicio.\n\n## Primeros pasos\n\nEl tipo de cambio del dolar hoy:\n\n```bash\ncurl -H \"X-API-Key: $CLAVE\" \"$SERVIDOR/api/v1/rates/latest\"\n```\n\n```json\n{\n  \"provider\": \"bccr\",\n  \"pair\": \"USD/CRC\",\n  \"rate_date\": \"2026-09-20\",\n  \"compra\": \"443.27\",\n  \"venta\": \"449.24\"\n}\n```\n\nConvertir un monto entre dos monedas cualesquiera:\n\n```bash\ncurl -H \"X-API-Key: $CLAVE\"   \"$SERVIDOR/api/v1/convert?amount=1000&from=JPY&to=CRC\"\n```\n\n## Como leer los valores\n\n**El BCCR cotiza el dolar en colones, y las demas monedas contra el dolar.**\nNo existe una serie que diga cuantos colones vale un yen.\n\n`/convert` resuelve eso solo: cuando el par no existe de forma directa,\nencadena por el dolar y lo informa en la respuesta.\n\n```json\n{\n  \"from_currency\": \"JPY\", \"to_currency\": \"CRC\",\n  \"result\": \"2845.80\",\n  \"path\": \"JPY -> USD -> CRC\",\n  \"via_pivot\": true\n}\n```\n\nUn par directo como USD/CRC devuelve `via_pivot: false`.\n\n## Dias sin publicacion\n\nEl BCCR no publica valores los fines de semana ni los feriados. Cuando la\nfecha consultada cae en uno de esos dias, la API devuelve **el ultimo valor\npublicado antes de esa fecha**, que es el que rige ese dia. El campo\n`rate_date` siempre dice a que dia corresponde el valor devuelto, que puede\nser anterior al solicitado.\n\nSi necesita la fecha exacta y prefiere no recibir nada cuando no hubo\npublicacion, use `/rates` con `exact=true`.\n\n## Precision\n\nLos valores viajan como **cadenas**, no como numeros, para que no pierdan\nprecision al deserializarse. Conviertalos al decimal de su lenguaje\n(`Decimal` en Python, `BigDecimal` en Java) y evite `float` al operar con\ndinero.\n\n## Errores\n\n| Codigo | Significado |\n|--------|-------------|\n| `401` | Falta la clave o no es valida |\n| `404` | No hay datos para ese par, serie o fecha |\n| `422` | Un parametro es invalido (monto negativo, fecha mal formada) |\n\nEl cuerpo trae siempre un campo `detail` que explica que paso.\n\n## De donde salen los datos\n\nEl servicio consulta al Banco Central una sola vez al dia, de madrugada, y\nguarda lo que trae. Todas las respuestas salen de esa base local, asi que son\nrapidas y no dependen de que el BCCR este disponible en ese momento.\n\n`GET /sync/runs` muestra cuando fue la ultima carga y que trajo. Si necesita\nun dato que todavia no aparece, revise ahi si la carga del dia corrio bien.\n","version":"0.1.0"},"paths":{"/api/v1/health":{"get":{"tags":["Sistema"],"summary":"Health","description":"Estado del servicio, para monitoreo.\n\nConfirma que la base responde, dice si la sincronizacion automatica esta\ncorriendo y cuantos datos hay almacenados. ``last_sync`` es la marca de la\nultima corrida terminada: si quedo muy atras, algo dejo de funcionar.","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthOut"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/providers":{"get":{"tags":["Catalogo"],"summary":"List Providers","description":"Bancos y entidades que publican tipos de cambio.\n\nHoy solo el BCCR. El servicio esta preparado para sumar otros, y los\nendpoints que aceptan ``provider`` usan el ``code`` que devuelve esta lista.","operationId":"list_providers_api_v1_providers_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"only_enabled","in":"query","required":false,"schema":{"type":"boolean","description":"Solo proveedores habilitados","default":false,"title":"Only Enabled"},"description":"Solo proveedores habilitados"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProviderOut"},"title":"Response List Providers Api V1 Providers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/series":{"get":{"tags":["Catalogo"],"summary":"List Series","description":"Catalogo de series disponibles.\n\nUna serie es la combinacion de proveedor, par de monedas y tipo (compra,\nventa o referencia). El ``id`` que devuelve es el que pide\n``/series/{id}/history``.","operationId":"list_series_api_v1_series_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Codigo del proveedor, ej. bccr","title":"Provider"},"description":"Codigo del proveedor, ej. bccr"},{"name":"base","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Moneda base, ej. USD","title":"Base"},"description":"Moneda base, ej. USD"},{"name":"quote","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Moneda cotizada, ej. CRC","title":"Quote"},"description":"Moneda cotizada, ej. CRC"},{"name":"only_enabled","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Enabled"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SeriesOut"},"title":"Response List Series Api V1 Series Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/rates/latest":{"get":{"tags":["Tipos de cambio"],"summary":"Latest Rates","description":"El tipo de cambio vigente de un par.\n\nEs el endpoint mas usado: responde \"cuanto vale hoy el dolar\" y equivalentes.\nDevuelve compra y venta cuando el proveedor publica ambas (asi ocurre con\nUSD/CRC), o solo un valor de referencia para las demas monedas.\n\nSi el dia consultado no tuvo publicacion (fin de semana o feriado), devuelve\nel ultimo valor anterior, que es el que rige ese dia; ``rate_date`` indica a\nque dia corresponde realmente.","operationId":"latest_rates_api_v1_rates_latest_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"provider","in":"query","required":false,"schema":{"type":"string","description":"Codigo del proveedor","default":"bccr","title":"Provider"},"description":"Codigo del proveedor"},{"name":"base","in":"query","required":false,"schema":{"type":"string","description":"Moneda base","default":"USD","title":"Base"},"description":"Moneda base"},{"name":"quote","in":"query","required":false,"schema":{"type":"string","description":"Moneda cotizada","default":"CRC","title":"Quote"},"description":"Moneda cotizada"},{"name":"on","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Fecha objetivo (por defecto hoy)","title":"On"},"description":"Fecha objetivo (por defecto hoy)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LatestRatesOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/rates":{"get":{"tags":["Tipos de cambio"],"summary":"Rates On Date","description":"Varios tipos de cambio de una sola vez, en una fecha.\n\nSin filtros devuelve todas las series del dia; con ``provider``, ``base`` o\n``quote`` se acota. Pensado para poblar tableros o exportar un corte diario\nsin hacer una llamada por moneda.\n\nCon ``exact=true`` solo devuelve las series publicadas exactamente ese dia,\nen vez de arrastrar el ultimo valor conocido.","operationId":"rates_on_date_api_v1_rates_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"on","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Fecha objetivo (por defecto hoy)","title":"On"},"description":"Fecha objetivo (por defecto hoy)"},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"base","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base"}},{"name":"quote","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote"}},{"name":"exact","in":"query","required":false,"schema":{"type":"boolean","description":"true exige la fecha exacta; false usa el ultimo valor previo.","default":false,"title":"Exact"},"description":"true exige la fecha exacta; false usa el ultimo valor previo."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RateOut"},"title":"Response Rates On Date Api V1 Rates Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/series/{series_id}/history":{"get":{"tags":["Tipos de cambio"],"summary":"Series History","description":"Serie temporal de un indicador, dia por dia.\n\nDevuelve los valores publicados en el rango, en orden cronologico y sin\nrellenar los dias sin publicacion. El ``series_id`` se obtiene de\n``GET /series``.\n\nSin fechas devuelve los ultimos 90 dias. El BCCR publica el tipo de cambio\ndel dolar desde 1983, asi que se pueden pedir rangos muy largos.","operationId":"series_history_api_v1_series__series_id__history_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"series_id","in":"path","required":true,"schema":{"type":"integer","title":"Series Id"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeriesHistoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/convert":{"get":{"tags":["Tipos de cambio"],"summary":"Convert Amount","description":"Convierte un monto entre dos monedas cualesquiera.\n\nCuando el par no existe de forma directa (el BCCR no cotiza yenes en\ncolones), encadena por el dolar y lo informa en ``path`` y ``via_pivot``.\n\n``type`` elige el lado del tipo de cambio: ``venta`` para saber cuanto\ncuesta comprar la moneda destino, ``compra`` para lo inverso. Las paridades\ninternacionales solo publican ``referencia``, y en ese caso se usa esa.","operationId":"convert_amount_api_v1_convert_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"amount","in":"query","required":true,"schema":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"description":"Monto a convertir","title":"Amount"},"description":"Monto a convertir"},{"name":"from","in":"query","required":true,"schema":{"type":"string","description":"Moneda de origen, ej. USD","title":"From"},"description":"Moneda de origen, ej. USD"},{"name":"to","in":"query","required":true,"schema":{"type":"string","description":"Moneda destino, ej. CRC","title":"To"},"description":"Moneda destino, ej. CRC"},{"name":"provider","in":"query","required":false,"schema":{"type":"string","default":"bccr","title":"Provider"}},{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/RateType","default":"venta"}},{"name":"on","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Fecha de la tasa (por defecto hoy)","title":"On"},"description":"Fecha de la tasa (por defecto hoy)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sync/runs":{"get":{"tags":["Actualizaciones"],"summary":"Sync Runs","description":"Que paso en cada sincronizacion.\n\nUtil para diagnosticar datos faltantes: cada corrida registra el rango\npedido, cuantos valores entraron, cuantos se actualizaron y el detalle de\nlo que fallo. El estado es ``ok``, ``parcial`` (trajo datos pero algo\nfallo) o ``error``.","operationId":"sync_runs_api_v1_sync_runs_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SyncRunOut"},"title":"Response Sync Runs Api V1 Sync Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/scheduler":{"get":{"tags":["Sistema"],"summary":"Scheduler Info","description":"Detalle de las tareas programadas.\n\nDice si el scheduler embebido esta activo y cuando corre cada tarea. Si el\nservicio se sincroniza por cron externo, aparece deshabilitado.","operationId":"scheduler_info_api_v1_scheduler_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Scheduler Info Api V1 Scheduler Get"}}}}},"security":[{"APIKeyHeader":[]}]}}},"components":{"schemas":{"ConversionOut":{"properties":{"provider":{"type":"string","title":"Provider"},"rate_date":{"type":"string","format":"date","title":"Rate Date"},"rate_type":{"$ref":"#/components/schemas/RateType"},"from_currency":{"type":"string","title":"From Currency"},"to_currency":{"type":"string","title":"To Currency"},"amount":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Amount"},"rate":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Rate"},"result":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Result"},"path":{"type":"string","title":"Path","description":"Ruta de conversion, ej. 'JPY -> USD -> CRC' si paso por el dolar.","default":""},"via_pivot":{"type":"boolean","title":"Via Pivot","description":"true si la conversion se encadeno usando el dolar como puente.","default":false}},"type":"object","required":["provider","rate_date","rate_type","from_currency","to_currency","amount","rate","result"],"title":"ConversionOut","example":{"amount":"10000","from_currency":"JPY","path":"JPY -> USD -> CRC","provider":"bccr","rate":"2.845813","rate_date":"2026-09-18","rate_type":"venta","result":"28458.13","to_currency":"CRC","via_pivot":true}},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthOut":{"properties":{"status":{"type":"string","title":"Status"},"database":{"type":"string","title":"Database"},"scheduler":{"type":"string","title":"Scheduler"},"providers":{"type":"integer","title":"Providers"},"series":{"type":"integer","title":"Series"},"rates":{"type":"integer","title":"Rates"},"last_sync":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Sync"}},"type":"object","required":["status","database","scheduler","providers","series","rates"],"title":"HealthOut","example":{"database":"ok","last_sync":"2026-09-20T07:30:00","providers":1,"rates":12204,"scheduler":"activo","series":47,"status":"ok"}},"LatestRatesOut":{"properties":{"provider":{"type":"string","title":"Provider"},"pair":{"type":"string","title":"Pair"},"rate_date":{"type":"string","format":"date","title":"Rate Date","description":"Fecha del valor devuelto. Puede ser anterior a la consultada si ese dia no hubo publicacion (fin de semana o feriado)."},"compra":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Compra"},"venta":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Venta"},"referencia":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Referencia"}},"type":"object","required":["provider","pair","rate_date"],"title":"LatestRatesOut","description":"Respuesta de 'el tipo de cambio de hoy' para un proveedor y par.","example":{"compra":"443.27","pair":"USD/CRC","provider":"bccr","rate_date":"2026-09-20","venta":"449.24"}},"ProviderOut":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"country":{"type":"string","title":"Country"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["id","code","name","country","enabled"],"title":"ProviderOut"},"RateOut":{"properties":{"provider":{"type":"string","title":"Provider"},"series_id":{"type":"integer","title":"Series Id"},"external_code":{"type":"string","title":"External Code"},"pair":{"type":"string","title":"Pair"},"base_currency":{"type":"string","title":"Base Currency"},"quote_currency":{"type":"string","title":"Quote Currency"},"rate_type":{"$ref":"#/components/schemas/RateType"},"rate_date":{"type":"string","format":"date","title":"Rate Date"},"value":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Value"}},"type":"object","required":["provider","series_id","external_code","pair","base_currency","quote_currency","rate_type","rate_date","value"],"title":"RateOut","description":"Un valor de tipo de cambio ya resuelto con su contexto de proveedor."},"RatePoint":{"properties":{"rate_date":{"type":"string","format":"date","title":"Rate Date"},"value":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Value"}},"type":"object","required":["rate_date","value"],"title":"RatePoint","description":"Punto de una serie temporal (sin repetir el contexto en cada fila)."},"RateType":{"type":"string","enum":["compra","venta","referencia"],"title":"RateType","description":"Lado del tipo de cambio publicado por el proveedor."},"SeriesHistoryOut":{"properties":{"provider":{"type":"string","title":"Provider"},"series_id":{"type":"integer","title":"Series Id"},"external_code":{"type":"string","title":"External Code"},"pair":{"type":"string","title":"Pair"},"rate_type":{"$ref":"#/components/schemas/RateType"},"date_from":{"type":"string","format":"date","title":"Date From"},"date_to":{"type":"string","format":"date","title":"Date To"},"count":{"type":"integer","title":"Count"},"points":{"items":{"$ref":"#/components/schemas/RatePoint"},"type":"array","title":"Points"}},"type":"object","required":["provider","series_id","external_code","pair","rate_type","date_from","date_to","count","points"],"title":"SeriesHistoryOut","example":{"count":2,"date_from":"2026-09-01","date_to":"2026-09-20","external_code":"317","pair":"USD/CRC","points":[{"rate_date":"2026-09-19","value":"443.27"},{"rate_date":"2026-09-20","value":"443.27"}],"provider":"bccr","rate_type":"compra","series_id":1}},"SeriesOut":{"properties":{"id":{"type":"integer","title":"Id"},"provider_id":{"type":"integer","title":"Provider Id"},"external_code":{"type":"string","title":"External Code"},"name":{"type":"string","title":"Name"},"base_currency":{"type":"string","title":"Base Currency"},"quote_currency":{"type":"string","title":"Quote Currency"},"rate_type":{"$ref":"#/components/schemas/RateType"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"periodicity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Periodicity"},"first_data_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"First Data Date"},"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["id","provider_id","external_code","name","base_currency","quote_currency","rate_type","enabled"],"title":"SeriesOut"},"SyncRunOut":{"properties":{"id":{"type":"integer","title":"Id"},"provider_id":{"type":"integer","title":"Provider Id"},"trigger":{"type":"string","title":"Trigger"},"status":{"$ref":"#/components/schemas/SyncStatus"},"date_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date To"},"inserted":{"type":"integer","title":"Inserted"},"updated":{"type":"integer","title":"Updated"},"unchanged":{"type":"integer","title":"Unchanged"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"}},"type":"object","required":["id","provider_id","trigger","status","inserted","updated","unchanged","started_at"],"title":"SyncRunOut"},"SyncStatus":{"type":"string","enum":["ok","parcial","error"],"title":"SyncStatus"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","description":"Pegue aqui su clave para probar los endpoints desde esta pagina. Si no tiene una, solicitela al administrador del servicio.","in":"header","name":"X-API-Key"}}},"tags":[{"name":"Tipos de cambio","description":"Consultar valores de hoy o de cualquier fecha pasada, traer el historico de una serie y convertir montos entre monedas."},{"name":"Catalogo","description":"Que proveedores y que series hay disponibles. Util para descubrir los identificadores que piden los demas endpoints."},{"name":"Actualizaciones","description":"Consultar cuando se cargaron los datos y que trajo cada carga. Las cargas las hace el servicio solo, una vez al dia: no hay forma de dispararlas desde la API."},{"name":"Sistema","description":"Estado del servicio, conteos y proxima sincronizacion programada."}]}