{"openapi":"3.1.0","info":{"title":"Toll402","version":"0.2.0","description":"The OpenRouter for AI-agent tools: one gateway, one wallet, every capability. Built-in tools, forged tools, a global verified business directory and 2,000+ aggregated x402 services, all paid per call in USDC via x402 (HTTP 402). No signup, no API key.","contact":{"name":"Toll402","url":"https://toll402.dev","email":"rikrdo.martz@gmail.com"},"x-llms-txt":"https://toll402.dev/llms.txt"},"servers":[{"url":"https://toll402.dev"}],"paths":{"/v1/read":{"post":{"operationId":"read_url","summary":"Fetch any public web page (or PDF) and return clean, LLM-ready Markdown with title, metadata and links. Boilerplate, ads and scripts removed.","tags":["web","scraping","markdown","reader"],"x-price":"$0.002","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL to read","format":"uri"},"format":{"type":"string","enum":["markdown","text","both"],"default":"markdown","description":"Which body format(s) to return"},"includeLinks":{"type":"boolean","default":true},"includeImages":{"type":"boolean","default":false},"maxChars":{"type":"integer","minimum":500,"maximum":500000,"default":200000,"description":"Truncate body to this many characters"}},"required":["url"],"additionalProperties":false},"example":{"url":"https://en.wikipedia.org/wiki/HTTP_402"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"read_url","ms":420,"result":{"url":"https://en.wikipedia.org/wiki/HTTP_402","title":"HTTP 402","markdown":"# HTTP 402\n\n...","wordCount":812,"links":[{"text":"x402","href":"https://x402.org"}]}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/pdf":{"post":{"operationId":"pdf_to_text","summary":"Download a PDF from a URL and return its full text, page count and title.","tags":["pdf","documents","text"],"x-price":"$0.005","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL of a PDF file","format":"uri"},"maxChars":{"type":"integer","minimum":500,"maximum":1000000,"default":300000}},"required":["url"],"additionalProperties":false},"example":{"url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"pdf_to_text","ms":420,"result":{"url":"...","pages":1,"text":"Dummy PDF file","wordCount":3}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/email/verify":{"post":{"operationId":"verify_email","summary":"Validate an email address: syntax, MX/A records, disposable-domain, free-provider and role-account detection, with a 0-100 score.","tags":["email","validation","leads"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"Email address to verify","minLength":3,"maxLength":254}},"required":["email"],"additionalProperties":false},"example":{"email":"support@github.com"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"verify_email","ms":420,"result":{"email":"support@github.com","valid":true,"hasMx":true,"disposable":false,"roleAccount":true,"score":95}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/fx":{"post":{"operationId":"fx_rate","summary":"Exchange rate between two ISO currencies (ECB reference rates), optionally converting an amount.","tags":["finance","currency","fx"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","maxLength":3,"minLength":3,"default":"USD","description":"ISO 4217 base currency"},"quote":{"type":"string","maxLength":3,"minLength":3,"description":"ISO 4217 quote currency; omit for all rates"},"amount":{"type":"number","minimum":0,"default":1}},"additionalProperties":false},"example":{"base":"USD","quote":"MXN","amount":100}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"fx_rate","ms":420,"result":{"base":"USD","quote":"MXN","rate":18.42,"amount":100,"converted":1842,"date":"2026-09-05"}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/extract":{"post":{"operationId":"extract_structured","summary":"Turn a web page or raw text into JSON that matches YOUR JSON Schema. LLM-powered, schema-constrained output — no parsing needed.","tags":["extraction","llm","json","scraping"],"x-price":"$0.06","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Page to read and extract from"},"text":{"type":"string","maxLength":400000,"description":"Raw text/markdown/HTML to extract from (alternative to url)"},"schema":{"type":"object","additionalProperties":true,"description":"JSON Schema (object) describing the output you want"},"instructions":{"type":"string","maxLength":4000,"description":"Extra guidance, e.g. 'prices in USD', 'dates as ISO 8601'"}},"required":["schema"],"additionalProperties":false},"example":{"url":"https://news.ycombinator.com","schema":{"type":"object","properties":{"stories":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"points":{"type":"integer"}}}}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"extract_structured","ms":420,"result":{"data":{"stories":[{"title":"Show HN: ...","points":120}]},"usage":{"inputTokens":5400,"outputTokens":320}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/summarize":{"post":{"operationId":"summarize","summary":"Faithful summary of a URL or text in the style, length and language you choose.","tags":["summarization","llm","reading"],"x-price":"$0.05","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"text":{"type":"string","maxLength":400000},"style":{"type":"string","enum":["bullets","paragraph","tldr","detailed"],"default":"bullets"},"maxWords":{"type":"integer","minimum":20,"maximum":1500,"default":200},"language":{"type":"string","maxLength":40,"default":"same as source","description":"Output language, e.g. 'es', 'en'"},"focus":{"type":"string","maxLength":1000,"description":"What to focus on"}},"additionalProperties":false},"example":{"url":"https://en.wikipedia.org/wiki/HTTP_402","style":"tldr","language":"es"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"summarize","ms":420,"result":{"summary":"HTTP 402 es un código de estado reservado para pagos...","title":"HTTP 402"}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/judge":{"post":{"operationId":"judge_output","summary":"Independent LLM-as-judge: scores a candidate output against a task and criteria (0-100), with pass/fail, issues and suggestions. Use it for self-verification, best-of-N, or QA gates.","tags":["evaluation","llm","quality","judge"],"x-price":"$0.07","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"task":{"type":"string","description":"The task/instructions the candidate was supposed to fulfil","maxLength":20000},"candidate":{"type":"string","description":"The output to evaluate","maxLength":100000},"reference":{"type":"string","maxLength":100000,"description":"Optional gold/reference answer"},"criteria":{"type":"array","items":{"type":"string","maxLength":300},"minItems":1,"maxItems":10,"default":["correctness","completeness","clarity"]}},"required":["task","candidate"],"additionalProperties":false},"example":{"task":"Write a haiku about the sea","candidate":"Waves fold into foam / salt wind combs the sleeping dunes / gulls stitch the grey sky","criteria":["is a haiku (5-7-5)","imagery"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"judge_output","ms":420,"result":{"overall":88,"pass":true,"scores":[{"criterion":"is a haiku (5-7-5)","score":90,"rationale":"..."}],"issues":[],"suggestions":[]}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/provenance":{"post":{"operationId":"provenance","summary":"Human or synthetic? Provenance evidence for a URL: archive first-capture date, domain age, authorship markup, curated source tier, AI disclosures and stylometric signals, aggregated into a calibrated 0-100 human-origin score with every piece of evidence. Add deep=true for an LLM stylometric assessment.","tags":["provenance","ai-detection","human","synthetic","trust","curation"],"x-price":"$0.01","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL to assess","format":"uri"},"deep":{"type":"boolean","default":true,"description":"Also run an LLM stylometric assessment (only when the server has an LLM key)"}},"required":["url"],"additionalProperties":false},"example":{"url":"https://en.wikipedia.org/wiki/Turing_test","deep":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"provenance","ms":420,"result":{"humanOriginScore":82,"verdict":"likely_human","confidence":0.9,"firstArchived":"2003-05-12T00:00:00Z","source":{"tier":1},"evidence":[{"signal":"wayback_first_capture","value":"2003-05-12T00:00:00Z","direction":"human"}]}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/lookup":{"post":{"operationId":"trusted_lookup","summary":"Answer from TRUSTED sources only (Wikipedia, Wikidata, arXiv, Crossref/DOI, World Bank): returns passages with URL, reliability tier and retrieval time for citation. With synthesize=true you also get an LLM answer that cites the passages and admits when they don't contain the answer.","tags":["research","facts","citations","trusted","reference","science","curation"],"x-price":"$0.01","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Question or topic","minLength":2,"maxLength":500},"language":{"type":"string","maxLength":10,"default":"en","description":"Wikipedia language edition (en, es, de, fr, pt, ...)"},"sources":{"type":"array","items":{"type":"string","enum":["wikipedia","wikidata","arxiv","crossref","worldbank"]},"default":["wikipedia","wikidata","arxiv","crossref"]},"maxPassages":{"type":"integer","minimum":1,"maximum":20,"default":6},"synthesize":{"type":"boolean","default":true,"description":"Return a cited answer synthesized by an LLM (when the server has an LLM key)"}},"required":["query"],"additionalProperties":false},"example":{"query":"HTTP 402 payment required","language":"en","sources":["wikipedia","wikidata"],"synthesize":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"trusted_lookup","ms":420,"result":{"passages":[{"source":"wikipedia","tier":1,"title":"List of HTTP status codes","url":"https://en.wikipedia.org/wiki/List_of_HTTP_status_codes","snippet":"...","retrievedAt":"2026-09-07T00:00:00Z"}]}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/biz/search":{"post":{"operationId":"business_search","summary":"Global business directory for agents (any city in the world; unknown cities are seeded on demand). Search by city, country, category, text or proximity; every result carries a dated verification score (0-100), level (unverified/listed/corroborated/verified/owner_verified) and, on request, the evidence behind it. Open data + live checks + owner claims, never scraped review sites.","tags":["business","directory","local","places","verified","trust","curation","global","worldwide"],"x-price":"$0.005","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","maxLength":200,"description":"Free text: name, cuisine, service…"},"category":{"type":"string","enum":["restaurant","cafe","bar","bakery","hotel","travel","car_rental","pharmacy","clinic","dentist","veterinary","optician","lawyer","notary","accountant","insurance","real_estate","architect","it_services","company","wholesale","manufacturing","agriculture","medical_supply","import_export","packaging","chemicals","textiles","construction_materials","machinery","marketing","consulting","finance","coworking","recruiting","logistics","engineering","bank","atm","school","museum","entertainment","gym","salon","supermarket","hardware","electronics","clothing","jewelry","furniture","bookstore","florist","pet","sports","gifts","department_store","auto","laundry","printing","trades","post","government","religion","childcare","other"],"description":"One of: restaurant, cafe, bar, bakery, hotel, travel, car_rental, pharmacy, clinic, dentist, veterinary, optician, lawyer, notary, accountant, insurance, real_estate, architect, it_services, company, wholesale, manufacturing, agriculture, medical_supply, import_export, packaging, chemicals, textiles, construction_materials, machinery, marketing, consulting, finance, coworking, recruiting, logistics, engineering, bank, atm, school, museum, entertainment, gym, salon, supermarket, hardware, electronics, clothing, jewelry, furniture, bookstore, florist, pet, sports, gifts, department_store, auto, laundry, printing, trades, post, government, religion, childcare, other"},"city":{"type":"string","maxLength":80,"description":"City label, e.g. 'Ciudad de México'"},"cityKey":{"type":"string","maxLength":60,"description":"Coverage key, e.g. 'cdmx' or one returned in `coverage` (see GET /v1/biz/coverage)"},"country":{"type":"string","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2"},"near":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"radiusKm":{"type":"number","minimum":0.1,"maximum":50,"default":3}},"required":["lat","lon"],"additionalProperties":false},"minScore":{"type":"integer","minimum":0,"maximum":100,"default":0,"description":"Only businesses with verification score ≥ this"},"minLevel":{"type":"string","enum":["unverified","listed","corroborated","verified","owner_verified"]},"claimedOnly":{"type":"boolean","default":false},"includeEvidence":{"type":"boolean","default":false},"limit":{"type":"integer","minimum":1,"maximum":50,"default":10},"offset":{"type":"integer","minimum":0,"default":0},"hasWebsite":{"type":"boolean","description":"Only businesses with a website"},"hasEmail":{"type":"boolean","description":"Only businesses with an email (mostly from official registries)"},"hasPhone":{"type":"boolean"},"minEmployees":{"type":"integer","minimum":0,"maximum":251,"description":"Minimum staff size from official registry bands (6, 11, 31, 51, 101, 251). Great for B2B supplier searches."},"enrichedOnly":{"type":"boolean","description":"Only businesses whose own website has been crawled and summarized (services, prices, booking, social)"},"diversify":{"type":"boolean","default":true,"description":"Collapse chains: at most one result per website domain"},"channel":{"type":"string","enum":["whatsapp","email","instagram","facebook","linkedin","booking","contactForm","telegram"],"description":"Only businesses with this contact channel found on their own website or open data"}},"additionalProperties":false},"example":{"cityKey":"cdmx","category":"dentist","minLevel":"corroborated","limit":5}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"business_search","ms":420,"result":{"total":120,"items":[{"id":"osm:node/123","name":"Clínica Dental Roma","category":"dentist","location":{"city":"Ciudad de México"},"contact":{"phone":"+5255...","website":"https://..."},"verification":{"score":68,"level":"corroborated","lastVerifiedAt":"2026-09-07T00:00:00Z"}}]}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/biz/verify":{"post":{"operationId":"business_verify","summary":"Is this business real, and is its contact info live? Give an id, website, phone or name: matches it against the directory and runs live checks now (site up, name on site, phone on site, domain age, phone format). Returns evidence, score and verdict.","tags":["business","verify","fraud","trust","local"],"x-price":"$0.01","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","maxLength":120,"description":"Business id from search (re-runs live checks now)"},"name":{"type":"string","maxLength":200},"website":{"type":"string","maxLength":300},"phone":{"type":"string","maxLength":40},"address":{"type":"string","maxLength":300},"city":{"type":"string","maxLength":80},"country":{"type":"string","maxLength":2,"minLength":2}},"additionalProperties":false},"example":{"name":"Wikimedia Foundation","website":"https://wikimediafoundation.org","phone":"+14158396885"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"business_verify","ms":420,"result":{"inDirectory":false,"liveChecks":{"score":45,"level":"listed","evidence":[{"signal":"website_live","value":200,"weight":20}]},"verdict":"Not in directory; live checks scored 45/100"}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/biz/details":{"post":{"operationId":"business_details","summary":"Deep profile of a business from its OWN website: crawls up to 5 relevant pages (menu, services, prices, hours, contact, booking) and returns a machine-readable profile — summary, hours (OSM syntax), services with prices, booking channels, payments, languages, social links. First-party data only, cached 30 days per business (force=true re-crawls).","tags":["business","profile","menu","services","hours","local"],"x-price":"$0.08","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Business id from business_search","maxLength":120},"force":{"type":"boolean","default":false,"description":"Re-crawl even if a fresh (≤30 days) profile is cached"}},"required":["id"],"additionalProperties":false},"example":{"id":"wd:Q180"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"business_details","ms":420,"result":{"business":{"id":"wd:Q180","name":"Wikimedia Foundation","verification":{"score":80,"level":"verified"}},"enrichment":{"summary":"…","booking":{"email":"info@wikimedia.org","phone":"+1-415-839-6885"},"pagesCrawled":["https://wikimediafoundation.org/","https://wikimediafoundation.org/contact/"],"source":"own_website","costUsd":0.025},"cached":false}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/biz/shortlist":{"post":{"operationId":"business_shortlist","summary":"Sourcing for agents whose principal is launching or buying something: describe the need (\"opening a coffee brand in Monterrey, need packaging suppliers and a designer\") and get a ranked shortlist of real businesses with a reason, fit score, best contact channel, staff size from official registries, verification level and website summary when curated. Covers each role in the need and says what is missing.","tags":["business","sourcing","suppliers","vendors","shortlist","b2b","directory","launch"],"x-price":"$0.25","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"need":{"type":"string","description":"What you are trying to do and what kind of businesses you need","minLength":8,"maxLength":600},"city":{"type":"string","minLength":2,"maxLength":80},"country":{"type":"string","maxLength":2,"minLength":2,"description":"ISO-3166 alpha-2, e.g. MX"},"limit":{"type":"integer","minimum":3,"maximum":10,"default":6},"minEmployees":{"type":"integer","minimum":0,"maximum":251},"requireWebsite":{"type":"boolean","default":false}},"required":["need","city"],"additionalProperties":false},"example":{"need":"Opening a specialty coffee shop, need coffee roasters and a commercial kitchen equipment supplier","city":"Guadalajara","country":"MX","limit":6}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"business_shortlist","ms":420,"result":{"city":"Guadalajara","shortlist":[{"role":"coffee roaster","fit":82,"why":"Verified roaster with wholesale page","bestContact":"email","business":{"name":"…"}}],"gaps":null}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/listings":{"post":{"operationId":"list_service","summary":"Buy a verified listing for YOUR x402 endpoint, remote MCP server or A2A agent — paid by the agent in USDC, no humans. We probe it live (402 shape / MCP handshake / agent card); if it passes, it is listed for 30 days in the Toll402 catalog, llms.txt, agent card and landing, and ranked higher in /v1/find and the /v1/do router. basic $1 · featured $5 (top of results). Charged only when verification passes. Free quote: POST /v1/listings/quote.","tags":["marketplace","listing","directory","advertise","mcp","x402","agents"],"x-price":"$1","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["x402","mcp","agent"],"description":"x402 = HTTP endpoint that answers 402; mcp = remote MCP server (Streamable HTTP); agent = A2A agent card URL"},"url":{"type":"string","description":"The endpoint / MCP URL / agent-card URL","format":"uri"},"tier":{"type":"string","enum":["basic","featured"],"default":"basic","description":"basic $1/30 days · featured $5/30 days (top of results, landing spotlight)"},"name":{"type":"string","minLength":2,"maxLength":80},"description":{"type":"string","minLength":20,"maxLength":600},"tags":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":10,"default":[]},"owner":{"type":"string","maxLength":80,"description":"Your wallet (0x) for attribution and future creator payouts"},"contact":{"type":"string","maxLength":120,"description":"Email or URL where we can reach you (not published)"}},"required":["kind","url"],"additionalProperties":false},"example":{"kind":"x402","url":"https://api.example.com/v1/quote","tier":"basic","tags":["finance"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"list_service","ms":420,"result":{"listed":true,"listing":{"id":"l/abc123","kind":"x402","tier":"basic","listedUntil":"2026-10-09T00:00:00Z"}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/forge":{"post":{"operationId":"forge_tool","summary":"Create a NEW tool from a description, an input schema and test examples. The code is generated, run in a sandbox against your examples (up to 3 attempts), and on success published as a paid endpoint /v1/t/<name> for every agent. Infinite tools, on demand.","tags":["forge","create","marketplace","codegen","custom"],"x-price":"$0.25","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Tool name (becomes the endpoint slug)","minLength":3,"maxLength":40},"description":{"type":"string","description":"What the tool does, precisely. Mention data sources (public URLs/APIs without keys) if any.","minLength":20,"maxLength":1000},"inputSchema":{"type":"object","additionalProperties":true,"description":"JSON Schema (type object) for the input"},"outputSchema":{"type":"object","additionalProperties":true,"description":"JSON Schema for the output (recommended)"},"examples":{"type":"array","items":{"type":"object","properties":{"input":{"type":"object","additionalProperties":true},"expectedOutput":{}},"required":["input"],"additionalProperties":false},"description":"Test cases; the tool must pass them to be published","minItems":1,"maxItems":5},"allowNetwork":{"type":"boolean","default":true,"description":"Whether the tool may call public HTTP endpoints"},"priceUsd":{"type":"number","minimum":0.001,"maximum":0.05,"default":0.005,"description":"Price per call for other agents (you never pay to use your own tool's endpoint less than this either)"},"tags":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":8,"default":[]},"creator":{"type":"string","maxLength":80,"description":"Your wallet address or agent id, for attribution"}},"required":["name","description","inputSchema","examples"],"additionalProperties":false},"example":{"name":"hn_top","description":"Return the top N Hacker News story titles and URLs from https://hacker-news.firebaseio.com/v0/topstories.json and /v0/item/<id>.json","inputSchema":{"type":"object","properties":{"n":{"type":"integer"}},"required":["n"]},"examples":[{"input":{"n":3}}],"priceUsd":0.005}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"forge_tool","ms":420,"result":{"published":true,"tool":{"name":"hn_top","url":"https://toll402.dev/v1/t/hn_top","price":"$0.005"},"attempts":1}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/do":{"post":{"operationId":"do","summary":"One endpoint for everything (OpenRouter-style): describe what you need and pass the input; Toll402 picks the best tool from the whole catalog (built-in, community-forged, external x402 services) and runs it. Tools priced above maxPriceUsd are returned as a match instead of executed.","tags":["router","gateway","auto","any"],"x-price":"$0.02","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"need":{"type":"string","description":"What you need, in plain language","minLength":3,"maxLength":500},"input":{"type":"object","additionalProperties":true,"description":"Input for the chosen tool (must match its schema)"},"maxPriceUsd":{"type":"number","minimum":0,"maximum":1,"default":0.01,"description":"Do not execute tools priced above this; return the match instead"},"tool":{"type":"string","description":"Force a specific tool id (skip routing)"}},"required":["need","input"],"additionalProperties":false},"example":{"need":"convert 100 US dollars to Mexican pesos","input":{"base":"USD","quote":"MXN","amount":100}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"do","ms":420,"result":{"executed":true,"tool":{"name":"fx_rate","price":"$0.001"},"result":{"converted":1842}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/ip_geolocate":{"post":{"operationId":"ip_geolocate","summary":"Country, region, city, timezone and ASN for an IPv4/IPv6 address via https://ipapi.co/<ip>/json/","tags":["network","geo"],"x-price":"$0.002","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ip":{"type":"string"}},"required":["ip"]},"example":{"ip":"8.8.8.8"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ip_geolocate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/hn_top":{"post":{"operationId":"hn_top","summary":"Top N Hacker News stories (title, url, score) via https://hacker-news.firebaseio.com/v0/topstories.json and /v0/item/<id>.json","tags":["news","hackernews"],"x-price":"$0.005","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"n":{"type":"integer","minimum":1,"maximum":30}},"required":["n"]},"example":{"n":3}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"hn_top","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/wikipedia_summary":{"post":{"operationId":"wikipedia_summary","summary":"Summary extract and canonical URL for a Wikipedia topic via https://<lang>.wikipedia.org/api/rest_v1/page/summary/<title>","tags":["reference","wikipedia"],"x-price":"$0.002","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"lang":{"type":"string","default":"en"}},"required":["title"]},"example":{"title":"HTTP 402"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"wikipedia_summary","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/text_stats":{"post":{"operationId":"text_stats","summary":"Word/sentence/paragraph counts, reading time (200 wpm), top 10 keywords (stopwords removed) for a text","tags":["text","nlp"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]},"example":{"text":"Agents pay agents. Agents build tools for agents."}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"text_stats","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/json_schema_validate":{"post":{"operationId":"json_schema_validate","summary":"Validate a JSON value against a JSON Schema subset (type, properties, required, enum, minimum/maximum, minLength/maxLength, items) and return errors","tags":["json","validation"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"type":"object"},"value":{}},"required":["schema","value"]},"example":{"schema":{"type":"object","properties":{"a":{"type":"integer"}},"required":["a"]},"value":{"a":"x"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"json_schema_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/rss_latest":{"post":{"operationId":"rss_latest","summary":"Parse an RSS/Atom feed URL and return the latest N items (title, link, published)","tags":["rss","news","feeds"],"x-price":"$0.003","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"n":{"type":"integer","default":10}},"required":["url"]},"example":{"url":"https://hnrss.org/frontpage","n":3}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rss_latest","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/url_status":{"post":{"operationId":"url_status","summary":"HTTP status, final content-type and response size for a URL (HEAD then GET fallback)","tags":["web","monitoring"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"url_status","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/crypto_price":{"post":{"operationId":"crypto_price","summary":"Spot price in USD for a crypto asset symbol using https://api.coinbase.com/v2/prices/<SYMBOL>-USD/spot","tags":["crypto","price","finance"],"x-price":"$0.002","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbol":{"type":"string"}},"required":["symbol"]},"example":{"symbol":"ETH"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"crypto_price","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/npm_package_info":{"post":{"operationId":"npm_package_info","summary":"Latest version, description, license, weekly downloads (via api.npmjs.org) and homepage for an npm package","tags":["npm","code"],"x-price":"$0.003","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"example":{"name":"hono"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"npm_package_info","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/github_repo_stats":{"post":{"operationId":"github_repo_stats","summary":"Stars, forks, open issues, license and last push for a GitHub repo via https://api.github.com/repos/<owner>/<repo>","tags":["github","code"],"x-price":"$0.003","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"}},"required":["owner","repo"]},"example":{"owner":"coinbase","repo":"x402"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"github_repo_stats","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cik_validate":{"post":{"operationId":"cik_validate","summary":"Offline validator/normalizer for an SEC EDGAR CIK (Central Index Key). Checks that the input is numeric-only with 1-10 digits, and returns a zero-padded 10-digit normalized form suitable for EDGAR URLs (e.g. https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=<normalized>).","tags":["validator","sec","edgar","finance","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cik":{"type":"string","description":"CIK value, digits only, 1-10 characters"}},"required":["cik"],"additionalProperties":false},"example":{"cik":"320193"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cik_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cedula_ec_validate":{"post":{"operationId":"cedula_ec_validate","summary":"Offline validator for Ecuador's Cédula de identidad (national ID): checks 10-digit format, province code (01-24 or 30) in positions 1-2, third digit in 0-5, and the modulus-10 check digit computed from the first 9 digits using alternating weights (2,1,2,1,2,1,2,1,2) with the subtract-9 rule for products over 9.","tags":["validator","ecuador","cedula","id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"10-digit Ecuadorian cedula number, digits only or with spaces/dashes"}},"required":["id"],"additionalProperties":false},"example":{"id":"1710034065"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cedula_ec_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/rut_validate":{"post":{"operationId":"rut_validate","summary":"Offline validator for a Chilean RUT/RUN (Rol Único Tributario / Rol Único Nacional). Strips dots and dashes, computes the Módulo 11 check digit using weights 2-7 cycling right to left over the numeric base (11→0, 10→K), and compares it against the supplied check digit.","tags":["chile","rut","run","validator","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rut":{"type":"string","description":"RUT/RUN string, e.g. '12.345.678-5' or '12345678-5'"}},"required":["rut"],"additionalProperties":false},"example":{"rut":"12345678-5"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rut_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/rfc_validate":{"post":{"operationId":"rfc_validate","summary":"Offline validator for a Mexican RFC (Registro Federal de Contribuyentes). Checks the format for persona física (4 letters + 6-digit date + 3-char homoclave) or persona moral (3 letters + 6-digit date + 3-char homoclave), verifies the embedded date is a real calendar date, and returns the parsed birth/incorporation date. Pure string/date logic, no network calls.","tags":["mexico","rfc","validation","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}},"example":{}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rfc_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/phone_e164_normalize":{"post":{"operationId":"phone_e164_normalize","summary":"Offline normalizer/validator for phone numbers to E.164 format. Detects country from a leading '+' calling code or an optional defaultCountry (ISO2) hint, and checks the national number length against a basic rules table for LatAm, US/CA, EU (ES,PT,FR,DE,IT,GB). No network calls; approximate validation only (length-based, not full carrier rules).","tags":["phone","validation","e164","normalization","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"phone":{"type":"string","description":"Phone number, digits with optional +, spaces, dashes, parentheses"},"defaultCountry":{"type":"string","description":"ISO2 country code to assume if phone has no country code, e.g. US, BR, MX"}},"required":["phone"],"additionalProperties":false},"example":{"phone":"+5511987654321"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"phone_e164_normalize","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/siren_validate":{"post":{"operationId":"siren_validate","summary":"Offline validator for a French SIREN (9-digit business identifier). Normalizes input (strips spaces/dashes), verifies the Luhn checksum (doubling every second digit from the right, summing digits, total divisible by 10), and flags the known La Poste exception (SIREN 356000000) which is a legitimately assigned number.","tags":["validator","france","siren","business-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"siren":{"type":"string","description":"9-digit French SIREN, spaces/dashes allowed"}},"required":["siren"]},"example":{"siren":"552081317"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"siren_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/geo_distance_bearing":{"post":{"operationId":"geo_distance_bearing","summary":"Computes great-circle distance in kilometers and initial compass bearing in degrees between two lat/lon points using the haversine formula. Optionally returns an approximate bounding box (min/max lat/lon) around the first point for a given radius in km. Offline, no network access.","tags":["geo","distance","bearing","haversine","math"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lat1":{"type":"number","minimum":-90,"maximum":90},"lon1":{"type":"number","minimum":-180,"maximum":180},"lat2":{"type":"number","minimum":-90,"maximum":90},"lon2":{"type":"number","minimum":-180,"maximum":180},"radiusKm":{"type":"number","minimum":0}},"required":["lat1","lon1","lat2","lon2"]},"example":{"lat1":0,"lon1":0,"lat2":0,"lon2":1}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"geo_distance_bearing","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/iban_validate":{"post":{"operationId":"iban_validate","summary":"Offline validator for an IBAN: checks structure, country-specific length, and the mod-97 checksum per ISO 7064. Returns validity, ISO country code, check digits and the BBAN (Basic Bank Account Number).","tags":["iban","finance","validation","banking","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"iban":{"type":"string","description":"IBAN string, spaces allowed"}},"required":["iban"]},"example":{"iban":"DE89 3704 0044 0532 0130 00"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"iban_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/robots_txt_check":{"post":{"operationId":"robots_txt_check","summary":"Fetches https://<domain>/robots.txt for a given site URL and determines whether a specified user-agent is allowed to crawl a given path, per the parsed rules. Returns allowed/disallowed status, matched rule, crawl-delay (if any) and list of Sitemap URLs declared in the file.","tags":["robots","seo","crawling","compliance"],"x-price":"$0.002","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Site URL or domain, e.g. https://example.com"},"userAgent":{"type":"string","description":"User-agent token to check rules for","default":"*"},"path":{"type":"string","description":"URL path to test, e.g. /some/page","default":"/"}},"required":["url"]},"example":{"url":"https://httpbin.org","userAgent":"*","path":"/deny"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"robots_txt_check","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/email_list_validate":{"post":{"operationId":"email_list_validate","summary":"Validates a list of email addresses offline: checks syntax, extracts domain, flags likely disposable domains against a static known-list, marks duplicates (case-insensitive), and returns per-email results plus summary counts.","tags":["email","validation","dedupe","offline","batch"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":500}},"required":["emails"],"additionalProperties":false},"example":{"emails":["John.Doe@Example.com","john.doe@example.com","bad-email","user@mailinator.com"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"email_list_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/rodne_cislo_validate":{"post":{"operationId":"rodne_cislo_validate","summary":"Offline validator for a Czech/Slovak rodné číslo (birth number). Normalizes input to YYMMDD/XXXX or YYMMDDXXX(X), checks the calendar-valid month/day (accounting for the +50 female and +20/70 post-2004 month offsets), and for 10-digit numbers confirms the full digit string (slash removed) is evenly divisible by 11. No network calls.","tags":["validator","czech","slovak","national-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"Rodné číslo, with or without slash, e.g. 900101/0007"}},"required":["value"],"additionalProperties":false},"example":{"value":"900101/0007"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rodne_cislo_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/geocode_address":{"post":{"operationId":"geocode_address","summary":"Geocode a free-text address or place name to up to 3 candidate locations (latitude, longitude, display name, OSM type/class) using https://nominatim.openstreetmap.org/search with format=jsonv2 and a descriptive User-Agent.","tags":["geocoding","osm","nominatim","location","address"],"x-price":"$0.003","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Free-text address or place name to geocode"},"limit":{"type":"integer","minimum":1,"maximum":3,"default":3}},"required":["query"]},"example":{"query":"Eiffel Tower, Paris, France","limit":1}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"geocode_address","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/reverse_geocode":{"post":{"operationId":"reverse_geocode","summary":"Reverse-geocodes a latitude/longitude pair to a human-readable address using https://nominatim.openstreetmap.org/reverse (format=jsonv2). Returns the display name plus structured address components (road, city, state, country, postcode).","tags":["geocoding","location","openstreetmap","nominatim"],"x-price":"$0.002","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"zoom":{"type":"integer","minimum":0,"maximum":18,"default":18}},"required":["lat","lon"]},"example":{"lat":48.8584,"lon":2.2945}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"reverse_geocode","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cep_lookup":{"post":{"operationId":"cep_lookup","summary":"Look up a Brazilian CEP (postal code) via https://viacep.com.br/ws/<cep>/json/ and return street, neighborhood, city and state.","tags":["brazil","postal-code","cep","address","lookup"],"x-price":"$0.002","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cep":{"type":"string","description":"Brazilian CEP, digits only or with hyphen, e.g. 01001-000"}},"required":["cep"]},"example":{"cep":"01001-000"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cep_lookup","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cpf_cnpj_validate":{"post":{"operationId":"cpf_cnpj_validate","summary":"Offline validator for Brazilian CPF (individual) and CNPJ (company) registration numbers. Strips formatting, checks length, rejects known invalid sequences (all same digit), and recomputes the official modulo-11 check digits for both formats.","tags":[],"x-price":"$0.002","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}},"example":{}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cpf_cnpj_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/uk_postcode_validate":{"post":{"operationId":"uk_postcode_validate","summary":"Offline structural validator for UK postal (post)codes. Normalizes input (uppercase, trims, single space before inward code) and checks it against the official outward/inward code grammar (1-2 letters + 1-2 digits/letter-digit + optional letter, space, 1 digit + 2 letters), including the special 'GIR 0AA' code. No network calls.","tags":["validator","uk","postcode","offline","address"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"postcode":{"type":"string","description":"UK postcode to validate, e.g. 'SW1A 1AA'"}},"required":["postcode"],"additionalProperties":false},"example":{"postcode":"sw1a1aa"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"uk_postcode_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/nino_validate":{"post":{"operationId":"nino_validate","summary":"Offline validator for a UK National Insurance Number (NINO). Normalizes input (strips spaces/dashes, uppercases) and checks the LL999999L pattern: two letters, six digits, one suffix letter (A-D). Rejects first letter D,F,I,Q,U,V; second letter D,F,I,Q,U,V,O; and reserved prefixes BG,GB,NK,KN,TN,NT,ZZ.","tags":["validator","uk","nino","identity","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"NINO string, e.g. 'AB123456C' or 'AB 12 34 56 C'"}},"required":["value"],"additionalProperties":false},"example":{"value":"AB 12 34 56 C"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"nino_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/rdap_domain_lookup":{"post":{"operationId":"rdap_domain_lookup","summary":"Looks up domain registration data via RDAP (https://rdap.org/domain/<domain>): returns registrar, creation/expiry dates, nameservers and status codes. Works for gTLDs and many ccTLDs supported by the RDAP bootstrap network.","tags":["domain","whois","rdap","dns","network"],"x-price":"$0.003","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name to look up, e.g. example.com"}},"required":["domain"],"additionalProperties":false},"example":{"domain":"example.com"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rdap_domain_lookup","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/nss_validate":{"post":{"operationId":"nss_validate","summary":"Offline validator for the Mexican IMSS Social Security Number (NSS): checks that the input is an 11-digit numeric string and that it satisfies the standard Luhn (mod-10) check-digit algorithm applied to the full number. Pure computation, no network access.","tags":["mexico","validation","nss","imss","offline","luhn"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nss":{"type":"string","description":"11-digit NSS, digits only"}},"required":["nss"],"additionalProperties":false},"example":{"nss":"12345678903"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"nss_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/clabe_validate":{"post":{"operationId":"clabe_validate","summary":"Offline validator for a Mexican CLABE (Clave Bancaria Estandarizada) 18-digit bank account number: checks length/digits, computes the mod-10 weighted (3-7-1) check digit per Banco de México's published formula, and reports validity plus parsed bank code, branch code and account number.","tags":["mexico","banking","clabe","validator","offline","finance"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clabe":{"type":"string","description":"18-digit CLABE, digits only or with spaces/dashes"}},"required":["clabe"],"additionalProperties":false},"example":{"clabe":"002010077777777771"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"clabe_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/curp_validate":{"post":{"operationId":"curp_validate","summary":"Offline validator for a Mexican CURP (Clave Única de Registro de Población): checks the 18-character structure (4 letters, YYMMDD birthdate, sex letter H/M, 2-letter state code, 3 consonants, homoclave), then verifies the DOF mod-10 weighted check digit. Returns parsed birthdate, sex, state code and whether the format and check digit are valid.","tags":["mexico","curp","validator","offline","identity"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"curp":{"type":"string","description":"18-character CURP code"}},"required":["curp"],"additionalProperties":false},"example":{"curp":"GODE561231HDFRRN00"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"curp_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/sitemap_parse":{"post":{"operationId":"sitemap_parse","summary":"Fetches a sitemap.xml (or sitemap index) from a given URL, follows nested <sitemap> entries up to the request budget, and returns the list of page URLs with their lastmod dates, capped at 2000 entries.","tags":["sitemap","seo","crawling","xml"],"x-price":"$0.003","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"URL of the sitemap.xml or sitemap index to fetch"},"maxUrls":{"type":"integer","minimum":1,"maximum":2000,"default":2000}},"required":["url"],"additionalProperties":false},"example":{"url":"https://nonexistent-domain-abcxyz123456.com/sitemap.xml"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"sitemap_parse","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/extract_page_links_meta":{"post":{"operationId":"extract_page_links_meta","summary":"Fetches a public URL via HTTPS and extracts its meta information (title, description, canonical URL, Open Graph tags), all outbound/internal links with their anchor text, and all image sources with alt text.","tags":["html","scraping","seo","metadata","links"],"x-price":"$0.003","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public URL to fetch and parse"}},"required":["url"]},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"extract_page_links_meta","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/jsonld_extract":{"post":{"operationId":"jsonld_extract","summary":"Fetches a public URL, extracts all <script type=\"application/ld+json\"> blocks, parses them as JSON, and returns the parsed objects along with a count. Useful for pulling schema.org structured data (Product, Article, Organization, etc.) from a web page.","tags":["json-ld","schema.org","structured-data","scraping","seo"],"x-price":"$0.003","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public URL of the page to extract JSON-LD from"}},"required":["url"]},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"jsonld_extract","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/public_holidays":{"post":{"operationId":"public_holidays","summary":"Returns the list of public holidays for a given country and year using https://date.nager.at/api/v3/PublicHolidays/<year>/<countryCode>. Each holiday includes date, local name, English name and whether it is a fixed/global holiday.","tags":["holidays","calendar","dates","nager"],"x-price":"$0.002","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code, e.g. US, BR, DE"},"year":{"type":"integer","description":"Four-digit year, e.g. 2024"}},"required":["countryCode","year"],"additionalProperties":false},"example":{"countryCode":"US","year":2024}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"public_holidays","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/latam_tax_id_validate":{"post":{"operationId":"latam_tax_id_validate","summary":"Offline validator for South American tax IDs: Argentine CUIT/CUIL (11-digit check digit algorithm), Chilean RUT (mod-11 check digit, 0-9 or K), and Colombian NIT (mod-11 verification digit with DIAN weights). Returns whether the check digit matches and a normalized/formatted value.","tags":["validation","tax-id","latam","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}},"example":{}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"latam_tax_id_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/ico_validate":{"post":{"operationId":"ico_validate","summary":"Offline validator for a Czech IČO (business identification number) per ČSN 97 9738: normalizes input to 8 digits, computes the modulo-11 weighted check digit (weights 8-2 on the first 7 digits, remainder-to-digit lookup) and verifies it matches the 8th digit.","tags":["validator","czech","ico","business-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ico":{"type":"string","description":"Czech IČO, digits only or with spaces"}},"required":["ico"]},"example":{"ico":"12345679"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ico_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/mersis_validate":{"post":{"operationId":"mersis_validate","summary":"Offline structural validator for a Turkish MERSİS number (16-digit central trade registry identifier). Normalizes input (strips spaces/dashes), checks it is exactly 16 digits, and verifies the first 10 digits pass the standard VKN (Vergi Kimlik Numarası) checksum algorithm as a structural plausibility check.","tags":["validator","turkey","mersis","vkn","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"MERSİS number to validate, digits optionally separated by spaces or dashes"}},"required":["value"]},"example":{"value":"1234567899123456"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"mersis_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/vkn_validate":{"post":{"operationId":"vkn_validate","summary":"Offline structural validator for a Turkish VKN (Vergi Kimlik Numarası, 10-digit tax identification number). Normalizes input by stripping spaces/dashes, then checks that it is exactly 10 digits, all numeric, and does not start with 0. Full checksum algorithm is not applied (best-effort structural check only).","tags":["validator","turkey","tax-id","vkn","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vkn":{"type":"string","description":"VKN string, optionally with spaces or dashes"}},"required":["vkn"],"additionalProperties":false},"example":{"vkn":"1234567890"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"vkn_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/tckn_validate":{"post":{"operationId":"tckn_validate","summary":"Offline validator for a Turkish TCKN (T.C. Kimlik No, 11-digit national identity number). Checks length, leading digit non-zero, and the official checksum: digit10 = ((sum of digits 1,3,5,7,9 * 7) - sum of digits 2,4,6,8) mod 10, digit11 = (sum of first 10 digits) mod 10.","tags":["validator","turkey","tckn","national-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tckn":{"type":"string","description":"11-digit Turkish national ID number, digits only"}},"required":["tckn"],"additionalProperties":false},"example":{"tckn":"10000000146"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"tckn_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/vat_gr_validate":{"post":{"operationId":"vat_gr_validate","summary":"Offline validator for a Greek VAT number (format EL followed by 9 digits, e.g. EL094259216). Strips spaces/dashes, checks the EL prefix and 9-digit structure, and validates the trailing check digit using the standard AFM algorithm (weighted sum of first 8 digits with powers of 2, mod 11, mod 10).","tags":["validator","vat","greece","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"Greek VAT number, e.g. 'EL094259216' or 'EL 094259216'"}},"required":["value"],"additionalProperties":false},"example":{"value":"EL094259216"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"vat_gr_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/afm_gr_validate":{"post":{"operationId":"afm_gr_validate","summary":"Offline validator for a Greek AFM (tax registration number, ΑΦΜ). Checks the value is 9 numeric digits and verifies the check digit using the publicly documented weighted-sum algorithm (each of the first 8 digits multiplied by 2^(8..1), summed, mod 11, mod 10) against the 9th digit.","tags":["validator","greece","tax-id","offline","afm"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"afm":{"type":"string","description":"Greek AFM, 9 digits, spaces allowed"}},"required":["afm"]},"example":{"afm":"094259216"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"afm_gr_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/vat_hu_validate":{"post":{"operationId":"vat_hu_validate","summary":"Offline validator for a Hungarian EU VAT number (HU + 8-digit törzsszám). Normalizes input (strips spaces/dashes, uppercases), checks the HU prefix and 8-digit length, and verifies the embedded check digit using the standard weighted (9,7,3,1,9,7,3) modulo-10 algorithm applied to the first 7 digits.","tags":["validator","vat","hungary","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vatNumber":{"type":"string","description":"Hungarian EU VAT number, e.g. HU12345676"}},"required":["vatNumber"],"additionalProperties":false},"example":{"vatNumber":"HU12345676"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"vat_hu_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/taj_hu_validate":{"post":{"operationId":"taj_hu_validate","summary":"Offline validator for a Hungarian TAJ-szám (social security number). Normalizes input (strips spaces/dashes), checks it is exactly 9 digits, and recomputes the check digit (last digit) from the first 8 digits using weights 3,7,9,1,3,7,9,1 summed mod 10.","tags":["validator","hungary","taj","offline","identity"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"taj":{"type":"string","description":"TAJ number, digits with optional spaces/dashes"}},"required":["taj"],"additionalProperties":false},"example":{"taj":"123456786"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"taj_hu_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/adoszam_hu_validate":{"post":{"operationId":"adoszam_hu_validate","summary":"Offline validator for a Hungarian Adószám (tax number): normalizes input to the 11-digit xxxxxxxx-y-zz structure, verifies digit groups (8-digit base, 1-digit VAT code, 2-digit county code), and recomputes the 8th-digit check digit from the first 7 digits using weights 9,7,3,1,9,7,3 summed mod 10. No network access.","tags":["validator","hungary","tax-id","offline","checksum"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"taxNumber":{"type":"string","description":"Hungarian Adószám, formatted or raw digits, e.g. 12345674-2-11"}},"required":["taxNumber"],"additionalProperties":false},"example":{"taxNumber":"12345674-2-11"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"adoszam_hu_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/adoazonosito_hu_validate":{"post":{"operationId":"adoazonosito_hu_validate","summary":"Offline validator for a Hungarian Adóazonosító jel (personal tax identification number). Checks that the value is exactly 10 digits with leading digit 8, and recomputes the weighted checksum (weights 1-9 on the first nine digits, mod 11) against the 10th digit per Act XX of 1996.","tags":["validator","hungary","tax-id","offline","identity"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"Adóazonosító jel, digits only or with spaces"}},"required":["value"],"additionalProperties":false},"example":{"value":"8071234563"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"adoazonosito_hu_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/nif_pt_validate":{"post":{"operationId":"nif_pt_validate","summary":"Offline validator for a Portuguese NIF/NIPC (Número de Identificação Fiscal / Pessoa Coletiva): checks 9-digit format, classifies entity type from the first digit, and verifies the mod-11 check digit (weights 9-2 on digits 1-8, remainder rule for digit 9). No network access.","tags":["validator","portugal","nif","nipc","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nif":{"type":"string","description":"Portuguese NIF/NIPC, digits only or with spaces/dots"}},"required":["nif"]},"example":{"nif":"501442600"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"nif_pt_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/vat_fi_validate":{"post":{"operationId":"vat_fi_validate","summary":"Offline validator for a Finnish VAT number (ALV-tunnus, format FIxxxxxxxx). Strips the 'FI' prefix, treats the remaining 8 digits as a Y-tunnus (business ID) with a hyphen re-inserted before the last digit, and verifies the check digit using the Finnish Y-tunnus mod-11 algorithm (weights 7,9,10,5,8,4,2).","tags":["validator","vat","finland","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vat":{"type":"string","description":"Finnish VAT number, e.g. FI24644919"}},"required":["vat"]},"example":{"vat":"FI24644919"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"vat_fi_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/vat_at_validate":{"post":{"operationId":"vat_at_validate","summary":"Offline validator for an Austrian UID (VAT) number: format ATU followed by 8 digits. Normalizes input, checks structure and verifies the weighted modulo-10 check digit algorithm (weights 1,2,1,2,1,2,1 on the first 7 digits, digit-sum reduction, check = (10-(sum+4)%10)%10).","tags":["validator","vat","austria","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"uid":{"type":"string","description":"Austrian UID/VAT number, e.g. ATU12345675"}},"required":["uid"],"additionalProperties":false},"example":{"uid":"ATU12345675"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"vat_at_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/partita_iva_validate":{"post":{"operationId":"partita_iva_validate","summary":"Offline validator for an Italian Partita IVA (VAT number): verifies the value is 11 numeric digits and recomputes the Luhn-like check digit (digits in odd positions summed as-is, digits in even positions doubled with 9 subtracted if the result exceeds 9, total summed and complemented mod 10) to confirm it matches the 11th digit.","tags":["validator","italy","vat","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"partitaIva":{"type":"string","description":"Partita IVA, digits optionally with spaces/dashes"}},"required":["partitaIva"],"additionalProperties":false},"example":{"partitaIva":"01234567897"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"partita_iva_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cif_es_validate":{"post":{"operationId":"cif_es_validate","summary":"Offline validator for a Spanish CIF (Código de Identificación Fiscal, tax ID for legal entities). Parses the entity-type letter, 7 digits and control character, applies AEAT's weighted alternating-sum algorithm (doubling digits at odd positions and summing their digits, summing digits at even positions directly, mod 10) to compute the expected control digit/letter, and checks it against the actual control character given the entity-type letter's required control kind (digit, letter, or either).","tags":["validator","spain","tax-id","offline","cif"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cif":{"type":"string","description":"Spanish CIF, e.g. A58818501"}},"required":["cif"]},"example":{"cif":"A58818501"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cif_es_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/nie_es_validate":{"post":{"operationId":"nie_es_validate","summary":"Offline validator for a Spanish NIE (Número de Identidad de Extranjero): normalizes input, checks format letter[XYZ]+7 digits+control letter, maps X/Y/Z to 0/1/2, computes mod-23 check letter using the DNI table (TRWAGMYFPDXBNJZSQVHLCKE), and verifies it matches. No network calls.","tags":["validator","spain","nie","identity","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nie":{"type":"string","description":"NIE string, e.g. X1234567L"}},"required":["nie"]},"example":{"nie":"X1234567L"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"nie_es_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/dni_es_validate":{"post":{"operationId":"dni_es_validate","summary":"Offline validator for a Spanish DNI (Documento Nacional de Identidad): normalizes input (uppercase, strip spaces/dashes), checks it has 8 digits + 1 control letter, computes the expected letter as digits mod 23 mapped via the table TRWAGMYFPDXBNJZSQVHLCKE, and reports validity. Pure offline computation, no network.","tags":["validator","spain","dni","identity","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"dni":{"type":"string","description":"Spanish DNI, e.g. 12345678Z"}},"required":["dni"],"additionalProperties":false},"example":{"dni":"12345678Z"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"dni_es_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/vat_fr_validate":{"post":{"operationId":"vat_fr_validate","summary":"Offline validator for a French VAT number (TVA intracommunautaire, e.g. FR32123456789). Extracts the 9-digit SIREN and 2-digit key, recomputes key = (12 + 3*(SIREN mod 97)) mod 97, and compares it to the given key.","tags":["validator","vat","france","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vat":{"type":"string","description":"French VAT number, e.g. 'FR32123456789' or 'FR 32 123456789'"}},"required":["vat"],"additionalProperties":false},"example":{"vat":"FR32123456789"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"vat_fr_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/siret_validate":{"post":{"operationId":"siret_validate","summary":"Offline validator for a French SIRET (14-digit establishment identifier): splits it into SIREN (first 9 digits) and NIC (last 5 digits), normalizes input by stripping spaces, and checks that the full 14-digit string satisfies the Luhn (mod 10) checksum algorithm.","tags":["validation","france","siret","identifier","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"siret":{"type":"string","description":"14-digit French SIRET, spaces allowed"}},"required":["siret"]},"example":{"siret":"73282932000074"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"siret_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/vat_gb_validate":{"post":{"operationId":"vat_gb_validate","summary":"Offline validator for a UK (GB) VAT registration number in the standard 9-digit format. Normalizes input (strips 'GB' prefix and spaces), then applies the modulo-97 checksum: weights 8,7,6,5,4,3,2 on the first 7 digits, valid if (weightedSum + last2Digits) mod 97 == 0 (post-2009 rule) or (weightedSum + 55 + last2Digits) mod 97 == 0 (legacy rule).","tags":["vat","validation","uk","tax-id","offline","checksum"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vat":{"type":"string","description":"UK VAT number, e.g. 'GB100000089' or '100000089'"}},"required":["vat"],"additionalProperties":false},"example":{"vat":"GB100000089"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"vat_gb_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/steuerid_de_validate":{"post":{"operationId":"steuerid_de_validate","summary":"Offline validator for the German Steuerliche Identifikationsnummer (Steuer-ID): checks it is 11 digits, that the digit-uniqueness rule (one digit repeats exactly 2 or 3 times per BZSt rules, others appear at most once) holds, and verifies the check digit using the ISO 7064 MOD 11,10 algorithm published by the Bundeszentralamt für Steuern.","tags":["validator","germany","tax-id","offline","identity"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Steuer-ID, digits with optional spaces"}},"required":["id"],"additionalProperties":false},"example":{"id":"86095742719"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"steuerid_de_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/vat_de_validate":{"post":{"operationId":"vat_de_validate","summary":"Offline validator for a German VAT number (Umsatzsteuer-Identifikationsnummer, USt-IdNr). Checks the 'DE'+9-digit format and verifies the official modulus-11 checksum algorithm published by the German tax authority; returns validity and normalized number.","tags":["validator","germany","vat","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vat":{"type":"string","description":"German VAT number, e.g. 'DE811569869' or '811569869'"}},"required":["vat"],"additionalProperties":false},"example":{"vat":"DE811569869"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"vat_de_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cedula_hn_validate":{"post":{"operationId":"cedula_hn_validate","summary":"Offline validator for the Honduran national identity number (Tarjeta de Identidad, issued by the RNP). Checks the 13-digit structure: 2-digit department code (01-18) + 2-digit municipality code (01-99) + 4-digit birth year (1900 to current year) + 5-digit sequence. No official check digit exists, so only structural and range plausibility are validated.","tags":["validator","honduras","national-id","offline","identity"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Honduran identity number, digits only or with separators, 13 digits total"}},"required":["id"]},"example":{"id":"0801198500001"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cedula_hn_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/rtn_hn_validate":{"post":{"operationId":"rtn_hn_validate","summary":"Offline validator for the Honduran RTN (Registro Tributario Nacional). Normalizes the input by removing spaces/dashes and checks that the result is exactly 14 numeric digits; no public check-digit algorithm exists so only length and charset are verified.","tags":["validator","honduras","rtn","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rtn":{"type":"string","description":"Honduran RTN, with or without separators"}},"required":["rtn"],"additionalProperties":false},"example":{"rtn":"08019012345671"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rtn_hn_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cedula_pa_validate":{"post":{"operationId":"cedula_pa_validate","summary":"Offline structural validator for a Panama Cédula de identidad personal. Parses the province/category prefix (1-13, N, PE, E, or PI), the book (tomo) and entry (partida) segments per the documented 'PREFIX-BOOK-ENTRY' pattern; there is no checksum digit for this ID, so validation is structural only (prefix range/set, digit-only book and entry with plausible lengths).","tags":["validator","panama","id","offline","structural"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"Panama cedula string, e.g. '8-123-4567' or 'PE-1-12345'"}},"required":["value"],"additionalProperties":false},"example":{"value":"3-732-1785"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cedula_pa_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/nit_gt_validate":{"post":{"operationId":"nit_gt_validate","summary":"Offline validator for a Guatemalan NIT (Número de Identificación Tributaria). Strips hyphens/spaces, applies the documented mod-11 weighted check-digit algorithm (weights 2..n from right to left) to the base digits, and compares the result (0-9, or 'K' for 10) against the trailing check character.","tags":["validator","guatemala","tax-id","offline","checksum"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nit":{"type":"string","description":"NIT string, with or without hyphens/spaces, e.g. '12345678-9'"}},"required":["nit"]},"example":{"nit":"12345678-9"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"nit_gt_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cui_gt_validate":{"post":{"operationId":"cui_gt_validate","summary":"Offline validator for a Guatemalan CUI (Código Único de Identificación), the 13-digit national ID number. Parses the 13 digits into an 8-digit correlative, a 1-digit check digit, a 2-digit department code and a 2-digit municipality code, recomputes the check digit using the published weighted mod-11 formula (weights 2-9 over the 8 correlative digits, mod 11, 10→0) and compares it, returning validity plus the parsed components.","tags":["validator","guatemala","cui","national-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cui":{"type":"string","description":"13-digit CUI, digits only or with dashes"}},"required":["cui"]},"example":{"cui":"1234567890101"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cui_gt_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cedula_do_validate":{"post":{"operationId":"cedula_do_validate","summary":"Offline validator for a Dominican Republic Cédula de identidad (11-digit national ID). Strips non-digits, checks length, and verifies the weighted check-digit algorithm (weights 1,2,1,2,1,2,1,2,1,2 on first 10 digits, digit-sum reduction, mod-10 check digit) commonly used in KYC/e-invoicing integrations.","tags":["validator","dominican-republic","kyc","id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Cedula number, with or without dashes"}},"required":["id"]},"example":{"id":"00114333222"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cedula_do_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/rnc_do_validate":{"post":{"operationId":"rnc_do_validate","summary":"Offline validator for a Dominican Republic RNC (Registro Nacional del Contribuyente), the 9-digit tax ID used in DGII e-invoicing (NCF) validation. Strips non-digit characters, checks length, and verifies the check digit using DGII's documented weighted mod-11 algorithm (weights 7,9,8,6,5,4,3,2 on the first 8 digits).","tags":["validator","dominican-republic","tax-id","rnc","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rnc":{"type":"string","description":"RNC number, digits only or with dashes/spaces, 9 digits"}},"required":["rnc"],"additionalProperties":false},"example":{"rnc":"1-3188-0711"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rnc_do_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/ruc_py_validate":{"post":{"operationId":"ruc_py_validate","summary":"Offline validator for a Paraguayan RUC (Registro Único de Contribuyentes): parses the base number (3-8 digits) and its hyphenated check digit, recomputes the check digit using the modulo-11 algorithm (cyclic weights 2-7 from the rightmost digit, sum mod 11, subtract from 11, mapping 10 and 11 to 0), and compares it to the supplied check digit.","tags":["validator","paraguay","ruc","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ruc":{"type":"string","description":"RUC in format BASE-DV, e.g. 80028098-2","pattern":"^[0-9]{3,8}-[0-9]$"}},"required":["ruc"],"additionalProperties":false},"example":{"ruc":"80028098-2"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ruc_py_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/unit_convert":{"post":{"operationId":"unit_convert","summary":"Converts a numeric value between units within a category (length, mass, volume, temperature, area, speed, data) using a fixed offline conversion table. Pure computation, no network access.","tags":["units","conversion","math","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"number"},"category":{"type":"string","enum":["length","mass","volume","temperature","area","speed","data"]},"from":{"type":"string"},"to":{"type":"string"}},"required":["value","category","from","to"],"additionalProperties":false},"example":{"value":1,"category":"length","from":"km","to":"mi"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"unit_convert","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/rif_validate":{"post":{"operationId":"rif_validate","summary":"Offline validator for a Venezuelan RIF (Registro Único de Información Fiscal). Parses format [V|E|J|G|P|C]-########-#, maps the leading letter to its numeric code (V=1,E=2,J=3,P=4,G=5,C=6), applies the official weighted modulo-11 checksum (weights 4,3,2,7,6,5,4,3,2 over letter-code and 8 digits) and compares the result to the trailing check digit. No network access.","tags":["validator","venezuela","rif","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rif":{"type":"string","description":"RIF string, e.g. V-12345678-1 (dashes optional)"}},"required":["rif"],"additionalProperties":false},"example":{"rif":"V-12345678-1"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rif_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/ruc_pe_validate":{"post":{"operationId":"ruc_pe_validate","summary":"Offline validator for a Peruvian RUC (Registro Único de Contribuyentes) issued by SUNAT. Checks the RUC is exactly 11 digits, extracts the 2-digit taxpayer-type prefix (10, 15, 17, 20, etc.), and verifies the check digit using SUNAT's published modulo-11 algorithm (weights 5,4,3,2,7,6,5,4,3,2 over the first 10 digits).","tags":["validator","peru","tax-id","ruc","sunat","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ruc":{"type":"string","description":"11-digit RUC, digits only or with spaces/dashes"}},"required":["ruc"],"additionalProperties":false},"example":{"ruc":"20100070970"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ruc_pe_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/ruc_ec_juridical_validate":{"post":{"operationId":"ruc_ec_juridical_validate","summary":"Offline validator for an Ecuadorian RUC belonging to a private juridical person (company): checks 13 digits, that the 3rd digit is '9', verifies the modulus-11 check digit (digit 10) computed from digits 1-9 using weights [4,3,2,7,6,5,4,3,2], and that the establishment suffix (digits 11-13) is between '001' and '999'.","tags":["ecuador","ruc","validator","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ruc":{"type":"string","description":"13-digit Ecuadorian RUC number"}},"required":["ruc"]},"example":{"ruc":"1792345618001"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ruc_ec_juridical_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/ruc_ec_public_validate":{"post":{"operationId":"ruc_ec_public_validate","summary":"Offline validator for an Ecuadorian RUC belonging to a public-sector entity: checks 13 digits total, that position 3 equals '6', that positions 1-8 pass a modulus-11 check against digit 9 using weights (3,2,7,6,5,4,3,2), and that the final 4 digits are '0001'.","tags":["ecuador","ruc","validator","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ruc":{"type":"string","description":"13-digit Ecuadorian RUC to validate"}},"required":["ruc"],"additionalProperties":false},"example":{"ruc":"1760000150001"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ruc_ec_public_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/ruc_ec_natural_validate":{"post":{"operationId":"ruc_ec_natural_validate","summary":"Offline validator for an Ecuadorian RUC (Registro Único de Contribuyentes) belonging to a natural person: checks the 13-digit structure, verifies the embedded 10-digit cédula via its modulus-10 check-digit algorithm, confirms the third digit denotes a natural person (0-5), and requires the establishment suffix to be '001'. Pure computation, no network calls.","tags":["validator","ecuador","ruc","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ruc":{"type":"string","description":"13-digit Ecuadorian RUC for a natural person"}},"required":["ruc"],"additionalProperties":false},"example":{"ruc":"1710034065001"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ruc_ec_natural_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/nit_validate":{"post":{"operationId":"nit_validate","summary":"Offline validator for a Colombian NIT (Número de Identificación Tributaria) using DIAN's modulo-11 check-digit algorithm: applies fixed positional weights (3,7,13,17,19,23,29,37,41,43,47,53,59,67,71,...) right-to-left to the base digits, sums, reduces mod 11, maps 0→0,1→1,else 11−remainder, and compares to the appended DV digit. No network access.","tags":["colombia","nit","tax-id","validator","offline","dian"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nit":{"type":"string","description":"NIT as base+DV, e.g. '800197268-4' or '8001972684'"}},"required":["nit"],"additionalProperties":false},"example":{"nit":"800197268-4"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"nit_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/ssn_validate":{"post":{"operationId":"ssn_validate","summary":"Offline structural validator for a US Social Security Number. Checks NNN-NN-NNNN (or 9-digit) format and known invalid ranges: area cannot be 000, 666, or 900-999; group cannot be 00; serial cannot be 0000.","tags":["validator","ssn","offline","identity","us"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ssn":{"type":"string","description":"SSN as NNN-NN-NNNN or 9 digits"}},"required":["ssn"]},"example":{"ssn":"078-05-1120"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ssn_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/ein_validate":{"post":{"operationId":"ein_validate","summary":"Offline validator for a US Employer Identification Number (EIN). Checks that the input matches the NN-NNNNNNN structural pattern (9 digits) and that the 2-digit prefix falls within the set of prefixes historically assigned by the IRS; EINs have no checksum digit so only structural/prefix validation is performed.","tags":["validator","ein","tax-id","offline","us"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ein":{"type":"string","description":"EIN string, with or without hyphen, e.g. 12-3456789 or 123456789"}},"required":["ein"],"additionalProperties":false},"example":{"ein":"12-3456789"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ein_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/lei_validate":{"post":{"operationId":"lei_validate","summary":"Offline validator for a Legal Entity Identifier (LEI) per ISO 17442: checks 20-character alphanumeric format and verifies the check digits using ISO 7064 MOD 97-10 (letters mapped A=10..Z=35).","tags":["validation","lei","iso17442","finance","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lei":{"type":"string","description":"20-character LEI code"}},"required":["lei"],"additionalProperties":false},"example":{"lei":"529900T8BM49AURSDO55"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"lei_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/dns_lookup":{"post":{"operationId":"dns_lookup","summary":"Performs a DNS-over-HTTPS lookup for a domain and record type (A, AAAA, MX, TXT, NS, CNAME) via https://dns.google/resolve?name=<domain>&type=<type>. Returns the resolved status and list of answer records.","tags":["dns","network","domain","lookup"],"x-price":"$0.002","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name to query, e.g. example.com"},"type":{"type":"string","enum":["A","AAAA","MX","TXT","NS","CNAME"],"description":"DNS record type"}},"required":["domain","type"],"additionalProperties":false},"example":{"domain":"google.com","type":"NS"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"dns_lookup","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/hetu_validate":{"post":{"operationId":"hetu_validate","summary":"Offline validator for a Finnish HETU (personal identity code): parses DDMMYY, century sign (+/-/A), and 3-digit individual number, validates the calendar date and century-sign consistency, computes the mod-31 checksum over the 9-digit number using the charset 0123456789ABCDEFHJKLMNPRSTUVWXY, and returns birth date, century, gender and check character.","tags":["validator","finland","hetu","identity","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hetu":{"type":"string","description":"HETU code, e.g. 131052-308T"}},"required":["hetu"],"additionalProperties":false},"example":{"hetu":"131052-308T"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"hetu_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/postal_code_pt_validate":{"post":{"operationId":"postal_code_pt_validate","summary":"Offline structural validator/normalizer for Portuguese postal codes (Código Postal) in the NNNN-NNN format. Accepts input with or without the dash, normalizes to NNNN-NNN, and checks the 4-digit + 3-digit pattern; no check digit exists for Portuguese postal codes.","tags":["validation","postal-code","portugal","offline","format"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"postalCode":{"type":"string","description":"Portuguese postal code, e.g. 1000-001 or 1000001"}},"required":["postalCode"],"additionalProperties":false},"example":{"postalCode":"1000-001"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"postal_code_pt_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/y_tunnus_validate":{"post":{"operationId":"y_tunnus_validate","summary":"Offline validator for a Finnish Y-tunnus (Business ID). Parses format NNNNNNN-C, computes a mod-11 weighted checksum (weights 7,9,10,5,8,4,2 applied left to right across the 7 digits), maps the remainder to an expected check digit (0->0, 1->invalid, else 11-remainder), and compares it to the supplied check digit.","tags":["validator","finland","business-id","checksum","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"Y-tunnus in format NNNNNNN-C, e.g. 1234567-1"}},"required":["value"],"additionalProperties":false},"example":{"value":"1234567-1"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"y_tunnus_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/pesel_validate":{"post":{"operationId":"pesel_validate","summary":"Offline validator for a Polish PESEL (11-digit national identification number). Verifies the 11-digit format and the weighted mod-10 checksum (weights 1,3,7,9,1,3,7,9,1,3), and decodes the embedded birth date (with century offset encoded in the month digits) and sex (odd=male, even=female) when valid.","tags":["validator","poland","pesel","national-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pesel":{"type":"string","description":"11-digit PESEL number, digits only (spaces allowed)"}},"required":["pesel"],"additionalProperties":false},"example":{"pesel":"44051401458"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"pesel_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/regon_validate":{"post":{"operationId":"regon_validate","summary":"Offline validator for a Polish REGON business registry number (9-digit or 14-digit form). Verifies length/digit format and the official weighted checksum for each length (9-digit uses weights 8,9,2,3,4,5,6,7; 14-digit uses weights 2,4,8,5,0,9,7,3,6,1,2,4,8 over the first 13 digits), returning validity and normalized form.","tags":["validator","poland","regon","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"regon":{"type":"string","description":"REGON number, 9 or 14 digits, spaces allowed"}},"required":["regon"]},"example":{"regon":"000331501"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"regon_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/nip_pl_validate":{"post":{"operationId":"nip_pl_validate","summary":"Offline validator for a Polish NIP (Numer Identyfikacji Podatkowej) tax identifier. Normalizes input (strips dashes/spaces), checks it is 10 digits, and verifies the checksum digit using weights 6,5,7,2,3,4,5,6,7 applied to the first 9 digits with mod-11 (checksum of 10 is invalid).","tags":["validator","poland","tax-id","nip","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nip":{"type":"string","description":"Polish NIP, digits with optional dashes/spaces"}},"required":["nip"],"additionalProperties":false},"example":{"nip":"123-456-32-18"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"nip_pl_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/orgnr_se_validate":{"post":{"operationId":"orgnr_se_validate","summary":"Offline validator for a Swedish Organisationsnummer (company registration number). Normalizes input to 10 digits (accepts XXXXXX-XXXX or plain), checks length/digit-3 validity, and verifies the final check digit using the Luhn (mod 10) algorithm.","tags":["validator","sweden","organisationsnummer","luhn","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"Organisationsnummer, e.g. 556036-0793"}},"required":["value"]},"example":{"value":"556036-0793"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"orgnr_se_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cpr_dk_validate":{"post":{"operationId":"cpr_dk_validate","summary":"Offline validator/normalizer for a Danish CPR-nummer (personal identification number, format DDMMYY-SSSS). Checks digit count and date-of-birth validity, determines century from the 7th digit per official rules, and derives birth date and gender (last digit odd=male, even=female). Does not rely on the modulus-11 checksum since it has not been guaranteed valid for numbers issued since 2007.","tags":["validator","denmark","cpr","identity","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cpr":{"type":"string","description":"Danish CPR number, e.g. 010190-0006 (dash optional)"}},"required":["cpr"],"additionalProperties":false},"example":{"cpr":"010190-0006"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cpr_dk_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cvr_dk_validate":{"post":{"operationId":"cvr_dk_validate","summary":"Offline validator for a Danish CVR-nummer (8-digit business registration number issued by the Danish Business Authority). Normalizes input to digits only, checks length and computes a modulus-11 checksum using weights 2,7,6,5,4,3,2 on the first 7 digits compared against the 8th check digit. Result is flagged as best-effort since some legacy CVR numbers do not conform to the checksum rule.","tags":["validator","denmark","cvr","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cvr":{"type":"string","description":"CVR number, 8 digits, optional spaces"}},"required":["cvr"],"additionalProperties":false},"example":{"cvr":"10123453"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cvr_dk_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/ppsn_ie_validate":{"post":{"operationId":"ppsn_ie_validate","summary":"Offline validator for an Irish PPSN (Personal Public Service Number): checks the 7-digit + 1 check-letter (+ optional trailing 'A' or 'H' modifier letter) format and verifies the check letter using the published mod-23 weighted-sum algorithm (weights 8..2, optional modifier adds 9 or 72). Processes a single PPSN only; no network access or storage.","tags":["validator","ireland","ppsn","offline","identity"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ppsn":{"type":"string","description":"PPSN string, e.g. 1234567T or 1234567TA"}},"required":["ppsn"],"additionalProperties":false},"example":{"ppsn":"1234567T"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ppsn_ie_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/rrn_be_validate":{"post":{"operationId":"rrn_be_validate","summary":"Offline validator for a Belgian National Register Number (Rijksregisternummer / Numéro de registre national), format YYMMDDXXXCC. Verifies the two check digits equal 97 minus (first nine digits mod 97), applying the +2,000,000,000 offset for persons born in year 2000 or later, and parses birth date, gender and sequence number.","tags":["validator","belgium","national-id","offline","checksum"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"11-digit Belgian National Register Number, with or without dashes/spaces"}},"required":["value"]},"example":{"value":"90010100123"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rrn_be_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/kbo_be_validate":{"post":{"operationId":"kbo_be_validate","summary":"Offline validator for a Belgian Enterprise Number (KBO/BCE). Normalizes input to 10 digits, checks it starts with 0 or 1, and verifies the last two check digits equal 97 - (first 8 digits mod 97).","tags":["validator","belgium","kbo","enterprise-number","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"KBO/BCE number, e.g. 0403.170.701"}},"required":["number"]},"example":{"number":"0403.170.701"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"kbo_be_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cnp_ro_validate":{"post":{"operationId":"cnp_ro_validate","summary":"Offline validator for a Romanian CNP (Cod Numeric Personal, 13-digit personal numeric code). Checks 13-digit format, validates the sex/century digit (1-9), derives and checks a plausible birth date (YYMMDD) and county code (01-46,51,52), then verifies the checksum using key 2-7-9-1-4-6-3-5-8-2-7-9 applied to the first 12 digits, summed mod 11 (10 maps to 1), compared to the 13th digit.","tags":["validator","romania","cnp","identity","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cnp":{"type":"string","description":"13-digit Romanian CNP, digits only or with spaces"}},"required":["cnp"]},"example":{"cnp":"1900122221232"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cnp_ro_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/cui_ro_validate":{"post":{"operationId":"cui_ro_validate","summary":"Offline validator for a Romanian CUI (company tax ID). Strips an optional 'RO' prefix, applies weights 7-5-3-2-1-7-3-2 to the digits preceding the check digit (right-to-left), sums the weighted products, multiplies by 10, takes mod 11 (mapping a remainder of 10 to 0), and compares the result to the supplied check digit.","tags":["validator","romania","tax-id","offline","cui"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cui":{"type":"string","description":"CUI, optionally prefixed with RO, 2-9 digits"}},"required":["cui"]},"example":{"cui":"RO12345670"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"cui_ro_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/dic_cz_validate":{"post":{"operationId":"dic_cz_validate","summary":"Offline validator for a Czech DIČ (VAT/tax ID): normalizes input, strips spaces/dashes, checks for 'CZ' prefix, then validates the remaining digits either as an 8-digit IČO (mod-11 checksum with weights 8..2 on the first 7 digits) or as a 9-10 digit rodné číslo (birth number, valid month 01-12/21-32/51-62/71-82, and for 10-digit numbers the full number must be divisible by 11).","tags":["validator","czech-republic","vat","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"dic":{"type":"string","description":"Czech DIČ, e.g. CZ12345679 or CZ900101/0007"}},"required":["dic"]},"example":{"dic":"CZ12345679"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"dic_cz_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/che_uid_validate":{"post":{"operationId":"che_uid_validate","summary":"Offline validator for a Swiss UID/IDE number (format CHE-nnn.nnn.nnC). Strips the 'CHE' prefix and separators, verifies 9 digits remain, then applies the modulo-11 weighted check-digit algorithm (weights 5,4,3,2,7,6,5,4 on the first 8 digits) to confirm the 9th digit matches.","tags":["validator","switzerland","tax-id","offline","uid"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"Swiss UID/IDE number, e.g. CHE-109.322.551"}},"required":["value"],"additionalProperties":false},"example":{"value":"CHE-109.322.551"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"che_uid_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/rsin_nl_validate":{"post":{"operationId":"rsin_nl_validate","summary":"Offline validator for a Dutch RSIN (Rechtspersonen Samenwerkingsverbanden Informatie Nummer), a 9-digit legal-entity tax identifier. Normalizes input (strips spaces/dots/dashes) and applies the elfproef (mod-11 check): weights 9,8,7,6,5,4,3,2 on the first 8 digits, minus the 9th digit, must be divisible by 11.","tags":["validator","netherlands","rsin","tax-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rsin":{"type":"string","description":"9-digit RSIN, optionally with spaces or dashes"}},"required":["rsin"],"additionalProperties":false},"example":{"rsin":"111111110"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rsin_nl_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/fn_at_validate":{"post":{"operationId":"fn_at_validate","summary":"Offline validator for an Austrian Firmenbuchnummer (FN), the company register number. Normalizes the numeric part (1-6 digits, left-padded to 6 for calculation), computes the modulo-11 check letter using weights 2,1,2,1,2,1 (Luhn-style digit reduction for products >=9 by subtracting 9) and the standard letter table (0=p,1=a,2=b,3=c,4=d,5=e,6=f,7=g,8=h,9=i,10=k), and compares it to the supplied check letter.","tags":["validator","austria","firmenbuch","company-id","offline"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"Firmenbuchnummer, e.g. 'FN 123456k' or '123456k'"}},"required":["value"],"additionalProperties":false},"example":{"value":"123456k"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"fn_at_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/thai_nid_validate":{"post":{"operationId":"thai_nid_validate","summary":"Offline validator for a Thai National ID number (13 digits). Strips non-digit characters, checks length is 13, and verifies the mod-11 check digit: weights 13..2 applied to the first 12 digits, check = (11 - sum%11) % 10, compared to the 13th digit.","tags":["validator","thailand","national-id","offline","checksum"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"Thai national ID, digits only or with dashes/spaces"}},"required":["value"],"additionalProperties":false},"example":{"value":"3-1006-00445-63-5"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"thai_nid_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/t/nric_fin_validate":{"post":{"operationId":"nric_fin_validate","summary":"Offline validator for a Singapore NRIC/FIN (National Registration Identity Card / Foreign Identification Number). Checks the 9-character format (prefix S/T/F/G/M, 7 digits, check letter) and recomputes the check letter using the publicly documented weighted modulo-11 algorithm (weights 2,7,6,5,4,3,2; offsets and prefix-keyed letter tables for S/T, F/G and M). This checksum is community-derived/unofficial (never published by the Singapore government) and is provided for format sanity-checking only, not identity verification.","tags":["validator","singapore","nric","fin","identity","offline","checksum"],"x-price":"$0.001","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"NRIC/FIN string, e.g. S1234567D"}},"required":["id"]},"example":{"id":"S1234567D"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"nric_fin_validate","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/9dea805fa2e8":{"post":{"operationId":"api_onesource_io_9dea80","summary":"Latest Ethereum block height - current chain tip via eth_blockNumber","tags":[],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"api_onesource_io_9dea80","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/26f6d7af960b":{"post":{"operationId":"api_onesource_io_26f6d7","summary":"Ethereum chain ID (EIP-155) via eth_chainId - confirm which chain a network is on","tags":[],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"api_onesource_io_26f6d7","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/46c2e8657f38":{"post":{"operationId":"api_onesource_io_46c2e8","summary":"EVM network info - chain ID, block height, gas price, chain head age, and chain characteristics in one batched RPC call (eth_chainId + eth_blockNumber + eth_gasPrice + latest block header)","tags":[],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"api_onesource_io_46c2e8","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/1426bf38b54b":{"post":{"operationId":"otto_ai_1426bf","summary":"Importance-ranked crypto headlines with per-article source links and publish times, plus a sentiment-scored market brief. Regenerated hourly; meta carries the snapshot's age and a fresh/stale verdict.","tags":["crypto news","market news","sentiment analysis","breaking headlines"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"otto_ai_1426bf","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/9a4ce2aa08cb":{"post":{"operationId":"apitoll_crypto_prices_9a4ce2","summary":"Latest crypto token prices by ticker symbol, CoinGecko id, or chain:address (BTC, ETH, SOL, or base:0x…): current spot price, token symbol, decimals, and a confidence score, for up to 50 coins in one call. Pass ?at=<unix> for the historical price at a point in time. Sourced from DefiLlama across every major chain.","tags":["crypto","prices","token-price","defi","market-data"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"apitoll_crypto_prices_9a4ce2","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/3becb5b085ff":{"post":{"operationId":"life_advice_3becb5","summary":"Get one piece of thoughtful life advice, paid per request over x402.","tags":["advice","life","wisdom","text"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"life_advice_3becb5","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/22d8fc76da10":{"post":{"operationId":"meme_generator_22d8fc","summary":"Generate a captioned meme image. Pay per request in USDC on Base mainnet.","tags":["meme","image","generator","fun"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"meme_generator_22d8fc","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/64e28dde9a24":{"post":{"operationId":"coin_flip_64e28d","summary":"Flip a coin for a small USDC payment on Base mainnet. Returns heads or tails.","tags":["game","random","fun"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"coin_flip_64e28d","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/304c30894b54":{"post":{"operationId":"useless_fact_304c30","summary":"Pay a tiny amount of USDC and receive one delightfully useless fact.","tags":["facts","trivia","fun","useless"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"useless_fact_304c30","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/cd43ca66021e":{"post":{"operationId":"dice_roller_cd43ca","summary":"Roll a dice with any number of faces. Specify faces via ?faces=N query parameter.","tags":["dice","random","game","utility"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"dice_roller_cd43ca","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/a6d18263bb67":{"post":{"operationId":"fortune_generator_a6d182","summary":"Get a random fortune via x402 payment on Base mainnet.","tags":["fortune","prediction","entertainment"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"fortune_generator_a6d182","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/8990d1ec6e5e":{"post":{"operationId":"random_fact_8990d1","summary":"Returns a single random fact as JSON in exchange for a micropayment.","tags":["facts","trivia","random","json"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"random_fact_8990d1","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/5ddf1147cc94":{"post":{"operationId":"timezone_converter_5ddf11","summary":"Convert a time between any two IANA time zones (DST-aware). Pay-per-call in USDC on Base.","tags":["time","timezone","utility","datetime","converter"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"timezone_converter_5ddf11","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/34692539575a":{"post":{"operationId":"otto_ai_346925","summary":"Hyperliquid perpetuals market data: live mark/oracle price, funding rate, open interest, max leverage, and size specs for any tradable asset.","tags":["hyperliquid market","perps market data","funding rate","open interest"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"otto_ai_346925","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/34e96ce78de4":{"post":{"operationId":"api_loyalspark_online_34e96c","summary":"Onchain loyalty platform on Base Network. Businesses launch branded rewards in minutes, customers earn real value with every purchase, and AI agents automate the rest via REST and MCP. Free plan mints up to 1,000 tokens per month; every call is scoped by row-level security to the wallet behind the API key. 16 skill guides at loyalspark.online/.well-known/skills/index.md.","tags":[],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"api_loyalspark_online_34e96c","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/58dd356318f0":{"post":{"operationId":"vibe_springs_58dd35","summary":"Base network real-time gas price oracle. Returns block base fee, current gas price in GWEI, and network block details.","tags":["price","oracle","crypto","market-data","base-gas"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"vibe_springs_58dd35","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/25b5b05ae6df":{"post":{"operationId":"hypernatt_terminal_25b5b0","summary":"Forced-order map. If cluster_grammar is present, read it before liq_radar. class=noise (<3%) is high-leverage bait - ignore. class=true (~7%+) is the low-leverage stack. Terrain, not a signal. Whitelist BTC ETH SOL BNB XRP HYPE ZEC (omit = BTC).","tags":["bitcoin","hyperliquid","trading","market maker","liquidations"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"hypernatt_terminal_25b5b0","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/9ef8ba22442d":{"post":{"operationId":"ixs_9ef8ba","summary":"IXS Real world asset vaults — 6% yields, BlackRock exposure, tokenized on-chain","tags":["rwa","defi","tokenization","erc4626"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"ixs_9ef8ba","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/572f80d983fb":{"post":{"operationId":"otto_ai_572f80","summary":"Token price, market cap, volume, supply, and basic metrics. Works for any listed token.","tags":["token price","market cap","token metrics","token info","price data"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"otto_ai_572f80","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/f862ed0748ec":{"post":{"operationId":"otto_ai_f862ed","summary":"Cross-venue funding-rate arbitrage + crowded-positioning radar: live perp funding rates, open interest, global & top-trader long/short ratios, whale positions, and liquidations across Binance, OKX, Bybit, Hyperliquid, and more. Omit symbol for the whole-market overview; pass one (e.g. BTC) for the per-exchange breakdown. (Hyperliquid-only perp data: use hyperliquid-market.)","tags":["funding rates","funding arbitrage","open interest","long short ratio","liquidations"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"otto_ai_f862ed","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/24fe70b8ffe9":{"post":{"operationId":"laso_finance_24fe70","summary":"Get a Firebase ID token for authenticating with the callable APIs","tags":["auth","sign-in","wallet"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"laso_finance_24fe70","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/cfbbec38953f":{"post":{"operationId":"apitoll_base_gas_oracle_cfbbec","summary":"Base gas oracle / gas price API for AI agents and bots — get the gas price for a transaction on Base in one x402 call. Real-time slow/standard/fast EIP-1559 fee tiers from a live eth_feeHistory call, returned as DROP-IN maxFeePerGas + maxPriorityFeePerGas in wei — plug straight into a viem/ethers transaction, no gwei conversion. Plus base fee, head block, and network fullness. Call it before every Base tx to set a fair fee or wait out congestion.","tags":["base","gas","gas-oracle","gas-price","transaction-fees"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"apitoll_base_gas_oracle_cfbbec","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/abb7a1d00685":{"post":{"operationId":"exa_abb7a1","summary":"Exa /contents endpoint","tags":["search","ai","web","research"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"highlights":{"description":"Include text highlights","type":"boolean"},"ids":{"description":"Array of Exa document IDs to retrieve content for","type":"array"},"summary":{"description":"Include AI summary","type":"boolean"},"text":{"description":"Include full text content","type":"boolean"},"urls":{"description":"Array of URLs to retrieve content for","type":"array"}},"type":"object"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"exa_abb7a1","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/683043dfa1fe":{"post":{"operationId":"otto_ai_683043","summary":"DeFi yield farming markets with live APYs across Aave V3 and Morpho on Base, Ethereum, and other major chains. Find the best stablecoin yield (USDC) and ETH yield for idle capital: returns supply APY, TVL, and vault/market addresses per token, filterable by protocol, chain, or token symbol. Compare DeFi yield rates across lending markets and vaults before depositing.","tags":["yield farming","stablecoin yield","defi yield","aave","morpho"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"otto_ai_683043","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/08b221cd2d0a":{"post":{"operationId":"otto_ai_08b221","summary":"Live + reference foreign-exchange (forex) rates, base USD. LIVE near-real-time mid quotes for the 12 most-traded currencies (EUR, GBP, JPY, CHF, CAD, AUD, NZD, CNY, HKD, SGD, SEK, KRW), refreshed every minute with an honest market-open/stale flag, PLUS the official ECB daily reference table for ~30 currencies. Derive any cross-rate or pair. For agents pricing cross-border ops, treasury, invoicing and FX conversion. Keyless, pay-per-call.","tags":["forex","fx rates","currency exchange","live fx","currency conversion"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"otto_ai_08b221","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/b10b00682702":{"post":{"operationId":"rubric_protocol_b10b00","summary":"Attested Hedera network facts: HBAR exchange rate, gas fees, supply, node roster, throughput, topic state. Each response","tags":["hedera","oracle","data"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"rubric_protocol_b10b00","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/b4afbe14e2a8":{"post":{"operationId":"quartermaster_gas_prices_b4afbe","summary":"Current Base gas prices and a simple-transfer cost estimate for transaction planning.","tags":["gas","fees","base","transaction","settlement"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"quartermaster_gas_prices_b4afbe","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/71855ed7ef2c":{"post":{"operationId":"weather_payapi_market_71855e","summary":"Current weather conditions for any global location — temperature, feels-like, humidity, precipitation, wind, and human-readable weather description.","tags":[],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"latitude":{"description":"Optional latitude override (decimal degrees, -90 to 90).","type":["number","null"]},"location":{"description":"City or place name to fetch weather for (e.g. 'London', 'New York').","type":"string"},"longitude":{"description":"Optional longitude override (decimal degrees, -180 to 180).","type":["number","null"]}},"required":["location"],"type":"object"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"weather_payapi_market_71855e","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/d9080fa88832":{"post":{"operationId":"api_loyalspark_online_d9080f","summary":"Onchain loyalty platform on Base Network. Businesses launch branded rewards in minutes, customers earn real value with every purchase, and AI agents automate the rest via REST and MCP. Free plan mints up to 1,000 tokens per month; every call is scoped by row-level security to the wallet behind the API key. 16 skill guides at loyalspark.online/.well-known/skills/index.md.","tags":[],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"api_loyalspark_online_d9080f","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/2dc439e9109c":{"post":{"operationId":"gedx402_chat_2dc439","summary":"Multi-model chat completions. POST messages[] and set model to any LLM id from GET /v1/models; dynamic USDC pricing scales with model and token usage. Hero: GET /heroes/chat-completions.","tags":["chat","openai","completions","venice","winner"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"max_tokens":{"type":"integer"},"messages":{"items":{"type":"object"},"type":"array"},"model":{"type":"string"}},"required":["messages"],"type":"object"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"gedx402_chat_2dc439","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/7c82ba4e4eda":{"post":{"operationId":"api_loyalspark_online_7c82ba","summary":"Onchain loyalty platform on Base Network. Businesses launch branded rewards in minutes, customers earn real value with every purchase, and AI agents automate the rest via REST and MCP. Free plan mints up to 1,000 tokens per month; every call is scoped by row-level security to the wallet behind the API key. 16 skill guides at loyalspark.online/.well-known/skills/index.md.","tags":[],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"api_loyalspark_online_7c82ba","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/6be45b3dea30":{"post":{"operationId":"api_loyalspark_online_6be45b","summary":"Onchain loyalty platform on Base Network. Businesses launch branded rewards in minutes, customers earn real value with every purchase, and AI agents automate the rest via REST and MCP. Free plan mints up to 1,000 tokens per month; every call is scoped by row-level security to the wallet behind the API key. 16 skill guides at loyalspark.online/.well-known/skills/index.md.","tags":[],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"api_loyalspark_online_6be45b","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/5f805912c984":{"post":{"operationId":"api_loyalspark_online_5f8059","summary":"Onchain loyalty platform on Base Network. Businesses launch branded rewards in minutes, customers earn real value with every purchase, and AI agents automate the rest via REST and MCP. Free plan mints up to 1,000 tokens per month; every call is scoped by row-level security to the wallet behind the API key. 16 skill guides at loyalspark.online/.well-known/skills/index.md.","tags":[],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"api_loyalspark_online_5f8059","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/616c2e645194":{"post":{"operationId":"otto_ai_616c2e","summary":"Where DeFi capital is flowing — TVL rankings, fastest-growing vs bleeding protocols, chain-by-chain breakdown, and per-protocol deep dives. Track capital rotation and protocol health. Powered by DefiLlama.","tags":["defi tvl","protocol analytics","defi rankings","capital flows"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"otto_ai_616c2e","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/6d1eeb575984":{"post":{"operationId":"otto_ai_6d1eeb","summary":"Quick pulse check from crypto Twitter. Breaking news, trending narratives, and sentiment shifts at a glance.","tags":["crypto twitter","social sentiment","market pulse","tweet digest"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"otto_ai_6d1eeb","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/ce9de42bc36e":{"post":{"operationId":"lion_verified_company_ce9de4","summary":"Cheapest OFAC SDN wallet screen for AI agents ($0.001). AML/KYT pre-pay gate: PASS/WARN/BLOCK before you settle any x402 counterparty. Keyless Base USDC, Ed25519-attested. Beats $0.005–$0.05 wallet-screen clones. Upsell multi-list sanctions $0.02 + compliance receipt $0.05.","tags":["wallet","ofac","aml","sanctions","screen"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"lion_verified_company_ce9de4","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/2120f4ed7556":{"post":{"operationId":"otto_ai_2120f4","summary":"Live DEX token price in USD by ticker symbol or contract address across Base, Ethereum, Solana, Polygon, BSC, Arbitrum, Optimism and Avalanche (bare 0x tries Base then all chains, else network:address). Symbols resolve to the canonical top-market-cap asset — squat-proof. Flat JSON: price, 24h change, volume, market cap, FDV, liquidity — echoes the matched deployment. Token price, crypto price, DEX price. $0.001 per call.","tags":["token price","crypto price","dex price","price feed","onchain price"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"otto_ai_2120f4","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/41bb0146ee0a":{"post":{"operationId":"apitoll_multi_chain_evm_gas_41bb01","summary":"Multi-chain EVM gas price oracle for AI agents — 17 chains (Ethereum, Base, Arbitrum, Optimism, Polygon, BNB, Avalanche…). One x402 call returns slow/standard/fast EIP-1559 tiers as DROP-IN maxFeePerGas + maxPriorityFeePerGas in wei (plug straight into a viem/ethers tx, no conversion, exact even on sub-gwei L2s), plus base fee, head block, and fullness, from a live eth_feeHistory call. Pass ?chain= to switch chains.","tags":["evm","gas","multi-chain","gas-oracle","ethereum"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"apitoll_multi_chain_evm_gas_41bb01","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/c97b690b148b":{"post":{"operationId":"apitoll_perps_hyperliquid__c97b69","summary":"Perpetual-futures market data from Hyperliquid for any coin (BTC, ETH, SOL, HYPE…): mark price, hourly funding rate and its annualized APR, open interest in coin and USD, 24-hour notional volume, 24h price change, and max leverage, across 200+ perp markets. Sort by volume, open interest, or funding. Track the perp market the way trading agents do. Sourced from Hyperliquid.","tags":["crypto","perps","perpetuals","futures","funding-rate"],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"apitoll_perps_hyperliquid__c97b69","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}},"/v1/x/6dd39706a32f":{"post":{"operationId":"api_loyalspark_online_6dd397","summary":"Onchain loyalty platform on Base Network. Businesses launch branded rewards in minutes, customers earn real value with every purchase, and AI agents automate the rest via REST and MCP. Free plan mints up to 1,000 tokens per month; every call is scoped by row-level security to the wallet behind the API key. 16 skill guides at loyalspark.online/.well-known/skills/index.md.","tags":[],"x-price":"$0.00115","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"tool":"api_loyalspark_online_6dd397","ms":420}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required (x402). See PAYMENT-REQUIRED header."}}}}}}