Card snapshot
toll402.dev
·
2026-10-23 23:14:02 UTC
·
79f709cd2d74bb32f0ff1711d226f10a482f503ef9e7cf9caed07cd9cd6d3063
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"name": "Toll402",
"description": "The OpenRouter for AI-agent tools: one gateway, every capability, pay per call. Built-in tools, agent-forged tools, a global verified business directory, 2,788 provider API endpoints (SEO, social, enrichment, ads, market data, AI generation) and aggregated x402 services. Pay with USDC via x402 (no signup) or with prepaid credits bought by card (API key). Charged only on success.",
"url": "https://toll402.dev",
"version": "0.2.0",
"provider": {
"organization": "Toll402",
"url": "https://toll402.dev"
},
"documentationUrl": "https://toll402.dev/llms.txt",
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"authentication": {
"schemes": [
"x402",
"apiKey"
],
"credentials": "x402: USDC on Base (eip155:8453), pay per call, no account. apiKey: header x-toll402-key with a prepaid-credits key from https://toll402.dev/credits"
},
"skills": [
{
"id": "read_url",
"name": "read_url",
"description": "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"
],
"examples": [
"{\"url\":\"https://en.wikipedia.org/wiki/HTTP_402\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.002",
"endpoint": "https://toll402.dev/v1/read"
},
{
"id": "pdf_to_text",
"name": "pdf_to_text",
"description": "Download a PDF from a URL and return its full text, page count and title.",
"tags": [
"pdf",
"documents",
"text"
],
"examples": [
"{\"url\":\"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.005",
"endpoint": "https://toll402.dev/v1/pdf"
},
{
"id": "verify_email",
"name": "verify_email",
"description": "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"
],
"examples": [
"{\"email\":\"support@github.com\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/email/verify"
},
{
"id": "fx_rate",
"name": "fx_rate",
"description": "Exchange rate between two ISO currencies (ECB reference rates), optionally converting an amount.",
"tags": [
"finance",
"currency",
"fx"
],
"examples": [
"{\"base\":\"USD\",\"quote\":\"MXN\",\"amount\":100}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/fx"
},
{
"id": "extract_structured",
"name": "extract_structured",
"description": "Turn a web page or raw text into JSON that matches YOUR JSON Schema. LLM-powered, schema-constrained output \u2014 no parsing needed.",
"tags": [
"extraction",
"llm",
"json",
"scraping"
],
"examples": [
"{\"url\":\"https://news.ycombinator.com\",\"schema\":{\"type\":\"object\",\"properties\":{\"stories\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"title\":{\"type\":\"string\"},\"points\":{\"type\":\"integer\"}}}}}}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.06",
"endpoint": "https://toll402.dev/v1/extract"
},
{
"id": "summarize",
"name": "summarize",
"description": "Faithful summary of a URL or text in the style, length and language you choose.",
"tags": [
"summarization",
"llm",
"reading"
],
"examples": [
"{\"url\":\"https://en.wikipedia.org/wiki/HTTP_402\",\"style\":\"tldr\",\"language\":\"es\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.05",
"endpoint": "https://toll402.dev/v1/summarize"
},
{
"id": "judge_output",
"name": "judge_output",
"description": "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"
],
"examples": [
"{\"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\"]}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.07",
"endpoint": "https://toll402.dev/v1/judge"
},
{
"id": "provenance",
"name": "provenance",
"description": "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"
],
"examples": [
"{\"url\":\"https://en.wikipedia.org/wiki/Turing_test\",\"deep\":false}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.01",
"endpoint": "https://toll402.dev/v1/provenance"
},
{
"id": "trusted_lookup",
"name": "trusted_lookup",
"description": "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"
],
"examples": [
"{\"query\":\"HTTP 402 payment required\",\"language\":\"en\",\"sources\":[\"wikipedia\",\"wikidata\"],\"synthesize\":false}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.01",
"endpoint": "https://toll402.dev/v1/lookup"
},
{
"id": "business_search",
"name": "business_search",
"description": "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. A city we do not hold yet answers HTTP 503 `region_seeding` with `retryAfterSec` and `alternatives` \u2014 you are NOT charged for it (x402 settles only on 2xx); repeat the same call after that delay. A 200 always carries `status`: ok | seeding (partial data, more arriving) | no_match (city covered, filters too narrow).",
"tags": [
"business",
"directory",
"local",
"places",
"verified",
"trust",
"curation",
"global",
"worldwide"
],
"examples": [
"{\"cityKey\":\"cdmx\",\"category\":\"dentist\",\"minLevel\":\"corroborated\",\"limit\":5}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.005",
"endpoint": "https://toll402.dev/v1/biz/search"
},
{
"id": "business_verify",
"name": "business_verify",
"description": "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"
],
"examples": [
"{\"name\":\"Wikimedia Foundation\",\"website\":\"https://wikimediafoundation.org\",\"phone\":\"+14158396885\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.01",
"endpoint": "https://toll402.dev/v1/biz/verify"
},
{
"id": "business_details",
"name": "business_details",
"description": "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 \u2014 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"
],
"examples": [
"{\"id\":\"wd:Q180\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.08",
"endpoint": "https://toll402.dev/v1/biz/details"
},
{
"id": "business_shortlist",
"name": "business_shortlist",
"description": "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"
],
"examples": [
"{\"need\":\"Opening a specialty coffee shop, need coffee roasters and a commercial kitchen equipment supplier\",\"city\":\"Guadalajara\",\"country\":\"MX\",\"limit\":6}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.25",
"endpoint": "https://toll402.dev/v1/biz/shortlist"
},
{
"id": "list_service",
"name": "list_service",
"description": "Buy a verified listing for YOUR x402 endpoint, remote MCP server or A2A agent \u2014 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 \u00b7 featured $5 (top of results). Charged only when verification passes. Free quote: POST /v1/listings/quote.",
"tags": [
"marketplace",
"listing",
"directory",
"advertise",
"mcp",
"x402",
"agents"
],
"examples": [
"{\"kind\":\"x402\",\"url\":\"https://api.example.com/v1/quote\",\"tier\":\"basic\",\"tags\":[\"finance\"]}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$1",
"endpoint": "https://toll402.dev/v1/listings"
},
{
"id": "forge_tool",
"name": "forge_tool",
"description": "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"
],
"examples": [
"{\"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}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.25",
"endpoint": "https://toll402.dev/v1/forge"
},
{
"id": "do",
"name": "do",
"description": "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"
],
"examples": [
"{\"need\":\"convert 100 US dollars to Mexican pesos\",\"input\":{\"base\":\"USD\",\"quote\":\"MXN\",\"amount\":100}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.02",
"endpoint": "https://toll402.dev/v1/do"
},
{
"id": "t/cui_ro_validate",
"name": "cui_ro_validate",
"description": "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"
],
"examples": [
"{\"cui\":\"RO12345670\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/cui_ro_validate"
},
{
"id": "t/github_repo_stats",
"name": "github_repo_stats",
"description": "Stars, forks, open issues, license and last push for a GitHub repo via https://api.github.com/repos/<owner>/<repo>",
"tags": [
"github",
"code"
],
"examples": [
"{\"owner\":\"coinbase\",\"repo\":\"x402\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.003",
"endpoint": "https://toll402.dev/v1/t/github_repo_stats"
},
{
"id": "t/ip_geolocate",
"name": "ip_geolocate",
"description": "Country, region, city, timezone and ASN for an IPv4/IPv6 address via https://ipapi.co/<ip>/json/",
"tags": [
"network",
"geo"
],
"examples": [
"{\"ip\":\"8.8.8.8\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.002",
"endpoint": "https://toll402.dev/v1/t/ip_geolocate"
},
{
"id": "t/jsonld_extract",
"name": "jsonld_extract",
"description": "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"
],
"examples": [
"{\"url\":\"https://example.com\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.003",
"endpoint": "https://toll402.dev/v1/t/jsonld_extract"
},
{
"id": "t/hn_top",
"name": "hn_top",
"description": "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"
],
"examples": [
"{\"n\":3}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.005",
"endpoint": "https://toll402.dev/v1/t/hn_top"
},
{
"id": "t/npm_package_info",
"name": "npm_package_info",
"description": "Latest version, description, license, weekly downloads (via api.npmjs.org) and homepage for an npm package",
"tags": [
"npm",
"code"
],
"examples": [
"{\"name\":\"hono\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.003",
"endpoint": "https://toll402.dev/v1/t/npm_package_info"
},
{
"id": "t/rss_latest",
"name": "rss_latest",
"description": "Parse an RSS/Atom feed URL and return the latest N items (title, link, published)",
"tags": [
"rss",
"news",
"feeds"
],
"examples": [
"{\"url\":\"https://hnrss.org/frontpage\",\"n\":3}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.003",
"endpoint": "https://toll402.dev/v1/t/rss_latest"
},
{
"id": "t/text_stats",
"name": "text_stats",
"description": "Word/sentence/paragraph counts, reading time (200 wpm), top 10 keywords (stopwords removed) for a text",
"tags": [
"text",
"nlp"
],
"examples": [
"{\"text\":\"Agents pay agents. Agents build tools for agents.\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/text_stats"
},
{
"id": "t/url_status",
"name": "url_status",
"description": "HTTP status, final content-type and response size for a URL (HEAD then GET fallback)",
"tags": [
"web",
"monitoring"
],
"examples": [
"{\"url\":\"https://example.com\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/url_status"
},
{
"id": "t/wikipedia_summary",
"name": "wikipedia_summary",
"description": "Summary extract and canonical URL for a Wikipedia topic via https://<lang>.wikipedia.org/api/rest_v1/page/summary/<title>",
"tags": [
"reference",
"wikipedia"
],
"examples": [
"{\"title\":\"HTTP 402\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.002",
"endpoint": "https://toll402.dev/v1/t/wikipedia_summary"
},
{
"id": "t/json_schema_validate",
"name": "json_schema_validate",
"description": "Validate a JSON value against a JSON Schema subset (type, properties, required, enum, minimum/maximum, minLength/maxLength, items) and return errors",
"tags": [
"json",
"validation"
],
"examples": [
"{\"schema\":{\"type\":\"object\",\"properties\":{\"a\":{\"type\":\"integer\"}},\"required\":[\"a\"]},\"value\":{\"a\":\"x\"}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/json_schema_validate"
},
{
"id": "t/crypto_price",
"name": "crypto_price",
"description": "Spot price in USD for a crypto asset symbol using https://api.coinbase.com/v2/prices/<SYMBOL>-USD/spot",
"tags": [
"crypto",
"price",
"finance"
],
"examples": [
"{\"symbol\":\"ETH\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.002",
"endpoint": "https://toll402.dev/v1/t/crypto_price"
},
{
"id": "t/cin_in_validate",
"name": "cin_in_validate",
"description": "Offline structural validator for an Indian CIN (Corporate Identity Number, 21 characters). Parses and checks: listing status letter (L/U), 5-digit NIC industry code, 2-letter state code (against the known MCA state-code list), 4-digit incorporation year (plausible range), 3-letter company-type/ownership code (against a known enum like PLC, PTC, OPC, GOI, NPL, FTC, SGC, ULL, ULT), and 6-digit registration number. No checksum exists so this is a format-only check.",
"tags": [
"validator",
"india",
"cin",
"company-registration",
"offline"
],
"examples": [
"{\"value\":\"U72200MH2008PTC178618\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/cin_in_validate"
},
{
"id": "t/cui_gt_validate",
"name": "cui_gt_validate",
"description": "Offline validator for a Guatemalan CUI (C\u00f3digo \u00danico de Identificaci\u00f3n), 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\u21920) and compares it, returning validity plus the parsed components.",
"tags": [
"validator",
"guatemala",
"cui",
"national-id",
"offline"
],
"examples": [
"{\"cui\":\"1234567890101\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/cui_gt_validate"
},
{
"id": "t/mst_vn_validate",
"name": "mst_vn_validate",
"description": "Offline structural validator for a Vietnamese Enterprise/Tax Code (M\u00e3 s\u1ed1 thu\u1ebf, MST). Strips spaces, checks the 10-digit head-office pattern or the 13-character branch pattern (10 digits + '-' + 3-digit sequence). Uses regex only since the official modulus-11 check-digit weight table is not consistently published.",
"tags": [
"validator",
"vietnam",
"tax-id",
"mst",
"offline"
],
"examples": [
"{\"value\":\"0101243150\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/mst_vn_validate"
},
{
"id": "t/partita_iva_validate",
"name": "partita_iva_validate",
"description": "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"
],
"examples": [
"{\"partitaIva\":\"01234567897\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/partita_iva_validate"
},
{
"id": "t/pan_in_validate",
"name": "pan_in_validate",
"description": "Offline validator for an Indian PAN (Permanent Account Number): normalizes input to uppercase, checks the 10-character AAAAA9999A pattern, and validates the 4th character against the known holder-type code enum (P=Individual, C=Company, H=HUF, F=Firm, A=AOP, T=Trust, B=BOI, L=Local Authority, J=Artificial Juridical Person, G=Government). Does not verify the undisclosed final check character.",
"tags": [
"validator",
"india",
"pan",
"tax-id",
"offline"
],
"examples": [
"{\"pan\":\"ABCPD1234E\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/pan_in_validate"
},
{
"id": "t/siren_validate",
"name": "siren_validate",
"description": "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"
],
"examples": [
"{\"siren\":\"552081317\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/siren_validate"
},
{
"id": "t/cpr_dk_validate",
"name": "cpr_dk_validate",
"description": "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"
],
"examples": [
"{\"cpr\":\"010190-0006\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/cpr_dk_validate"
},
{
"id": "t/cvr_dk_validate",
"name": "cvr_dk_validate",
"description": "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"
],
"examples": [
"{\"cvr\":\"10123453\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/cvr_dk_validate"
},
{
"id": "t/vat_fr_validate",
"name": "vat_fr_validate",
"description": "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"
],
"examples": [
"{\"vat\":\"FR32123456789\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/vat_fr_validate"
},
{
"id": "t/orgnr_se_validate",
"name": "orgnr_se_validate",
"description": "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"
],
"examples": [
"{\"value\":\"556036-0793\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/orgnr_se_validate"
},
{
"id": "t/rodne_cislo_validate",
"name": "rodne_cislo_validate",
"description": "Offline validator for a Czech/Slovak rodn\u00e9 \u010d\u00edslo (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"
],
"examples": [
"{\"value\":\"900101/0007\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/rodne_cislo_validate"
},
{
"id": "t/rrn_be_validate",
"name": "rrn_be_validate",
"description": "Offline validator for a Belgian National Register Number (Rijksregisternummer / Num\u00e9ro 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"
],
"examples": [
"{\"value\":\"90010100123\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/rrn_be_validate"
},
{
"id": "t/vat_at_validate",
"name": "vat_at_validate",
"description": "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"
],
"examples": [
"{\"uid\":\"ATU12345675\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/vat_at_validate"
},
{
"id": "t/ppsn_ie_validate",
"name": "ppsn_ie_validate",
"description": "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"
],
"examples": [
"{\"ppsn\":\"1234567T\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/ppsn_ie_validate"
},
{
"id": "t/fn_at_validate",
"name": "fn_at_validate",
"description": "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"
],
"examples": [
"{\"value\":\"123456k\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/fn_at_validate"
},
{
"id": "t/rsin_nl_validate",
"name": "rsin_nl_validate",
"description": "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"
],
"examples": [
"{\"rsin\":\"111111110\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/rsin_nl_validate"
},
{
"id": "t/siret_validate",
"name": "siret_validate",
"description": "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"
],
"examples": [
"{\"siret\":\"73282932000074\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/siret_validate"
},
{
"id": "t/unit_convert",
"name": "unit_convert",
"description": "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"
],
"examples": [
"{\"value\":1,\"category\":\"length\",\"from\":\"km\",\"to\":\"mi\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/unit_convert"
},
{
"id": "t/cpf_cnpj_validate",
"name": "cpf_cnpj_validate",
"description": "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": [],
"examples": [
"{}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.002",
"endpoint": "https://toll402.dev/v1/t/cpf_cnpj_validate"
},
{
"id": "t/rfc_validate",
"name": "rfc_validate",
"description": "Offline validator for a Mexican RFC (Registro Federal de Contribuyentes). Checks the format for persona f\u00edsica (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"
],
"examples": [
"{}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/rfc_validate"
},
{
"id": "t/latam_tax_id_validate",
"name": "latam_tax_id_validate",
"description": "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"
],
"examples": [
"{}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/latam_tax_id_validate"
},
{
"id": "t/nit_gt_validate",
"name": "nit_gt_validate",
"description": "Offline validator for a Guatemalan NIT (N\u00famero de Identificaci\u00f3n 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"
],
"examples": [
"{\"nit\":\"12345678-9\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/nit_gt_validate"
},
{
"id": "t/ruc_py_validate",
"name": "ruc_py_validate",
"description": "Offline validator for a Paraguayan RUC (Registro \u00danico 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"
],
"examples": [
"{\"ruc\":\"80028098-2\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/ruc_py_validate"
},
{
"id": "t/rif_validate",
"name": "rif_validate",
"description": "Offline validator for a Venezuelan RIF (Registro \u00danico de Informaci\u00f3n 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"
],
"examples": [
"{\"rif\":\"V-12345678-1\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/rif_validate"
},
{
"id": "t/ruc_pe_validate",
"name": "ruc_pe_validate",
"description": "Offline validator for a Peruvian RUC (Registro \u00danico 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"
],
"examples": [
"{\"ruc\":\"20100070970\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/ruc_pe_validate"
},
{
"id": "t/ruc_ec_juridical_validate",
"name": "ruc_ec_juridical_validate",
"description": "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"
],
"examples": [
"{\"ruc\":\"1792345618001\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/ruc_ec_juridical_validate"
},
{
"id": "t/public_holidays",
"name": "public_holidays",
"description": "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"
],
"examples": [
"{\"countryCode\":\"US\",\"year\":2024}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.002",
"endpoint": "https://toll402.dev/v1/t/public_holidays"
},
{
"id": "t/geocode_address",
"name": "geocode_address",
"description": "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"
],
"examples": [
"{\"query\":\"Eiffel Tower, Paris, France\",\"limit\":1}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.003",
"endpoint": "https://toll402.dev/v1/t/geocode_address"
},
{
"id": "t/dni_es_validate",
"name": "dni_es_validate",
"description": "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"
],
"examples": [
"{\"dni\":\"12345678Z\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/dni_es_validate"
},
{
"id": "t/vat_de_validate",
"name": "vat_de_validate",
"description": "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"
],
"examples": [
"{\"vat\":\"DE811569869\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/vat_de_validate"
},
{
"id": "t/cedula_pa_validate",
"name": "cedula_pa_validate",
"description": "Offline structural validator for a Panama C\u00e9dula 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"
],
"examples": [
"{\"value\":\"3-732-1785\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/cedula_pa_validate"
},
{
"id": "t/cedula_do_validate",
"name": "cedula_do_validate",
"description": "Offline validator for a Dominican Republic C\u00e9dula 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"
],
"examples": [
"{\"id\":\"00114333222\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/cedula_do_validate"
},
{
"id": "t/rnc_do_validate",
"name": "rnc_do_validate",
"description": "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"
],
"examples": [
"{\"rnc\":\"1-3188-0711\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/rnc_do_validate"
},
{
"id": "t/ruc_ec_natural_validate",
"name": "ruc_ec_natural_validate",
"description": "Offline validator for an Ecuadorian RUC (Registro \u00danico de Contribuyentes) belonging to a natural person: checks the 13-digit structure, verifies the embedded 10-digit c\u00e9dula 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"
],
"examples": [
"{\"ruc\":\"1710034065001\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/ruc_ec_natural_validate"
},
{
"id": "t/cedula_ec_validate",
"name": "cedula_ec_validate",
"description": "Offline validator for Ecuador's C\u00e9dula 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"
],
"examples": [
"{\"id\":\"1710034065\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/cedula_ec_validate"
},
{
"id": "t/nit_validate",
"name": "nit_validate",
"description": "Offline validator for a Colombian NIT (N\u00famero de Identificaci\u00f3n 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\u21920,1\u21921,else 11\u2212remainder, and compares to the appended DV digit. No network access.",
"tags": [
"colombia",
"nit",
"tax-id",
"validator",
"offline",
"dian"
],
"examples": [
"{\"nit\":\"800197268-4\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/nit_validate"
},
{
"id": "t/cik_validate",
"name": "cik_validate",
"description": "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"
],
"examples": [
"{\"cik\":\"320193\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/cik_validate"
},
{
"id": "t/ssn_validate",
"name": "ssn_validate",
"description": "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"
],
"examples": [
"{\"ssn\":\"078-05-1120\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/ssn_validate"
},
{
"id": "t/ein_validate",
"name": "ein_validate",
"description": "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"
],
"examples": [
"{\"ein\":\"12-3456789\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/ein_validate"
},
{
"id": "t/nss_validate",
"name": "nss_validate",
"description": "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"
],
"examples": [
"{\"nss\":\"12345678903\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/nss_validate"
},
{
"id": "t/curp_validate",
"name": "curp_validate",
"description": "Offline validator for a Mexican CURP (Clave \u00danica de Registro de Poblaci\u00f3n): 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"
],
"examples": [
"{\"curp\":\"GODE561231HDFRRN00\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/curp_validate"
},
{
"id": "t/robots_txt_check",
"name": "robots_txt_check",
"description": "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"
],
"examples": [
"{\"url\":\"https://httpbin.org\",\"userAgent\":\"*\",\"path\":\"/deny\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.002",
"endpoint": "https://toll402.dev/v1/t/robots_txt_check"
},
{
"id": "t/sitemap_parse",
"name": "sitemap_parse",
"description": "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"
],
"examples": [
"{\"url\":\"https://nonexistent-domain-abcxyz123456.com/sitemap.xml\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.003",
"endpoint": "https://toll402.dev/v1/t/sitemap_parse"
},
{
"id": "t/extract_page_links_meta",
"name": "extract_page_links_meta",
"description": "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"
],
"examples": [
"{\"url\":\"https://example.com\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.003",
"endpoint": "https://toll402.dev/v1/t/extract_page_links_meta"
},
{
"id": "t/email_list_validate",
"name": "email_list_validate",
"description": "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"
],
"examples": [
"{\"emails\":[\"John.Doe@Example.com\",\"john.doe@example.com\",\"bad-email\",\"user@mailinator.com\"]}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/email_list_validate"
},
{
"id": "t/geo_distance_bearing",
"name": "geo_distance_bearing",
"description": "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"
],
"examples": [
"{\"lat1\":0,\"lon1\":0,\"lat2\":0,\"lon2\":1}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/geo_distance_bearing"
},
{
"id": "t/reverse_geocode",
"name": "reverse_geocode",
"description": "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"
],
"examples": [
"{\"lat\":48.8584,\"lon\":2.2945}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.002",
"endpoint": "https://toll402.dev/v1/t/reverse_geocode"
},
{
"id": "t/phone_e164_normalize",
"name": "phone_e164_normalize",
"description": "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"
],
"examples": [
"{\"phone\":\"+5511987654321\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/phone_e164_normalize"
},
{
"id": "t/vkn_validate",
"name": "vkn_validate",
"description": "Offline structural validator for a Turkish VKN (Vergi Kimlik Numaras\u0131, 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"
],
"examples": [
"{\"vkn\":\"1234567890\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/vkn_validate"
},
{
"id": "t/vat_gr_validate",
"name": "vat_gr_validate",
"description": "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"
],
"examples": [
"{\"value\":\"EL094259216\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/vat_gr_validate"
},
{
"id": "t/vat_hu_validate",
"name": "vat_hu_validate",
"description": "Offline validator for a Hungarian EU VAT number (HU + 8-digit t\u00f6rzssz\u00e1m). 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"
],
"examples": [
"{\"vatNumber\":\"HU12345676\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/vat_hu_validate"
},
{
"id": "t/taj_hu_validate",
"name": "taj_hu_validate",
"description": "Offline validator for a Hungarian TAJ-sz\u00e1m (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"
],
"examples": [
"{\"taj\":\"123456786\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/taj_hu_validate"
},
{
"id": "t/adoszam_hu_validate",
"name": "adoszam_hu_validate",
"description": "Offline validator for a Hungarian Ad\u00f3sz\u00e1m (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"
],
"examples": [
"{\"taxNumber\":\"12345674-2-11\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/adoszam_hu_validate"
},
{
"id": "t/cif_es_validate",
"name": "cif_es_validate",
"description": "Offline validator for a Spanish CIF (C\u00f3digo de Identificaci\u00f3n 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"
],
"examples": [
"{\"cif\":\"A58818501\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https://toll402.dev/v1/t/cif_es_validate"
},
{
"id": "t/nie_es_validate",
"name": "nie_es_validate",
"description": "Offline validator for a Spanish NIE (N\u00famero 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"
],
"examples": [
"{\"nie\":\"X1234567L\"}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
],
"price": "$0.001",
"endpoint": "https:
… truncated here: the card is 222,127 characters as printed. The complete card is published at https://toll402.dev/.well-known/agent-card.json.