eudata402 — EU Data & Inference API

Machine-payable endpoints for AI agents: official EU company & procurement data plus the cheapest LLM inference on x402. No accounts, no API keys — every request is paid per call in USDC on Base via the x402 protocol (HTTP 402 challenge → pay → response).

Endpoints

EndpointPriceWhat it does
POST /summarize$0.02Tight factual summary of raw text/HTML. POST {text, focus?}. Returns {summary, key_facts[]}.
POST /extract$0.02Structured JSON extraction from messy text/HTML. POST {text, fields[]}. Returns {data}.
POST /kyb$0.10KYB / counterparty due diligence in ONE call: sanctions screening + EU VAT validation + LEI + entity + IBAN, fused into one decision. Give any of {country+vat, lei, name, iban}. Screens OFAC SDN, OFAC Consolidated and UK OFSI sanctions lists, validates VAT against official EU VIES, checks GLEIF LEI status, resolves the public entity record and verifies the IBAN checksum. Returns verdict pass/review/fail with confidence and flags.
POST /sanctions$0.02Sanctions screening: check any person or company name against official OFAC SDN, OFAC Consolidated (US Treasury) and UK OFSI sanctions lists. POST {name}. Returns {hit, risk: clear|review|high, matches:[{name, list, program}], lists_screened}. Use for AML/KYC/KYB compliance before onboarding, paying or transacting with a counterparty. Lists refresh every 12h from the official sources.
POST /vat$0.02Validate an EU VAT number and get the registered company name + address — official European Commission VIES data, all 27 EU member states. Use to verify a business is VAT-registered, resolve a company name from its VAT id, or check a counterparty before invoicing. POST {country, vat}. Returns {valid, name, address}.
POST /tenders$0.02EU public procurement search (official TED data, newest first). POST {query, limit?}. Returns {total, tenders: [{id, title, published, url}]}.
POST /chat$0.005Flat-price multi-model LLM gateway: pick any of 60+ budget models (DeepSeek, Llama, Qwen, Gemma, Mistral, Phi, GPT-OSS...) at one price — see GET /models. POST {prompt|messages, model?, max_tokens?, temperature?}. Returns {model, text, usage}. Default DeepSeek V4 Flash. Failed/over-tier requests are never charged.
POST /lei$0.01Global Legal Entity Identifier (LEI) lookup — official GLEIF registry. POST {query} = a 20-char LEI code OR a company legal name. Returns {matches: [{lei, name, status, country, city, jurisdiction}]}.
POST /fx$0.005Foreign-exchange reference rates (official ECB data via Frankfurter) + optional conversion. POST {from, to, amount?}. Returns {base, date, rates, converted?}.
POST /weather$0.005Global weather by city name (Open-Meteo) — current conditions + up to 7-day forecast. POST {city, days?}. Returns {location, current, forecast[]}.
POST /iban$0.003IBAN validation (ISO 13616 + mod-97 checksum, 70+ countries). POST {iban}. Returns {valid, country, bban?, reason?}.
POST /crypto$0.005Current crypto token price by chain + contract address (official DefiLlama, keyless — price-by-contract is key-gated elsewhere). POST {chain, address}. Returns {symbol, price_usd, decimals, confidence}.
POST /btc$0.003Bitcoin network data (mempool.space): recommended fee tiers, or a tx / address lookup. POST {kind?: fees|tx|address, id?}. Returns fee tiers or the tx/address object.
POST /geoip$0.002IP geolocation + ASN + ISP/org (ipwho.is). POST {ip}. Returns {country, city, latitude, longitude, asn, org, isp}.
POST /entity$0.01Entity/company resolution with cross-linked identifiers (Wikidata). POST {query}. Returns {id, label, description, identifiers: {lei, isin, ticker, website, country, inception}}.
POST /quakes$0.005Real-time earthquakes (official USGS FDSN). POST {minmagnitude?, starttime?, endtime?, limit?}. Returns {count, quakes: [{magnitude, place, time, depth_km, lat, lon, tsunami}]}.
POST /treasury$0.01US Treasury official exchange rates (fiscaldata.treasury.gov) — complements ECB /fx with US-side rates. POST {country, currency}. Returns {exchange_rate, record_date}.

How to buy (for agents)

POST /vat  →  HTTP 402 + payment-required header (price, payTo, network eip155:8453)
sign USDC payment  →  retry with payment header  →  HTTP 200 + JSON

Any x402-compatible client works, e.g. @x402/fetch:

const fetchPay = wrapFetchWithPayment(fetch, client);
await fetchPay("/vat", {method:"POST", headers:{"Content-Type":"application/json"},
  body: JSON.stringify({"country": "LT", "vat": "119511515"})});

Data sources & terms

Company data: official European Commission VIES service. Procurement data: official EU Tenders Electronic Daily (TED). Inference: DeepSeek V4 Flash. Responses are provided as-is; no personal-data processing — legal-entity and public-journal data only. Abuse (illegal content, PII harvesting) is refused and logged. Payments are final per call; failed responses are never charged.