{"openapi": "3.0.3", "info": {"title": "cupiu.ro \u2014 API curs valutar BNR", "version": "1.0.0", "description": "Free JSON API for the official Romanian National Bank (BNR) exchange rates. No API key, CORS enabled, history since 2005, updated every banking day around 13:00 EET. Rates are decimal strings, RON-based. Attribution with a link to cupiu.ro is appreciated. Docs: https://cupiu.ro/api/", "contact": {"name": "cupiu.ro", "url": "https://cupiu.ro/contact/"}}, "servers": [{"url": "https://cupiu.ro"}], "paths": {"/api/rates/": {"get": {"summary": "One day's official BNR rates (default: latest)", "parameters": [{"name": "date", "in": "query", "required": false, "schema": {"type": "string", "format": "date"}, "description": "YYYY-MM-DD; defaults to the latest banking day"}, {"name": "currency", "in": "query", "required": false, "schema": {"type": "string", "example": "EUR"}}], "responses": {"200": {"description": "Rates for the day", "content": {"application/json": {"example": {"date": "2026-07-17", "rates": [{"currency": "EUR", "name": "Euro", "rate": "5.2429", "multiplier": 1}]}}}}, "400": {"description": "Invalid date format"}, "404": {"description": "No data available"}}}}, "/api/history/": {"get": {"summary": "Per-currency series: daily, weekly, monthly or yearly", "parameters": [{"name": "currency", "in": "query", "required": true, "schema": {"type": "string", "example": "EUR"}}, {"name": "interval", "in": "query", "required": false, "schema": {"type": "string", "enum": ["daily", "weekly", "monthly", "yearly"], "default": "daily"}}, {"name": "from", "in": "query", "required": false, "schema": {"type": "string", "format": "date"}}, {"name": "to", "in": "query", "required": false, "schema": {"type": "string", "format": "date"}}], "responses": {"200": {"description": "Series; aggregates include average/min/max", "content": {"application/json": {"example": {"currency": "EUR", "interval": "monthly", "count": 1, "series": [{"period": "2026-07", "average": "5.2384", "min": "5.2317", "max": "5.2456", "days": 13}]}}}}, "400": {"description": "Missing/unknown currency or invalid interval/date"}}}}, "/api/currencies/": {"get": {"summary": "Available currencies with covered date ranges", "responses": {"200": {"description": "Currency list"}}}}, "/api/banks/": {"get": {"summary": "Tracked commercial banks", "responses": {"200": {"description": "Bank list with slugs"}}}}, "/api/bank-rates/": {"get": {"summary": "Commercial banks' current buy/sell rates", "parameters": [{"name": "currency", "in": "query", "required": false, "schema": {"type": "string", "default": "EUR"}}, {"name": "bank", "in": "query", "required": false, "schema": {"type": "string", "example": "banca-transilvania"}}], "responses": {"200": {"description": "Current bank rates with spread and BNR reference"}, "400": {"description": "Unknown currency"}}}}, "/api/convert/": {"get": {"summary": "Convert at the official BNR rate (incl. historical dates)", "parameters": [{"name": "amount", "in": "query", "required": true, "schema": {"type": "number", "example": 100}}, {"name": "from", "in": "query", "required": true, "schema": {"type": "string", "example": "EUR"}}, {"name": "to", "in": "query", "required": true, "schema": {"type": "string", "example": "RON"}}, {"name": "date", "in": "query", "required": false, "schema": {"type": "string", "format": "date"}}], "responses": {"200": {"description": "Conversion result", "content": {"application/json": {"example": {"amount": "100", "from": "EUR", "to": "RON", "date": "2026-07-17", "rate": "5.242900", "result": "524.2900"}}}}, "400": {"description": "Invalid parameters"}, "404": {"description": "No rate for the pair/date"}}}}}}