{"openapi":"3.1.0","info":{"title":"Base Token Check","version":"1.0.0","x-guidance":"Pay-per-call facts APIs over x402 v2 (USDC on Base, scheme exact). Every paid route answers an unpaid request with a 402 quote; retry with the payment header. Failed or empty answers are non-2xx and never charged. Start with GET /v1/recommend?need=<task> ($0.005) to find which x402 API (ours or anyone's) fits a task; GET / lists every route with an example body."},"paths":{"/iban":{"post":{"summary":"Iban","operationId":"iban_iban_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IbanRequest"},"example":{"iban":"DE89 3704 0044 0532 0130 00"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs IBAN validation before saving bank details, invoicing or a payout: structure, mod-97 and national BBAN checksum where defined, plus country, bank code, account code, bank name, BIC and SEPA membership. Offline registry, instant. Checks structure, not whether the account exists. $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/phone":{"post":{"summary":"Phone","operationId":"phone_phone_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneRequest"},"example":{"number":"+44 20 7946 0018"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs phone number validation for CRM, KYC or calling: valid/possible, E.164 and national formats, country, type (mobile, fixed line, toll-free, VoIP...), original carrier, location and time zones, for any number worldwide. Offline, instant. $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/email":{"post":{"summary":"Email","operationId":"email_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRequest"},"example":{"email":"support@github.com"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs email validation before sending or saving a signup: RFC syntax and normalisation, live DNS (domain exists, MX, accepts mail, null MX), disposable-domain and role-account (info@, support@) flags. No SMTP probing and no mail sent, so it cannot prove a mailbox exists. $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/fx":{"post":{"summary":"Fx","operationId":"fx_fx_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FxRequest"},"example":{"amount":100.0,"from":"USD","to":"JPY"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs currency conversion at official European Central Bank reference rates for pricing, invoicing, travel budgets or accounting: ~30 currencies, latest or any day in the last 90 days, with the publication date used and exact decimal results. $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/vat":{"post":{"summary":"Vat","operationId":"vat_vat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VatRequest"},"example":{"vat_number":"IE6388047V"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs EU VAT number validation for B2B invoicing, KYB or onboarding: offline format and check-digit test plus a live European Commission VIES lookup returning registration status, company name and address. Busy or offline member states return 503 and are not charged. $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/weather":{"post":{"summary":"Weather","operationId":"weather_weather_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeatherRequest"},"example":{"lat":42.6977,"lon":23.3219,"days":2}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs a weather forecast for a latitude/longitude: current conditions plus up to 7 local-day summaries (min/max temperature, precipitation, max wind, weather symbol) in the local time zone. Data from MET Norway (CC BY 4.0). $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/sun":{"post":{"summary":"Sun","operationId":"sun_sun_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SunRequest"},"example":{"lat":41.9029,"lon":12.4534,"date":"2026-12-21"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs sunrise and sunset times for coordinates and a date: solar noon, civil dawn/dusk, morning and evening golden hour and day length in local time; polar day/night flagged. Offline astronomy. $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/domain":{"post":{"summary":"Domain","operationId":"domain_domain_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainRequest"},"example":{"domain":"www.github.com"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs the age and WHOIS (RDAP) record of a domain, e.g. to spot freshly registered domains, qualify leads or vet links: registered or not, creation and expiry dates, age in days, registrar, EPP status codes, nameservers and DNSSEC. Accepts hosts like www.example.co.uk. $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/lei":{"post":{"summary":"Lei","operationId":"lei_lei_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeiRequest"},"example":{"lei":"7LTWFZYICNSX8D621K86"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs an LEI lookup for KYB, onboarding or counterparty checks: from the official GLEIF index, by 20-char LEI get legal name, status, jurisdiction, legal and HQ address, registration dates, corroboration level and direct/ultimate parent; or search by company name (up to 5 candidates). $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/sanctions":{"post":{"summary":"Sanctions","operationId":"sanctions_sanctions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SanctionsRequest"},"example":{"name":"Banco Nacional de Cuba","min_score":88}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs sanctions screening of a person, company, vessel or aircraft name: fuzzy match against the US Treasury OFAC SDN list incl. aliases (refreshed every 6 h), with matched entries, score, type, programs and remarks, plus the closest near-miss score. OFAC SDN only (no EU/UN lists). $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/business-days":{"post":{"summary":"Business Days","operationId":"business_days_business_days_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DaysRequest"},"example":{"country":"BG","start":"2026-12-21","end":"2027-01-08"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs public holidays and a business-day count for a date range in any of 200+ countries (and subdivisions), e.g. for deadlines, delivery dates, travel or scheduling: holiday names, weekend rule, business days and next business day. $0.01 USDC on Base; charged only on 2xx, never for invalid input."}},"/v1/recommend":{"get":{"summary":"Recommend Route","operationId":"recommend_route_v1_recommend_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"description":"Use when an agent must find which x402 API to call: takes need (the task in words) and returns the top-k paid endpoints (url, method, price, network, 30-day on-chain buyers, live-402 probe, risk flags, score) ranked over the x402-list.com catalog (CC BY 4.0) and sellers' own 402s. Own listings use the same formula. No match = 404. $0.005 USDC on Base; charged only on 2xx, never for invalid input.","parameters":[{"name":"need","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":200},"example":"honeypot check base token","description":"What you want to do, in plain words, e.g. 'web search' or 'IBAN validation'"},{"name":"max_price","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d+(\\.\\d+)?$"},"example":"0.05","description":"Max price per call in USD (default 0.05)"},{"name":"network","in":"query","required":false,"schema":{"type":"string"},"example":"eip155:8453","description":"CAIP-2 payment network (default eip155:8453) or 'any'"},{"name":"k","in":"query","required":false,"schema":{"type":"string","pattern":"^([1-9]|10)$"},"example":"5","description":"Number of picks, 1-10 (default 5)"}]}},"/v1/recommend/preview":{"get":{"summary":"Preview Route","operationId":"preview_route_v1_recommend_preview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/v1/router/stats":{"get":{"summary":"Stats Route","operationId":"stats_route_v1_router_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/":{"get":{"summary":"Info","operationId":"info__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Info  Get"}}}}},"security":[]}},"/check":{"post":{"summary":"Check","operationId":"check_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckRequest"},"example":{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"description":"Use when an agent needs raw facts about a Base ERC-20 contract, not a verdict: name, symbol, decimals, totalSupply, EIP-1967 proxy status, owner() and mint/pause/blacklist selectors in bytecode. Facts only, no ratings. $0.01 USDC on Base; charged only on 2xx, never for invalid input."}}},"components":{"schemas":{"CheckRequest":{"properties":{"token":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","title":"Token","description":"Base mainnet contract address"}},"type":"object","required":["token"],"title":"CheckRequest"},"DaysRequest":{"properties":{"country":{"type":"string","pattern":"^[A-Za-z]{2}$","title":"Country","description":"ISO 3166-1 alpha-2 country code"},"start":{"type":"string","format":"date","title":"Start","description":"First day of the range (inclusive), YYYY-MM-DD"},"end":{"type":"string","format":"date","title":"End","description":"Last day of the range (inclusive), YYYY-MM-DD"},"subdivision":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9-]{1,10}$"},{"type":"null"}],"title":"Subdivision","description":"Optional ISO 3166-2 subdivision, e.g. CA"}},"type":"object","required":["country","start","end"],"title":"DaysRequest"},"DomainRequest":{"properties":{"domain":{"type":"string","maxLength":253,"minLength":3,"title":"Domain","description":"Domain or host name, e.g. www.example.com"}},"type":"object","required":["domain"],"title":"DomainRequest"},"EmailRequest":{"properties":{"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email","description":"Email address to check"}},"type":"object","required":["email"],"title":"EmailRequest"},"FxRequest":{"properties":{"amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string"}],"title":"Amount","description":"Amount in the source currency"},"from":{"type":"string","pattern":"^[A-Za-z]{3}$","title":"From","description":"ISO 4217 code, e.g. USD"},"to":{"type":"string","pattern":"^[A-Za-z]{3}$","title":"To","description":"ISO 4217 code, e.g. EUR"},"date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date","description":"Optional YYYY-MM-DD, last 90 days"}},"type":"object","required":["amount","from","to"],"title":"FxRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IbanRequest":{"properties":{"iban":{"type":"string","pattern":"^[A-Za-z0-9 ]{5,50}$","title":"Iban","description":"IBAN, spaces allowed"}},"type":"object","required":["iban"],"title":"IbanRequest"},"LeiRequest":{"properties":{"lei":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9 ]{20,24}$"},{"type":"null"}],"title":"Lei","description":"20-character LEI code"},"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Name","description":"Legal name to search for"}},"type":"object","title":"LeiRequest"},"PhoneRequest":{"properties":{"number":{"type":"string","pattern":"^[0-9+()\\-. ]{3,40}$","title":"Number","description":"Phone number, ideally in +E.164 form"},"default_region":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}],"title":"Default Region","description":"ISO country used when the number has no +prefix"}},"type":"object","required":["number"],"title":"PhoneRequest"},"SanctionsRequest":{"properties":{"name":{"type":"string","maxLength":200,"minLength":3,"title":"Name","description":"Person, company, vessel or aircraft name"},"entity_type":{"anyOf":[{"type":"string","enum":["individual","entity","vessel","aircraft"]},{"type":"null"}],"title":"Entity Type","description":"Optional filter on the SDN entry type"},"min_score":{"type":"integer","maximum":100.0,"minimum":70.0,"title":"Min Score","description":"Minimum similarity score 70-100","default":88}},"type":"object","required":["name"],"title":"SanctionsRequest"},"SunRequest":{"properties":{"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat","description":"Latitude in decimal degrees (WGS84)"},"lon":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lon","description":"Longitude in decimal degrees (WGS84)"},"date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date","description":"YYYY-MM-DD; default: today locally"}},"type":"object","required":["lat","lon"],"title":"SunRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VatRequest":{"properties":{"vat_number":{"type":"string","pattern":"^[A-Za-z]{2}[A-Za-z0-9 .\\-]{2,20}$","title":"Vat Number","description":"EU VAT number with country prefix, e.g. IE6388047V"}},"type":"object","required":["vat_number"],"title":"VatRequest"},"WeatherRequest":{"properties":{"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat","description":"Latitude in decimal degrees (WGS84)"},"lon":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lon","description":"Longitude in decimal degrees (WGS84)"},"days":{"type":"integer","maximum":7.0,"minimum":1.0,"title":"Days","description":"Number of local calendar days to summarise (1-7)","default":3}},"type":"object","required":["lat","lon"],"title":"WeatherRequest"}}}}