{"openapi":"3.1.0","info":{"title":"eu-verify","description":"**European business verification for AI agents** - check that a company exists (official French SIREN registry), screen insolvency records (BODACC), validate EU VAT numbers before invoicing (VIES), verify SIRET/IBAN/LEI, addresses and email deliverability, find EU public tenders. Plus 70+ supporting pay-per-call data endpoints (FX, macro, energy, weather, crypto) at commodity prices.\n\n**No account, no API key**: every paid endpoint answers HTTP 402 with a machine-readable quote; pay in USDC on Base via the x402 protocol and retry. AI agents can also use the MCP server (`/mcp`, streamable HTTP, x402-paid tools) or read `/llms.txt` for the full plain-text catalog. Official data sources (INSEE, European Commission, DILA, GLEIF, ECB); no personal data served; buyers are never charged for empty or failed answers.","contact":{"email":"hello@greeneris.io"},"version":"1.1.0"},"paths":{"/v1/air/quality":{"get":{"summary":"Hourly PM2.5/PM10/AQI forecast for any coordinates worldwide","description":"Hourly air-quality data (PM2.5, PM10, ozone, NO2, European/US AQI) for any lat/lon, from the Copernicus CAMS model served by Open-Meteo (CC-BY 4.0), updated hourly. Query: ?latitude=48.8566&longitude=2.3522&hourly=pm2_5,pm10,european_aqi&forecast_days=2 (1..7 days). Returns parallel time/value arrays with units; cached 1h.","operationId":"route_v1_air_quality_v1_air_quality_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Air Quality V1 Air Quality Get"},"example":{"ok":true,"data":{"latitude":48.9,"longitude":2.4,"forecast_days":1,"hourly_units":{"time":"iso8601","pm2_5":"μg/m³","pm10":"μg/m³","european_aqi":"EAQI"},"hourly":{"time":["2026-07-13T00:00","2026-07-13T01:00"],"pm2_5":[8.2,7.9],"pm10":[12.4,11.8],"european_aqi":[22,21]},"source":"CAMS (Copernicus) via Open-Meteo, CC-BY 4.0 attribution required (open-meteo.com)"}}}}}},"parameters":[{"name":"latitude","in":"query","required":true,"description":"Latitude WGS84 (-90..90)","schema":{"type":"number"}},{"name":"longitude","in":"query","required":true,"description":"Longitude WGS84 (-180..180)","schema":{"type":"number"}},{"name":"hourly","in":"query","required":false,"description":"Comma-separated variables among pm2_5, pm10, ozone, nitrogen_dioxide, sulphur_dioxide, carbon_monoxide, european_aqi, us_aqi, uv_index, dust, aerosol_optical_depth","schema":{"type":"string","default":"pm2_5,pm10,european_aqi"}},{"name":"forecast_days","in":"query","required":false,"description":"","schema":{"type":"integer","default":2,"minimum":1,"maximum":7}}]}},"/v1/aviation/metar":{"get":{"summary":"Decoded METAR surface observations for up to 10 ICAO airports worldwide","description":"Latest METAR observation, decoded, for any ICAO airport worldwide (NOAA AviationWeather.gov): wind direction/speed/gust (kt), temperature/dewpoint (C), visibility, QNH altimeter (hPa), flight category (VFR/MVFR/IFR/LIFR) plus the raw METAR string. Query: ?ids=KJFK,LFPG (1-10 comma-separated ICAO codes). Observations refresh every 30-60 min; 5 min cache.","operationId":"route_v1_aviation_metar_v1_aviation_metar_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Aviation Metar V1 Aviation Metar Get"},"example":{"ok":true,"data":{"count":1,"metars":[{"icao":"LFPG","name":"Paris/De Gaulle Arpt, ID, FR","observed_utc":"2026-07-14T05:30:00Z","temp_c":20,"dewpoint_c":16,"wind_dir_deg":10,"wind_speed_kt":10,"visibility":"6+","altimeter_hpa":1016,"flight_category":"VFR","raw":"METAR LFPG 140530Z 01010KT 350V110 CAVOK 20/16 Q1016 NOSIG","lat":49.015,"lon":2.534}],"source":"NOAA AviationWeather.gov data API (US Government, public domain)"}}}}}},"parameters":[{"name":"ids","in":"query","required":true,"description":"1-10 comma-separated ICAO station codes, e.g. KJFK,LFPG,EGLL","schema":{"type":"string"}}]}},"/v1/books/isbn":{"get":{"summary":"ISBN-10/13 lookup returning a normalized book record (title, authors, publisher, pages)","description":"Resolves an ISBN-10 or ISBN-13 to a normalized bibliographic record from Open Library (Internet Archive): title, authors, publishers, publish date, page count, ISBN identifiers, subjects and cover image URL. Query: ?isbn=9780140328721 (hyphens/spaces tolerated). Unknown ISBNs return 400 (not charged). 7-day cache. Built for catalog management, e-commerce listings and used-book pricing agents.","operationId":"route_v1_books_isbn_v1_books_isbn_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Books Isbn V1 Books Isbn Get"},"example":{"ok":true,"data":{"isbn":"9780140328721","title":"Fantastic Mr. Fox","authors":["Roald Dahl"],"publishers":["Puffin"],"publish_date":"October 1, 1988","number_of_pages":96,"isbn_10":"0140328726","isbn_13":"9780140328721","openlibrary_id":"OL7353617M","subjects":["Animals","Hunger","Juvenile fiction","Foxes","Fiction"],"cover_url":"https://covers.openlibrary.org/b/id/15152634-L.jpg","openlibrary_url":"http://openlibrary.org/books/OL7353617M/Fantastic_Mr._Fox","source":"Open Library (openlibrary.org, Internet Archive)"}}}}}},"parameters":[{"name":"isbn","in":"query","required":true,"description":"ISBN-10 or ISBN-13 (hyphens/spaces allowed)","schema":{"type":"string"}}]}},"/v1/btc/fees":{"get":{"summary":"Recommended Bitcoin fee rates (sat/vB) from the live mempool","description":"Recommended Bitcoin transaction fee rates in sat/vB (fastest, half-hour, hour, economy, minimum) from mempool.space, computed from the live mempool. Optional ?include=difficulty adds the current difficulty retarget estimate (change %, remaining blocks/time). No required params; served with a 60s cache.","operationId":"route_v1_btc_fees_v1_btc_fees_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Btc Fees V1 Btc Fees Get"},"example":{"ok":true,"data":{"fees_sat_per_vb":{"fastest":2,"half_hour":1,"hour":1,"economy":1,"minimum":1},"difficulty_adjustment":{"progress_percent":11.06,"difficulty_change_percent":-2.74,"estimated_retarget_date_ms":1753728000000,"remaining_blocks":1793,"remaining_time_ms":1093000000},"source":"mempool.space (live mempool snapshot)"}}}}}},"parameters":[{"name":"include","in":"query","required":false,"description":"Add difficulty retarget estimate (optional)","schema":{"type":"string","enum":["difficulty"]}}]}},"/v1/ca/boc-rates":{"get":{"summary":"Bank of Canada official CAD FX rates and policy rate, by series","description":"Official Bank of Canada Valet observations, normalized JSON. Query: ?series=FXUSDCAD,FXEURCAD&recent=5 (1-10 comma-separated codes; FX pairs like FXUSDCAD/FXEURCAD/FXGBPCAD, overnight target rate V39079, prime rate V80691311). recent=N returns the last N daily observations (default 1, max 60). Primary-source CAD reference, published each business day; 6h cache.","operationId":"route_v1_ca_boc_rates_v1_ca_boc_rates_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Ca Boc Rates V1 Ca Boc Rates Get"},"example":{"ok":true,"data":{"series":{"FXUSDCAD":{"label":"USD/CAD","observations":[{"date":"2026-07-10","value":1.4146}]}},"source":"Bank of Canada Valet API (official daily data)"}}}}}},"parameters":[{"name":"series","in":"query","required":false,"description":"Comma-separated Valet series codes (max 10)","schema":{"type":"string","default":"FXUSDCAD"}},{"name":"recent","in":"query","required":false,"description":"Last N daily observations (1-60)","schema":{"type":"integer","default":1}}]}},"/v1/ch/company":{"get":{"summary":"Swiss company registry lookup (Zefix) by name, UID or CH-ID, for KYB","description":"Official Swiss commercial register via Zefix (Federal Office of Justice). Search: ?q=swisscom (company name, 3+ chars) returns matches with UID, legal form and status. Profile: ?uid=CHE-105.909.036 (or ?chid=CH-...) returns the full record: legal form, status, canton, registered seat, purpose, capital and the official Zefix/cantonal excerpt links. Optional canton, active_only, limit (1-20). Sole-proprietor home addresses withheld (GDPR). 24h cache.","operationId":"route_v1_ch_company_v1_ch_company_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Ch Company V1 Ch Company Get"},"example":{"ok":true,"data":{"count":1,"results":[{"uid":"CHE102753938","chid":"CH03580182127","ehraid":434694,"name":"Swisscom AG","legal_form":"Public sector institution","legal_form_id":8,"natural_person":false,"status":"ACTIVE","canton":"BE","legal_seat":"Ittigen","purpose":"Die Gesellschaft bezweckt, im In- und Ausland Fernmelde- und Rundfunkdienste sowie damit zusammenhaengende Produkte ...","address":{"street":"Alte Tiefenaustrasse","house_number":"6","postal_code":"3050","city":"Bern"},"sogc_date":"2026-06-30","zefix_url":"https://www.zefix.admin.ch/en/search/entity/list?name=CHE102753938&directLink=true","cantonal_excerpt_url":"https://be.chregister.ch/cr-portal/auszug/auszug.xhtml?uid=CHE-102.753.938"}],"source":"Zefix (zefix.admin.ch), Swiss Federal Office of Justice, official central business name index; sole-proprietor address withheld (GDPR)"}}}}}},"parameters":[{"name":"q","in":"query","required":false,"description":"Company name to search (3+ chars, substring)","schema":{"type":"string"}},{"name":"uid","in":"query","required":false,"description":"Swiss UID for the full record, e.g. CHE-105.909.036","schema":{"type":"string"}},{"name":"chid","in":"query","required":false,"description":"Swiss CH-ID, e.g. CH-020.3.926.598-9","schema":{"type":"string"}},{"name":"canton","in":"query","required":false,"description":"Filter search by 2-letter canton, e.g. ZH","schema":{"type":"string"}},{"name":"active_only","in":"query","required":false,"description":"false = include cancelled companies in search","schema":{"type":"boolean","default":true}},{"name":"limit","in":"query","required":false,"description":"Max search results (1-20)","schema":{"type":"integer","default":5}}]}},"/v1/crypto/fng":{"get":{"summary":"Crypto Fear & Greed Index (0-100) with classification and 7-day delta","description":"Current Crypto Fear & Greed Index (0-100) from alternative.me with its text classification (Extreme Fear .. Extreme Greed), Unix timestamp and computed 7-day delta. Optional ?days=N (1-90, default 1) also returns the daily history. Index updates once per day; served with a 1h cache.","operationId":"route_v1_crypto_fng_v1_crypto_fng_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Crypto Fng V1 Crypto Fng Get"},"example":{"ok":true,"data":{"value":28,"classification":"Fear","timestamp":1783900800,"delta_7d":-5,"source":"Crypto Fear & Greed Index by alternative.me"}}}}}},"parameters":[{"name":"days","in":"query","required":false,"description":"Number of daily data points to return","schema":{"type":"integer","default":1,"minimum":1,"maximum":90}}]}},"/v1/cz/company":{"get":{"summary":"Czech company registry lookup (ARES) by name or ICO, for KYB","description":"Official Czech business register lookup via ARES (Ministry of Finance, ares.gov.cz). Query: ?q=skoda or ?q=00177041 (company name or 8-digit ICO), optional limit (1-10). Returns ICO, DIC (CZ VAT number, cross-checkable in EU VIES), legal form, registered address, NACE activity codes, per-register status (commercial, trade, VAT) and creation date. Company data only, personal data stripped (GDPR). 24h cache.","operationId":"route_v1_cz_company_v1_cz_company_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Cz Company V1 Cz Company Get"},"example":{"ok":true,"data":{"total_results":12,"results":[{"ico":"00177041","name":"Škoda Auto a.s.","dic":"CZ00177041","legal_form":"121","natural_person":false,"address":{"text":"tř. Václava Klementa 869, Mladá Boleslav II, 29301 Mladá Boleslav","city":"Mladá Boleslav","postal_code":"29301","country":"CZ"},"nace_codes":["29100","45200","47740","69200","74300","77110"],"registrations":{"ros":"AKTIVNI","vr":"AKTIVNI","res":"AKTIVNI","rzp":"AKTIVNI","dph":"AKTIVNI","sd":"ZANIKLY"},"date_created":"1990-11-20","last_updated":"2026-07-10"}],"source":"ARES, Czech Ministry of Finance (ares.gov.cz), official economic-subject register, open data; personal data of natural persons removed"}}}}}},"parameters":[{"name":"q","in":"query","required":true,"description":"Company name or ICO (8-digit Czech company id)","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Max results (1-10)","schema":{"type":"integer","default":3}}]}},"/v1/de/power-spot":{"get":{"summary":"EPEX day-ahead hourly electricity spot prices for Germany (DE-LU) and Austria","description":"Hourly EPEX Spot day-ahead electricity prices in EUR/MWh from the aWATTar market data API, normalized to ISO 8601 UTC with min/max/avg summary. No params -> rolling ~24h day-ahead window; ?zone=de|at selects the bidding zone, ?start=&end= (ISO 8601 or epoch) select history. Day-ahead data updates once daily; served with a 1h cache.","operationId":"route_v1_de_power_spot_v1_de_power_spot_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 De Power Spot V1 De Power Spot Get"},"example":{"ok":true,"data":{"zone":"DE-LU","unit":"EUR/MWh","count":24,"min":62.09,"max":118.35,"avg":90.21,"prices":[{"start":"2026-07-13T22:00:00Z","end":"2026-07-13T23:00:00Z","price_eur_mwh":100.02}],"source":"Datenquelle: aWATTar (EPEX Spot day-ahead hourly prices)"}}}}}},"parameters":[{"name":"zone","in":"query","required":false,"description":"Bidding zone: de = Germany/Luxembourg, at = Austria","schema":{"type":"string","default":"de","enum":["de","at"]}},{"name":"start","in":"query","required":false,"description":"Window start, ISO 8601 or epoch (optional)","schema":{"type":"string"}},{"name":"end","in":"query","required":false,"description":"Window end, ISO 8601 or epoch (optional)","schema":{"type":"string"}}]}},"/v1/defi/yields":{"get":{"summary":"Top-N DeFi pools by APY, filtered by chain, TVL and stablecoin flag","description":"Top-N DeFi yield pools sorted by APY (desc) from DeFiLlama's ~18k-pool dataset, filtered server-side. Query: ?chain=Ethereum&stablecoin=true&min_tvl=10000000&top=20 (all optional; top 1-100, default 20). Each pool: project, symbol, tvl_usd, apy, apy_base, apy_reward, apy_pct_7d, il_risk, exposure. Served with a 30min cache.","operationId":"route_v1_defi_yields_v1_defi_yields_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Defi Yields V1 Defi Yields Get"},"example":{"ok":true,"data":{"count":1,"total_matched":42,"pools":[{"chain":"Ethereum","project":"lido","symbol":"STETH","tvl_usd":16346230804,"apy":2.185,"apy_base":2.185,"apy_pct_7d":-0.038,"il_risk":"no","exposure":"single","stablecoin":false}],"source":"DeFiLlama (yields.llama.fi)"}}}}}},"parameters":[{"name":"chain","in":"query","required":false,"description":"Chain name, e.g. Ethereum, Arbitrum (optional)","schema":{"type":"string"}},{"name":"stablecoin","in":"query","required":false,"description":"Stablecoin pools only (optional)","schema":{"type":"string","enum":["true","false"]}},{"name":"min_tvl","in":"query","required":false,"description":"Minimum pool TVL in USD","schema":{"type":"number","default":0,"minimum":0}},{"name":"top","in":"query","required":false,"description":"Number of pools to return","schema":{"type":"integer","default":20,"minimum":1,"maximum":100}}]}},"/v1/derivs/funding-arb":{"get":{"summary":"Ranked delta-neutral funding-rate arbitrage opportunities across Binance, Bybit, Hyperliquid","description":"Cross-venue funding-rate arbitrage screener for crypto perpetuals: for each symbol, identifies the venue to SHORT (highest annualized funding) and the venue to LONG (lowest), with the gross APR spread and per-leg open interest in USD, ranked by spread. Query: ?symbols=BTC,ETH,... (max 12, sensible default list). JSON, ~30s cache. Excludes fees/slippage; informational only.","operationId":"route_v1_derivs_funding_arb_v1_derivs_funding_arb_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Derivs Funding Arb V1 Derivs Funding Arb Get"},"example":{"ok":true,"data":{"opportunities":[{"symbol":"SOL","gross_spread_apr_pct":14.3,"short_leg":{"venue":"bybit","funding_apr_pct":21.5,"open_interest_usd":350000000},"long_leg":{"venue":"hyperliquid","funding_apr_pct":7.2,"open_interest_usd":210000000}}],"symbols_scanned":["SOL"]}}}}}},"parameters":[{"name":"symbols","in":"query","required":false,"description":"Comma-separated base assets to scan (max 12)","schema":{"type":"string","default":"BTC,ETH,SOL,XRP,DOGE,AVAX,LINK,LTC"}}]}},"/v1/derivs/snapshot":{"get":{"summary":"Funding rates, open interest and basis for crypto perps across Binance, Bybit and Hyperliquid","description":"Normalized crypto perpetuals snapshot across Binance, Bybit and Hyperliquid in one call: current funding rate, funding interval, annualized funding (APR %), mark price, index price, premium/basis %, open interest (base units and USD). Query: ?symbols=BTC,ETH,SOL (max 10). JSON only, ~20s cache, partial results if a venue is down.","operationId":"route_v1_derivs_snapshot_v1_derivs_snapshot_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Derivs Snapshot V1 Derivs Snapshot Get"},"example":{"ok":true,"data":{"symbols":["BTC"],"rows":[{"venue":"binance","symbol":"BTC","funding_rate":0.0001,"funding_interval_h":8,"funding_apr_pct":10.95,"mark":100000.0,"index":99980.0,"premium_pct":0.02,"open_interest":80000.0,"open_interest_usd":8000000000}],"failed":[],"venues_ok":["binance"]}}}}}},"parameters":[{"name":"symbols","in":"query","required":false,"description":"Comma-separated base assets, e.g. BTC,ETH,SOL (max 10)","schema":{"type":"string","default":"BTC,ETH,SOL"}}]}},"/v1/dev/deps":{"get":{"summary":"Supply-chain due diligence for a package: licenses, advisories, OpenSSF Scorecard","description":"Package intelligence from deps.dev (Google Open Source Insights, data CC-BY 4.0): resolved license list, known advisory ids, source project, GitHub stars and OpenSSF Scorecard overall score. Query: ?system=npm&pkg=react&version=latest (systems: npm, pypi, go, maven, cargo, nuget; version defaults to the registry default release). Refreshed upstream continuously; served with a 6h cache.","operationId":"route_v1_dev_deps_v1_dev_deps_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Dev Deps V1 Dev Deps Get"},"example":{"ok":true,"data":{"system":"npm","package":"react","version":"19.2.7","published_at":"2026-06-01T18:00:48Z","is_default":true,"licenses":["MIT"],"advisories":[],"project":"github.com/facebook/react","stars":246457,"scorecard_score":6.6,"scorecard_date":"2026-06-29T00:00:00Z","source":"deps.dev (Google Open Source Insights), data licensed CC-BY 4.0"}}}}}},"parameters":[{"name":"system","in":"query","required":false,"description":"Package ecosystem","schema":{"type":"string","default":"npm","enum":["npm","pypi","go","maven","cargo","nuget"]}},{"name":"pkg","in":"query","required":true,"description":"Package name, e.g. react or @types/node","schema":{"type":"string"}},{"name":"version","in":"query","required":false,"description":"Exact version, or 'latest' for the registry default","schema":{"type":"string","default":"latest"}}]}},"/v1/dev/eol":{"get":{"summary":"End-of-life status and days-to-EOL for software release cycles","description":"Support/EOL schedule from endoflife.date (open data, ~350 products: python, nodejs, ubuntu, postgresql...) with derived is_eol and days_to_eol per cycle, computed at request time. Query: ?product=python (required slug) & cycle=3.12 (optional, returns that single cycle). Returns cycle, release_date, eol, latest patch, lts, support. 24h cache.","operationId":"route_v1_dev_eol_v1_dev_eol_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Dev Eol V1 Dev Eol Get"},"example":{"ok":true,"data":{"product":"python","as_of":"2026-07-13","cycle":{"cycle":"3.12","release_date":"2023-10-02","eol":"2028-10-31","is_eol":false,"days_to_eol":841,"latest":"3.12.13","latest_release_date":"2026-03-03","lts":false,"support":"2025-04-02"},"source":"endoflife.date API (open data, MIT-licensed project)"}}}}}},"parameters":[{"name":"product","in":"query","required":true,"description":"Product slug, e.g. python, nodejs, ubuntu","schema":{"type":"string"}},{"name":"cycle","in":"query","required":false,"description":"Release cycle to single out, e.g. 3.12 (optional)","schema":{"type":"string"}}]}},"/v1/dev/hn-top":{"get":{"summary":"Top Hacker News stories with score filter, aggregated in one call","description":"Current Hacker News front page via the official Firebase API, fanned out and merged into one payload: id, title, url, score, comment count and age in minutes per story. Query: ?n=20 (1-30 stories) &min_score=100 (optional score floor). Real-time tech signal for launch/incident/buzz detection. 5min cache.","operationId":"route_v1_dev_hn_top_v1_dev_hn_top_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Dev Hn Top V1 Dev Hn Top Get"},"example":{"ok":true,"data":{"count":2,"stories":[{"id":48888518,"title":"Show HN: A fast SQLite VFS","url":"https://example.dev/sqlite-vfs","score":312,"comments":141,"age_min":254},{"id":48888193,"title":"PostgreSQL 19 released","url":"https://postgresql.org/19","score":205,"comments":87,"age_min":402}],"source":"Hacker News official Firebase API (live front page)"}}}}}},"parameters":[{"name":"n","in":"query","required":false,"description":"Number of stories","schema":{"type":"integer","default":20,"minimum":1,"maximum":30}},{"name":"min_score","in":"query","required":false,"description":"Minimum upvote score","schema":{"type":"integer","default":0,"minimum":0}}]}},"/v1/dev/vulns":{"get":{"summary":"Known CVEs/advisories for an exact package version (OSV.dev)","description":"Security audit of one exact dependency version, backed by OSV.dev (Google), which aggregates public advisories (GHSA, PyPA, RustSec...) in near real time. Query: ?pkg=lodash&ecosystem=npm&version=4.17.20 (ecosystems: npm, pypi, go, crates.io, maven, nuget, rubygems, packagist, hex, pub). Returns vuln_count, max_severity, advisory ids and the versions that fix them; vuln_count=0 means clean. Cached 1h.","operationId":"route_v1_dev_vulns_v1_dev_vulns_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Dev Vulns V1 Dev Vulns Get"},"example":{"ok":true,"data":{"package":"lodash","ecosystem":"npm","version":"4.17.20","vuln_count":5,"max_severity":"HIGH","ids":["GHSA-29mw-wpgm-hmr9","GHSA-35jh-r3h4-6jhm","GHSA-f23m-r3pf-42rh"],"fixed_versions":["4.17.21","4.17.23","4.18.0"],"source":"OSV.dev (Google Open Source Vulnerabilities), aggregated public advisories"}}}}}},"parameters":[{"name":"pkg","in":"query","required":true,"description":"Exact package name, e.g. lodash","schema":{"type":"string"}},{"name":"ecosystem","in":"query","required":false,"description":"Package ecosystem","schema":{"type":"string","default":"npm","enum":["cargo","crates.io","go","hex","maven","npm","nuget","packagist","pub","pypi","rubygems"]}},{"name":"version","in":"query","required":true,"description":"Exact version to audit, e.g. 4.17.20","schema":{"type":"string"}}]}},"/v1/docker/image":{"get":{"summary":"Docker Hub image health: activity status, pull count, freshness, latest tags","description":"Base-image due diligence from the Docker Hub API v2: repository status, star and pull counts, last_updated with derived days_since_update, and the 10 most recently pushed tags with push date and size. Query: ?repo=nginx&namespace=library (namespace defaults to library for official images). Lets CI/CD agents avoid building on stale or abandoned images; cached 1h.","operationId":"route_v1_docker_image_v1_docker_image_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Docker Image V1 Docker Image Get"},"example":{"ok":true,"data":{"namespace":"library","repo":"nginx","status":"active","description":"Official build of Nginx.","star_count":21337,"pull_count":13158147675,"last_updated":"2026-06-25T22:52:43.280236Z","days_since_update":17,"latest_tags":[{"name":"trixie-perl","last_pushed":"2026-06-25T22:52:42.349783Z","size_bytes":75271303}],"source":"Docker Hub API v2 (hub.docker.com), public repository metadata"}}}}}},"parameters":[{"name":"repo","in":"query","required":true,"description":"Repository name, e.g. nginx","schema":{"type":"string"}},{"name":"namespace","in":"query","required":false,"description":"Docker Hub namespace (library = official images)","schema":{"type":"string","default":"library"}}]}},"/v1/domain/dns":{"get":{"summary":"Live DNS lookup (A/AAAA/MX/TXT/NS/CNAME) with an email-readiness check","description":"Live DNS records resolved via Cloudflare 1.1.1.1 DNS-over-HTTPS (public facts, real time). Query: ?name=anthropic.com&type=MX (type in A|AAAA|MX|TXT|NS|CNAME, default MX). Or ?name=anthropic.com&check=email -> combined MX + SPF + DMARC with an email_ready boolean, useful before emailing or invoicing a contact. JSON with records list; 5 min cache.","operationId":"route_v1_domain_dns_v1_domain_dns_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Domain Dns V1 Domain Dns Get"},"example":{"ok":true,"data":{"domain":"anthropic.com","type":"MX","records":[{"name":"anthropic.com","ttl":1800,"data":"1 aspmx.l.google.com."}],"record_count":1,"source":"Cloudflare 1.1.1.1 DNS-over-HTTPS (live resolution)"}}}}}},"parameters":[{"name":"name","in":"query","required":true,"description":"Domain to resolve, e.g. anthropic.com","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"DNS record type","schema":{"type":"string","default":"MX","enum":["A","AAAA","MX","TXT","NS","CNAME"]}},{"name":"check","in":"query","required":false,"description":"check=email returns combined MX + SPF + DMARC instead of raw records","schema":{"type":"string","enum":["email"]}}]}},"/v1/domain/rdap":{"get":{"summary":"Domain due-diligence: age, expiry, registrar, status locks, nameservers","description":"Authoritative domain registration facts from the ICANN-mandated RDAP protocol (rdap.org bootstrap -> registry of record), normalized across all TLDs: registration/expiration/last-changed dates, computed age_days, registrar name, EPP status locks and nameservers. Query: ?domain=google.com (required). No personal data served. 24h cache.","operationId":"route_v1_domain_rdap_v1_domain_rdap_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Domain Rdap V1 Domain Rdap Get"},"example":{"ok":true,"data":{"domain":"google.com","registered":"1997-09-15T04:00:00Z","expires":"2028-09-14T04:00:00Z","last_changed":"2019-09-09T15:39:04Z","age_days":10528,"registrar":"MarkMonitor Inc.","status":["client delete prohibited","client transfer prohibited","server update prohibited"],"nameservers":["ns1.google.com","ns2.google.com"],"source":"ICANN RDAP via rdap.org bootstrap (authoritative registry data)"}}}}}},"parameters":[{"name":"domain","in":"query","required":true,"description":"Fully-qualified domain name, e.g. google.com","schema":{"type":"string"}}]}},"/v1/eth/gas":{"get":{"summary":"Ethereum gas: next-block base fee + priority-fee percentiles in gwei","description":"Live Ethereum mainnet gas pricing from PublicNode RPC: next-block base fee, 25/50/75th-percentile priority tips over the last 5 blocks (slow/std/fast), and a ready-to-sign recommendation (max_fee = 2*base + tip). Query: ?speed=slow|std|fast (default std). All values are decimal gwei, no hex parsing needed. 30s cache.","operationId":"route_v1_eth_gas_v1_eth_gas_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eth Gas V1 Eth Gas Get"},"example":{"ok":true,"data":{"base_fee_gwei":0.0648,"priority_fee_gwei":{"slow":0.005,"std":0.0054,"fast":0.1337},"recommended":{"speed":"std","max_priority_fee_gwei":0.0054,"max_fee_gwei":0.135},"legacy_gas_price_gwei":0.0609,"blocks_sampled":5,"source":"Ethereum mainnet via PublicNode RPC (eth_gasPrice + eth_feeHistory, last 5 blocks)"}}}}}},"parameters":[{"name":"speed","in":"query","required":false,"description":"Which priority-fee percentile to recommend (25/50/75)","schema":{"type":"string","default":"std","enum":["slow","std","fast"]}}]}},"/v1/eu/company-check":{"get":{"summary":"One-call company verification across 9 European registries: pass/review/fail verdict","description":"One-call verification of a European company: official registry existence and status, insolvency signals, VAT (VIES), LEI (GLEIF), sanctions screening (EU/OFAC/UN/UK/FR), EORI and domain age, condensed into a pass/review/fail verdict with per-check source, timestamp and an explicit coverage map. Query: country=FR (FR, UK, IE, NO, FI, SK, PL, CZ, CH) and id=552032534 (national registry number). Factual verification, not a credit score. Buyers are never charged on failure.","operationId":"route_v1_eu_company_check_v1_eu_company_check_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Company Check V1 Eu Company Check Get"},"example":{"ok":true,"data":{"subject":{"country":"FR","id":"552032534","legal_name":"DANONE","natural_person":false},"verdict":"pass","confidence":"high","reasons":["Registered and active; no insolvency, sanctions, VAT or domain flag on any checked component."],"checks":{"registry":{"status":"checked","exists":true,"company_status":"active","source":"SIRENE (recherche-entreprises.api.gouv.fr)"},"insolvency":{"status":"checked","records_found":0},"vat":{"status":"checked","number":"FR27552032534","is_valid":true},"sanctions":{"status":"checked","verdict":"no_match","match_count":0}},"coverage":{"country":"FR","checked":["registry","insolvency","vat","lei","sanctions","eori"],"not_covered":[],"degraded":[]},"flags":[],"disclaimer":"Factual verification of official public records. Not a credit rating or credit score; sanctions matches require human review."}}}}}},"parameters":[{"name":"country","in":"query","required":true,"description":"Country of the registry to check against","schema":{"type":"string","enum":["FR","UK","IE","NO","FI","SK","PL","CZ","CH"]}},{"name":"id","in":"query","required":true,"description":"National registry id: SIREN/SIRET (FR), company number (UK/IE), orgnr (NO), y-tunnus (FI), ICO (SK/CZ), NIP (PL), UID CHE-... (CH)","schema":{"type":"string"}},{"name":"vat","in":"query","required":false,"description":"VAT number to check when not derivable (IE, SK)","schema":{"type":"string"}},{"name":"lei","in":"query","required":false,"description":"Known 20-char LEI to verify","schema":{"type":"string"}},{"name":"eori","in":"query","required":false,"description":"EORI customs number to validate","schema":{"type":"string"}},{"name":"domain","in":"query","required":false,"description":"Company website domain for age and MX signals","schema":{"type":"string"}},{"name":"legal_entities_only","in":"query","required":false,"description":"false = include minimized facts for individual entrepreneurs","schema":{"type":"boolean","default":true}}]}},"/v1/eu/eori":{"get":{"summary":"Validate an EU EORI customs number against the official Commission registry","description":"Live EORI (Economic Operators Registration and Identification) validation via the European Commission EOS/DDS2 service -- the number every business needs to clear customs in the EU. Query: ?eori=FR38347481400100 (2-letter country + up to 15 alphanumerics). Returns valid true/false plus registered name and address when the operator consented to publication. SOAP upstream, clean JSON out; 24h cache.","operationId":"route_v1_eu_eori_v1_eu_eori_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Eori V1 Eu Eori Get"},"example":{"ok":true,"data":{"eori":"FR38347481400100","valid":true,"name":"AIRBUS","address":"2 Rond-point EMILE DEWOITINE, 31700, BLAGNAC, France","status_description":"Valid","source":"European Commission EOS/DDS2"}}}}}},"parameters":[{"name":"eori","in":"query","required":true,"description":"EORI number: 2-letter country code + 1-15 alphanumerics (FR uses SIRET)","schema":{"type":"string"}}]}},"/v1/eu/estr":{"get":{"summary":"Official ECB euro short-term rate (ESTR), latest fixing or recent history","description":"Euro Short-Term Rate (ESTR), the official euro overnight benchmark, direct from the ECB Data Portal (dataset EST, published each TARGET2 business day ~08:00 CET). Query: ?last_n=5 (1-30 fixings, default 1) &include_volume=true to add the underlying transaction volume in EUR millions. Returns date-sorted observations plus the latest fixing; 1h cache.","operationId":"route_v1_eu_estr_v1_eu_estr_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Estr V1 Eu Estr Get"},"example":{"ok":true,"data":{"rate":"ESTR (euro short-term rate), volume-weighted trimmed mean, percent per annum","latest_date":"2026-07-10","latest_rate_percent":2.182,"observations":[{"date":"2026-07-10","rate_percent":2.182,"volume_eur_millions":64378}],"source":"European Central Bank Data Portal, dataset EST (published each TARGET2 business day ~08:00 CET)"}}}}}},"parameters":[{"name":"last_n","in":"query","required":false,"description":"Number of most recent fixings (1-30)","schema":{"type":"integer","default":1}},{"name":"include_volume","in":"query","required":false,"description":"Also return daily transaction volume in EUR millions","schema":{"type":"boolean","default":false}}]}},"/v1/eu/holidays-regional":{"get":{"summary":"Regional public holidays AND school holidays for 36 countries, subdivision-level","description":"Public holidays and school holidays with subdivision granularity (German Laender, French academies, Spanish communities...) from the OpenHolidays API (data ODbL-1.0, ~36 mostly European countries). Query: ?country=DE&from=2026-07-01&to=2026-12-31&type=public|school&subdivision=DE-BY (optional ISO 3166-2 filter; window max 366 days, default today +6 months). Each entry: dates, English name, nationwide flag, affected subdivision codes. 24h cache.","operationId":"route_v1_eu_holidays_regional_v1_eu_holidays_regional_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Holidays Regional V1 Eu Holidays Regional Get"},"example":{"ok":true,"data":{"country":"DE","holiday_type":"public","from":"2026-10-01","to":"2026-11-05","count":2,"holidays":[{"start_date":"2026-10-03","end_date":"2026-10-03","name":"Day of German Unity","type":"Public","nationwide":true,"subdivisions":[]},{"start_date":"2026-11-01","end_date":"2026-11-01","name":"All Saints' Day","type":"Public","nationwide":false,"subdivisions":["DE-SL","DE-NW","DE-BW","DE-RP","DE-BY"]}],"source":"OpenHolidays API (openholidaysapi.org), data ODbL-1.0, attribution required"}}}}}},"parameters":[{"name":"country","in":"query","required":true,"description":"ISO 3166-1 alpha-2 country code (e.g. DE, FR, AT)","schema":{"type":"string"}},{"name":"from","in":"query","required":false,"description":"ISO start date (default: today)","schema":{"type":"string"}},{"name":"to","in":"query","required":false,"description":"ISO end date (default: from + 6 months, max +366 days)","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"","schema":{"type":"string","default":"public","enum":["public","school"]}},{"name":"subdivision","in":"query","required":false,"description":"ISO 3166-2 subdivision filter, e.g. DE-BY","schema":{"type":"string"}}]}},"/v1/eu/inflation":{"get":{"summary":"Official HICP inflation (annual rate) by EU country and COICOP item, from Eurostat","description":"Monthly HICP inflation as annual rate of change (%) from Eurostat dataset prc_hicp_manr, the official primary source. Query: ?geo=EA|FR|DE|EU27_2020 &coicop=CP00 (all items) | CP011 (food) | CP045 (energy) &last_n=12 (1-24 months, default 1). Returns date-sorted observations plus the latest print; 24h cache. Data: Eurostat, CC BY 4.0.","operationId":"route_v1_eu_inflation_v1_eu_inflation_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Inflation V1 Eu Inflation Get"},"example":{"ok":true,"data":{"dataset":"prc_hicp_manr","measure":"HICP annual rate of change, percent","geo":"EA","coicop":"CP00","coicop_label":"All-items HICP","latest_period":"2025-12","latest_annual_rate_percent":2.0,"observations":[{"period":"2025-11","annual_rate_percent":2.1},{"period":"2025-12","annual_rate_percent":2.0}],"updated":"2026-02-06T23:00:00+0100","source":"Eurostat, dataset prc_hicp_manr (CC BY 4.0, monthly official HICP)"}}}}}},"parameters":[{"name":"geo","in":"query","required":false,"description":"Eurostat geo code (EA, FR, DE, IT, EU27_2020...)","schema":{"type":"string","default":"EA"}},{"name":"coicop","in":"query","required":false,"description":"COICOP item code (CP00 all items, CP011 food, CP045 energy)","schema":{"type":"string","default":"CP00"}},{"name":"last_n","in":"query","required":false,"description":"Number of most recent months (1-24)","schema":{"type":"integer","default":1}}]}},"/v1/eu/instrument":{"get":{"summary":"Regulatory identity card of a financial instrument by ISIN (ESMA FIRDS)","description":"Consolidated MiFIR reference data for one ISIN, from the official ESMA FIRDS register (updated daily). Query: ?isin=FR0000120271 (required). Returns full and short instrument name, CFI code, issuer LEI, notional currency, relevant competent authority country, relevant market MIC and the deduplicated list of trading-venue MICs where the instrument is admitted. Cached 24h.","operationId":"route_v1_eu_instrument_v1_eu_instrument_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Instrument V1 Eu Instrument Get"},"example":{"ok":true,"data":{"isin":"FR0000120271","full_name":"TotalEnergies SE","short_name":"TOTALENERGIES S/SH VTG FPD","cfi_code":"ESVUFN","issuer_lei":"529900S21EQ1BO4ESM68","notional_currency":"EUR","competent_authority_country":"FR","relevant_market_mic":"XPAR","commodity_derivative":"No","trading_venues_mic":["AQEA","TPIR","XPAR"],"venue_count":3,"trading_start_date":"2021-01-07T09:05:21Z","source":"ESMA FIRDS register (registers.esma.europa.eu), MiFIR Art. 27 reference data"}}}}}},"parameters":[{"name":"isin","in":"query","required":true,"description":"12-character ISIN, e.g. FR0000120271","schema":{"type":"string"}}]}},"/v1/eu/policy-rates":{"get":{"summary":"The three ECB key policy rates (refi, deposit facility, marginal lending)","description":"Current levels of the three ECB key interest rates -- main refinancing operations (MRR_FR), deposit facility (DFR) and marginal lending facility (MLFR) -- straight from the official ECB Data Portal (dataflow FM, daily levels). Query: ?last=N (1-60, default 1) to include the N most recent daily observations per rate. Returns latest values plus dated series, in percent per annum; served with a 6h cache.","operationId":"route_v1_eu_policy_rates_v1_eu_policy_rates_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Policy Rates V1 Eu Policy Rates Get"},"example":{"ok":true,"data":{"as_of":"2026-06-17","latest":{"deposit_facility":2.25,"main_refinancing":2.4,"marginal_lending":2.65},"series":{"deposit_facility":[{"date":"2026-06-17","rate":2.25}],"main_refinancing":[{"date":"2026-06-17","rate":2.4}],"marginal_lending":[{"date":"2026-06-17","rate":2.65}]},"unit":"percent per annum","source":"European Central Bank Data Portal, dataflow FM (reuse permitted with attribution to the ECB)"}}}}}},"parameters":[{"name":"last","in":"query","required":false,"description":"Number of most recent daily observations per rate (1-60)","schema":{"type":"string","default":"1"}}]}},"/v1/eu/power-price":{"get":{"summary":"Day-ahead electricity spot prices (EPEX) for any European bidding zone","description":"Wholesale day-ahead electricity prices in EUR/MWh per European bidding zone, from the Energy-Charts API (Fraunhofer ISE; data CC BY 4.0 from Bundesnetzagentur/SMARD). Query: ?bzn=DE-LU|FR|NL|ES|IT-NORTH|SE4... (44 zones), optional ISO window &start=2026-07-12&end=2026-07-13. Returns timestamped price points (15-min or hourly slots, max 288). 1h cache.","operationId":"route_v1_eu_power_price_v1_eu_power_price_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Power Price V1 Eu Power Price Get"},"example":{"ok":true,"data":{"bzn":"FR","unit":"EUR/MWh","count":96,"points":[{"time_utc":"2026-07-14T00:00:00Z","price":63.61},{"time_utc":"2026-07-14T00:15:00Z","price":60.2}],"source":"Energy-Charts API (Fraunhofer ISE) -- CC BY 4.0 (creativecommons.org/licenses/by/4.0) from Bundesnetzagentur | SMARD.de"}}}}}},"parameters":[{"name":"bzn","in":"query","required":false,"description":"Bidding zone code, e.g. DE-LU, FR, NL, IT-NORTH","schema":{"type":"string","default":"DE-LU"}},{"name":"start","in":"query","required":false,"description":"ISO 8601 window start (optional, with end)","schema":{"type":"string"}},{"name":"end","in":"query","required":false,"description":"ISO 8601 window end (optional, with start)","schema":{"type":"string"}}]}},"/v1/eu/tenders":{"get":{"summary":"Latest EU public tenders (TED) filtered by CPV code and buyer country","description":"Fresh EU public procurement notices from TED (Tenders Electronic Daily, official Publications Office API, new notices daily). Query: ?cpv=48000000&country=FRA&days_back=7&limit=10 (cpv = 8-digit CPV code, country = 3-letter buyer country, all optional). Each notice: publication_number, publication_date, title, buyer_name, tender deadline, notice URL. 1h cache.","operationId":"route_v1_eu_tenders_v1_eu_tenders_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Tenders V1 Eu Tenders Get"},"example":{"ok":true,"data":{"query":{"cpv":"48000000","country":"FRA","published_since":"20260706"},"total_matches":44,"notices":[{"publication_number":"460906-2026","publication_date":"2026-07-06","title":"France - Software package and information systems - Accord-cadre titres-restaurant","buyer_name":"OPHIS","deadline":"2026-08-10","url":"https://ted.europa.eu/en/notice/460906-2026"}],"source":"TED - Tenders Electronic Daily, Publications Office of the European Union"}}}}}},"parameters":[{"name":"cpv","in":"query","required":false,"description":"8-digit CPV classification code (optional)","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"3-letter buyer country code, e.g. FRA (optional)","schema":{"type":"string"}},{"name":"days_back","in":"query","required":false,"description":"Look-back window in days, 1-30","schema":{"type":"integer","default":7}},{"name":"limit","in":"query","required":false,"description":"Max notices returned, 1-25","schema":{"type":"integer","default":10}}]}},"/v1/eu/vat-check":{"get":{"summary":"Validate an intra-EU VAT number against VIES with a timestamped result","description":"Live intra-EU VAT number validation via the European Commission VIES REST API (real-time query of the member state registry). Query: ?cc=IE&vat=6388047V (cc = member state code incl. EL/XI, vat = number without country prefix). Returns is_valid, the trader name and address as registered (when the member state publishes them) and request_date (compliance timestamp); 24h cache.","operationId":"route_v1_eu_vat_check_v1_eu_vat_check_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Vat Check V1 Eu Vat Check Get"},"example":{"ok":true,"data":{"country_code":"IE","vat_number":"6388047V","is_valid":true,"name":"GOOGLE IRELAND LIMITED","address":"3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4","request_date":"2026-07-13T08:42:27.241Z","user_error":"VALID","source":"VIES REST API (European Commission, DG TAXUD) -- live check against the member state registry"}}}}}},"parameters":[{"name":"cc","in":"query","required":true,"description":"EU member state code (2 letters, e.g. IE, FR, EL, XI)","schema":{"type":"string"}},{"name":"vat","in":"query","required":true,"description":"VAT number without the country prefix","schema":{"type":"string"}}]}},"/v1/eu/yield-curve":{"get":{"summary":"Euro area AAA sovereign spot yield curve (ECB), with 2s10s spread","description":"Latest euro area risk-free spot yields from the ECB Data Portal (dataset YC, AAA-rated central government bonds, Svensson model; updated each business day ~12:00 CET). Query: ?tenors=3M,1Y,2Y,5Y,10Y,30Y (1-8 tenors from 3M to 30Y). Returns yields_pct per tenor, observation date, and the 2s10s spread in bp when 2Y and 10Y are requested. 1h cache.","operationId":"route_v1_eu_yield_curve_v1_eu_yield_curve_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Eu Yield Curve V1 Eu Yield Curve Get"},"example":{"ok":true,"data":{"date":"2026-07-09","yields_pct":{"3M":2.3222,"1Y":2.5258,"2Y":2.6146,"5Y":2.7629,"10Y":3.1292,"30Y":3.6265},"spread_2s10s_bp":51.46,"source":"ECB Data Portal, dataset YC (euro area AAA central government bonds, Svensson spot rates)"}}}}}},"parameters":[{"name":"tenors","in":"query","required":false,"description":"Comma-separated tenors (1-8) among 3M,6M,9M,1Y..10Y,15Y,20Y,25Y,30Y","schema":{"type":"string","default":"3M,1Y,2Y,5Y,10Y,30Y"}}]}},"/v1/fi/company":{"get":{"summary":"Finnish company registry lookup (PRH YTJ) by name or Business ID, for KYB","description":"Official Finnish company registry via PRH YTJ open data v3 (avoindata.prh.fi). Query: ?q=nokia for name search (best matches first, max 10) or ?q=0112038-9 for exact Business ID lookup. Returns business_id, EU BRIS id, current name, company form, main business line, registration date, status, end date, website and address per company. Company data only, no personal data (GDPR). License CC BY 4.0. 24h cache.","operationId":"route_v1_fi_company_v1_fi_company_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fi Company V1 Fi Company Get"},"example":{"ok":true,"data":{"query":"0112038-9","match_type":"business_id","total_results":1,"returned":1,"results":[{"business_id":"0112038-9","eu_id":"FIFPRO.0112038-9","name":"Nokia Oyj","company_form":"Public limited company","natural_person":false,"registration_date":"1896-12-19","status":"2","status_description":"registered","address":{"type":"visiting","street":"Karakaari 7","post_code":"02610","city":"ESPOO"},"main_business_line":{"code":"70100","description":"Activities of head offices"},"website":"www.nokia.com"}],"source":"avoindata.prh.fi (Finnish Patent and Registration Office, YTJ open data v3, CC BY 4.0); company data only, no personal data"}}}}}},"parameters":[{"name":"q","in":"query","required":true,"description":"Company name (substring search) or Finnish Business ID (y-tunnus, format 1234567-8)","schema":{"type":"string"}}]}},"/v1/fr/bilans":{"get":{"summary":"French annual accounts (INPI RNE) by SIREN: filing history + headline figures","description":"Annual accounts filed with the French RNE (INPI). Query: ?siren=552032534 (9 digits, Luhn-validated). Returns the filing history -- closing date, filing date, type (complet/simplifie/consolide), public or confidential -- which is a KYB signal in itself. For the latest public filing it adds headline figures (revenue, operating and net result, total assets, equity) when the liasse scheme is mapped, else says not_covered rather than guessing. 24h cache.","operationId":"route_v1_fr_bilans_v1_fr_bilans_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Bilans V1 Fr Bilans Get"},"example":{"ok":true,"data":{"siren":"552032534","filings_found":20,"filings":[{"closing_date":"2025-12-31","filed_on":"2026-05-27","type":"K","type_label":"consolide","confidentiality":"Public","updated_at":"2026-06-18T10:15:37+02:00"}],"latest":{"closing_date":"2025-12-31","filed_on":"2026-05-27","type":"K","type_label":"consolide","months_covered":"12","currency":"EUR","activity_code":"7010Z","figures":{"operating_revenue":{"n":27376000000,"n_1":27283000000},"operating_result":{"n":3379000000,"n_1":2940000000},"total_assets":{"n":31841000000,"n_1":32505000000}}},"coverage":{"status":"checked","fields":["operating_result","operating_revenue","total_assets"]},"source":"INPI, Registre National des Entreprises (RNE), data.inpi.fr -- amounts as filed, not audited or restated"}}}}}},"parameters":[{"name":"siren","in":"query","required":true,"description":"French SIREN, 9 digits, e.g. 552032534","schema":{"type":"string"}}]}},"/v1/fr/bodacc":{"get":{"summary":"French BODACC legal announcements by SIREN: insolvencies, sales, filings","description":"Legal announcements from the French BODACC official gazette for one company, by SIREN (Luhn-validated). Query: ?siren=383474814 (required), famille=collective for insolvency proceedings (optional filter), limit=10 (1-20). Returns newest-first announcements with family, tribunal, judgment nature and date, and source URL; legal entities only (GDPR-safe). Zero announcements for a valid SIREN is a clean-record signal. Source: DILA open data, daily publications. Cached 1h.","operationId":"route_v1_fr_bodacc_v1_fr_bodacc_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Bodacc V1 Fr Bodacc Get"},"example":{"ok":true,"data":{"siren":"383474814","total_count":47,"count":2,"announcements":[{"id":"C202600982530","date":"2026-05-26","family":"Dépôts des comptes","family_code":"dpc","type":"Avis initial","company":"AIRBUS","legal_form":"Société par actions simplifiée","siren":"383474814","tribunal":"Greffe du Tribunal de Commerce de toulouse","city":"Blagnac","departement":"31","deposit":{"type":"Comptes annuels et rapports","closing_date":"2025-12-31"},"url":"https://www.bodacc.fr/pages/annonces-commerciales-detail/?q.id=id:C202600982530"}],"source":"BODACC official gazette via DILA open data (bodacc-datadila.opendatasoft.com, Licence Ouverte); legal-entity announcements only"}}}}}},"parameters":[{"name":"siren","in":"query","required":true,"description":"9-digit French SIREN company id","schema":{"type":"string"}},{"name":"famille","in":"query","required":false,"description":"Announcement family filter ('collective' = insolvency proceedings)","schema":{"type":"string","enum":["collective","conciliation","creation","divers","dpc","immatriculation","modification","radiation","retablissement_professionnel","vente"]}},{"name":"limit","in":"query","required":false,"description":"Max announcements, 1-20 (default 10)","schema":{"type":"integer"}}]}},"/v1/fr/business-days":{"get":{"summary":"French business-day calculator: add N working days or count them between dates","description":"Adds N French business days to a date (?start=2026-07-13&add=30) or counts them over a range (?from=2026-07-01&to=2026-09-30). Skips weekends and the 11 French legal public holidays (movable feasts computed via Butcher-Meeus). mode=ouvres (Mon-Fri, default) or ouvrables (Mon-Sat). Deterministic local computation, JSON.","operationId":"route_v1_fr_business_days_v1_fr_business_days_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Business Days V1 Fr Business Days Get"},"example":{"ok":true,"data":{"mode":"ouvres","start":"2026-07-13","business_days_added":30,"end_date":"2026-08-25","calendar_days":43,"holidays_crossed":[{"date":"2026-07-14","name":"fete_nationale"},{"date":"2026-08-15","name":"assomption"}],"source":"Computed locally: French legal holidays (Code du travail L3133-1), Easter via Butcher-Meeus"}}}}}},"parameters":[{"name":"start","in":"query","required":false,"description":"ISO date to add business days to (use with add)","schema":{"type":"string"}},{"name":"add","in":"query","required":false,"description":"Business days to add, 1-366 (default 1)","schema":{"type":"integer"}},{"name":"from","in":"query","required":false,"description":"ISO range start (use with to, counting mode)","schema":{"type":"string"}},{"name":"to","in":"query","required":false,"description":"ISO range end (inclusive)","schema":{"type":"string"}},{"name":"mode","in":"query","required":false,"description":"","schema":{"type":"string","default":"ouvres","enum":["ouvres","ouvrables"]}}]}},"/v1/fr/communes":{"get":{"summary":"French communes reference: postal code to INSEE code, population, departement, region","description":"Official French administrative reference from geo.api.gouv.fr (INSEE/IGN data). Look up communes by ?cp=31700 (postal code), ?code=31056 (INSEE), ?nom=Blagnac (fuzzy name) or ?lat=43.63&lon=1.37 (commune containing a point). Returns up to 20 communes with name, INSEE code, population, postal codes, departement, region and EPCI. The postal-to-INSEE mapping is the pivot key for joining French territorial datasets. Cached 7 days.","operationId":"route_v1_fr_communes_v1_fr_communes_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Communes V1 Fr Communes Get"},"example":{"ok":true,"data":{"count":2,"communes":[{"name":"Beauzelle","insee_code":"31056","population":8713,"postal_codes":["31700"],"departement":{"code":"31","nom":"Haute-Garonne"},"region":{"code":"76","nom":"Occitanie"},"epci":{"code":"243100518","nom":"Toulouse Métropole"}},{"name":"Blagnac","insee_code":"31069","population":27604,"postal_codes":["31700"],"departement":{"code":"31","nom":"Haute-Garonne"},"region":{"code":"76","nom":"Occitanie"},"epci":{"code":"243100518","nom":"Toulouse Métropole"}}],"source":"geo.api.gouv.fr decoupage administratif (Etalab, INSEE/IGN data, Licence Ouverte 2.0)"}}}}}},"parameters":[{"name":"cp","in":"query","required":false,"description":"5-digit postal code, e.g. 31700","schema":{"type":"string"}},{"name":"code","in":"query","required":false,"description":"5-character INSEE commune code, e.g. 31056","schema":{"type":"string"}},{"name":"nom","in":"query","required":false,"description":"Commune name, fuzzy search","schema":{"type":"string"}},{"name":"lat","in":"query","required":false,"description":"Latitude (with lon: commune containing the point)","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"Longitude (with lat)","schema":{"type":"number"}}]}},"/v1/fr/company":{"get":{"summary":"French company registry lookup (SIRENE) by name or SIREN, for KYB","description":"Official French company registry search via recherche-entreprises.api.gouv.fr (INSEE Sirene data, updated daily). Query: ?q=airbus or ?q=383474814 (name or SIREN), optional per_page (1-10), page, code_postal, activite_principale (NAF, e.g. 70.10Z), etat_administratif (A active / C ceased). Returns SIREN, legal form, NAF, HQ address, employee range, status and published finances per company. Personal data on directors is stripped (GDPR). 24h cache.","operationId":"route_v1_fr_company_v1_fr_company_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Company V1 Fr Company Get"},"example":{"ok":true,"data":{"total_results":245,"page":1,"results":[{"siren":"383474814","name":"AIRBUS","legal_name":"AIRBUS","naf_code":"30.30Z","legal_form":"5710","natural_person":false,"company_category":"GE","employee_range":"53","creation_date":"1991-10-18","administrative_status":"A","establishments_total":11,"establishments_open":6,"headquarters":{"siret":"38347481400100","address":"2 ROND-POINT DEWOITINE 31700 BLAGNAC","postal_code":"31700","city":"BLAGNAC","naf_code":"70.10Z"},"finances":{"2024":{"ca":57412795000,"resultat_net":2206027000}}}],"source":"recherche-entreprises.api.gouv.fr (INSEE Sirene, Licence Ouverte 2.0); director personal data removed"}}}}}},"parameters":[{"name":"q","in":"query","required":true,"description":"Company name or SIREN number","schema":{"type":"string"}},{"name":"per_page","in":"query","required":false,"description":"Results per page (1-10)","schema":{"type":"integer","default":3}},{"name":"page","in":"query","required":false,"description":"Page number (1-50)","schema":{"type":"integer","default":1}},{"name":"code_postal","in":"query","required":false,"description":"Filter by 5-digit postal code","schema":{"type":"string"}},{"name":"activite_principale","in":"query","required":false,"description":"Filter by NAF code, e.g. 70.10Z","schema":{"type":"string"}},{"name":"etat_administratif","in":"query","required":false,"description":"A = active, C = ceased","schema":{"type":"string","enum":["A","C"]}}]}},"/v1/fr/dpe":{"get":{"summary":"French energy performance certificates (DPE) by address or postal code","description":"Official DPE energy certificates for existing French dwellings from the ADEME dpe03existant dataset (Licence Ouverte 2.0, anonymised). Returns energy class A-G, GHG class, primary-energy consumption kWh/m2/yr, floor area, construction period. Query: ?postal_code=75011 or ?address=48 rue de Montreuil Paris, optional &size=10 (max 50). Spots F/G rental-ban units for real-estate due diligence. Cached 24h.","operationId":"route_v1_fr_dpe_v1_fr_dpe_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Dpe V1 Fr Dpe Get"},"example":{"ok":true,"data":{"query":{"postal_code":"75011","size":5},"total_matches":55207,"returned":1,"certificates":[{"numero_dpe":"2675E0077791B","date_etablissement_dpe":"2026-01-12","etiquette_dpe":"D","etiquette_ges":"D","conso_5_usages_par_m2_ep":157,"emission_ges_5_usages_par_m2":31,"surface_habitable_logement":63.3,"adresse_ban":"48 Rue de Montreuil 75011 Paris","code_postal_ban":"75011","periode_construction":"1948-1974","type_batiment":"appartement"}],"source":"ADEME dpe03existant (data.ademe.fr, Licence Ouverte 2.0)"}}}}}},"parameters":[{"name":"postal_code","in":"query","required":false,"description":"5-digit French postal code, e.g. 75011","schema":{"type":"string"}},{"name":"address","in":"query","required":false,"description":"Free-text address matched against the BAN address field","schema":{"type":"string"}},{"name":"size","in":"query","required":false,"description":"Number of certificates to return (1-50)","schema":{"type":"integer","default":10}}]}},"/v1/fr/elevation":{"get":{"summary":"Precise ground elevation for any point in France (IGN RGE ALTI DEM)","description":"Ground elevation from the official IGN RGE ALTI digital elevation model via the Geoplateforme altimetry service (Licence Ouverte 2.0). Single point: ?lon=1.3835&lat=43.6246. Profile: pipe-separated lists, up to 20 points, e.g. ?lon=1.38|1.40&lat=43.62|43.63. Each point returns elevation_m (metres) and covered=false outside France. Cached 7 days.","operationId":"route_v1_fr_elevation_v1_fr_elevation_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Elevation V1 Fr Elevation Get"},"example":{"ok":true,"data":{"count":1,"points":[{"lon":1.3835,"lat":43.6246,"elevation_m":147.75,"covered":true}],"source":"IGN Geoplateforme altimetry, RGE ALTI data (Licence Ouverte 2.0)"}}}}}},"parameters":[{"name":"lon","in":"query","required":true,"description":"Longitude(s) WGS84, pipe-separated for profiles (max 20)","schema":{"type":"string"}},{"name":"lat","in":"query","required":true,"description":"Latitude(s) WGS84, pipe-separated, same count as lon","schema":{"type":"string"}}]}},"/v1/fr/fuel":{"get":{"summary":"Live French gas-station fuel prices by departement or city, cheapest-first","description":"Near-real-time pump prices (EUR/L) for French gas stations from the official roulez-eco feed (data.economie.gouv.fr, updated continuously). Query: ?dept=75 (departement code) and/or ?city=Lyon, optional &fuel=gazole|sp95|sp98|e10|e85|gplc to sort cheapest-first and drop stations without that fuel, &limit=10 (1-40). Returns per station: address, lat/lon, per-fuel price with update timestamp, 24/7 automat flag. Cached 10 min.","operationId":"route_v1_fr_fuel_v1_fr_fuel_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Fuel V1 Fr Fuel Get"},"example":{"ok":true,"data":{"dept":"75","sorted_by":"gazole_prix asc","total_count":45,"count":1,"stations":[{"id":92300004,"address":"2/10 BLD FORT DE VAUX","postal_code":"75017","city":"Paris","dept":"75","lat":48.893,"lon":2.302,"prices":{"gazole":{"price_eur_l":1.94,"updated_at":"2026-07-13T09:49:54+00:00"},"sp98":{"price_eur_l":1.989,"updated_at":"2026-07-13T09:49:54+00:00"}},"open_24h_automat":true}],"source":"Prix des carburants, flux instantane (data.economie.gouv.fr / roulez-eco, Licence Ouverte 2.0)"}}}}}},"parameters":[{"name":"dept","in":"query","required":false,"description":"French departement code, e.g. 75, 2A, 971","schema":{"type":"string"}},{"name":"city","in":"query","required":false,"description":"City name, e.g. Lyon","schema":{"type":"string"}},{"name":"fuel","in":"query","required":false,"description":"Sort cheapest-first by this fuel and require it in stock","schema":{"type":"string","enum":["gazole","sp95","sp98","e10","e85","gplc"]}},{"name":"limit","in":"query","required":false,"description":"Max stations, 1-40 (default 10)","schema":{"type":"integer"}}]}},"/v1/fr/geocode":{"get":{"summary":"Geocode or reverse-geocode any French address (official BAN, with confidence score)","description":"French address geocoding on the official Base Adresse Nationale (api-adresse.data.gouv.fr, Etalab/IGN, continuously updated). Forward: ?q=8 boulevard du port amiens with optional &type=housenumber|street|locality|municipality &citycode=80021 (INSEE filter). Reverse: ?lat=49.897&lon=2.290. &limit=1-10 (default 3). Each match returns normalized label, confidence score, lat/lon, street, postcode, city, INSEE citycode and context. No match returns 400 (not billed). Cached 24h.","operationId":"route_v1_fr_geocode_v1_fr_geocode_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Geocode V1 Fr Geocode Get"},"example":{"ok":true,"data":{"mode":"search","query":"8 boulevard du port amiens","count":1,"matches":[{"label":"8 Boulevard du Port 80000 Amiens","score":0.97072,"lat":49.897442,"lon":2.290084,"type":"housenumber","housenumber":"8","street":"Boulevard du Port","postcode":"80000","city":"Amiens","citycode":"80021","context":"80, Somme, Hauts-de-France"}],"source":"Base Adresse Nationale via api-adresse.data.gouv.fr (Etalab/IGN, Licence Ouverte 2.0)"}}}}}},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text French address (forward mode)","schema":{"type":"string"}},{"name":"lat","in":"query","required":false,"description":"Latitude (reverse mode, with lon)","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"Longitude (reverse mode, with lat)","schema":{"type":"number"}},{"name":"type","in":"query","required":false,"description":"Restrict match type","schema":{"type":"string","enum":["housenumber","street","locality","municipality"]}},{"name":"citycode","in":"query","required":false,"description":"Filter by 5-char INSEE city code","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Max matches, 1-10 (default 3)","schema":{"type":"integer"}}]}},"/v1/fr/invoice-ready":{"get":{"summary":"Is this French SIREN/SIRET invoiceable? Checksum + SIRENE + VIES in one call","description":"One-call compliance check for the French e-invoicing reform (from 2026-09-01 the customer's SIREN is a mandatory invoice mention). Query: ?siren=552032534 or ?siret=55203253400041. Runs the Luhn checksum, confirms existence and active status in the official SIRENE registry, computes the FR VAT number and validates it live against VIES. Returns a single verdict: ready / not_ready / check_vat_manually (VIES flakiness never blocks the answer). 1h cache.","operationId":"route_v1_fr_invoice_ready_v1_fr_invoice_ready_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Invoice Ready V1 Fr Invoice Ready Get"},"example":{"ok":true,"data":{"siren":"552032534","checksum_valid":true,"exists":true,"active":true,"legal_name":"DANONE","vat_number":"FR27552032534","vat_status":"valid","invoice_ready":true,"verdict":"ready","details":"SIREN checksum OK, company registered and active in SIRENE, computed VAT number FR27552032534 confirmed valid by VIES.","source":"recherche-entreprises.api.gouv.fr (INSEE Sirene) + VIES REST API (European Commission); Luhn checksum and FR VAT key computed locally"}}}}}},"parameters":[{"name":"siren","in":"query","required":false,"description":"9-digit SIREN (this or siret is required)","schema":{"type":"string"}},{"name":"siret","in":"query","required":false,"description":"14-digit SIRET; the SIREN is extracted from it","schema":{"type":"string"}}]}},"/v1/fr/power-mix":{"get":{"summary":"French power grid live: demand, production mix, CO2 intensity, cross-border flows","description":"Latest observed 15-min records from RTE's eCO2mix national real-time dataset (ODRE portal, Licence Ouverte 2.0). Per record: UTC timestamp, consumption vs D/D-1 forecasts (MW), production by source (nuclear, wind, solar, hydro, gas, coal, bioenergy, storage), grid CO2 intensity (g/kWh) and commercial exchanges per border. Query: ?rows=1-12 (default 4 = last hour). 15-min cache.","operationId":"route_v1_fr_power_mix_v1_fr_power_mix_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Power Mix V1 Fr Power Mix Get"},"example":{"ok":true,"data":{"count":1,"records":[{"timestamp_utc":"2026-07-14T05:15:00+00:00","consumption_mw":37746,"forecast_d_mw":37176,"forecast_d1_mw":36700,"co2_intensity_g_kwh":39,"production_mw":{"nuclear":37611,"wind":3836,"solar":1148,"hydro":3998,"gas":3455,"fuel_oil":36,"coal":0,"bioenergy":1018,"pumped_storage":-183,"battery_storage":-9,"battery_discharge":90},"exchange_mw":{"physical_total":-13253,"england":-2316,"spain":-1000,"italy":-2500,"switzerland":-2227,"germany_belgium":-5483}}],"source":"RTE eCO2mix real-time via ODRE (Licence Ouverte 2.0, attribution RTE/ODRE)"}}}}}},"parameters":[{"name":"rows","in":"query","required":false,"description":"Number of latest 15-min records, 1-12","schema":{"type":"integer","default":4}}]}},"/v1/fr/risks":{"get":{"summary":"Natural and technological risks registered for a French commune (GeoRisques)","description":"Official risk register for any French commune from the GeoRisques GASPAR database (BRGM / Ministry of Ecological Transition, Licence Ouverte): flood, earthquake, industrial hazard, dam failure, ground movement, dangerous-goods transport, etc. Query: ?code_insee=31069 (INSEE commune code, not a postal code). Returns coded risk list with French labels. Slow-moving data, cached 7 days.","operationId":"route_v1_fr_risks_v1_fr_risks_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Risks V1 Fr Risks Get"},"example":{"ok":true,"data":{"code_insee":"31069","commune":"BLAGNAC","risk_count":5,"risks":[{"code":"11","label":"Inondation"},{"code":"112","label":"Par une crue à débordement lent de cours d'eau"},{"code":"21","label":"Risque industriel"},{"code":"211","label":"Effet thermique"},{"code":"23","label":"Rupture de barrage"}],"source":"GeoRisques GASPAR (georisques.gouv.fr, BRGM/MTE, Licence Ouverte)"}}}}}},"parameters":[{"name":"code_insee","in":"query","required":true,"description":"5-char INSEE commune code, e.g. 31069 or 2A004 (not a postal code)","schema":{"type":"string"}}]}},"/v1/fr/siret-check":{"get":{"summary":"French SIREN/SIRET checksum validation (Luhn + La Poste exception), offline","description":"Instant pre-validation of French company numbers before invoicing or costly Sirene API calls. Auto-detects SIREN (9 digits) vs SIRET (14 digits), applies the INSEE Luhn rule and the documented La Poste exception (356000000*: digit sum mod 5). Query: ?number=44306184100047 (spaces/dots/dashes tolerated). Returns valid, type, siren, nic and the rule applied. Pure offline computation, 1y cache.","operationId":"route_v1_fr_siret_check_v1_fr_siret_check_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Siret Check V1 Fr Siret Check Get"},"example":{"ok":true,"data":{"number":"44306184100047","valid":true,"type":"siret","rule":"luhn","siren":"443061841","nic":"00047","source":"offline INSEE formation rule: Luhn checksum + La Poste exception (no registry lookup)"}}}}}},"parameters":[{"name":"number","in":"query","required":true,"description":"SIREN (9 digits) or SIRET (14 digits); separators allowed","schema":{"type":"string"}}]}},"/v1/fr/supplier-risk":{"get":{"summary":"One-call risk verdict on a French supplier: existence, insolvency, VAT, sanctions","description":"One-call due diligence on a French company by SIREN or SIRET: checksum, existence and status (SIRENE), insolvency proceedings (BODACC), VAT validity (VIES) and sanctions screening across EU/OFAC/UN/UK/FR lists, condensed into a risk verdict (low, medium, high or critical) with reasons and a 0-100 score. Query: siren=NNNNNNNNN or siret=NNNNNNNNNNNNNN. Sub-checks degrade gracefully; buyers are never charged on failure.","operationId":"route_v1_fr_supplier_risk_v1_fr_supplier_risk_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Supplier Risk V1 Fr Supplier Risk Get"},"example":{"ok":true,"data":{"siren":"552032534","identifier_valid":true,"company":{"exists":true,"active":true,"legal_name":"DANONE","naf":"70.10Z"},"vat":{"number":"FR27552032534","status":"valid"},"insolvency":{"status":"checked","records_found":0},"sanctions":{"status":"checked","verdict":"no_match","match_count":0},"risk":{"level":"low","score":0,"reasons":["Registered, active, no insolvency, no sanctions match, VAT valid."]}}}}}}},"parameters":[{"name":"siren","in":"query","required":false,"description":"9-digit French SIREN","schema":{"type":"string"}},{"name":"siret","in":"query","required":false,"description":"14-digit French SIRET (SIREN is derived from it)","schema":{"type":"string"}}]}},"/v1/fr/tenders":{"get":{"summary":"French public procurement notices (BOAMP) by department and sector keyword","description":"Daily feed of French public tender notices from BOAMP (DILA official open-data portal, Licence Ouverte), newest first. Returns notice id, subject, buyer name, publication date, response deadline, market family and sector descriptors. Query: ?department=59&keyword=informatique&limit=20 (all params optional, max 50). Cached 1h - fresh enough to react on publication day.","operationId":"route_v1_fr_tenders_v1_fr_tenders_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fr Tenders V1 Fr Tenders Get"},"example":{"ok":true,"data":{"query":{"department":"59","limit":1},"total_matches":80499,"returned":1,"tenders":[{"idweb":"26-69795","objet":"MARCHE DE PRESTATIONS DE SERVICES D'ASSURANCES (6 lots)","nomacheteur":"Ville de Loos","dateparution":"2026-07-14","datelimitereponse":"2026-09-15T09:00:00+00:00","famille_libelle":"Marchés européens","code_departement":["59"],"type_marche":["SERVICES"],"descripteur_libelle":["Assurance"],"url_avis":"https://www.boamp.fr/pages/avis/?q=idweb:26-69795"}],"source":"BOAMP via DILA opendatasoft (boamp-datadila.opendatasoft.com, Licence Ouverte)"}}}}}},"parameters":[{"name":"department","in":"query","required":false,"description":"French department code, e.g. 59, 2A, 971","schema":{"type":"string"}},{"name":"keyword","in":"query","required":false,"description":"Sector keyword matched against BOAMP descriptors, e.g. informatique","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Number of notices to return (1-50)","schema":{"type":"integer","default":10}}]}},"/v1/fx/history":{"get":{"summary":"Historical ECB FX rates: single past date or daily time series since 1999","description":"European Central Bank reference exchange rates for any past date or date range (business days since 1999-01-04), via frankfurter.dev. Query: ?date=2026-05-01 for one day, or ?start=2026-05-01&end=2026-05-08 for a daily series (max 366 days), plus ?base=EUR&symbols=USD,GBP (symbols optional -> all). Series responses nest rates by date. Historical data is immutable; served with a 24h cache.","operationId":"route_v1_fx_history_v1_fx_history_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fx History V1 Fx History Get"},"example":{"ok":true,"data":{"base":"EUR","start_date":"2026-04-30","end_date":"2026-05-08","rates":{"2026-04-30":{"USD":1.1702},"2026-05-04":{"USD":1.17},"2026-05-05":{"USD":1.1686}},"source":"ECB reference rates via frankfurter.dev (business days, since 1999)"}}}}}},"parameters":[{"name":"date","in":"query","required":false,"description":"Single day YYYY-MM-DD (mutually exclusive with start/end)","schema":{"type":"string"}},{"name":"start","in":"query","required":false,"description":"Series start YYYY-MM-DD","schema":{"type":"string"}},{"name":"end","in":"query","required":false,"description":"Series end YYYY-MM-DD (default today, max 366 days after start)","schema":{"type":"string"}},{"name":"base","in":"query","required":false,"description":"Base currency code","schema":{"type":"string","default":"EUR"}},{"name":"symbols","in":"query","required":false,"description":"Comma-separated target currencies, max 12 (optional -> all)","schema":{"type":"string"}}]}},"/v1/fx/latest":{"get":{"summary":"Latest ECB reference FX rates for any base currency","description":"Latest European Central Bank reference exchange rates, normalized JSON. Query: ?base=EUR&symbols=USD,GBP,JPY (symbols optional -> all). Rates update once per working day; served with a 1h cache.","operationId":"route_v1_fx_latest_v1_fx_latest_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fx Latest V1 Fx Latest Get"},"example":{"ok":true,"data":{"base":"EUR","date":"2026-07-10","rates":{"USD":1.09,"GBP":0.85}}}}}}},"parameters":[{"name":"base","in":"query","required":false,"description":"Base currency code","schema":{"type":"string","default":"EUR"}},{"name":"symbols","in":"query","required":false,"description":"Comma-separated target currencies (optional)","schema":{"type":"string"}}]}},"/v1/fx/official":{"get":{"summary":"Official US Treasury quarterly exchange rates (~170 currencies vs USD)","description":"Official US Treasury Reporting Rates of Exchange: the legal USD conversion rates required for FBAR/8938 filings and US federal accounting, covering ~170 currencies including exotics absent from ECB feeds. Query: ?currencies=Euro Zone-Euro,Japan-Yen (optional, all if omitted) and ?date=YYYY-MM-DD (latest quarterly rate at or before that date, default today). Returns units of foreign currency per 1 USD. Source updates quarterly; served with a 7-day cache.","operationId":"route_v1_fx_official_v1_fx_official_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Fx Official V1 Fx Official Get"},"example":{"ok":true,"data":{"as_of":"2026-06-30","count":2,"rates":[{"country_currency":"Euro Zone-Euro","country":"Euro Zone","currency":"Euro","rate_per_usd":0.877,"record_date":"2026-06-30","effective_date":"2026-06-30"}],"source":"US Treasury FiscalData, Reporting Rates of Exchange (quarterly official rates, public domain)"}}}}}},"parameters":[{"name":"currencies","in":"query","required":false,"description":"Comma-separated Treasury 'Country-Currency' descriptors, max 30 (optional -> all)","schema":{"type":"string"}},{"name":"date","in":"query","required":false,"description":"YYYY-MM-DD; latest quarterly rate at or before this date (default today)","schema":{"type":"string"}}]}},"/v1/gb/carbon":{"get":{"summary":"GB grid carbon intensity (gCO2/kWh): current and 48h forecast, national or per region","description":"Carbon intensity of Great Britain's electricity grid from the official NESO Carbon Intensity API (CC BY 4.0), in half-hour periods with a low/moderate/high index. No params -> current national half-hour; ?horizon=fw24h|fw48h adds the forecast; ?region=1..17 (13=London) switches to a DNO region and includes the generation mix per fuel. 30-min upstream cadence, 30-min cache.","operationId":"route_v1_gb_carbon_v1_gb_carbon_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Gb Carbon V1 Gb Carbon Get"},"example":{"ok":true,"data":{"scope":"regional","region":{"regionid":13,"name":"London","dno":"UKPN London"},"unit":"gCO2/kWh","count":1,"periods":[{"from":"2026-07-14T05:30Z","to":"2026-07-14T06:00Z","forecast":81,"index":"low","generation_mix":{"gas":20.5,"nuclear":8.1,"wind":34.2,"solar":25.0}}],"source":"Carbon Intensity API, National Energy System Operator (NESO), CC BY 4.0"}}}}}},"parameters":[{"name":"region","in":"query","required":false,"description":"DNO regionid 1-17 (optional; 13=London)","schema":{"type":"string"}},{"name":"horizon","in":"query","required":false,"description":"Forecast window from now (optional)","schema":{"type":"string","enum":["fw24h","fw48h"]}}]}},"/v1/gb/power-demand":{"get":{"summary":"GB national electricity demand in MW, 5-minute resolution, near real time","description":"Near-real-time Great Britain national electricity demand outturn from the Elexon Insights (BMRS) open API: 5-minute MW readings sorted oldest to newest (default: last 24h = 288 points), plus a 'latest' field with the most recent value. ?last=N (1-500) sets how many recent points to return, e.g. ?last=12 = last hour. Upstream updates every ~5 min; served with a 5-min cache.","operationId":"route_v1_gb_power_demand_v1_gb_power_demand_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Gb Power Demand V1 Gb Power Demand Get"},"example":{"ok":true,"data":{"unit":"MW","resolution":"5min","count":2,"latest":{"time":"2026-07-14T05:45:00Z","demand_mw":21463},"records":[{"time":"2026-07-14T05:40:00Z","demand_mw":21180},{"time":"2026-07-14T05:45:00Z","demand_mw":21463}],"source":"Elexon Insights (BMRS) national demand outturn, open data, attribution Elexon"}}}}}},"parameters":[{"name":"last","in":"query","required":false,"description":"Return only the N most recent 5-min readings (1-500, optional)","schema":{"type":"string"}}]}},"/v1/geo/disasters":{"get":{"summary":"Active worldwide disaster alerts (cyclone, flood, quake, volcano, wildfire, drought)","description":"All currently active disaster events monitored by GDACS (European Commission JRC / UN OCHA, attribution CC-BY-style), normalized and sorted by alert score. Optional filters: ?type=TC|EQ|FL|VO|WF|DR, level=green|orange|red, bbox=min_lon,min_lat,max_lon,max_lat. Each event: type, name, Green/Orange/Red level, countries, dates, coordinates, report URL. 15 min cache.","operationId":"route_v1_geo_disasters_v1_geo_disasters_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Geo Disasters V1 Geo Disasters Get"},"example":{"ok":true,"data":{"count":1,"filters":{"type":"TC"},"events":[{"event_type":"TC","event_id":1001156,"name":"Tropical Cyclone NARI-26","alert_level":"Orange","alert_score":2,"country":"Japan","iso3":"JPN","from_date":"2026-07-10T00:00:00","to_date":"2026-07-14T06:00:00","is_current":true,"severity_text":"Tropical Storm (maximum wind speed 120 km/h)","longitude":141.9,"latitude":40.6,"report_url":"https://www.gdacs.org/report.aspx?eventid=1001156&episodeid=32&eventtype=TC"}],"source":"GDACS - Global Disaster Alert and Coordination System (EC JRC / UN OCHA), CC-BY 4.0"}}}}}},"parameters":[{"name":"type","in":"query","required":false,"description":"Event type (earthquake, cyclone, flood, volcano, wildfire, drought)","schema":{"type":"string","enum":["EQ","TC","FL","VO","WF","DR"]}},{"name":"level","in":"query","required":false,"description":"Minimum-severity color filter (exact match)","schema":{"type":"string","enum":["green","orange","red"]}},{"name":"bbox","in":"query","required":false,"description":"Geographic filter 'min_lon,min_lat,max_lon,max_lat'","schema":{"type":"string"}}]}},"/v1/geo/postal":{"get":{"summary":"Postal code lookup worldwide: code -> city/state/lat/lon, or city -> codes","description":"Postal code resolution for ~60 countries via Zippopotam.us (GeoNames data, CC BY 4.0). Forward: ?country=us&code=90210 -> place names, state, lat/lon. Reverse: ?country=us&state=ca&city=beverly hills -> matching postal codes with coordinates. Unknown codes return found=false (an explicit validation verdict). Cached 30 days.","operationId":"route_v1_geo_postal_v1_geo_postal_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Geo Postal V1 Geo Postal Get"},"example":{"ok":true,"data":{"mode":"forward","country":"United States","country_code":"US","postal_code":"90210","found":true,"count":1,"places":[{"name":"Beverly Hills","state":"California","state_code":"CA","latitude":34.0901,"longitude":-118.4065}],"source":"Zippopotam.us, data from GeoNames (CC BY 4.0, attribution required)"}}}}}},"parameters":[{"name":"country","in":"query","required":true,"description":"2-letter ISO country code, e.g. us, fr, de","schema":{"type":"string"}},{"name":"code","in":"query","required":false,"description":"Postal code to resolve (forward mode)","schema":{"type":"string"}},{"name":"state","in":"query","required":false,"description":"State/region name or code (reverse mode, with city)","schema":{"type":"string"}},{"name":"city","in":"query","required":false,"description":"City name (reverse mode, with state)","schema":{"type":"string"}}]}},"/v1/geo/quakes":{"get":{"summary":"Real-time worldwide earthquakes with tsunami flag and PAGER alert level (USGS)","description":"Latest earthquakes from the USGS real-time catalog (public domain, updated within minutes). Query: ?minmagnitude=4.5&limit=20; optional starttime/endtime (ISO 8601), geographic filter latitude+longitude+maxradiuskm, alertlevel=green|yellow|orange|red (PAGER). Returns a normalized list: magnitude, place, UTC time, coordinates, depth, tsunami flag, significance. 5 min cache.","operationId":"route_v1_geo_quakes_v1_geo_quakes_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Geo Quakes V1 Geo Quakes Get"},"example":{"ok":true,"data":{"count":1,"min_magnitude":4.5,"quakes":[{"id":"us6000rw2b","magnitude":4.9,"place":"southeast of the Loyalty Islands","time_utc":"2026-07-13T02:39:35Z","longitude":169.53,"latitude":-22.13,"depth_km":10.0,"tsunami":false,"significance":369,"url":"https://earthquake.usgs.gov/earthquakes/eventpage/us6000rw2b"}],"source":"USGS Earthquake Hazards Program (FDSN event API, public domain, real-time)"}}}}}},"parameters":[{"name":"minmagnitude","in":"query","required":false,"description":"","schema":{"type":"number","default":4.5,"minimum":-1,"maximum":10}},{"name":"limit","in":"query","required":false,"description":"","schema":{"type":"integer","default":20,"minimum":1,"maximum":100}},{"name":"starttime","in":"query","required":false,"description":"ISO 8601, e.g. 2026-07-01","schema":{"type":"string"}},{"name":"endtime","in":"query","required":false,"description":"ISO 8601, e.g. 2026-07-13","schema":{"type":"string"}},{"name":"latitude","in":"query","required":false,"description":"Center of radius filter","schema":{"type":"number"}},{"name":"longitude","in":"query","required":false,"description":"Center of radius filter","schema":{"type":"number"}},{"name":"maxradiuskm","in":"query","required":false,"description":"Radius in km around latitude/longitude","schema":{"type":"number"}},{"name":"alertlevel","in":"query","required":false,"description":"","schema":{"type":"string","enum":["green","yellow","orange","red"]}}]}},"/v1/global/leading-indicators":{"get":{"summary":"OECD Composite Leading Indicator (CLI) per country, with cycle-phase signal","description":"OECD Composite Leading Indicator (amplitude-adjusted, long-term trend = 100), the reference early signal of business-cycle turning points. Query: ?area=USA&n=6 (area codes: USA, DEU, FRA, GBR, JPN, G20...; n = last N monthly values, 1-36). Returns monthly observations plus a computed cycle_signal (expansion/downturn/slowdown/recovery). Published ~mid-month by OECD; 24h cache.","operationId":"route_v1_global_leading_indicators_v1_global_leading_indicators_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Global Leading Indicators V1 Global Leading Indicators Get"},"example":{"ok":true,"data":{"area":"USA","area_name":"United States","indicator":"composite_leading_indicator_amplitude_adjusted","trend_level":100,"frequency":"monthly","observations":[{"period":"2026-05","value":100.7588},{"period":"2026-06","value":100.8024}],"cycle_signal":"expansion","source":"OECD Composite Leading Indicators, sdmx.oecd.org (CC BY 4.0)"}}}}}},"parameters":[{"name":"area","in":"query","required":false,"description":"OECD area code (e.g. USA, DEU, G20)","schema":{"type":"string","default":"USA"}},{"name":"n","in":"query","required":false,"description":"Last N monthly observations (1-36)","schema":{"type":"integer","default":6}}]}},"/v1/global/lei":{"get":{"summary":"LEI lookup or legal-name search: entity status, jurisdiction, HQ, renewal date","description":"Legal entity reference data from the GLEIF LEI golden copy (updated daily, CC0). Direct lookup: ?lei=529900FCMZ4LKXFD0R69. Search: ?name=airbus&country=FR&limit=5. Each result: lei, legal_name, entity_status, registration_status (ISSUED/LAPSED), jurisdiction, legal_form_id, hq_city/country, next_renewal_date. 24h cache.","operationId":"route_v1_global_lei_v1_global_lei_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Global Lei V1 Global Lei Get"},"example":{"ok":true,"data":{"query":{"name":"airbus","country":"FR"},"total":15,"results":[{"lei":"529900FCMZ4LKXFD0R69","legal_name":"AIRBUS","entity_status":"ACTIVE","registration_status":"ISSUED","jurisdiction":"FR","legal_form_id":"6CHY","hq_city":"BLAGNAC","hq_country":"FR","next_renewal_date":"2026-12-05T09:23:00Z"}],"source":"GLEIF LEI Records API, golden copy (data licensed CC0)"}}}}}},"parameters":[{"name":"lei","in":"query","required":false,"description":"20-character LEI code for a direct lookup","schema":{"type":"string"}},{"name":"name","in":"query","required":false,"description":"Legal name to search (used when lei is absent)","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"2-letter legal-address country filter (optional)","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Max search results, 1-10","schema":{"type":"integer","default":5}}]}},"/v1/global/macro":{"get":{"summary":"World Bank annual macro indicators (inflation, GDP, debt) for any country","description":"Annual macroeconomic series from the World Bank Indicators API, normalized JSON. Query: ?country=USA&indicator=FP.CPI.TOTL.ZG&years=5 (ISO3 country code; common indicators: FP.CPI.TOTL.ZG inflation %, NY.GDP.MKTP.CD GDP current US$, GC.DOD.TOTL.GD.ZS gov debt %GDP, SL.UEM.TOTL.ZS unemployment %). Returns the last N years with values, newest first. 200+ countries; 24h cache.","operationId":"route_v1_global_macro_v1_global_macro_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Global Macro V1 Global Macro Get"},"example":{"ok":true,"data":{"country":"USA","country_name":"United States","indicator":"FP.CPI.TOTL.ZG","indicator_name":"Inflation, consumer prices (annual %)","last_updated":"2026-07-01","observations":[{"year":"2024","value":2.9495},{"year":"2023","value":4.1163}],"source":"World Bank Open Data (CC BY 4.0), annual series"}}}}}},"parameters":[{"name":"country","in":"query","required":false,"description":"ISO3 country code","schema":{"type":"string","default":"USA"}},{"name":"indicator","in":"query","required":false,"description":"World Bank indicator id","schema":{"type":"string","default":"FP.CPI.TOTL.ZG"}},{"name":"years","in":"query","required":false,"description":"Last N years (1-20)","schema":{"type":"integer","default":5}}]}},"/v1/hydro/river":{"get":{"summary":"Daily river discharge forecast (m3/s) for any river point, up to 210 days","description":"Daily river discharge forecast from the Copernicus GloFAS model (5 km grid) served via Open-Meteo Flood API, data CC-BY 4.0. Query: ?latitude=45.75&longitude=4.85&forecast_days=7 (1-210 days; daily=river_discharge,river_discharge_max for extra variables). Returns ISO date + m3/s arrays -- flood risk, inland shipping (Rhine/Danube) and hydropower planning. 6h cache.","operationId":"route_v1_hydro_river_v1_hydro_river_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Hydro River V1 Hydro River Get"},"example":{"ok":true,"data":{"latitude":45.775,"longitude":4.8750153,"daily_units":{"time":"iso8601","river_discharge":"m³/s"},"daily":{"time":["2026-07-13","2026-07-14","2026-07-15"],"river_discharge":[296.17,290.07,281.49]},"source":"GloFAS (Copernicus Emergency Management Service) via Open-Meteo Flood API, CC-BY 4.0"}}}}}},"parameters":[{"name":"latitude","in":"query","required":true,"description":"Latitude of a point on a river (-90..90)","schema":{"type":"number"}},{"name":"longitude","in":"query","required":true,"description":"Longitude of a point on a river (-180..180)","schema":{"type":"number"}},{"name":"daily","in":"query","required":false,"description":"Comma-separated variables, e.g. river_discharge,river_discharge_max","schema":{"type":"string","default":"river_discharge"}},{"name":"forecast_days","in":"query","required":false,"description":"","schema":{"type":"integer","default":7,"minimum":1,"maximum":210}}]}},"/v1/ie/company":{"get":{"summary":"Irish company registry lookup (CRO) by name or company number, for KYB","description":"Irish company registry search on CRO open data (opendata.cro.ie, daily snapshot of the Companies Registration Office register). Query: ?q=ryanair (full-text name search) or ?q=249885 (company number), optional limit (1-10, default 3). Returns company number, name, status, type, registration and dissolution dates, registered address, NACE code, last annual return and accounts dates. Company data only. CC-BY 4.0. 24h cache.","operationId":"route_v1_ie_company_v1_ie_company_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Ie Company V1 Ie Company Get"},"example":{"ok":true,"data":{"query":"249885","match_mode":"company_num","total_results":1,"results":[{"company_num":249885,"name":"RYANAIR HOLDINGS PUBLIC LIMITED COMPANY","status":"Normal","insolvency_signal":false,"company_type":"PLC - Public Limited Company","registration_date":"1996-06-05","address":"RYANAIR DUBLIN OFFICE, AIRSIDE BUSINESS PARK, SWORDS CO. DUBLIN, SWORDS, DUBLIN","last_annual_return_date":"2025-10-09","next_annual_return_due":"2026-10-09","last_accounts_date":"2025-03-31"}],"source":"opendata.cro.ie (Companies Registration Office Ireland, CC-BY 4.0, daily register snapshot); company data only, no personal data"}}}}}},"parameters":[{"name":"q","in":"query","required":true,"description":"Company name (full-text search) or CRO company number (digits only)","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Max results (1-10)","schema":{"type":"integer","default":3}}]}},"/v1/lei/ownership":{"get":{"summary":"Corporate ownership tree for any LEI: direct parent, ultimate parent, children","description":"Who owns whom, from the official GLEIF LEI graph (CC0 licensed, covers 2.5M+ legal entities worldwide). Query: ?lei=5493001KJTIIGC8Y1R12. Four GLEIF lookups in one call: entity name and status, declared direct parent, ultimate parent, plus the total count and a 10-entity sample of direct children. Unknown LEI returns found=false. 24h cache.","operationId":"route_v1_lei_ownership_v1_lei_ownership_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Lei Ownership V1 Lei Ownership Get"},"example":{"ok":true,"data":{"lei":"549300B56MD0ZC402L06","found":true,"name":"Bloomberg L.P.","status":"ACTIVE","direct_parent":{"lei":"549300RMUDWPHCUQNE66","name":"Bloomberg Inc."},"ultimate_parent":{"lei":"549300RMUDWPHCUQNE66","name":"Bloomberg Inc."},"children_total":27,"children_sample":[{"lei":"254900PNPB5L5VNJNS35","name":"BLOOMBERG BETA 2016 L.P."},{"lei":"254900JY1M565T6QM850","name":"Bloomberg Finance Singapore L.P."}],"source":"GLEIF (CC0)"}}}}}},"parameters":[{"name":"lei","in":"query","required":true,"description":"20-character Legal Entity Identifier (ISO 17442)","schema":{"type":"string"}}]}},"/v1/logistics/container-check":{"get":{"summary":"Validate a shipping container number (ISO 6346 structure + check digit)","description":"Offline validation of intermodal container numbers per ISO 6346: owner code, equipment category (U/J/Z), serial and check-digit verification (mod-11 with power-of-2 weights). Catches transcription errors before a booking or B/L is filed. Query: ?container=CSQU3054383. Returns valid flag, parsed parts and the computed check digit. Deterministic, cached 1 year.","operationId":"route_v1_logistics_container_check_v1_logistics_container_check_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Logistics Container Check V1 Logistics Container Check Get"},"example":{"ok":true,"data":{"container":"CSQU3054383","valid":true,"owner_code":"CSQ","category":"U","serial":"305438","check_digit":3,"computed_check_digit":3,"source":"ISO 6346 check-digit algorithm (offline, structure + checksum only)"}}}}}},"parameters":[{"name":"container","in":"query","required":true,"description":"11-character container number, e.g. CSQU3054383 (spaces tolerated)","schema":{"type":"string"}}]}},"/v1/logistics/gtin-check":{"get":{"summary":"Validate a GTIN/EAN/UPC barcode number (GS1 mod-10 check digit)","description":"Offline validation of product barcode numbers: EAN-8, UPC-A, EAN-13 and GTIN-14, using the GS1 mod-10 weighted checksum. Catches corrupted GTINs in supplier catalogs before marketplace publication (Amazon/Google reject invalid GTINs). Query: ?gtin=4006381333931. Returns valid flag, detected format, GS1 member-org prefix and the computed check digit. Deterministic, cached 1 year.","operationId":"route_v1_logistics_gtin_check_v1_logistics_gtin_check_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Logistics Gtin Check V1 Logistics Gtin Check Get"},"example":{"ok":true,"data":{"gtin":"4006381333931","valid":true,"format":"EAN-13","gs1_prefix":"400","check_digit":1,"computed_check_digit":1,"source":"GS1 mod-10 check-digit algorithm (offline, structure + checksum only)"}}}}}},"parameters":[{"name":"gtin","in":"query","required":true,"description":"Barcode number: 8, 12, 13 or 14 digits (spaces/dashes tolerated)","schema":{"type":"string"}}]}},"/v1/no/company":{"get":{"summary":"Norwegian company registry lookup (Brreg) by name or orgnr, for KYB","description":"Official Norwegian company registry (Enhetsregisteret) via data.brreg.no, Bronnoysund Register Centre. Query: ?q=equinor or ?q=923609016 (name or 9-digit orgnr), optional size (1-10, name search). Returns orgnr, legal form, NACE code, business address, registration date, employees, VAT registration, bankruptcy and liquidation flags per company. NLOD 2.0 licensed, personal data stripped. 24h cache.","operationId":"route_v1_no_company_v1_no_company_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 No Company V1 No Company Get"},"example":{"ok":true,"data":{"total_results":1,"results":[{"orgnr":"923609016","name":"EQUINOR ASA","org_form":{"code":"ASA","description":"Allmennaksjeselskap"},"natural_person":false,"nace":{"code":"06.100","description":"Utvinning av råolje"},"address":{"street":["Forusbeen 50"],"postal_code":"4035","city":"STAVANGER","municipality":"STAVANGER","country_code":"NO"},"registration_date":"1995-03-12","employees":21393,"vat_registered":true,"bankrupt":false,"under_liquidation":false,"under_forced_liquidation":false}],"source":"data.brreg.no Enhetsregisteret (Bronnoysund Register Centre, NLOD 2.0); personal contact data removed"}}}}}},"parameters":[{"name":"q","in":"query","required":true,"description":"Company name or 9-digit organisation number (orgnr)","schema":{"type":"string"}},{"name":"size","in":"query","required":false,"description":"Results per page for name search (1-10)","schema":{"type":"integer","default":3}}]}},"/v1/nordics/power-price":{"get":{"summary":"Nord Pool day-ahead electricity prices for Estonia, Finland, Latvia, Lithuania","description":"Nord Pool day-ahead electricity spot prices (EUR/MWh, 15-min resolution) for the ee, fi, lv and lt bidding zones, from the Estonian TSO Elering's open-data API. Defaults to the last 24h; ?start=&end= (ISO 8601 UTC, max 7 days) select a window, ?zone=fi filters one zone. Day-ahead prices publish once daily; served with a 1h cache.","operationId":"route_v1_nordics_power_price_v1_nordics_power_price_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Nordics Power Price V1 Nordics Power Price Get"},"example":{"ok":true,"data":{"start":"2026-07-13T09:00:00.000Z","end":"2026-07-14T09:00:00.000Z","unit":"EUR/MWh","zones":{"ee":[{"time":"2026-07-13T09:00:00Z","price_eur_mwh":17.8}],"fi":[{"time":"2026-07-13T09:00:00Z","price_eur_mwh":4.9}],"lv":[{"time":"2026-07-13T09:00:00Z","price_eur_mwh":17.8}],"lt":[{"time":"2026-07-13T09:00:00Z","price_eur_mwh":17.8}]},"source":"Nord Pool day-ahead prices via Elering open data (dashboard.elering.ee)"}}}}}},"parameters":[{"name":"zone","in":"query","required":false,"description":"Bidding zone, or all four","schema":{"type":"string","default":"all","enum":["ee","fi","lv","lt","all"]}},{"name":"start","in":"query","required":false,"description":"Window start ISO 8601 UTC (default end-24h)","schema":{"type":"string"}},{"name":"end","in":"query","required":false,"description":"Window end ISO 8601 UTC (default now)","schema":{"type":"string"}}]}},"/v1/npm/cdn-rank":{"get":{"summary":"Browser-side popularity of an npm package: jsDelivr CDN rank and trend","description":"Real browser-side adoption signal from the official jsDelivr Stats API: global CDN hit rank, rank within npm, total hits over the period, previous-period comparison and a derived trend (up/down/flat, lower rank = more popular). Query: ?pkg=react&period=week (period: day, week, month, year). Complements npm download counts; cached 6h.","operationId":"route_v1_npm_cdn_rank_v1_npm_cdn_rank_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Npm Cdn Rank V1 Npm Cdn Rank Get"},"example":{"ok":true,"data":{"package":"react","period":"week","rank":130,"type_rank":106,"total_hits":68480875,"prev_rank":127,"prev_total_hits":70187760,"trend":"down","source":"jsDelivr CDN stats (data.jsdelivr.com)"}}}}}},"parameters":[{"name":"pkg","in":"query","required":true,"description":"npm package name, e.g. react or @angular/core","schema":{"type":"string"}},{"name":"period","in":"query","required":false,"description":"Stats window","schema":{"type":"string","default":"week","enum":["day","week","month","year"]}}]}},"/v1/npm/package":{"get":{"summary":"npm package card: latest version, license, deps count, weekly downloads","description":"One merged call instead of two: latest-version metadata from the official npm registry plus last-week download count from api.npmjs.org (both live). Query: ?pkg=react (scoped names like @scope/name accepted). Returns version, license, deps_count + dependency names, engines, weekly_downloads. No personal maintainer data. 1h cache.","operationId":"route_v1_npm_package_v1_npm_package_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Npm Package V1 Npm Package Get"},"example":{"ok":true,"data":{"package":"react","version":"19.2.7","license":"MIT","description":"React is a JavaScript library for building user interfaces.","deps_count":0,"dependencies":[],"engines":{"node":">=0.10.0"},"weekly_downloads":153316909,"downloads_period":{"start":"2026-07-05","end":"2026-07-11"},"homepage":"https://react.dev/","source":"npm registry + api.npmjs.org downloads (live)"}}}}}},"parameters":[{"name":"pkg","in":"query","required":true,"description":"npm package name, e.g. react or @types/node","schema":{"type":"string"}}]}},"/v1/oecd/cpi":{"get":{"summary":"National CPI inflation (annual rate) for OECD countries: USA, GBR, JPN and more","description":"Headline national CPI, year-on-year growth rate (%), monthly, from the official OECD SDMX API (dataset DSD_PRICES@DF_PRICES_ALL). Complements Eurostat HICP with USA, GBR, JPN, CAN and other OECD economies under one methodology. Query: ?country=USA (REF_AREA code) &last_n=12 (1-24 months, default 1). Returns date-sorted observations plus the latest print; 24h cache. Recency varies by country; series older than 18 months are refused (502, not charged). Data: OECD, CC BY 4.0.","operationId":"route_v1_oecd_cpi_v1_oecd_cpi_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Oecd Cpi V1 Oecd Cpi Get"},"example":{"ok":true,"data":{"measure":"Consumer price index, all items, annual growth rate, percent","country":"FRA","country_name":"France","latest_period":"2025-12","latest_annual_rate_percent":0.9021049,"observations":[{"period":"2025-11","annual_rate_percent":0.7919967},{"period":"2025-12","annual_rate_percent":0.9021049}],"source":"OECD Data Explorer, dataset DSD_PRICES@DF_PRICES_ALL (CC BY 4.0)"}}}}}},"parameters":[{"name":"country","in":"query","required":false,"description":"OECD REF_AREA code (USA, GBR, JPN, FRA...)","schema":{"type":"string","default":"USA"}},{"name":"last_n","in":"query","required":false,"description":"Number of most recent months (1-24)","schema":{"type":"integer","default":1}}]}},"/v1/oracle/pyth":{"get":{"summary":"Pyth oracle crypto prices with confidence interval and EMA","description":"Real-time oracle prices from Pyth Network (Hermes API): aggregate price, confidence interval (uncertainty band), EMA price and publish_time per asset, all vs USD. Query: ?symbols=btc,eth,sol (1-8 of: btc, eth, sol, bnb, xrp, ada, avax, doge, link, dot, usdc, usdt). Cross-check against CEX spot to detect oracle/spot divergence. 30s cache.","operationId":"route_v1_oracle_pyth_v1_oracle_pyth_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Oracle Pyth V1 Oracle Pyth Get"},"example":{"ok":true,"data":{"pair":"USD","prices":{"btc":{"price":63045.25,"conf":27.24,"ema_price":62911.08,"publish_time":1783931590},"eth":{"price":3112.4,"conf":1.61,"ema_price":3108.9,"publish_time":1783931590}},"source":"Pyth Network via Hermes (permissionless oracle, sub-second updates)"}}}}}},"parameters":[{"name":"symbols","in":"query","required":false,"description":"Comma-separated tickers (1-8), e.g. btc,eth,sol","schema":{"type":"string","default":"btc,eth"}}]}},"/v1/pl/company":{"get":{"summary":"Polish company KYB: VAT status, verified bank accounts, KRS registry data","description":"Polish company due diligence in one call, combining Biala Lista VAT (Ministry of Finance) and the KRS court registry. Query: ?nip=7740001454 or ?krs=0000028860 (digits only). Returns VAT status, name, REGON, KRS, address, government-verified bank accounts (anti-fraud), plus legal form, capital, registration date and insolvency signals (KRS dzial 6: bankruptcy, restructuring, liquidation). Personal data stripped (GDPR). 24h cache.","operationId":"route_v1_pl_company_v1_pl_company_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Pl Company V1 Pl Company Get"},"example":{"ok":true,"data":{"nip":"7740001454","name":"ORLEN SPÓŁKA AKCYJNA","natural_person":false,"vat_status":"Czynny","vat_active":true,"regon":"610188201","krs":"0000028860","address":"CHEMIKÓW 7, 09-411 PŁOCK","vat_registration_date":"1993-07-05","bank_accounts":["40124010661111001156329830","52113000070003901111200009"],"bank_accounts_count":232,"legal_form":"SPÓŁKA AKCYJNA","capital":{"amount":1451177561.25,"currency":"PLN"},"registration_date":"2001-07-19","insolvency_signals":[],"source":"wl-api.mf.gov.pl (Biala Lista VAT, PL Ministry of Finance) + api-krs.ms.gov.pl (KRS, PL Ministry of Justice), public registry data; personal data on representatives, partners and clerks removed; sole-trader addresses withheld"}}}}}},"parameters":[{"name":"nip","in":"query","required":false,"description":"Polish tax ID (NIP), exactly 10 digits","schema":{"type":"string"}},{"name":"krs","in":"query","required":false,"description":"KRS court registry number, up to 10 digits","schema":{"type":"string"}}]}},"/v1/predict/kalshi":{"get":{"summary":"Live Kalshi event-market odds (Fed, CPI, BTC, elections) with implied probabilities","description":"Open markets on Kalshi, the CFTC-regulated US event exchange, most-traded first: ticker, title, live yes bid/ask (USD, 0-1), mid-quote implied probability, 24h volume, open interest and close time, from the public Trade API v2. Query: ?series=KXBTC (optional series_ticker filter, e.g. KXBTC, KXCPIYOY) &limit=1-25 (default 10). JSON, 5min cache. Cross-reference /v1/predict/polymarket for venue spreads.","operationId":"route_v1_predict_kalshi_v1_predict_kalshi_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Predict Kalshi V1 Predict Kalshi Get"},"example":{"ok":true,"data":{"series":"KXFED","count":1,"markets":[{"ticker":"KXFED-27MAR-T4.00","title":"Will the upper bound of the federal funds rate be above 4.00% following the Fed's Mar 17, 2027 meeting?","subtitle":"4.00%","yes_bid":0.03,"yes_ask":0.49,"implied_prob":0.26,"last_price":0.05,"volume_24h":21.0,"open_interest":1305.0,"close_time":"2027-03-17T17:55:00Z"}],"source":"Kalshi Trade API v2 (CFTC-regulated event exchange, live public quotes, prices in USD 0-1)"}}}}}},"parameters":[{"name":"series","in":"query","required":false,"description":"Kalshi series_ticker filter, e.g. KXBTC (optional)","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Markets to return","schema":{"type":"integer","default":10,"minimum":1,"maximum":25}}]}},"/v1/predict/polymarket":{"get":{"summary":"Live Polymarket odds: market-implied probabilities for crypto, politics and macro events","description":"Top open Polymarket prediction markets for a topic, ranked by 24h volume: event title, end date, and per-market outcome probabilities (0-1) with USD volume, from the public Gamma API (live on-chain odds). Query: ?tag=crypto|politics|economy|fed|... (any Polymarket tag slug) &limit=1-10 (default crypto, 5). JSON, 5min cache.","operationId":"route_v1_predict_polymarket_v1_predict_polymarket_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Predict Polymarket V1 Predict Polymarket Get"},"example":{"ok":true,"data":{"tag":"crypto","events":[{"title":"Bitcoin above ___ on July 13?","slug":"bitcoin-above-on-july-13-2026","end_date":"2026-07-13T12:00:00Z","volume_24h_usd":1801399.98,"markets":[{"question":"Bitcoin above $105,000 on July 13?","probabilities":{"Yes":0.9985,"No":0.0015},"volume_24h_usd":297988.65}]}],"source":"Polymarket Gamma API (live on-chain prediction-market odds)"}}}}}},"parameters":[{"name":"tag","in":"query","required":false,"description":"Polymarket tag slug, e.g. crypto, politics, economy","schema":{"type":"string","default":"crypto"}},{"name":"limit","in":"query","required":false,"description":"Events to return","schema":{"type":"integer","default":5,"minimum":1,"maximum":10}}]}},"/v1/pypi/package":{"get":{"summary":"PyPI package card: latest version, license, requires_python, dependencies","description":"Latest-release metadata from the official PyPI JSON API (live): version, license, requires_python compatibility, requires_dist dependency specs (max 100), yanked flag, last upload time and project URLs. Query: ?pkg=requests. No personal author/maintainer data. 1h cache.","operationId":"route_v1_pypi_package_v1_pypi_package_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Pypi Package V1 Pypi Package Get"},"example":{"ok":true,"data":{"package":"requests","version":"2.34.2","license":"Apache-2.0","summary":"Python HTTP for Humans.","requires_python":">=3.10","requires_dist":["charset_normalizer<4,>=2","idna<4,>=2.5","urllib3<3,>=1.26","certifi>=2023.5.7"],"yanked":false,"upload_time":"2026-05-14T19:25:27.735762Z","project_urls":{"Homepage":"https://requests.readthedocs.io"},"source":"PyPI JSON API (pypi.org, live)"}}}}}},"parameters":[{"name":"pkg","in":"query","required":true,"description":"PyPI package name, e.g. requests","schema":{"type":"string"}}]}},"/v1/screen/sanctions":{"get":{"summary":"Sanctions screening against EU, US OFAC, UN, UK and French lists in one call","description":"Screen a name against the five official sanctions lists (EU, US OFAC SDN, UN, UK FCDO, French asset freezes) from a snapshot refreshed daily, with per-list dates. Query: name=NAME (optional threshold=0.6-1.0, lists=eu,ofac,un,uk,fr). Returns scored matches with entity type and programs, and a verdict: match, possible_match or no_match.","operationId":"route_v1_screen_sanctions_v1_screen_sanctions_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Screen Sanctions V1 Screen Sanctions Get"},"example":{"ok":true,"data":{"query":"hezbollah","verdict":"match","match_count":1,"matches":[{"list":"eu","primary_name":"HIZBALLAH","entity_type":"entity","score":0.95}]}}}}}},"parameters":[{"name":"name","in":"query","required":true,"description":"Person or company name to screen (2-120 chars)","schema":{"type":"string"}},{"name":"threshold","in":"query","required":false,"description":"Fuzzy match threshold 0.6-1.0 as decimal (default 0.85)","schema":{"type":"string"}},{"name":"lists","in":"query","required":false,"description":"Comma-separated subset of eu,ofac,un,uk,fr (default: all)","schema":{"type":"string"}}]}},"/v1/sea/state":{"get":{"summary":"Sea-state forecast (wave height, swell, period, direction) with Mediterranean port presets","description":"Hourly sea-state forecast from Open-Meteo Marine wave models: wave height/direction/period, wind waves and swell, up to 7 days, UTC. Query: ?port=marseille|ajaccio|nice|... (12 Mediterranean presets) or ?latitude=43.3&longitude=5.4, plus ?days=1-7 (default 2). Includes a summary block (max wave height next 24h / full horizon). 1h cache. For sailing go/no-go, port ops and routing.","operationId":"route_v1_sea_state_v1_sea_state_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Sea State V1 Sea State Get"},"example":{"ok":true,"data":{"location":{"latitude":43.25,"longitude":5.375,"port":"marseille"},"summary":{"max_wave_height_m_24h":0.62,"max_wave_height_m_all":0.88,"first_hours_wave_m":[0.38,0.4,0.44,0.5,0.54,0.58]},"hourly_units":{"wave_height":"m","wave_period":"s","wave_direction":"°"},"forecast_days":2,"source":"Open-Meteo Marine (wave models ECMWF/MeteoFrance/DWD, CC-BY 4.0)"}}}}}},"parameters":[{"name":"port","in":"query","required":false,"description":"Preset Mediterranean port name (e.g. marseille, ajaccio, genoa)","schema":{"type":"string"}},{"name":"latitude","in":"query","required":false,"description":"Marine point latitude (if no port given)","schema":{"type":"number"}},{"name":"longitude","in":"query","required":false,"description":"Marine point longitude (if no port given)","schema":{"type":"number"}},{"name":"days","in":"query","required":false,"description":"Forecast days 1-7","schema":{"type":"integer","default":2}}]}},"/v1/sk/company":{"get":{"summary":"Slovak business registry lookup (RPO) by name or ICO, for KYB","description":"Official Slovak business registry (RPO) search via api.statistics.sk (Statistical Office of the SR). Query: ?q=31333532 (8-digit ICO) or ?q=eset (name; historic names also match, current-name hits rank first). Optional active_only=true, limit 1-5. Returns per entity: ICO, current name, legal form, address, source register, establishment/termination dates. Personal data of individual entrepreneurs is stripped (GDPR). 24h cache.","operationId":"route_v1_sk_company_v1_sk_company_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Sk Company V1 Sk Company Get"},"example":{"ok":true,"data":{"match_type":"ico","total_results":1,"results":[{"ico":"31333532","name":"ESET, spol. s r.o.","legal_form":{"code":"112","name":"Spoločnosť s ručením obmedzeným"},"natural_person":false,"established_on":"1992-09-17","address":{"street":"Einsteinova 24","postal_code":"85101","municipality":"Bratislava","country":"Slovenská republika"},"source_register":"Obchodný register","registration_number":"Sro/3586/B"}],"source":"api.statistics.sk RPO (Register of Legal Entities, Statistical Office of the Slovak Republic, CC BY 4.0); personal data of individuals removed"}}}}}},"parameters":[{"name":"q","in":"query","required":true,"description":"Company name (3+ chars) or ICO, the 8-digit Slovak organisation id","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Max results (1-5)","schema":{"type":"integer","default":5}},{"name":"active_only","in":"query","required":false,"description":"Only entities not yet terminated","schema":{"type":"boolean","default":false}}]}},"/v1/solar/history":{"get":{"summary":"Daily solar irradiance and climate history (NASA POWER) for any point on Earth","description":"Historical daily solar irradiance and weather series from NASA POWER for any lat/lon: ALLSKY_SFC_SW_DWN (kWh/m2/day), T2M (deg C), WS10M (m/s) and other POWER codes. Query: ?latitude=48.85&longitude=2.35&start=20260601&end=20260630&parameters=ALLSKY_SFC_SW_DWN,T2M. Coverage 1981..present (few days lag), max 366 days per call, -999 marks missing days. 24h cache. Sized for PV project due diligence, agrivoltaics and off-grid design.","operationId":"route_v1_solar_history_v1_solar_history_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Solar History V1 Solar History Get"},"example":{"ok":true,"data":{"latitude":48.85,"longitude":2.35,"start":"2026-06-01","end":"2026-06-05","units":{"ALLSKY_SFC_SW_DWN":"kW-hr/m^2/day","T2M":"C"},"fill_value":-999.0,"daily":{"ALLSKY_SFC_SW_DWN":{"20260601":7.0603,"20260602":4.3289},"T2M":{"20260601":18.41,"20260602":16.17}},"source":"NASA POWER (power.larc.nasa.gov), NASA open data"}}}}}},"parameters":[{"name":"latitude","in":"query","required":true,"description":"Latitude, decimal degrees (-90..90)","schema":{"type":"number"}},{"name":"longitude","in":"query","required":true,"description":"Longitude, decimal degrees (-180..180)","schema":{"type":"number"}},{"name":"start","in":"query","required":true,"description":"Start date YYYYMMDD (>= 19810101)","schema":{"type":"string"}},{"name":"end","in":"query","required":true,"description":"End date YYYYMMDD (max 366 days after start)","schema":{"type":"string"}},{"name":"parameters","in":"query","required":false,"description":"1-6 comma-separated NASA POWER codes","schema":{"type":"string","default":"ALLSKY_SFC_SW_DWN,T2M"}}]}},"/v1/space/kp":{"get":{"summary":"Real-time planetary K-index (geomagnetic activity) with storm flag","description":"Latest 1-minute estimated planetary Kp index from NOAA SWPC, with a boolean storm flag (estimated_kp >= threshold, default 5 = G1 storm). Query: ?last=1..60 (trailing minutes returned in 'series'), ?threshold=0..9. Signals GPS/GNSS degradation, satellite drag, HF blackouts and grid stress. 60s cache.","operationId":"route_v1_space_kp_v1_space_kp_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Space Kp V1 Space Kp Get"},"example":{"ok":true,"data":{"time_tag":"2026-07-13T08:59:00","kp_index":2,"estimated_kp":2.0,"storm":false,"threshold":5.0,"series":[{"time_tag":"2026-07-13T08:59:00","kp_index":2,"estimated_kp":2.0}],"source":"NOAA Space Weather Prediction Center (services.swpc.noaa.gov), public domain"}}}}}},"parameters":[{"name":"last","in":"query","required":false,"description":"Trailing 1-minute values to return (1-60)","schema":{"type":"integer","default":1}},{"name":"threshold","in":"query","required":false,"description":"Kp level that sets storm=true (0-9)","schema":{"type":"number","default":5}}]}},"/v1/space/launches":{"get":{"summary":"Consolidated calendar of upcoming orbital launches (windows, pads, status)","description":"Upcoming space launches worldwide from Launch Library 2 (The Space Devs): launch window (NET, window start/end), provider, pad and location, mission name/type/orbit, go/TBD status. Query: ?limit=10&search=falcon&provider=SpaceX&net_gte=2026-08-01&net_lte=2026-09-01 (all optional). Served from a 1h cache (upstream is rate-limited); count field gives the full upcoming total.","operationId":"route_v1_space_launches_v1_space_launches_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Space Launches V1 Space Launches Get"},"example":{"ok":true,"data":{"total_upcoming":364,"returned":1,"launches":[{"id":"e09f254f-18bc-4985-963e-6075fa3d7a1c","name":"Falcon 9 Block 5 | Starlink Group 15-14","provider":"SpaceX","status":"Go","net":"2026-07-14T01:28:17Z","window_start":"2026-07-14T01:16:00Z","window_end":"2026-07-14T02:16:00Z","pad":"Space Launch Complex 4E","location":"Vandenberg SFB, CA, USA","mission":"Starlink Group 15-14","mission_type":"Communications"}],"source":"Launch Library 2 by The Space Devs (thespacedevs.com)"}}}}}},"parameters":[{"name":"limit","in":"query","required":false,"description":"Number of launches to return (1-25)","schema":{"type":"integer","default":10}},{"name":"search","in":"query","required":false,"description":"Free-text filter, e.g. falcon, starlink","schema":{"type":"string"}},{"name":"provider","in":"query","required":false,"description":"Launch service provider name, e.g. SpaceX","schema":{"type":"string"}},{"name":"net_gte","in":"query","required":false,"description":"Earliest NET, ISO date(-time)","schema":{"type":"string"}},{"name":"net_lte","in":"query","required":false,"description":"Latest NET, ISO date(-time)","schema":{"type":"string"}}]}},"/v1/stables/peg":{"get":{"summary":"Stablecoin depeg monitor: market-aggregate price deviation in bps, with alert flag","description":"Depeg monitor for USD stablecoins (USDT, USDC, DAI, FDUSD, TUSD, USDe, PYUSD): DeFiLlama market-aggregate price per coin, converted to a deviation from 1.0 in basis points, with a depeg_alert flag (triggered beyond 50 bps) and the worst deviation across the set. Query: symbols=USDT,USDC,DAI (max 8, default shown). JSON, 60s cache. Derived risk signal, not a raw feed.","operationId":"route_v1_stables_peg_v1_stables_peg_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Stables Peg V1 Stables Peg Get"},"example":{"ok":true,"data":{"pegs":{"USDT":{"price":0.999316,"deviation_bps":-6.84,"depeg_alert":false},"USDC":{"price":0.999855,"deviation_bps":-1.45,"depeg_alert":false},"DAI":{"price":0.999582,"deviation_bps":-4.18,"depeg_alert":false}},"peg":"USD","max_abs_deviation_bps":6.84,"any_depeg_alert":false,"source":"DeFiLlama market-aggregate stablecoin prices (peggedUSD, live)"}}}}}},"parameters":[{"name":"symbols","in":"query","required":false,"description":"Comma-separated stablecoins from USDT, USDC, DAI, FDUSD, TUSD, USDE, PYUSD (max 8)","schema":{"type":"string","default":"USDT,USDC,DAI"}}]}},"/v1/stables/supply":{"get":{"summary":"Stablecoin circulating supply with 24h/7d/30d net mint-burn flows","description":"Circulating supply per stablecoin from DeFiLlama with computed net flows (delta_24h/delta_7d/delta_30d = net mint minus burn), peg type, peg mechanism and current price. Query: ?symbol=USDT for one asset, or ?top=10 (1-50, default 10) for the largest by supply. Served with a 30min cache.","operationId":"route_v1_stables_supply_v1_stables_supply_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Stables Supply V1 Stables Supply Get"},"example":{"ok":true,"data":{"count":1,"stablecoins":[{"name":"Tether","symbol":"USDT","peg_type":"peggedUSD","peg_mechanism":"fiat-backed","price":1.0,"circulating":184133214409.51,"delta_24h":-8993322.02,"delta_7d":512000104.33,"delta_30d":2100450900.12}],"source":"DeFiLlama (stablecoins.llama.fi)"}}}}}},"parameters":[{"name":"symbol","in":"query","required":false,"description":"Stablecoin ticker, e.g. USDT (optional)","schema":{"type":"string"}},{"name":"top","in":"query","required":false,"description":"Number of largest stablecoins to return","schema":{"type":"integer","default":10,"minimum":1,"maximum":50}}]}},"/v1/time/zone":{"get":{"summary":"Current local time, date and DST status for any IANA timezone","description":"Current wall-clock time for any IANA timezone, resolved live by timeapi.io (IANA tz database, includes DST rules). Query: ?tz=Europe/Paris (or America/New_York, Asia/Tokyo...). Returns ISO datetime, date, time, day_of_week and dst_active flag. Served with a 60s cache.","operationId":"route_v1_time_zone_v1_time_zone_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Time Zone V1 Time Zone Get"},"example":{"ok":true,"data":{"timezone":"Europe/Paris","datetime":"2026-07-13T10:28:59.264448","date":"2026-07-13","time":"10:28:59","day_of_week":"Monday","dst_active":true,"source":"timeapi.io (IANA tz database)"}}}}}},"parameters":[{"name":"tz","in":"query","required":true,"description":"IANA timezone name, e.g. Europe/Paris","schema":{"type":"string"}}]}},"/v1/uk/company":{"get":{"summary":"UK Companies House lookup: profile + officers + PSC (quasi-UBO), for KYB","description":"Official UK Companies House data in one paid call. Search: ?q=tesco returns matching companies (number, status, type, incorporation date). Profile: ?number=00445790 returns the full profile PLUS current officers and PSC (persons with significant control, the UK quasi-UBO register): names, roles, natures of control, risk flags (insolvency history, charges, overdue filings) and typed insolvency cases when history exists. Statutory register data, minimized. 24h cache.","operationId":"route_v1_uk_company_v1_uk_company_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Uk Company V1 Uk Company Get"},"example":{"ok":true,"data":{"company_number":"00445790","name":"TESCO PLC","status":"active","company_type":"plc","jurisdiction":"england-wales","incorporated_on":"1947-11-27","sic_codes":["47110"],"registered_office":{"locality":"Welwyn Garden City","postal_code":"AL7 1GA","country":"United Kingdom"},"risk_flags":{"has_insolvency_history":false,"has_charges":true,"registered_office_in_dispute":false,"accounts_overdue":false,"confirmation_statement_overdue":false},"officers":{"active_count":12,"resigned_count":89,"items":[{"name":"MURPHY, Ken","role":"director","appointed_on":"2020-10-01"}]},"psc":{"total":0,"items":[],"note":"no PSC register entries (see PSC statements on CH)"},"source":"Companies House (api.company-information.service.gov.uk), statutory UK register; officers/PSC minimized (no DOB, no personal addresses)"}}}}}},"parameters":[{"name":"q","in":"query","required":false,"description":"Company name to search","schema":{"type":"string"}},{"name":"number","in":"query","required":false,"description":"UK company number for full profile, e.g. 00445790","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Search results (1-10)","schema":{"type":"integer","default":5}}]}},"/v1/us/debt":{"get":{"summary":"Total US public debt outstanding, to the penny, updated daily","description":"Total US public debt outstanding from the official Treasury Debt to the Penny dataset (FiscalData API, published every business day ~3pm ET). Query: no params -> latest data point; ?limit=30 (1-100, newest first) and ?since=2026-01-01 (record_date floor) for history back to 1993. Returns per day the debt held by the public, intragovernmental holdings and total, in USD. Cached 6h.","operationId":"route_v1_us_debt_v1_us_debt_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Us Debt V1 Us Debt Get"},"example":{"ok":true,"data":{"count":1,"records":[{"record_date":"2026-07-09","debt_held_by_public_usd":31709399350223.4,"intragovernmental_holdings_usd":7704779665906.69,"total_public_debt_usd":39414179016130.09}],"source":"US Treasury FiscalData API, Debt to the Penny (daily on business days, public domain)"}}}}}},"parameters":[{"name":"since","in":"query","required":false,"description":"Only records with record_date >= this ISO date","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Max records, newest first (1-100)","schema":{"type":"integer","default":1}}]}},"/v1/us/sec-fundamentals":{"get":{"summary":"Official XBRL fundamentals for any US-listed company, from SEC EDGAR","description":"As-filed XBRL fundamentals for any SEC-registered company, straight from the EDGAR companyconcept API (updated as filings are accepted). Query: ?cik=320193 (Apple) &tag=Revenues|Assets|NetIncomeLoss|EntityCommonStockSharesOutstanding... &taxonomy=us-gaap|dei (default us-gaap) &limit=N most recent facts per unit (1-40, default 8). Each fact carries period, value, fiscal year/period, form type and filing date, grouped by unit (USD, shares...). Served with a 12h cache.","operationId":"route_v1_us_sec_fundamentals_v1_us_sec_fundamentals_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Us Sec Fundamentals V1 Us Sec Fundamentals Get"},"example":{"ok":true,"data":{"cik":320193,"entity":"Apple Inc.","taxonomy":"us-gaap","tag":"Revenues","label":"Revenues","units":{"USD":[{"start":"2017-10-01","end":"2018-09-29","value":265595000000,"fy":2018,"fp":"FY","form":"10-K","filed":"2018-11-05"}]},"source":"SEC EDGAR XBRL companyconcept API (US federal data, public domain)"}}}}}},"parameters":[{"name":"cik","in":"query","required":true,"description":"SEC Central Index Key, 1-10 digits (e.g. 320193 = Apple)","schema":{"type":"string"}},{"name":"tag","in":"query","required":true,"description":"XBRL concept, e.g. Revenues, Assets, NetIncomeLoss","schema":{"type":"string"}},{"name":"taxonomy","in":"query","required":false,"description":"","schema":{"type":"string","default":"us-gaap","enum":["us-gaap","dei"]}},{"name":"limit","in":"query","required":false,"description":"Most recent facts per unit (1-40)","schema":{"type":"string","default":"8"}}]}},"/v1/us/treasury-rates":{"get":{"summary":"Average interest rates paid on US Treasury securities, by security type","description":"Monthly average interest rates the US Treasury pays on its outstanding securities, from the official FiscalData API (Average Interest Rates dataset, updated monthly). Query: ?security=Treasury Bills (exact security_desc, optional; e.g. Treasury Notes, Treasury Bonds) &since=2026-01-01 (optional record_date floor) &limit=12 (1-100, newest first). Returns record_date, security type/name and avg rate in percent. Cached 24h.","operationId":"route_v1_us_treasury_rates_v1_us_treasury_rates_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Us Treasury Rates V1 Us Treasury Rates Get"},"example":{"ok":true,"data":{"count":2,"rates":[{"record_date":"2026-06-30","security_type":"Marketable","security":"Treasury Bills","avg_interest_rate_pct":3.706},{"record_date":"2026-05-31","security_type":"Marketable","security":"Treasury Bills","avg_interest_rate_pct":3.741}],"source":"US Treasury FiscalData API, Average Interest Rates on Treasury Securities (monthly, public domain)"}}}}}},"parameters":[{"name":"security","in":"query","required":false,"description":"Exact security_desc filter, e.g. Treasury Bills","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"Only records with record_date >= this ISO date","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Max records, newest first (1-100)","schema":{"type":"integer","default":12}}]}},"/v1/us/wx-alerts":{"get":{"summary":"Active official US weather alerts (tornado, flood, fire...) by state or GPS point","description":"Active weather alerts from the US National Weather Service (NOAA, public domain, real-time feed). Query: ?area=CA (2-letter state code) or ?point=34.05,-118.24; optional severity=Extreme|Severe|Moderate|Minor and event='Tornado Warning'. Returns up to 50 normalized alerts: event, severity, urgency, headline, affected areas, onset/expiry. count=0 means no active alert matches. 2 min cache.","operationId":"route_v1_us_wx_alerts_v1_us_wx_alerts_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Us Wx Alerts V1 Us Wx Alerts Get"},"example":{"ok":true,"data":{"count":1,"truncated":false,"filters":{"area":"CA","severity":"Severe"},"alerts":[{"event":"Heat Advisory","severity":"Severe","urgency":"Expected","certainty":"Likely","headline":"Heat Advisory issued July 13 at 2:57PM PDT","area_desc":"San Gorgonio Pass Near Banning","onset":"2026-07-13T14:57:00-07:00","expires":"2026-07-14T20:00:00-07:00","sender":"NWS San Diego CA","description":"* WHAT...Temperatures up to 106 expected..."}],"source":"US National Weather Service (api.weather.gov, NOAA, public domain, real-time)"}}}}}},"parameters":[{"name":"area","in":"query","required":false,"description":"2-letter US state or marine area code (e.g. CA)","schema":{"type":"string"}},{"name":"point","in":"query","required":false,"description":"GPS point 'lat,lon' (alternative to area)","schema":{"type":"string"}},{"name":"severity","in":"query","required":false,"description":"","schema":{"type":"string","enum":["Extreme","Severe","Moderate","Minor","Unknown"]}},{"name":"event","in":"query","required":false,"description":"Exact event name, e.g. 'Tornado Warning'","schema":{"type":"string"}}]}},"/v1/validate/bic":{"get":{"summary":"BIC/SWIFT code validation: ISO 9362 structure + real ISO country code, offline","description":"Deterministic BIC/SWIFT check before an international payment: ISO 9362 structure (4-letter bank, 2-letter country, 2-char location, optional 3-char branch) plus a real ISO 3166-1 country-code verification. Query: ?bic=BNPAFRPP or ?bic=DEUTDEFF500. Returns valid, parsed parts and is_test_bic (8th char '0'). Pairs with /v1/validate/iban for country-consistency checks. Pure offline computation, 1y cache.","operationId":"route_v1_validate_bic_v1_validate_bic_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Validate Bic V1 Validate Bic Get"},"example":{"ok":true,"data":{"bic":"BNPAFRPP","valid":true,"bank_code":"BNPA","country":"FR","location":"PP","is_test_bic":false,"source":"offline ISO 9362 structure check + ISO 3166-1 country table (no SWIFT directory lookup)"}}}}}},"parameters":[{"name":"bic","in":"query","required":true,"description":"BIC/SWIFT code, 8 or 11 characters","schema":{"type":"string"}}]}},"/v1/validate/email":{"get":{"summary":"Email deliverability verdict: RFC syntax check + live MX lookup (no SMTP handshake)","description":"One-call email verification for lead qualification and list hygiene: RFC 5322 syntax check, then a live MX lookup over DNS-over-HTTPS (Cloudflare, Google fallback). Detects non-existent domains (NXDOMAIN), null-MX domains that refuse mail (RFC 7505), and returns prioritized MX hosts. Query: ?email=someone@example.com. Verdict: deliverable | risky | undeliverable. 1h cache per address.","operationId":"route_v1_validate_email_v1_validate_email_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Validate Email V1 Validate Email Get"},"example":{"ok":true,"data":{"email":"contact@anthropic.com","domain":"anthropic.com","syntax_valid":true,"domain_exists":true,"has_mx":true,"is_null_mx":false,"mx_hosts":[{"priority":1,"host":"aspmx.l.google.com"}],"verdict":"deliverable","source":"live MX lookup via Cloudflare 1.1.1.1 DoH (Google DNS fallback)"}}}}}},"parameters":[{"name":"email","in":"query","required":true,"description":"Email address to verify (max 254 chars)","schema":{"type":"string"}}]}},"/v1/validate/iban":{"get":{"summary":"IBAN validation: format, country length and mod-97 checksum (ISO 13616)","description":"Deterministic IBAN check before a SEPA/international transfer: format regex, per-country length (public SWIFT registry, ~85 countries) and ISO 7064 mod-97 checksum. Query: ?iban=FR1420041010050500013M02606 (spaces/dashes tolerated). Returns valid, country, bban, and a precise failure reason. Pure offline computation, 1y cache.","operationId":"route_v1_validate_iban_v1_validate_iban_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Validate Iban V1 Validate Iban Get"},"example":{"ok":true,"data":{"iban":"FR1420041010050500013M02606","valid":true,"country":"FR","check_digits":"14","bban":"20041010050500013M02606","source":"offline ISO 13616 / ISO 7064 mod 97-10 validation (SWIFT registry lengths)"}}}}}},"parameters":[{"name":"iban","in":"query","required":true,"description":"IBAN to validate (spaces and dashes allowed)","schema":{"type":"string"}}]}},"/v1/validate/isin":{"get":{"summary":"ISIN validation: ISO 6166 structure + Luhn base-36 checksum, offline","description":"Deterministic ISIN check before routing an order or paying a market-data API: structure regex (2-letter country or XS/EU, 9-char NSIN, check digit) and the Luhn checksum over the base-36 expansion. Query: ?isin=US0378331005. Returns valid, country_code, nsin, check_digit and is_international. A corrupted ISIN means a rejected order or the wrong instrument. Pure offline computation, 1y cache.","operationId":"route_v1_validate_isin_v1_validate_isin_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Validate Isin V1 Validate Isin Get"},"example":{"ok":true,"data":{"isin":"US0378331005","valid":true,"country_code":"US","nsin":"037833100","check_digit":"5","is_international":false,"source":"offline ISO 6166 structure + Luhn base-36 checksum (no securities reference data)"}}}}}},"parameters":[{"name":"isin","in":"query","required":true,"description":"ISIN to validate, 12 characters","schema":{"type":"string"}}]}},"/v1/validate/lei":{"get":{"summary":"LEI checksum validation (ISO 17442, mod-97), offline -- no registry lookup","description":"Deterministic Legal Entity Identifier check for regulatory reporting pipelines (EMIR, MiFID II require a valid LEI per counterparty): structure regex and ISO 7064 mod 97-10 checksum over the 20-char code. Query: ?lei=HWUPKR0MPOU8FGXBT394. Returns valid, lou_prefix, entity_part and a failure reason. Filters typos before hitting the GLEIF registry (see /v1/global/lei for the live record). Pure offline, 1y cache.","operationId":"route_v1_validate_lei_v1_validate_lei_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Validate Lei V1 Validate Lei Get"},"example":{"ok":true,"data":{"lei":"HWUPKR0MPOU8FGXBT394","valid":true,"lou_prefix":"HWUP","entity_part":"KR0MPOU8FGXBT3","check_digits":"94","source":"offline ISO 17442 structure + ISO 7064 mod 97-10 checksum (no GLEIF lookup)"}}}}}},"parameters":[{"name":"lei","in":"query","required":true,"description":"LEI to validate, 20 characters","schema":{"type":"string"}}]}},"/v1/vehicle/vin":{"get":{"summary":"Decode any VIN to vehicle specs (make, model, engine, plant) via NHTSA vPIC","description":"Decodes a Vehicle Identification Number through the official US regulator's vPIC database (public domain): make, model, year, body class, engine, transmission, GVWR and assembly plant. Query: ?vin=1HGCM82633A004352 (partial VINs with '*' accepted, optional &model_year=2003). error_code/error_text carry vPIC's structural verdict. Static reference data, 24h cache.","operationId":"route_v1_vehicle_vin_v1_vehicle_vin_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Vehicle Vin V1 Vehicle Vin Get"},"example":{"ok":true,"data":{"vin":"1HGCM82633A004352","make":"HONDA","model":"Accord","model_year":"2003","manufacturer":"AMERICAN HONDA MOTOR CO., INC.","vehicle_type":"PASSENGER CAR","body_class":"Coupe","doors":"2","fuel_type":"Gasoline","engine_cylinders":"6","displacement_l":"2.998832712","engine_hp":"240","transmission":"Automatic","gvwr":"Class 1C: 4,001 - 5,000 lb (1,814 - 2,268 kg)","trim":"EX-V6","plant":{"city":"MARYSVILLE","state":"OHIO","country":"UNITED STATES (USA)"},"error_code":"0","error_text":"0 - VIN decoded clean. Check Digit (9th position) is correct","source":"NHTSA vPIC (US DOT), public domain"}}}}}},"parameters":[{"name":"vin","in":"query","required":true,"description":"VIN, 5-17 chars; '*' wildcard allowed for partial VINs","schema":{"type":"string"}},{"name":"model_year","in":"query","required":false,"description":"Model year hint to improve decoding (optional)","schema":{"type":"string"}}]}},"/v1/vol/dvol":{"get":{"summary":"Crypto implied volatility: Deribit DVOL index level, 24h change and historical percentile","description":"Deribit DVOL index (30-day annualized implied volatility from the options order book) for BTC or ETH, delivered as a risk signal: current level, 24h change, and min/max/percentile over a lookback window. Query: ?asset=BTC|ETH&window=7d|30d|90d (defaults BTC, 30d). JSON, 5min cache. Derived from Deribit public volatility-index candles.","operationId":"route_v1_vol_dvol_v1_vol_dvol_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Vol Dvol V1 Vol Dvol Get"},"example":{"ok":true,"data":{"asset":"BTC","dvol":38.14,"change_24h":-0.33,"window":"30d","window_percentile":4.6,"window_min":36.13,"window_max":53.19,"as_of":"2026-07-13T10:00:00+00:00","source":"Deribit DVOL implied volatility index (public API, 30-day annualized IV)"}}}}}},"parameters":[{"name":"asset","in":"query","required":false,"description":"Underlying asset","schema":{"type":"string","default":"BTC","enum":["BTC","ETH"]}},{"name":"window","in":"query","required":false,"description":"Lookback window for percentile and range","schema":{"type":"string","default":"30d","enum":["7d","30d","90d"]}}]}},"/v1/world/holidays":{"get":{"summary":"Official public holidays for any country and year (100+ countries)","description":"Full list of official public holidays for one country and year, from the Nager.Date registry (100+ countries, legally accurate dates). Query: ?country=FR (ISO 3166-1 alpha-2, required) &year=2026 (1975-2077, defaults to current year). Returns date, English + local name, nationwide flag, regional counties and holiday types per entry. Cached 24h.","operationId":"route_v1_world_holidays_v1_world_holidays_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 World Holidays V1 World Holidays Get"},"example":{"ok":true,"data":{"country":"FR","year":2026,"count":11,"holidays":[{"date":"2026-01-01","local_name":"Jour de l'an","name":"New Year's Day","nationwide":true,"types":["Public"]}],"source":"Nager.Date public holidays API (date.nager.at, open-source MIT project)"}}}}}},"parameters":[{"name":"country","in":"query","required":true,"description":"ISO 3166-1 alpha-2 country code, e.g. FR","schema":{"type":"string"}},{"name":"year","in":"query","required":false,"description":"Year between 1975 and 2077 (default: current year)","schema":{"type":"integer"}}]}},"/v1/wx/forecast":{"get":{"summary":"Hourly weather forecast (up to 16 days) for any coordinates worldwide","description":"Hourly weather forecast for any point on Earth from Open-Meteo (blend of ECMWF/GFS/ICON models, refreshed hourly; data CC-BY 4.0). Query: ?latitude=48.8566&longitude=2.3522&hourly=temperature_2m,precipitation,wind_speed_10m&forecast_days=2 (1-16 days, ~80 hourly variables available, optional daily= aggregates and timezone=auto). ISO 8601 time arrays + units. 15 min cache.","operationId":"route_v1_wx_forecast_v1_wx_forecast_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"title":"Response Route V1 Wx Forecast V1 Wx Forecast Get"},"example":{"ok":true,"data":{"latitude":48.86,"longitude":2.36,"elevation_m":36.0,"timezone":"UTC","hourly_units":{"time":"iso8601","temperature_2m":"°C","precipitation":"mm","wind_speed_10m":"km/h"},"hourly":{"time":["2026-07-13T00:00","2026-07-13T01:00"],"temperature_2m":[17.9,17.4],"precipitation":[0.0,0.0],"wind_speed_10m":[8.7,7.9]},"source":"Open-Meteo.com weather forecast API, data CC-BY 4.0 (models updated hourly)"}}}}}},"parameters":[{"name":"latitude","in":"query","required":true,"description":"Latitude in decimal degrees (-90..90)","schema":{"type":"number"}},{"name":"longitude","in":"query","required":true,"description":"Longitude in decimal degrees (-180..180)","schema":{"type":"number"}},{"name":"hourly","in":"query","required":false,"description":"Comma-separated hourly variables","schema":{"type":"string","default":"temperature_2m,precipitation,wind_speed_10m"}},{"name":"forecast_days","in":"query","required":false,"description":"","schema":{"type":"integer","default":2,"minimum":1,"maximum":16}},{"name":"daily","in":"query","required":false,"description":"Optional comma-separated daily aggregates","schema":{"type":"string"}},{"name":"timezone","in":"query","required":false,"description":"IANA timezone or 'auto'","schema":{"type":"string","default":"UTC"}}]}},"/":{"get":{"summary":"Index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Index  Get"}}}}},"security":[]}},"/x402-manifest":{"get":{"summary":"Manifest","operationId":"manifest_x402_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Manifest X402 Manifest Get"}}}}},"security":[]}},"/.well-known/x402":{"get":{"summary":"Manifest","operationId":"manifest__well_known_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Manifest  Well Known X402 Get"}}}}},"security":[]}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Health Health Get"}}}}},"security":[]}},"/agent-status":{"get":{"summary":"Agent Status","operationId":"agent_status_agent_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Agent Status Agent Status Get"}}}}},"security":[]}}}}