Skip to content

// bulk operations

Bulk Domain Search

Upload a CSV of company domains and find all associated email addresses at once.

Domains or company namesUp to 25,000 rows a jobCSV, list or rows
domain-search-list.csv2,500 rows · domains or company namescompleted
Bulk Domain Search · /bulk/search2,500 / 2,500
  1. 01pendingPOST /v1/bulk/search201 · { "data": { "id": 1042 } }
  2. 02runninglaunch: trueprogress polled with GET /v1/bulk/search/1042/progress
  3. 03completedbulk.completedsigned webhook delivered to your webhook_url
GET /v1/bulk/search/1042/download?file=fullCharged at the first download · the job expires after 180 days

// 01 · input

The input of a bulk Domain Search job

Upload a CSV of up to 4 MB in the app, or send a list, rows or a file to POST /v1/bulk/search. Columns are found from the header row; set a field index to choose one yourself.

POST/bulk/searchColumns
domain_field_index
Domain
company_name_field_index
Company name
POST/bulk/searchOptions
input_type
domain or company; company when the input has a company name column and no domain column
max_emails_per_domain
Addresses per domain: 1, 10 (the default), 20, 50 or 100
email_type, email_type_mode
all (the default), personal or generic; only (the default) or priority
departments, departments_mode
Department names such as ["sales", "marketing"]; only or priority
verify_emails
true verifies the addresses found
find_phones
true adds phone numbers, at an extra cost
include_sources
true adds the web pages where each address was found
boost_score_from_sources
true adds 10 points, up to 90, to an unverified address found on at least 5 pages

// 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 /domain-search returns.

curl -X POST "https://api.tomba.io/v1/bulk/search" \
  -H "X-Tomba-Key: $TOMBA_API_KEY" \
  -H "X-Tomba-Secret: $TOMBA_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Domain Search job","list":"piedpiper.com\nshopify.com\nnotion.so","launch":true,"webhook_url":"https://hooks.example.com/tomba"}'
POST /bulk/search
201 Created
{
  "data": {
    "id": 1042
  }
}
Each row, as GET /domain-search returns it
200 OK
{
  "data": {
    "organization": {
      "website_url": "piedpiper.com",
      "organization": "Pied Piper",
      "location": {
        "country": "US",
        "city": "Palo Alto",
        "state": "CA",
        "street_address": "5230 Newell Road",
        "postal_code": "94303"
      },
      "social_links": {
        "twitter_url": null,
        "facebook_url": null,
        "instagram_url": null,
        "linkedin_url": "https://www.linkedin.com/company/pied-piper",
        "github_url": null,
        "youtube_url": null,
        "pinterest_url": null,
        "tiktok_url": null
      },
      "disposable": false,
      "webmail": false,
      "phone_number": false,
      "industries": "computer software",
      "founded": "2014",
      "company_size": "11-50",
      "company_type": "privately held",
      "revenue": null,
      "accept_all": false,
      "description": "Pied Piper builds middle-out compression for files, video and a decentralized internet.",
      "pattern": "{first}",
      "total_similar": 2,
      "keywords": [
        "compression",
        "middle-out",
        "decentralized internet"
      ],
      "ranking": null,
      "whois": {
        "registrar_name": null,
        "created_date": null,
        "referral_url": null
      },
      "last_updated": "2025-01-15T10:32:00+01:00"
    },
    "emails": [
      {
        "email": "dinesh@piedpiper.com",
        "first_name": "Dinesh",
        "last_name": "Chugtai",
        "full_name": "Dinesh Chugtai",
        "gender": "male",
        "phone_number": false,
        "type": "personal",
        "country": "US",
        "position": "Software Engineer",
        "department": "engineering",
        "seniority": "senior",
        "twitter": null,
        "linkedin": null,
        "score": 99,
        "verification": {
          "date": "2025-01-15T10:32:00+01:00",
          "status": "valid"
        },
        "phone_data": [],
        "sources": [
          {
            "uri": "https://piedpiper.com/blog/engineering",
            "website_url": "piedpiper.com",
            "extracted_on": "2024-06-01T09:14:07+01:00",
            "last_seen_on": "2025-01-10T17:02:44+01:00",
            "still_on_page": true
          }
        ]
      },
      {
        "email": "gilfoyle@piedpiper.com",
        "first_name": "Bertram",
        "last_name": "Gilfoyle",
        "full_name": "Bertram Gilfoyle",
        "gender": "male",
        "phone_number": false,
        "type": "personal",
        "country": "US",
        "position": "Systems Architect",
        "department": "engineering",
        "seniority": "senior",
        "twitter": null,
        "linkedin": null,
        "score": 97,
        "verification": {
          "date": "2025-01-15T10:32:00+01:00",
          "status": "valid"
        },
        "phone_data": [],
        "sources": [
          {
            "uri": "https://piedpiper.com/blog/engineering",
            "website_url": "piedpiper.com",
            "extracted_on": "2024-06-01T09:14:07+01:00",
            "last_seen_on": "2025-01-10T17:02:44+01:00",
            "still_on_page": true
          }
        ]
      }
    ]
  },
  "meta": {
    "total": 12,
    "pageSize": 10,
    "current": 1,
    "total_pages": 2,
    "params": {
      "domain": "piedpiper.com",
      "company": "",
      "page": 1,
      "limit": 10,
      "department": "engineering",
      "country": null,
      "type": "all",
      "live": false,
      "enrich_mobile": false,
      "webhook_url": null
    }
  }
}

