// bulk operations
Bulk Phone Finder
Upload a CSV of contacts and find phone numbers for all of them at once.
- 01pending
POST /v1/bulk/phone-finder201 · { "data": { "id": 1042 } } - 02running
launch: trueprogress polled with GET /v1/bulk/phone-finder/1042/progress - 03completed
bulk.completedsigned webhook delivered to your webhook_url
GET /v1/bulk/phone-finder/1042/download?file=fullCharged at the first download · the job expires after 180 days// 01 · input
The input of a bulk Phone Finder job
Upload a CSV of up to 4 MB in the app, or send a list, rows or a file to POST /v1/bulk/phone-finder. Columns are found from the header row; set a field index to choose one yourself.
/bulk/phone-finderColumnsdomain_field_index- Domain
email_field_index- Email address
linkedin_url_field_index- LinkedIn profile URL
/bulk/phone-finderOptionsfind_all_phones- true returns every phone number found instead of one
// 02 · api
One request starts the job
Create and launch it in one call, then follow its progress or receive a signed bulk.completed event. Each result row is what GET /phone-finder returns.
curl -X POST "https://api.tomba.io/v1/bulk/phone-finder" \
-H "X-Tomba-Key: $TOMBA_API_KEY" \
-H "X-Tomba-Secret: $TOMBA_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Phone Finder job","list":"richard@piedpiper.com","launch":true,"webhook_url":"https://hooks.example.com/tomba"}'const res = await fetch("https://api.tomba.io/v1/bulk/phone-finder", {
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": "Phone Finder job",
"list": "richard@piedpiper.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/phone-finder",
headers={
"X-Tomba-Key": os.environ["TOMBA_API_KEY"],
"X-Tomba-Secret": os.environ["TOMBA_SECRET_KEY"],
},
json={
"name": "Phone Finder job",
"list": "richard@piedpiper.com",
"launch": True,
"webhook_url": "https://hooks.example.com/tomba"
},
)
job_id = res.json()["data"]["id"]{
"data": {
"id": 1042
}
}{
"email": "richard@piedpiper.com",
"data": {
"email": "richard@piedpiper.com",
"valid": true,
"local_format": "(650) 555-0132",
"intl_format": "+1 650-555-0132",
"e164_format": "+16505550132",
"rfc3966_format": "tel:+1-650-555-0132",
"country_code": "US",
"line_type": "MOBILE",
"carrier": "AT&T",
"region": {
"name": "California",
"code": "CA"
},
"timezones": [
"America/Los_Angeles"
]
}
}// 03 · cost and limits
What a job costs
Nothing is charged to create or launch a job. Its cost is charged once, at the first download of its results.
- Rows: up to 10,000 per job
- 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)
// 04 · use it anywhere
Run Phone Finder jobs from the app or your code
The same job, the same credits: upload a file in the app, call the API, or work from a spreadsheet or a no-code tool.
- REST APIJSON over HTTPS, 13 SDKs, signed webhooks.
GET /v1/phone-finder - Bulk CSVUpload a list in the app or POST it to /bulk; download when it's done.
POST /v1/bulk/{type} - Google Sheets and ExcelFormulas and a sidebar that call the same endpoints.
=TOMBA_PHONE(A2) - Zapier, Make, n8nNo-code actions for the finder, verifier and enrichment.
Zapier · Make · n8n · Pipedream
The full request reference: /api/bulk/phone-finder
// customers
Teams that run Phone Finder jobs
I've tested over a dozen providers, and Tomba.io stands out. The mobile phone finder is on another level instantly better than any other tool I've tested.
Al AminFounder & CEO, BizniftTomba.io keeps getting better every day. I've been using it since 2021. It's now a leading solution for email finding, verification, and easily finding mobile numbers.
Osama AhmedSEO Ninja, BYTEBEX