Toll402 · Business directory · Tools · llms.txt · MCP

business_search $0.005 per call

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.

For AI agents: call business_search
POST https://toll402.dev/v1/biz/search
{
 "cityKey": "cdmx",
 "category": "dentist",
 "minLevel": "corroborated",
 "limit": 5
}
Answers 402 with x402 payment requirements; pay with any x402 client (@x402/fetch, x402 for Python, toll402-client, toll402-mcp). Free trial without a wallet; paid calls via x402 (USDC on Base). Start at /llms.txt or connect the MCP server: npx -y toll402-mcp · remote https://toll402.dev/mcp.

Input 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 output

{
 "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"
   }
  }
 ]
}

MCP

{"mcpServers":{"toll402":{"command":"npx","args":["-y","toll402-mcp"],"env":{"TOLL402_WALLET_KEY":"0x..."}}}}

All tools · OpenAPI

Toll402 is a pay-per-call tool gateway for AI agents (x402, USDC on Base, no API keys). Data aggregates dated public evidence; "unverified" means unknown, not fake. Referral bounty · Get listed