// 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.

// billing per row

Per domain with at least one address: 1 search credit per 10 addresses returned, at most 10. Plus 5 per address with phone data.

Bulk billing in the docs
  • Rows: up to 25,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)

// 5,000-lead benchmark

More valid emails than the eight other tools we tested

Real data. Same input. No human touch. Full transparency. We ran a head-to-head test using the same 5,000-line input file across multiple email-finding tools.

Tomba.io found 4,015 valid emails from 5,000 leads: #1 of 9 tools tested.
RankToolTotal
1Tomba.io4,015
2Anymailfinder3,875
3Findymail3,757
4GetProspect3,096
5Skrapp2,142
6Hunter1,882
7VoilaNorbert1,800
8Snov1,007
9Prospeo846

Tomba.io found 4,015 valid emails from 5,000 leads: #1 of 9 tools tested.

Tomba’s own test, February 2026. One file of 5,000 leads, 2,500 with the company website and 2,500 with only the company name, ran through each tool with no manual cleanup. Only addresses a tool labelled valid or verified count; percentages are of the 2,500 inputs of each kind.

View raw data spreadsheet

// faq

Frequently Asked Questions

Still have questions? Visit the help center

// quick start

Make your first call in a minute

Free account, real API key, the same endpoints Enterprise customers use.

  1. 1Create a free account25 searches a month. No card.
  2. 2Copy your key and secretFrom API keys in the dashboard.
  3. 3Call the APIPaste the request; the answer is JSON.
curl "https://api.tomba.io/v1/email-finder?domain=piedpiper.com&first_name=Richard&last_name=Hendricks" \
  -H "X-Tomba-Key: $TOMBA_API_KEY" \
  -H "X-Tomba-Secret: $TOMBA_SECRET_KEY"
Response
200 OK· 1 search credit
{
  "data": {
    "email": "richard@piedpiper.com",
    "first_name": "Richard",
    "last_name": "Hendricks",
    "full_name": "Richard Hendricks",
    "website_url": "piedpiper.com",
    "company": "Pied Piper",
    "pattern": "{first}",
    "department": "executive",
    "type": "personal",
    "position": "CEO",
    "country": "US",
    "gender": "male",
    "twitter": null,
    "linkedin": "https://www.linkedin.com/in/richard-hendricks",
    "score": 100,
    "accept_all": false,
    "phone_number": true,
    "verification": {
      "date": "2025-01-15T10:32:00+01:00",
      "status": "valid"
    },
    "sources": [
      {
        "uri": "https://piedpiper.com/blog/engineering",
        "website_url": "piedpiper.com",
        "extracted_on": "2024-06-01T09:14:07+01:00",
        "last_seen_on": "2025-01-10T17:02:44+01:00",
        "still_on_page": true
      }
    ],
    "phone_data": []
  }
}