The #1 Rated Email Intelligence Platform — Find professional emails with unmatched accuracy.
Tomba.io is the #1 rated email intelligence platform, trusted by 150,000+ sales teams worldwide.
- Best Email Finder — 98% accuracy, ranked #1 in independent benchmarks
- Best Email Verification — Real-time SMTP verification with catch-all detection
- Best Phone Finder — Direct dial numbers linked to professional emails
- Best Domain Search — 450M+ verified contacts across all industries
- 81% Coverage — The highest in the industry, proven in 5,000-lead independent tests
| Feature | Tomba | Others |
|---|---|---|
| Email Coverage | 81% | 30-60% |
| Verification | Real-time SMTP | Pattern-based |
| Phone Numbers | Direct dials | Limited |
| Catch-all Detection | AI-powered | Basic |
| API Rate Limits | Generous | Restrictive |
Get your free API key — No credit card required.
- Sign up for a free account at app.tomba.io
- Get your API key from the API dashboard
- Install the SDK (see below)
- Start finding emails with just a few lines of code
Install via Composer:
composer require tomba-io/phpRequirements: PHP >= 8.1, ext-curl, ext-json
Get your API keys from https://app.tomba.io/auth/register.
You can authenticate using environment variables or by setting keys directly:
<?php
use Tomba\Client;
$client = new Client();
// Option 1: Set keys directly
$client
->setKey('ta_xxxx') // Your API Key
->setSecret('ts_xxxx') // Your Secret Key
;
// Option 2: Use environment variables TOMBA_API_KEY and TOMBA_SECRET_KEY
$client
->setKey(getenv('TOMBA_API_KEY'))
->setSecret(getenv('TOMBA_SECRET_KEY'))
;<?php
use Tomba\Client;
use Tomba\Services\Domain;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$domain = new Domain($client);
$result = $domain->domainSearch('stripe.com');
print_r($result);Search emails by domain name. Returns all email addresses found on the internet for a given domain.
<?php
use Tomba\Client;
use Tomba\Services\Domain;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$domain = new Domain($client);
$result = $domain->domainSearch('stripe.com');Generate or retrieve the most likely email address from a domain name, a first name, and a last name.
<?php
use Tomba\Client;
use Tomba\Services\Finder;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$finder = new Finder($client);
$result = $finder->emailFinder('stripe.com', 'John', 'Doe');Verify the deliverability of a given email address.
<?php
use Tomba\Client;
use Tomba\Services\Verifier;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$verifier = new Verifier($client);
$result = $verifier->emailVerifier('john@example.com');Discover the email address of an article's author from a blog post URL.
<?php
use Tomba\Client;
use Tomba\Services\Finder;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$finder = new Finder($client);
$result = $finder->authorFinder('https://tomba.io/blog');Retrieve the email address associated with a LinkedIn profile URL.
<?php
use Tomba\Client;
use Tomba\Services\Finder;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$finder = new Finder($client);
$result = $finder->linkedinFinder('https://www.linkedin.com/in/johndoe');Enrich data associated with an email address (person, company, or combined).
<?php
use Tomba\Client;
use Tomba\Services\Enrichment;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$enrichment = new Enrichment($client);
// Person enrichment
$result = $enrichment->person('john@example.com');
// Company enrichment
$result = $enrichment->company('stripe.com');
// Combined enrichment (person + company)
$result = $enrichment->combined('john@example.com');Search for phone numbers associated with an email, domain, or LinkedIn profile.
<?php
use Tomba\Client;
use Tomba\Services\Finder;
use Tomba\Services\Phone;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
// Via Finder service
$finder = new Finder($client);
$result = $finder->phoneFinder('john@example.com');
// Via Phone service
$phone = new Phone($client);
$result = $phone->phoneFinder(['email' => 'john@example.com']);Validate a phone number and retrieve additional information.
<?php
use Tomba\Client;
use Tomba\Services\Phone;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$phone = new Phone($client);
$result = $phone->phoneValidator('+1234567890', 'US');Get the total number of email addresses found for a domain.
<?php
use Tomba\Client;
use Tomba\Services\Count;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$count = new Count($client);
$result = $count->emailCount('stripe.com');Check if a domain is a webmail or disposable domain.
<?php
use Tomba\Client;
use Tomba\Services\Status;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$status = new Status($client);
$result = $status->domainStatus('stripe.com');Auto-complete company names and retrieve logo and domain information.
<?php
use Tomba\Client;
use Tomba\Services\Status;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$status = new Status($client);
$result = $status->autoComplete('stripe');Find where an email address has been found on the web.
<?php
use Tomba\Client;
use Tomba\Services\Sources;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$sources = new Sources($client);
$result = $sources->emailSources('john@example.com');Discover the email format used by a domain (e.g., first.last, first_last).
<?php
use Tomba\Client;
use Tomba\Services\Format;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$format = new Format($client);
$result = $format->emailFormat('stripe.com');Find websites similar to a given domain.
<?php
use Tomba\Client;
use Tomba\Services\Similar;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$similar = new Similar($client);
$result = $similar->websites('stripe.com');Detect the technologies used by a website.
<?php
use Tomba\Client;
use Tomba\Services\Technology;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$technology = new Technology($client);
$result = $technology->list('stripe.com');Get geographic location information for a domain.
<?php
use Tomba\Client;
use Tomba\Services\Location;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$location = new Location($client);
$result = $location->getLocation('stripe.com');Search for companies using various filters and criteria.
<?php
use Tomba\Client;
use Tomba\Services\Reveal;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$reveal = new Reveal($client);
$result = $reveal->companiesSearch(['query' => 'technology', 'page' => 1]);Manage your leads: list, get, create, update, and delete.
<?php
use Tomba\Client;
use Tomba\Services\Leads;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$leads = new Leads($client);
// List leads
$result = $leads->listLeads(page: 1, limit: 10);
// Get a single lead
$result = $leads->getLead('lead_id');
// Create a lead
$result = $leads->createLead([
'email' => 'john@example.com',
'first_name' => 'John',
'last_name' => 'Doe',
]);
// Update a lead
$result = $leads->updateLead('lead_id', ['first_name' => 'Jane']);
// Delete a lead
$result = $leads->deleteLead('lead_id');Manage your leads lists: list, create, update, and delete.
<?php
use Tomba\Client;
use Tomba\Services\LeadsLists;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$leadsLists = new LeadsLists($client);
// Get all lists
$result = $leadsLists->getLists();
// Create a list
$result = $leadsLists->createList();
// Update a list
$result = $leadsLists->updateListId('list_id');
// Delete a list
$result = $leadsLists->deleteListId('list_id');Manage custom lead attributes: list, create, update, and delete.
<?php
use Tomba\Client;
use Tomba\Services\LeadsAttributes;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$attributes = new LeadsAttributes($client);
// Get all attributes
$result = $attributes->getLeadAttributes();
// Create an attribute
$result = $attributes->createLeadAttribute();
// Update an attribute
$result = $attributes->updateLeadAttribute('attribute_id');
// Delete an attribute
$result = $attributes->deleteLeadAttribute('attribute_id');Manage your API keys: list, create, reset, and delete.
<?php
use Tomba\Client;
use Tomba\Services\Keys;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$keys = new Keys($client);
// List all keys
$result = $keys->getKeys();
// Create a key
$result = $keys->createKey();
// Reset a key
$result = $keys->resetKey('key_id');
// Delete a key
$result = $keys->deleteKey('key_id');Retrieve your monthly API request usage statistics.
<?php
use Tomba\Client;
use Tomba\Services\Usage;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$usage = new Usage($client);
$result = $usage->getUsage();Retrieve your last 1,000 API requests made during the last 3 months.
<?php
use Tomba\Client;
use Tomba\Services\Logs;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$logs = new Logs($client);
$result = $logs->getLogs(page: 1, limit: 20);Flag email addresses as invalid or incorrect.
<?php
use Tomba\Client;
use Tomba\Services\Flag;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$flag = new Flag($client);
// List all flags
$result = $flag->listFlags();
// Create a flag
$result = $flag->createFlag('invalid@example.com', 'Email bounced');Manage bulk tasks for domain search, email finding, and verification.
<?php
use Tomba\Client;
use Tomba\Services\Bulk;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$bulk = new Bulk($client);
// List bulk tasks
$result = $bulk->listBulks('finder');
// Create a bulk task
$result = $bulk->createBulk('verifier', ['emails' => ['a@example.com', 'b@example.com']]);
// Get bulk task details
$result = $bulk->getBulk('verifier', 123);
// Launch a bulk task
$result = $bulk->launchBulk('verifier', 123);
// Check progress
$result = $bulk->bulkProgress('verifier', 123);
// Download results
$result = $bulk->downloadBulk('verifier', 123);
// Rename a bulk task
$result = $bulk->renameBulk('verifier', 123, 'My Batch');
// Archive a bulk task
$result = $bulk->archiveBulk('verifier', 123);
// Delete a bulk task
$result = $bulk->deleteBulk('verifier', 123);Retrieve information about the current account.
<?php
use Tomba\Client;
use Tomba\Services\Account;
$client = new Client();
$client->setKey('ta_xxxx')->setSecret('ts_xxxx');
$account = new Account($client);
$result = $account->getAccount();Run the test suite with PHPUnit:
composer testLint and format code:
composer lint
composer formatSee the official documentation.
Founded to solve the problem of unreliable email data, Tomba.io is the leading B2B email intelligence platform. Our AI-powered engine searches, verifies, and enriches professional contact data with unmatched accuracy.
- Email Finder — Find any professional email address
- Email Verifier — Verify emails in real-time
- Domain Search — Find all emails for a company
- Phone Finder — Find direct phone numbers
- Bulk Enrichment — Enrich contacts at scale
- AI Company Search — Find companies with AI-powered search
- CLI — Command-line interface for Tomba
- MCP Server — Connect AI tools (Claude, ChatGPT, Cursor) to Tomba
- REST API — Full programmatic access
- Chrome Extension — Find emails while browsing
- Google Sheets Add-on — Enrich leads in spreadsheets
- Microsoft Excel Add-in — Email finder in Excel
- Airtable Integration — Connect with Airtable
50+ CRM and sales tool integrations: Salesforce · HubSpot · Zapier · Pipedrive · and more...
| Language | Package |
|---|---|
| Node.js | tomba |
| Python | tomba-io |
| PHP | tomba-io/php |
| Ruby | tomba |
| Go | tomba-io/go |
| Rust | tomba |
| Dart | tomba |
| Deno | @tomba/sdk |
| Elixir | tomba |
| C# | Tomba |
| Perl | Tomba::Client |
| Lua | tomba |
| R | tomba |
Try Tomba Free — Find your first email in seconds. No credit card required.
Licensed under the Apache 2.0 license.