// post /v1/bulk/similar
Bulk Domain Similar API
Discover lookalike companies and competitor domains for thousands of accounts in one asynchronous bulk job.
Domains or company namesUp to 5,000 rows
curl -X POST "https://api.tomba.io/v1/bulk/similar" \
-H "X-Tomba-Key: $TOMBA_API_KEY" \
-H "X-Tomba-Secret: $TOMBA_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Similar Domains job","list":"piedpiper.com\nshopify.com","launch":true,"webhook_url":"https://hooks.example.com/tomba"}'const res = await fetch("https://api.tomba.io/v1/bulk/similar", {
method: "POST",
headers: {
"X-Tomba-Key": process.env.TOMBA_API_KEY,
"X-Tomba-Secret": process.env.TOMBA_SECRET_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "Similar Domains job",
"list": "piedpiper.com\nshopify.com",
"launch": true,
"webhook_url": "https://hooks.example.com/tomba"
})
});
const { data } = await res.json(); // { id }import os, requests
res = requests.post(
"https://api.tomba.io/v1/bulk/similar",
headers={
"X-Tomba-Key": os.environ["TOMBA_API_KEY"],
"X-Tomba-Secret": os.environ["TOMBA_SECRET_KEY"],
},
json={
"name": "Similar Domains job",
"list": "piedpiper.com\nshopify.com",
"launch": True,
"webhook_url": "https://hooks.example.com/tomba"
},
)
job_id = res.json()["data"]["id"]// 01 · request
Bulk Similar Domains is one HTTPS request
Send the parameters with your key and secret. Every SDK, the CLI and the MCP server make this same call.
- type
- similar
- list | data | file
- Domains or company names
- launch
- true starts the job at once
- webhook_url
- Receives a signed event when the job ends
- rows
- Up to 5,000 per job
curl -X POST "https://api.tomba.io/v1/bulk/similar" \
-H "X-Tomba-Key: $TOMBA_API_KEY" \
-H "X-Tomba-Secret: $TOMBA_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Similar Domains job","list":"piedpiper.com\nshopify.com","launch":true,"webhook_url":"https://hooks.example.com/tomba"}'const res = await fetch("https://api.tomba.io/v1/bulk/similar", {
method: "POST",
headers: {
"X-Tomba-Key": process.env.TOMBA_API_KEY,
"X-Tomba-Secret": process.env.TOMBA_SECRET_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "Similar Domains job",
"list": "piedpiper.com\nshopify.com",
"launch": true,
"webhook_url": "https://hooks.example.com/tomba"
})
});
const { data } = await res.json(); // { id }import os, requests
res = requests.post(
"https://api.tomba.io/v1/bulk/similar",
headers={
"X-Tomba-Key": os.environ["TOMBA_API_KEY"],
"X-Tomba-Secret": os.environ["TOMBA_SECRET_KEY"],
},
json={
"name": "Similar Domains job",
"list": "piedpiper.com\nshopify.com",
"launch": True,
"webhook_url": "https://hooks.example.com/tomba"
},
)
job_id = res.json()["data"]["id"]// 02 · response
What comes back
JSON, the same in every language. Fields Tomba doesn't know are null, never guessed.
GET
/similarFielddata[].website_urlstring- Each similar company's domain
data[].name, data[].industriesstring | null- Its name and industry
meta.total, meta.total_pagesinteger- Similar companies found, and pages
meta.current, meta.pageSizeinteger- This page and its size
meta.paramsobject- The parameters the search ran with
POST /bulk/similar
201 Created
{
"data": {
"id": 1042
}
}Each row, as GET /similar returns it
200 OK
{
"data": [
{
"website_url": "hooli.com",
"name": "Hooli",
"industries": "internet"
},
{
"website_url": "endframe.com",
"name": "Endframe",
"industries": "computer software"
}
],
"meta": {
"total": 2,
"pageSize": 10,
"current": 1,
"total_pages": 1,
"params": {
"domain": "piedpiper.com",
"page": 1,
"limit": 10
}
}
}// 03 · cost and limits
What a call costs
A call is charged only under the condition below. Rate limits depend on your plan.
// cost
1 search credit per domain with at least one similar company.
Charged once, at the first download; later downloads are free
- Jobs created: 15 per day for each type
- Running jobs: 2 per type
- Downloads: 25 per day for each job
- Request size: 4 MB (CSV, list or rows)
Create a bulk operation by uploading company domains, then launch the operation. The API finds similar companies for each domain asynchronously based on industry, size, and business model.
You can process up to 5,000 domains per bulk operation. Each domain returns a list of similar companies.
The API analyzes multiple factors including industry classification, company size, business model, technology stack, and market positioning to identify similar companies.
Each domain returns a list of similar company domains with their names. Results are ranked by relevance and similarity score.
Common use cases include competitive analysis, market research, TAM expansion, finding lookalike companies for sales prospecting, and building targeted account lists.
Processing time depends on the list size and the lookups it needs. Poll the job or set a webhook to hear when it finishes.
Yes, configure a webhook URL to receive a notification when your bulk similar domain operation completes with results ready for download.
Once processing completes, use the download endpoint to get all similar domains as CSV or JSON format for each input domain.
Yes. A common workflow is to start from known customers, find similar companies in bulk, then feed those domains to Domain Search or Email Finder for contact discovery.
Use official corporate domains instead of product microsites or country redirects. Clean canonical domains produce better similarity scoring and fewer duplicates.