{"openapi":"3.1.0","info":{"title":"toll402","version":"1.0.0","summary":"toll402 — EU/Nordic data for agents, pay per call","description":"Pay per call via x402 v2 (no account, no API key). A 402 response carries payment requirements in the PAYMENT-REQUIRED header (base64 JSON); retry with a PAYMENT-SIGNATURE header. Also available as paid MCP tools at https://toll402.io/mcp. Minimum 0.01 USD per call on USDC on Base, EURC on Base, USDC on Polygon, RLUSD on Base (ERC-20, 18 decimals, Permit2) (facilitator fees).","x-guidance":"GET any /v1/* path with the documented query parameters. Without payment you get HTTP 402 with x402 v2 payment requirements (USDC/EURC on Base, USDC on Polygon and Arc, XRP/RLUSD on XRPL). Pay with any x402 v2 client and retry. Free example outputs: https://toll402.io/samples. Invalid input returns 400 and upstream errors 502; neither is charged."},"servers":[{"url":"https://toll402.io"}],"x-discovery":{"x402":"https://toll402.io/.well-known/x402","mcp":"https://toll402.io/.well-known/mcp.json","llms":"https://toll402.io/llms.txt"},"paths":{"/v1/dk/bank-days":{"get":{"operationId":"dk_bank_days","summary":"Danish banking days: is a date a Danish banking day, why it is closed, the next banking day, and date + N banking days (payment deadlines).","tags":["calendar"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD"},"example":"2026-12-24"},{"name":"add","in":"query","required":false,"schema":{"type":"string","description":"Banking days to add (0-260)"},"example":"3"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string"},"banking_day":{"type":"boolean"},"closed_reason":{"type":"string"},"next_banking_day":{"type":"string"},"add":{"type":"number"},"date_plus_banking_days":{"type":"string"}}},"example":{"date":"2026-12-24","banking_day":false,"closed_reason":"Juleaftensdag","next_banking_day":"2026-12-28","add":3,"date_plus_banking_days":"2026-12-30"}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/dk/power-price":{"get":{"operationId":"dk_power_price","summary":"Danish day-ahead electricity spot prices per 15 minutes for DK1 (West) or DK2 (East) for a date, in DKK and EUR per MWh, with average, cheapest and most expensive quarter. Source: Energinet.","tags":["energy"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"area","in":"query","required":true,"schema":{"type":"string","enum":["DK1","DK2"]},"example":"DK2"},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD (Danish time), default today"},"example":"2026-10-29"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"area":{"type":"string"},"date":{"type":"string"},"count":{"type":"number"},"avg_dkk_mwh":{"type":"number"},"cheapest":{"type":"object","properties":{"time_dk":{"type":"string"},"dkk_mwh":{"type":"number"},"eur_mwh":{"type":"number"}}}}},"example":{"area":"DK2","date":"2026-10-29","count":96,"avg_dkk_mwh":2287.21,"cheapest":{"time_dk":"2026-10-29T02:15:00","dkk_mwh":1610.24,"eur_mwh":215.44}}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/dk/power-cheapest-window":{"get":{"operationId":"dk_power_cheapest_window","summary":"Cheapest contiguous window of N hours to run a load (EV charging, heat pump, batch job) on a given day in Denmark (DK1/DK2), based on day-ahead spot prices.","tags":["energy"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"area","in":"query","required":true,"schema":{"type":"string","enum":["DK1","DK2"]},"example":"DK1"},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"example":"2026-10-29"},{"name":"hours","in":"query","required":false,"schema":{"type":"string","description":"Window length in hours (1-12)"},"example":"3"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"area":{"type":"string"},"date":{"type":"string"},"hours":{"type":"number"},"start_dk":{"type":"string"},"end_dk":{"type":"string"},"avg_dkk_mwh":{"type":"number"},"saving_vs_day_avg_pct":{"type":"number"}}},"example":{"area":"DK1","date":"2026-10-29","hours":3,"start_dk":"2026-10-29T01:00:00","end_dk":"2026-10-29T04:00:00","avg_dkk_mwh":1601.5,"saving_vs_day_avg_pct":28}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/dk/co2":{"get":{"operationId":"dk_co2","summary":"CO2 intensity of Danish electricity (g CO2/kWh) for DK1/DK2: latest 5-minute value, last-hour average, and the forecast with the greenest upcoming hour. Source: Energinet.","tags":["energy"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"area","in":"query","required":true,"schema":{"type":"string","enum":["DK1","DK2"]},"example":"DK2"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"area":{"type":"string"},"latest":{"type":"object","properties":{"time_dk":{"type":"string"},"g_per_kwh":{"type":"number"}}},"last_hour_avg":{"type":"number"},"greenest_forecast":{"type":"object","properties":{"time_dk":{"type":"string"},"g_per_kwh":{"type":"number"}}}}},"example":{"area":"DK2","latest":{"time_dk":"2026-10-29T10:30:00","g_per_kwh":89},"last_hour_avg":92.4,"greenest_forecast":{"time_dk":"2026-10-29T14:00:00","g_per_kwh":61}}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/calendar/holidays":{"get":{"operationId":"eu_holidays","summary":"National public holidays for a year in EU/EEA/Nordic countries (plus CH, GB). Denmark computed locally, others via Nager.Date.","tags":["calendar"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"country","in":"query","required":true,"schema":{"type":"string","enum":["DK","SE","NO","FI","IS","DE","NL","BE","LU","FR","ES","PT","IT","IE","AT","PL","CZ","SK","HU","SI","HR","RO","BG","GR","CY","MT","EE","LV","LT","CH","GB"],"description":"ISO 3166-1 alpha-2"},"example":"SE"},{"name":"year","in":"query","required":false,"schema":{"type":"string","description":"e.g. 2026"},"example":"2026"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string"},"year":{"type":"number"},"count":{"type":"number"},"holidays":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"name":{"type":"string"}}}}}},"example":{"country":"SE","year":2026,"count":13,"holidays":[{"date":"2026-01-01","name":"Nyårsdagen (New Year's Day)"}]}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/calendar/working-days":{"get":{"operationId":"eu_working_days","summary":"Working days in EU/EEA/Nordic countries: count working days between two dates (inclusive) and/or compute date + N working days, excluding weekends and national holidays.","tags":["calendar"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"country","in":"query","required":true,"schema":{"type":"string","enum":["DK","SE","NO","FI","IS","DE","NL","BE","LU","FR","ES","PT","IT","IE","AT","PL","CZ","SK","HU","SI","HR","RO","BG","GR","CY","MT","EE","LV","LT","CH","GB"]},"example":"DK"},{"name":"from","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"example":"2026-12-01"},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"example":"2026-12-31"},{"name":"add","in":"query","required":false,"schema":{"type":"string","description":"Working days to add to 'from' (0-260)"},"example":"10"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"working_days":{"type":"number"},"add":{"type":"number"},"from_plus_working_days":{"type":"string"}}},"example":{"country":"DK","from":"2026-12-01","to":"2026-12-31","working_days":21,"add":10,"from_plus_working_days":"2026-12-15"}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/fx/dkk":{"get":{"operationId":"fx_dkk","summary":"Danmarks Nationalbank official DKK exchange rates (DKK per 100 units) for ~30 currencies; optionally convert an amount to/from DKK.","tags":["fx"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"currency","in":"query","required":false,"schema":{"type":"string","description":"ISO 4217 code, omit for all"},"example":"USD"},{"name":"amount","in":"query","required":false,"schema":{"type":"string","description":"Amount in 'currency' to convert to DKK"},"example":"100"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string"},"currency":{"type":"string"},"dkk_per_100":{"type":"number"},"amount":{"type":"number"},"amount_dkk":{"type":"number"}}},"example":{"date":"2026-10-28","currency":"USD","dkk_per_100":671.35,"amount":100,"amount_dkk":671.35}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/fx/convert":{"get":{"operationId":"fx_ecb","summary":"Convert an amount between any two of ~30 currencies using official ECB euro reference rates, for today or any date in the last 90 days (falls back to the previous ECB business day).","tags":["fx"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string"},"example":"USD"},{"name":"to","in":"query","required":true,"schema":{"type":"string"},"example":"DKK"},{"name":"amount","in":"query","required":true,"schema":{"type":"string"},"example":"250"},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Optional, within last 90 days"},"example":"2026-10-27"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"amount":{"type":"number"},"rate":{"type":"number"},"result":{"type":"number"},"rate_date":{"type":"string"}}},"example":{"from":"USD","to":"DKK","amount":250,"rate":6.4321,"result":1608.03,"rate_date":"2026-10-27"}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/accounting/stablecoin-receipt":{"get":{"operationId":"stablecoin_receipt","summary":"Accounting voucher data for a stablecoin payment received by an EU/Danish business: value in DKK and EUR on the receipt date using ECB rates (assuming 1:1 peg), with tx reference and booking note. Not tax advice.","tags":["accounting"],"x-x402-price-usd":0.01,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","enum":["USDC","RLUSD","USDT","PYUSD","USDG","EURC","EURCV","EURQ"]},"example":"USDC"},{"name":"amount","in":"query","required":true,"schema":{"type":"string"},"example":"12.5"},{"name":"date","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"example":"2026-10-27"},{"name":"tx","in":"query","required":false,"schema":{"type":"string"},"example":"0xabc…"},{"name":"network","in":"query","required":false,"schema":{"type":"string"},"example":"eip155:8453"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"amount":{"type":"number"},"peg":{"type":"string"},"value_dkk":{"type":"number"},"value_eur":{"type":"number"},"rate_date":{"type":"string"}}},"example":{"token":"USDC","amount":12.5,"peg":"USD","value_dkk":80.4,"value_eur":10.78,"rate_date":"2026-10-27"}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/dk/company":{"get":{"operationId":"dk_company","summary":"Danish company lookup by CVR number or name: legal name, address, status, industry, company type, employees. Data from the Danish CVR register (via cvrapi.dk).","tags":["company"],"x-x402-price-usd":0.01,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"cvr","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{8}$"},"example":"10150817"},{"name":"name","in":"query","required":false,"schema":{"type":"string","description":"Company name if CVR unknown"}}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"cvr":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"zipcode":{"type":"string"},"city":{"type":"string"},"industry":{"type":"string"},"active":{"type":"boolean"}}},"example":{"cvr":"10150817","name":"Erhvervsstyrelsen","address":"Langelinie Allé 17","zipcode":"2100","city":"København Ø","industry":"Generel offentlig administration","active":true}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/dk/address":{"get":{"operationId":"dk_address","summary":"Validate and geocode a Danish address: normalised address, postcode, city, municipality and coordinates (OpenStreetMap data).","tags":["geo"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"Free-text Danish address"},"example":"Rådhuspladsen 1, København"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"found":{"type":"boolean"},"address":{"type":"string"},"lat":{"type":"number"},"lon":{"type":"number"},"postcode":{"type":"string"},"municipality":{"type":"string"}}},"example":{"query":"Rådhuspladsen 1, København","found":true,"address":"Rådhuspladsen 1, 1550 København V","lat":55.6756,"lon":12.5696,"postcode":"1550","municipality":"Københavns Kommune"}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/dk/weather":{"get":{"operationId":"dk_weather","summary":"Latest observed weather in Denmark from the nearest DMI station to a lat/lon (or a station id): temperature, wind, gusts, pressure, precipitation, visibility. Source: DMI Open Data.","tags":["weather"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"string"},"example":"55.68"},{"name":"lon","in":"query","required":false,"schema":{"type":"string"},"example":"12.57"},{"name":"station","in":"query","required":false,"schema":{"type":"string","description":"DMI station id, e.g. 06180"}}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"station":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"distance_km":{"type":"number"}}},"observed":{"type":"string"},"air_temp_c":{"type":"number"},"wind_speed_ms":{"type":"number"}}},"example":{"station":{"id":"06180","name":"Københavns Lufthavn","distance_km":7.9},"observed":"2026-10-29T09:30:00Z","air_temp_c":11.6,"wind_speed_ms":6.1}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/dk/port-sea-level":{"get":{"operationId":"dk_sea_level","summary":"Latest sea level (cm relative to DVR90) and water temperature at Danish ports/tide gauges by port name (e.g. Esbjerg, Aarhus, Skagen). Useful for port calls, draught and storm surge checks. Source: DMI.","tags":["maritime"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"port","in":"query","required":true,"schema":{"type":"string","description":"Port/station name, partial match"},"example":"Esbjerg"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"port":{"type":"string"},"station_id":{"type":"string"},"observed":{"type":"string"},"sea_level_cm_dvr90":{"type":"number"},"water_temp_c":{"type":"number"}}},"example":{"port":"Esbjerg Havn","station_id":"25149","observed":"2026-10-29T09:30:00Z","sea_level_cm_dvr90":42,"water_temp_c":11.2}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/eu/vat-rates":{"get":{"operationId":"eu_vat_rates","summary":"Current VAT rates for EU member states: standard, reduced, super-reduced and parking rates with category notes. One country or all.","tags":["tax"],"x-x402-price-usd":0.005,"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.005000","max":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"ISO alpha-2, omit for all EU"},"example":"DK"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string"},"standard_rate":{"type":"number"},"reduced_rates":{"type":"array","items":{}},"currency":{"type":"string"}}},"example":{"country":"DK","standard_rate":25,"reduced_rates":[],"currency":"DKK"}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/eu/vat-check":{"get":{"operationId":"eu_vat_check","summary":"Validate an EU VAT number live against the European Commission VIES service; returns validity, registered name and address where the member state discloses them.","tags":["compliance"],"x-x402-price-usd":0.01,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"vat","in":"query","required":true,"schema":{"type":"string","description":"VAT number incl. 2-letter prefix (Greece = EL)"},"example":"DK10150817"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"vat":{"type":"string"},"valid":{"type":"boolean"},"name":{"type":"string"},"address":{"type":"string"},"checked_at":{"type":"string"}}},"example":{"vat":"DK10150817","valid":true,"name":"Erhvervsstyrelsen","address":"Langelinie Allé 17, 2100 København Ø","checked_at":"2026-10-29T09:33:06Z"}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/eu/sanctions":{"get":{"operationId":"eu_sanctions","summary":"Screen a person or company name against the EU consolidated financial sanctions list (all aliases). Returns exact/partial matches with programme, EU reference and regulation link. Screening aid only; human review required.","tags":["compliance"],"x-x402-price-usd":0.02,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","description":"Name to screen (min 3 chars)"},"example":"Wagner"},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["person","enterprise"]}}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"list_generated":{"type":"string"},"match_count":{"type":"number"},"matches":{"type":"array","items":{"type":"object","properties":{"eu_ref":{"type":"string"},"type":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"programme":{"type":"string"},"score":{"type":"number"}}}}}},"example":{"query":"Wagner","list_generated":"2026-10-28","match_count":3,"matches":[{"eu_ref":"EU.1234.56","type":"enterprise","names":["Wagner Group"],"programme":"RUS","score":1}]}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/eu/mica/token":{"get":{"operationId":"mica_token_status","summary":"MiCA status of a stablecoin/e-money token (e.g. USDC, EURC, RLUSD, USDT): is a MiCA e-money token white paper notified in ESMA's register, by which issuer, home state and regulator. Key for EU CASPs ahead of the ESMA remediation deadline (8 Jan 2027).","tags":["compliance"],"x-x402-price-usd":0.01,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","description":"Ticker, e.g. USDC, EURC, RLUSD, USDT, EURe"},"example":"RLUSD"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"mica_emt_registered":{"type":"boolean"},"register_last_changed":{"type":"string"},"note":{"type":"string"}}},"example":{"token":"RLUSD","mica_emt_registered":false,"register_last_changed":"2026-10-22","note":"No MiCA EMT white paper notified."}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}},"/v1/eu/mica/casp":{"get":{"operationId":"mica_casp","summary":"Check whether a crypto company (exchange, broker, custodian) holds a MiCA CASP authorisation in the EU, its home state, regulator, services and passporting, and whether it is on ESMA's non-compliant warning list.","tags":["compliance"],"x-x402-price-usd":0.01,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{"version":2,"networks":["eip155:8453","eip155:137","xrpl:0","eip155:5042"]}}]},"parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","description":"Company or brand name (min 3 chars)"},"example":"Coinbase"}],"responses":{"200":{"description":"OK (paid)","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"authorised":{"type":"boolean"},"matches":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"home_state":{"type":"string"},"authority":{"type":"string"}}}},"warning_list_matches":{"type":"array","items":{}}}},"example":{"query":"Coinbase","authorised":true,"matches":[{"name":"Coinbase Europe Limited","home_state":"IE","authority":"Central Bank of Ireland"}],"warning_list_matches":[]}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required (x402 v2). Payment requirements are in the PAYMENT-REQUIRED response header (base64-encoded JSON with x402Version, accepts[], resource, extensions.bazaar).","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 v2 PaymentRequired","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream error (not charged)"}}}}}}