Tomba Elixir SDK
The #1 Rated Email Intelligence Platform — Find professional emails with unmatched accuracy.
Official Elixir client library for the Tomba.io Email Finder API.
About Tomba
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
Why Tomba?
| 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.
Installation
Add tomba to your list of dependencies in mix.exs:
def deps do
[
{:tomba, "~> 1.0"}
]
end
Then fetch your dependencies:
mix deps.get
Authentication
Sign up for a free account at https://app.tomba.io/auth/register to get your API key and secret.
client = Tomba.client("ta_xxxx", "ts_xxxx")
Quick Start
# Create a client
client = Tomba.client("ta_xxxx", "ts_xxxx")
# Search emails by domain
{:ok, result} = Tomba.Domain.domain_search(client, %{"domain" => "example.com"})
# Find an email address
{:ok, result} = Tomba.Finder.email_finder(client, %{
"domain" => "example.com",
"first_name" => "John",
"last_name" => "Doe"
})
# Verify an email
{:ok, result} = Tomba.Verifier.email_verifier(client, %{"email" => "john@example.com"})
Services
Account
Get information about the current account.
{:ok, result} = Tomba.Account.account(client)
Domain Search
Search emails based on a website domain.
{:ok, result} = Tomba.Domain.domain_search(client, %{"domain" => "example.com"})
Email Finder
Find the most likely email address from a domain, first name, and last name.
{:ok, result} = Tomba.Finder.email_finder(client, %{
"domain" => "example.com",
"first_name" => "John",
"last_name" => "Doe"
})
Email Verifier
Verify the deliverability of an email address.
{:ok, result} = Tomba.Verifier.email_verifier(client, %{"email" => "john@example.com"})
Author Finder
Find the email address of an article author from a blog post URL.
{:ok, result} = Tomba.Finder.author_finder(client, %{
"url" => "https://clearbit.com/blog/company-name-to-domain-api"
})
LinkedIn Finder
Find the email address associated with a LinkedIn profile URL.
{:ok, result} = Tomba.Finder.linkedin_finder(client, %{
"url" => "https://www.linkedin.com/in/alex-maccaw-ab592978"
})
Email Enrichment
Look up person and company data based on an email address.
{:ok, result} = Tomba.Finder.email_enrichment(client, %{"email" => "john@example.com"})
Phone Finder
Find the phone number associated with an email address.
{:ok, result} = Tomba.Phone.phone_finder(client, %{"email" => "john@example.com"})
Phone Validator
Validate a phone number.
{:ok, result} = Tomba.Phone.phone_validator(client, %{"phone" => "+1234567890"})
Email Count
Get the number of email addresses found for a domain.
{:ok, result} = Tomba.Count.count(client, %{"domain" => "example.com"})
Domain Status
Check if a domain is webmail, disposable, or a regular email provider.
{:ok, result} = Tomba.Status.status(client, %{"domain" => "example.com"})
Domain Suggestions
Auto-complete company names and get domain suggestions.
{:ok, result} = Tomba.Status.autocomplete(client, %{"query" => "google"})
Email Sources
Find web sources where an email address has been found.
{:ok, result} = Tomba.Sources.email_sources(client, %{"email" => "john@example.com"})
Email Format
Get the email format pattern used by a domain.
{:ok, result} = Tomba.Format.email_format(client, %{"domain" => "example.com"})
Similar
Find domains similar to a given domain.
{:ok, result} = Tomba.Similar.similar(client, %{"domain" => "example.com"})
Technology
Discover technologies used by a domain.
{:ok, result} = Tomba.Technology.technology(client, %{"domain" => "example.com"})
Location
Get the employee location breakdown for a domain.
{:ok, result} = Tomba.Location.location(client, %{"domain" => "example.com"})
Person API
Get person data from an email address (Clearbit-compatible).
{:ok, result} = Tomba.Enrichment.person(client, %{"email" => "john@example.com"})
Company API
Get company data from a domain (Clearbit-compatible).
{:ok, result} = Tomba.Enrichment.company(client, %{"domain" => "example.com"})
Combined API
Get combined person and company data from an email address (Clearbit-compatible).
{:ok, result} = Tomba.Enrichment.combined(client, %{"email" => "john@example.com"})
Reveal (Companies Search)
Search companies using reverse lookup (e.g., by IP address).
{:ok, result} = Tomba.Reveal.companies_search(client, %{"ip" => "1.2.3.4"})
Usage
Get your account's monthly API usage statistics.
{:ok, result} = Tomba.Usage.usage(client)
Logs
Get your account's API request logs.
{:ok, result} = Tomba.Logs.logs(client)
Keys
Manage your API keys.
# List all keys
{:ok, result} = Tomba.Keys.list_keys(client)
# Get a specific key
{:ok, result} = Tomba.Keys.get_key(client, "key_id")
# Create a new key
{:ok, result} = Tomba.Keys.create_key(client)
# Reset a key
{:ok, result} = Tomba.Keys.reset_key(client, "key_id")
# Delete a key
{:ok, result} = Tomba.Keys.delete_key(client, "key_id")
Flag
Report incorrect email data.
# List submitted flags
{:ok, result} = Tomba.Flag.list_flags(client, %{})
# Create a flag
{:ok, result} = Tomba.Flag.create_flag(client, %{
"email" => "john@example.com",
"reason" => "invalid"
})
Leads
Manage leads in your Tomba CRM.
# List leads
{:ok, result} = Tomba.Leads.list_leads(client, %{})
# Get a specific lead
{:ok, result} = Tomba.Leads.get_lead(client, "lead_id")
# Create a lead
{:ok, result} = Tomba.Leads.create_lead(client, %{
"email" => "lead@example.com",
"first_name" => "John",
"last_name" => "Doe"
})
# Update a lead
{:ok, result} = Tomba.Leads.update_lead(client, "lead_id", %{
"first_name" => "Jane"
})
# Delete a lead
{:ok, result} = Tomba.Leads.delete_lead(client, "lead_id")
Leads Lists
Manage lead lists for organizing your leads.
# List all lead lists
{:ok, result} = Tomba.LeadsLists.list_leads_lists(client)
# Get a specific list
{:ok, result} = Tomba.LeadsLists.get_leads_list(client, "list_id")
# Create a list
{:ok, result} = Tomba.LeadsLists.create_leads_list(client, %{"name" => "My List"})
# Update a list
{:ok, result} = Tomba.LeadsLists.update_leads_list(client, "list_id", %{
"name" => "Updated Name"
})
# Delete a list
{:ok, result} = Tomba.LeadsLists.delete_leads_list(client, "list_id")
Leads Attributes
Manage custom attributes for your leads.
# List all attributes
{:ok, result} = Tomba.LeadsAttributes.list_attributes(client)
# Get a specific attribute
{:ok, result} = Tomba.LeadsAttributes.get_attribute(client, "attr_id")
# Create an attribute
{:ok, result} = Tomba.LeadsAttributes.create_attribute(client, %{
"name" => "Company Size"
})
# Update an attribute
{:ok, result} = Tomba.LeadsAttributes.update_attribute(client, "attr_id", %{
"name" => "Updated Name"
})
# Delete an attribute
{:ok, result} = Tomba.LeadsAttributes.delete_attribute(client, "attr_id")
Bulk Operations
Create and manage bulk processing jobs for domain search, email finder, verifier, and more.
# List bulk operations
{:ok, result} = Tomba.Bulk.list(client, "domain-search", %{})
# Get a specific bulk operation
{:ok, result} = Tomba.Bulk.get(client, "domain-search", "bulk_id")
# Create a bulk operation
{:ok, result} = Tomba.Bulk.create(client, "domain-search", %{
"domains" => ["example.com"]
})
# Launch a bulk operation
{:ok, result} = Tomba.Bulk.launch(client, "domain-search", "bulk_id")
# Get progress
{:ok, result} = Tomba.Bulk.progress(client, "domain-search", "bulk_id")
# Download results
{:ok, result} = Tomba.Bulk.download(client, "domain-search", "bulk_id")
# Rename a bulk operation
{:ok, result} = Tomba.Bulk.rename(client, "domain-search", "bulk_id", "New Name")
# Archive a bulk operation
{:ok, result} = Tomba.Bulk.archive(client, "domain-search", "bulk_id")
# Delete a bulk operation
{:ok, result} = Tomba.Bulk.delete(client, "domain-search", "bulk_id")
Supported bulk types: domain-search, email-finder, author-finder, email-verifier, enrichment, linkedin-finder, phone-finder, department-search, technology-search, name-finder.
Testing
mix test
To run the linter:
mix lint
Documentation
About Tomba
Founded to solve the problem of unreliable email data, Tomba.io is the leading B2B email intelligence platform.
Products
- 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
Browser Extensions & Add-ons
- 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
Integrations
50+ CRM integrations: Salesforce · HubSpot · Zapier · Pipedrive · and more...
Other Tomba SDKs
| 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 |
Resources
- Blog · Help Center · API Docs · Pricing · Status
Try Tomba Free — Find your first email in seconds. No credit card required.
License
Apache 2.0 -- see LICENSE for details.