Sourcing for agents whose principal is launching or buying something: describe the need ("
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.
250000 (raw units)
price
1
calls / 30d
1
unique payers
2026-09-09
updated
Provider
toll402.dev · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x318d34fa0bd69eff17fac648d2df8cf7a88b3dbe",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "250000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"city": "Guadalajara",
"country": "MX",
"limit": 6,
"need": "Opening a specialty coffee shop, need coffee roasters and a commercial kitchen equipment supplier"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"city": "Guadalajara",
"gaps": null,
"shortlist": [
{
"bestContact": "email",
"business": {
"name": "…"
},
"fit": 82,
"role": "coffee roaster",
"why": "Verified roaster with wholesale page"
}
]
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"city": {
"maxLength": 80,
"minLength": 2,
"type": "string"
},
"country": {
"description": "ISO-3166 alpha-2, e.g. MX",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"limit": {
"default": 6,
"maximum": 10,
"minimum": 3,
"type": "integer"
},
"minEmployees": {
"maximum": 251,
"minimum": 0,
"type": "integer"
},
"need": {
"description": "What you are trying to do and what kind of businesses you need",
"maxLength": 600,
"minLength": 8,
"type": "string"
},
"requireWebsite": {
"default": false,
"type": "boolean"
}
},
"required": [
"need",
"city"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"ms": {
"type": "integer"
},
"ok": {
"type": "boolean"
},
"result": {
"properties": {
"city": {
"type": "string"
},
"gaps": {
"type": "null"
},
"shortlist": {
"items": {
"properties": {
"bestContact": {
"type": "string"
},
"business": {
"properties": {
"name": {
"type": "string"
}
},
"type": "object"
},
"fit": {
"type": "integer"
},
"role": {
"type": "string"
},
"why": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"tool": {
"type": "string"
}
},
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://toll402.dev/v1/biz/shortlist" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://toll402.dev/v1/biz/shortlist");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://toll402.dev/v1/biz/shortlist")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/7037.json, and this resource appears in /discovery/resources and /discovery/search.