# Table of Contents - [Tomba.io API Documentation - Email Finder & Verifier | Tomba Documentation](#tomba-io-api-documentation-email-finder-verifier-tomba-documentation) - [Webhooks | Tomba Documentation](#webhooks-tomba-documentation) - [HTTPS / SSL | Tomba Documentation](#https-ssl-tomba-documentation) - [Data Updates - Introduction | Tomba Documentation](#data-updates-introduction-tomba-documentation) - [November Data Update | Tomba Documentation](#november-data-update-tomba-documentation) - [Top 500 Web Technologies 2026 | Tomba Documentation](#top-500-web-technologies-2026-tomba-documentation) - [Installation | Tomba Documentation](#installation-tomba-documentation) - [December Data Update | Tomba Documentation](#december-data-update-tomba-documentation) - [Tomba Apify MCP Server | Tomba Documentation](#tomba-apify-mcp-server-tomba-documentation) - [October Data Update | Tomba Documentation](#october-data-update-tomba-documentation) - [Tomba Remote MCP Tools | Tomba Documentation](#tomba-remote-mcp-tools-tomba-documentation) - [Web Technology Trends 2025 Analyzing 42 Million Websites | Tomba Documentation](#web-technology-trends-2025-analyzing-42-million-websites-tomba-documentation) - [Remote MCP Server - Introduction | Tomba Documentation](#remote-mcp-server-introduction-tomba-documentation) - [Remote MCP Server - LLM Integration | Tomba Documentation](#remote-mcp-server-llm-integration-tomba-documentation) - [Disposable Email Blocker | Tomba Documentation](#disposable-email-blocker-tomba-documentation) - [Free Plugins | Tomba Documentation](#free-plugins-tomba-documentation) - [Usage | Tomba Documentation](#usage-tomba-documentation) - [Setting Up Apify MCP Integration | Tomba Documentation](#setting-up-apify-mcp-integration-tomba-documentation) - [Available Tomba.io Tools in Apify MCP | Tomba Documentation](#available-tomba-io-tools-in-apify-mcp-tomba-documentation) - [Usage Limits and Quotas | Tomba Documentation](#usage-limits-and-quotas-tomba-documentation) - [July 2026 Data Update | Tomba Documentation](#july-2026-data-update-tomba-documentation) - [May 2026 Data Update | Tomba Documentation](#may-2026-data-update-tomba-documentation) - [April 2026 Data Update | Tomba Documentation](#april-2026-data-update-tomba-documentation) - [March 2026 Data Update | Tomba Documentation](#march-2026-data-update-tomba-documentation) - [June 2026 Data Update | Tomba Documentation](#june-2026-data-update-tomba-documentation) - [February 2026 Data Update | Tomba Documentation](#february-2026-data-update-tomba-documentation) - [Migrate from Snov.io to Tomba Email Finder | Tomba Documentation](#migrate-from-snov-io-to-tomba-email-finder-tomba-documentation) - [Clearbit API Replacement - Migrate to Tomba | Tomba Documentation](#clearbit-api-replacement-migrate-to-tomba-tomba-documentation) - [Creating a Free Account | Tomba Documentation](#creating-a-free-account-tomba-documentation) - [Rate Limits | Tomba Documentation](#rate-limits-tomba-documentation) - [Logo API | Tomba Documentation](#logo-api-tomba-documentation) - [January 2026 Data Update | Tomba Documentation](#january-2026-data-update-tomba-documentation) - [Key Features and Endpoints | Tomba Documentation](#key-features-and-endpoints-tomba-documentation) - [Migrate to Tomba Email Finder | Tomba Documentation](#migrate-to-tomba-email-finder-tomba-documentation) - [Migrate from Prospeo to Tomba Email Finder | Tomba Documentation](#migrate-from-prospeo-to-tomba-email-finder-tomba-documentation) - [Clearbit Company API Replacement | Tomba Documentation](#clearbit-company-api-replacement-tomba-documentation) - [Migrate from Findymail to Tomba Email Finder | Tomba Documentation](#migrate-from-findymail-to-tomba-email-finder-tomba-documentation) - [Clearbit Person API Replacement | Tomba Documentation](#clearbit-person-api-replacement-tomba-documentation) - [Tomba Local MCP LLM Integration | Tomba Documentation](#tomba-local-mcp-llm-integration-tomba-documentation) - [Migrate from NeverBounce to Tomba | Tomba Documentation](#migrate-from-neverbounce-to-tomba-tomba-documentation) - [Editor Setup | Tomba Documentation](#editor-setup-tomba-documentation) - [Error Handling | Tomba Documentation](#error-handling-tomba-documentation) - [Rust Client Library | Tomba Documentation](#rust-client-library-tomba-documentation) - [Email Enrichment Bulk | Tomba Documentation](#email-enrichment-bulk-tomba-documentation) - [Integrate Tomba Finder with Maltego | Tomba Documentation](#integrate-tomba-finder-with-maltego-tomba-documentation) - [Migrate to Tomba Email Verifier | Tomba Documentation](#migrate-to-tomba-email-verifier-tomba-documentation) - [R Client Library | Tomba Documentation](#r-client-library-tomba-documentation) - [Company Enrichment Bulk | Tomba Documentation](#company-enrichment-bulk-tomba-documentation) - [Perl Client Library | Tomba Documentation](#perl-client-library-tomba-documentation) - [Integrate Tomba Finder with n8n | Tomba Documentation](#integrate-tomba-finder-with-n8n-tomba-documentation) - [Blivz Integration | Tomba Documentation](#blivz-integration-tomba-documentation) - [VSCode Setup | Tomba Documentation](#vscode-setup-tomba-documentation) - [Author Finder Bulk | Tomba Documentation](#author-finder-bulk-tomba-documentation) - [Email Finder Bulk | Tomba Documentation](#email-finder-bulk-tomba-documentation) - [Migrate from MillionVerifier to Tomba | Tomba Documentation](#migrate-from-millionverifier-to-tomba-tomba-documentation) - [Local MCP Server - Introduction | Tomba Documentation](#local-mcp-server-introduction-tomba-documentation) - [Dashboard Overview | Tomba Documentation](#dashboard-overview-tomba-documentation) - [API Key and Authentication | Tomba Documentation](#api-key-and-authentication-tomba-documentation) - [Lua Client Library | Tomba Documentation](#lua-client-library-tomba-documentation) - [elixir Client Library | Tomba Documentation](#elixir-client-library-tomba-documentation) - [Make (Integromat) Integration | Tomba Documentation](#make-integromat-integration-tomba-documentation) - [Email Verifier Bulk | Tomba Documentation](#email-verifier-bulk-tomba-documentation) - [Migrate from Bounceban to Tomba | Tomba Documentation](#migrate-from-bounceban-to-tomba-tomba-documentation) - [Zapier Integration | Tomba Documentation](#zapier-integration-tomba-documentation) - [Cline - VSCode Setup | Tomba Documentation](#cline-vscode-setup-tomba-documentation) - [WHOIS Domain Attributes | Tomba Documentation](#whois-domain-attributes-tomba-documentation) - [Email Sources Attributes | Tomba Documentation](#email-sources-attributes-tomba-documentation) - [Phone Attributes | Tomba Documentation](#phone-attributes-tomba-documentation) - [Orthogonal Integration | Tomba Documentation](#orthogonal-integration-tomba-documentation) - [Migrate from Hunter Email Finder to Tomba | Tomba Documentation](#migrate-from-hunter-email-finder-to-tomba-tomba-documentation) - [Integrate Tomba Finder with Joomla | Tomba Documentation](#integrate-tomba-finder-with-joomla-tomba-documentation) - [Domain Search Bulk | Tomba Documentation](#domain-search-bulk-tomba-documentation) - [Anti-Spam Policy | Tomba Documentation](#anti-spam-policy-tomba-documentation) - [Similar Company Attributes | Tomba Documentation](#similar-company-attributes-tomba-documentation) - [Employees location Attributes | Tomba Documentation](#employees-location-attributes-tomba-documentation) - [Email Count Attributes | Tomba Documentation](#email-count-attributes-tomba-documentation) - [Email Format Attribute | Tomba Documentation](#email-format-attribute-tomba-documentation) - [Domain Suggestions | Tomba Documentation](#domain-suggestions-tomba-documentation) - [Integrate Tomba Finder with LiteCart | Tomba Documentation](#integrate-tomba-finder-with-litecart-tomba-documentation) - [Migrate from Bouncer to Tomba | Tomba Documentation](#migrate-from-bouncer-to-tomba-tomba-documentation) - [98% Delivery Guarantee - Email Verifier | Tomba Documentation](#98-delivery-guarantee-email-verifier-tomba-documentation) - [Email Verifier Attributes | Tomba Documentation](#email-verifier-attributes-tomba-documentation) - [Technology Attributes | Tomba Documentation](#technology-attributes-tomba-documentation) - [NAICS Codes | Tomba Documentation](#naics-codes-tomba-documentation) - [Cursor Setup | Tomba Documentation](#cursor-setup-tomba-documentation) - [Pipedream Integration | Tomba Documentation](#pipedream-integration-tomba-documentation) - [Integrate Tomba Finder with MyBB | Tomba Documentation](#integrate-tomba-finder-with-mybb-tomba-documentation) - [Phone Finder Bulk | Tomba Documentation](#phone-finder-bulk-tomba-documentation) - [LinkedIn Finder Bulk | Tomba Documentation](#linkedin-finder-bulk-tomba-documentation) - [Phone Validator Bulk | Tomba Documentation](#phone-validator-bulk-tomba-documentation) - [95% Delivery Guarantee - Email Finder | Tomba Documentation](#95-delivery-guarantee-email-finder-tomba-documentation) - [Person Attributes | Tomba Documentation](#person-attributes-tomba-documentation) - [Zed Editor Setup | Tomba Documentation](#zed-editor-setup-tomba-documentation) - [Claude Code Setup | Tomba Documentation](#claude-code-setup-tomba-documentation) - [Tomba Local MCP Tools | Tomba Documentation](#tomba-local-mcp-tools-tomba-documentation) - [Clearbit Combined API Replacement | Tomba Documentation](#clearbit-combined-api-replacement-tomba-documentation) - [Enrichment Attributes | Tomba Documentation](#enrichment-attributes-tomba-documentation) - [ClawHub Integration | Tomba Documentation](#clawhub-integration-tomba-documentation) - [Google Gemini Setup | Tomba Documentation](#google-gemini-setup-tomba-documentation) - [ChatGPT Setup | Tomba Documentation](#chatgpt-setup-tomba-documentation) - [PHP Client Library | Tomba Documentation](#php-client-library-tomba-documentation) - [Windsurf Setup | Tomba Documentation](#windsurf-setup-tomba-documentation) - [Ruby Client Library | Tomba Documentation](#ruby-client-library-tomba-documentation) - [xAI Grok Setup | Tomba Documentation](#xai-grok-setup-tomba-documentation) - [Claude Desktop Setup | Tomba Documentation](#claude-desktop-setup-tomba-documentation) - [Node Client Library | Tomba Documentation](#node-client-library-tomba-documentation) - [Python Client Library | Tomba Documentation](#python-client-library-tomba-documentation) - [Similar Domain Bulk | Tomba Documentation](#similar-domain-bulk-tomba-documentation) - [Company Attributes | Tomba Documentation](#company-attributes-tomba-documentation) - [C# Client Library | Tomba Documentation](#c-client-library-tomba-documentation) - [Dart Client Library | Tomba Documentation](#dart-client-library-tomba-documentation) - [SIC Codes | Tomba Documentation](#sic-codes-tomba-documentation) - [Deno Client Library | Tomba Documentation](#deno-client-library-tomba-documentation) --- # Tomba.io API Documentation - Email Finder & Verifier | Tomba Documentation 🎉Say goodbye to overpriced, clunky tools welcome to TombaWelcome to Tomba Find & Verify Professional Emails ================================= Tomba.io is your ultimate solution for discovering, verifying, and managing professional email addresses. Designed for sales, marketing, and recruitment professionals. * More features * Better pricing * Better data * Higher rate limits * Higher accuracy * Smoother experience * Faster responses * Webhooks everywhere * Phones included * 24/7 support [Get Started](https://docs.tomba.io/introduction) [API Reference](https://docs.tomba.io/api) Tomba CLI \# Tomba CLI - Email Finding & Verification Tool $tomba\--version Tomba CLI v2.0.0 Click "Run Demo" to see Tomba CLI in action... Run Demo [450M+\ \ Emails Indexed](https://docs.tomba.io/data/introduction) [99.988%\ \ Uptime](https://status.tomba.io/) [13+\ \ Official Libraries](https://docs.tomba.io/libraries) 1k+ Happy Clients Trusted by the best sales teams in the world ![BDO](https://docs.tomba.io/images/companies/bdo_logo.svg)![Accenture](https://docs.tomba.io/images/companies/Accenture_logo.svg)![LoanDepot](https://docs.tomba.io/images/companies/loandepot.svg)![Hermes](https://docs.tomba.io/images/companies/hermes-logo.svg)![Famewall](https://docs.tomba.io/images/companies/famewall.svg)![Peliqan](https://docs.tomba.io/images/companies/Peliqan.svg)![Structurely](https://docs.tomba.io/images/companies/structurely.svg)![TeliportMe](https://docs.tomba.io/images/companies/teliportme.svg)![FelixTek](https://docs.tomba.io/images/companies/felixtek.svg)![LoudCrowd](https://docs.tomba.io/images/companies/loudcrowd.svg)![Pentest Tools](https://docs.tomba.io/images/companies/pentesttools-logo.svg)![Growl](https://docs.tomba.io/images/companies/growl.svg)![BDO](https://docs.tomba.io/images/companies/bdo_logo.svg)![Accenture](https://docs.tomba.io/images/companies/Accenture_logo.svg)![LoanDepot](https://docs.tomba.io/images/companies/loandepot.svg)![Hermes](https://docs.tomba.io/images/companies/hermes-logo.svg)![Famewall](https://docs.tomba.io/images/companies/famewall.svg)![Peliqan](https://docs.tomba.io/images/companies/Peliqan.svg)![Structurely](https://docs.tomba.io/images/companies/structurely.svg)![TeliportMe](https://docs.tomba.io/images/companies/teliportme.svg)![FelixTek](https://docs.tomba.io/images/companies/felixtek.svg)![LoudCrowd](https://docs.tomba.io/images/companies/loudcrowd.svg)![Pentest Tools](https://docs.tomba.io/images/companies/pentesttools-logo.svg)![Growl](https://docs.tomba.io/images/companies/growl.svg) Independent 5,000-Lead Benchmark Ranked #1 for email-finder accuracy ----------------------------------- Same input file of 5,000 LinkedIn contacts ran through every tool. No manual cleanup. Same day, same prompts. RankToolWebsite accuracyCompany accuracyTotal 🥇 🥇![Tomba.io](https://docs.tomba.io/logo.svg)Tomba.io 4,015 Web2,026(81%)·Co1,989(79.6%) 1,989(79.6%) 4,015 🥈 🥈![Anymailfinder](https://docs.tomba.io/images/logos/anymailfinder.svg)Anymailfinder 3,875 Web1,918(76.7%)·Co1,957(78.3%) 1,957(78.3%) 3,875 🥉 🥉![Findymail](https://docs.tomba.io/images/logos/findymail.png)Findymail 3,757 Web1,880(75.2%)·Co1,877(75.1%) 1,877(75.1%) 3,757 4 4![GetProspect](https://docs.tomba.io/images/logos/getprospect.png)GetProspect 3,096 Web1,483(59.3%)·Co1,613(64.5%) 1,613(64.5%) 3,096 5 5![Skrapp](https://docs.tomba.io/images/logos/skrapp.svg)Skrapp 2,142 Web1,001(40%)·Co1,141(45.6%) 1,141(45.6%) 2,142 6 6![VoilaNorbert](https://docs.tomba.io/images/logos/voilanorbert.svg)VoilaNorbert 1,800 Web1,051(42%)·Co749(30%) 749(30%) 1,800 7 7![Hunter](https://docs.tomba.io/images/logos/hunter.jpg)Hunter 1,882 Web887(35.5%)·Co995(39.8%) 995(39.8%) 1,882 8 8![Snov](https://docs.tomba.io/images/logos/snov.svg)Snov 1,007 Web988(39.5%)·Co19(0.8%) 19(0.8%) 1,007 9 9![Prospeo](https://docs.tomba.io/images/logos/prospeo.svg)Prospeo 846 Web824(33%)·Co22(0.9%) 22(0.9%) 846 Same 5,000-lead input across all tools no manual cleanup, no tweaks. [View raw spreadsheet](https://docs.google.com/spreadsheets/d/1QhhHadxscI_3YcUBlKyHIpMPiwsulU53euK1-9u8Ed4/edit) Tomba.io ranks #1 globally in total valid emails found, with the highest accuracy across both websites and companies. Powerful Features for Your Outreach ----------------------------------- Discover, verify, and enrich professional email addresses at scale. [### Domain Search\ \ Search for professional email addresses and company data using any domain name.\ \ Learn more](https://docs.tomba.io/api/finder#domain-search) [### Email Finder\ \ Find specific email addresses by entering a name and domain with high accuracy.\ \ Learn more](https://docs.tomba.io/api/finder#email-finder) [### Email Verifier\ \ Validate email addresses for deliverability in real-time. Reduce bounce rates.\ \ Learn more](https://docs.tomba.io/api/verifier#email-verifier) [### LinkedIn Finder\ \ Extract verified emails directly from LinkedIn profile URLs instantly.\ \ Learn more](https://docs.tomba.io/api/finder#linkedin-finder) [### Email Enrichment\ \ Enrich email data with social, company, and location details for better targeting.\ \ Learn more](https://docs.tomba.io/api/finder#email-enrichment) [### Phone Finder\ \ Find and validate phone numbers from any contact information.\ \ Learn more](https://docs.tomba.io/api/phone#phone-finder) Only on Tomba Six things nobody else does --------------------------- We asked our customers why they switched. Every answer came back to these six. No competitor offers this ### Webhooks on every endpoint Every finder, verifier, enricher, and bulk job can notify your server the moment a result is ready not just a handful of endpoints. [Webhook docs](https://docs.tomba.io/webhook) Emails + mobiles in one call ### Phone numbers included Get validated mobile numbers alongside emails on finder, enrichment, reveal, and bulk tools no separate dialer plan needed. [Phone Finder API](https://docs.tomba.io/api/phone#phone-finder) Email · Domain · LinkedIn · Phone ### Reveal from any identifier Start from whatever you have. Drop in a domain, an email, a LinkedIn URL, or a phone number and we return the full contact profile. [Reveal docs](https://docs.tomba.io/api/finder#reveal) We show where every URL comes from ### Transparent data, public sources Every finder result ships with source URLs. Every month we publish what changed, what we crawled, and how accuracy trended no black box. [See our data updates](https://docs.tomba.io/data/introduction) Full company profile on every Domain Search ### Free domain enrichment A single Domain Search call returns industry, size, tech stack, address, socials, and full employee profiles at no extra credit cost. [Domain Search API](https://docs.tomba.io/api/finder#domain-search) Real humans, every plan ### Support that actually listens Chat with our team any time no gated tiers. What customers request ends up in the product. Your roadmap shapes ours. [Talk to us](https://app.tomba.io/contact) Find Emails Everywhere ---------------------- [![](https://docs.tomba.io/images/browsers/chrome.svg)Add to Chrome](https://chromewebstore.google.com/detail/tomba-email-finder-email/icmjegjggphchjckknoooajmklibccjb) [All integrations](https://docs.tomba.io/#integrations) Choose your platform install in one click Browser Extensions[![Edge](https://docs.tomba.io/images/browsers/edge.svg)\ \ Edge](https://microsoftedge.microsoft.com/addons/detail/tomba-email-finder-em/efckpclkdcokaflofpmndagddnpgjclk) [![Chrome](https://docs.tomba.io/images/browsers/chrome.svg)\ \ Chrome](https://chromewebstore.google.com/detail/tomba-email-finder-email/icmjegjggphchjckknoooajmklibccjb) [![Firefox](https://docs.tomba.io/images/browsers/firefox.svg)\ \ Firefox](https://addons.mozilla.org/en-US/firefox/addon/tomba-email-finder/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search) [![Safari](https://docs.tomba.io/images/browsers/safari.svg)\ \ Safari](https://apps.apple.com/us/app/tomba-email-finder/id1593963572?mt=12) [![Opera](https://docs.tomba.io/images/browsers/opera.svg)\ \ Opera](https://addons.opera.com/en/extensions/details/tomba-email-finder/) Spreadsheets[![Google Sheets](https://docs.tomba.io/images/brands/google-sheets.svg)\ \ Google Sheets](https://workspace.google.com/marketplace/app/tomba_email_extractor_email_finder_plus/915979967841?flow_type=2) [![Excel](https://docs.tomba.io/images/brands/excel.svg)\ \ Excel](https://marketplace.microsoft.com/en-us/product/office/WA200003632/) [![Airtable](https://docs.tomba.io/images/brands/airtable.svg)\ \ Airtable](https://airtable.com/marketplace/blkzHq5ZaqM1hWS13/find-verify-emails-tomba) Developer & Data[![CLI](https://docs.tomba.io/images/brands/bash.svg)\ \ CLI](https://docs.tomba.io/cli/installation) [![API](https://docs.tomba.io/images/brands/openapi.svg)\ \ API](https://docs.tomba.io/api) [![MCP](https://docs.tomba.io/images/brands/mcp.png)\ \ MCP](https://docs.tomba.io/llm/local-mcp/introduction) [![Database](https://docs.tomba.io/images/brands/postgresql.svg)\ \ Database](https://tomba.io/database) Pricing Calculator How much can you save with Tomba? --------------------------------- Enter your monthly lookup needs and compare Tomba against the top 8 email-finder tools. How many lookups do you need per month? Email verification is free with every Tomba plan so your real capacity is double. credits / month 5,00010,00040,000100,000200,000 $89 Tomba price / month $8.90 Cost per 1k credits 80% Max savings vs FullEnrich $28.56 Avg competitor / 1k ### Your savings with Tomba Based on your monthly usage, compared at equivalent tiers. ![Hunter](https://docs.tomba.io/images/logos/hunter.jpg)vs Hunter $60 save / month $720 save / year ![BetterContact](https://docs.tomba.io/images/competitors/bettercontact-rocks.png)vs BetterContact $260 save / month $3,120 save / year ![FullEnrich](https://docs.tomba.io/images/competitors/fullenrich-com.png)vs FullEnrich $360 save / month $4,320 save / year | Tool | Price / month | Per 1k | Verification | Phone | Accuracy | You save | | --- | --- | --- | --- | --- | --- | --- | | ![Tomba](https://docs.tomba.io/logo.svg)

TombaBest value

Total credits (finder + free verification included) | $89 | $8.90 | Included | | 99% | Baseline | | ![Hunter](https://docs.tomba.io/images/logos/hunter.jpg)

Hunter

Verification costs 0.5 credits extra | $149 | $14.90 | Extra | | 90% | \-$60

40% cheaper | | ![Apollo.io](https://docs.tomba.io/images/competitors/apollo-io.png)

Apollo.io

Per user, min 3 users, annual only. Extra credits $0.20 each | $445 | $44.50 | Extra | | 55% | \-$356

80% cheaper | | ![Snov](https://docs.tomba.io/images/logos/snov.svg)

Snov

Verification costs 1 credit extra | $199 | $19.90 | Extra | | 87% | \-$110

55% cheaper | | ![RocketReach](https://docs.tomba.io/images/competitors/rocketreach-co.png)

RocketReach

Per user. Overages $0.30-$0.45/lookup | $209 | $20.90 | Extra | | 82% | \-$120

57% cheaper | | ![Lusha](https://docs.tomba.io/images/competitors/lusha-com.png)

Lusha

Per user. Phone = 5 credits each | $199 | $19.90 | Extra | | 83% | \-$110

55% cheaper | | ![BetterContact](https://docs.tomba.io/images/competitors/bettercontact-rocks.png)

BetterContact

Waterfall enrichment. Phone included but costs extra credits | $349 | $34.90 | Extra | | 55% | \-$260

74% cheaper | | ![FullEnrich](https://docs.tomba.io/images/competitors/fullenrich-com.png)

FullEnrich

Waterfall enrichment. Phone available, no verification credits | $449 | $44.90 | Extra | | 58% | \-$360

80% cheaper | ### Every Tomba plan includes Email verification included Phone numbers included Pay only for valid emails 99% accuracy rate Chrome extension Google Sheets add-on REST API & SDKs MCP server for AI Bulk CSV processing At **10,000 credits / month**, you save up to **$360/mo** compared to FullEnrich. [Start free](https://app.tomba.io/auth/register) Scale Your Operations Bulk Operations --------------- Process thousands of emails, domains, and contacts at once. Upload lists, get results in minutes. [### Email Verifier Bulk\ \ Verify up to 10,000 emails per operation. Cut bounce rates, protect sender reputation.](https://docs.tomba.io/bulks/email-verifier) [### Email Finder Bulk\ \ Find emails from names and domains in bulk. Perfect for prospect lists.](https://docs.tomba.io/bulks/email-finder) [### Domain Search Bulk\ \ Search many domains at once. Get associated emails and company data.](https://docs.tomba.io/bulks/domain-search) [### LinkedIn Finder Bulk\ \ Extract emails from LinkedIn profile URLs at scale. Ideal for recruiters.](https://docs.tomba.io/bulks/linkedin-finder) [### Email Enrichment Bulk\ \ Enrich email lists with company, social, and contact details.](https://docs.tomba.io/bulks/email-enrichment) [### Phone Finder Bulk\ \ Find phone numbers from emails or domains in bulk operations.](https://docs.tomba.io/bulks/phone-finder) [Start Bulk Operations](https://app.tomba.io/bulks) Command Line Interface Tomba CLI --------- Access Tomba.io's powerful features directly from your terminal. Install via Snap, Homebrew, Scoop, or Go. \# Install via Homebrew $ brew install tomba-io/tap/tomba Domain Search Email Finder Email Verification LinkedIn Finder Phone Finder AI Chat Bulk CSV Processing ClawHub Skills [View CLI Documentation](https://docs.tomba.io/cli/installation) \# Available Commands tomba search \--target domain.com tomba finder \--target domain.com --fist john --last doe tomba verify \--target email@example.com tomba linkedin \--target linkedin.com/in/user tomba phone-finder \--email wade@zapier.com tomba reveal \--query "SaaS startups in Europe" tomba bulk \--file contacts.csv --type enrich tomba chat tomba skill run company-intel --target tomba.io AI Integration Model Context Protocol (MCP) ---------------------------- Connect Tomba.io to your AI assistants and LLMs through the Model Context Protocol for seamless email intelligence. ### Local MCP Server Run the MCP server locally for maximum control. Perfect for development and self-hosted AI applications. \# Install via NPX $ npx -y tomba-mcp-server 12 Professional Tools Full TypeScript Support Works with Claude Desktop [View Local MCP Docs](https://docs.tomba.io/llm/local-mcp/introduction) ### Remote MCP Server Cloud-hosted MCP server with zero setup. Instant access with high availability and real-time processing. \# Connect via HTTP https://mcp.tomba.io/mcp No Installation Required Always Up-to-Date Server-Sent Events Support [View Remote MCP Docs](https://docs.tomba.io/llm/remote-mcp/introduction) ### MCP Tools & Capabilities Domain Search Find all emails Email Verifier Validate emails Enrichment Contact details Phone Finder Discover phones Regular Updates Fresh Data, Always ------------------ We continuously update our datasets with new emails, companies, and enrichment data. Stay informed about our data quality improvements and growth. Monthly New data imports 99%+ Data accuracy [View Data Updates](https://docs.tomba.io/data/introduction) ### What We Track New Data Imports Emails, companies, and attributes added to our database Refreshed Records Improved accuracy, enrichment, and validation Statistics & Insights Growth metrics, invalid rates, and quality reports Technology Updates New technologies detected and tracked across domains [View Latest Update (July 2026)](https://docs.tomba.io/data/2026/07-july) Official Libraries Integrate with Your Favorite Language ------------------------------------- We provide official client libraries for 13+ programming languages to help you integrate Tomba.io into your projects. JavaScriptPythonPHPRubyGoRustC#Dart Email Finder `const Tomba = require("tomba"); const client = new Tomba.Client(); client .setKey("ta_xxxx") // Your API Key .setSecret("ts_xxxx"); // Your API Secret const finder = new Tomba.Finder(client); const result = await finder.emailFinder({ domain: "stripe.com", first_name: "John", last_name: "Collison" }); console.log(result.data.email); // john@stripe.com` [JavaScript](https://docs.tomba.io/libraries/node-email-finder) [Python](https://docs.tomba.io/libraries/python-email-finder) [PHP](https://docs.tomba.io/libraries/php-email-finder) [Ruby](https://docs.tomba.io/libraries/ruby-email-finder) [Go](https://docs.tomba.io/libraries/go-email-finder) [Rust](https://docs.tomba.io/libraries/rust-email-finder) [C#](https://docs.tomba.io/libraries/csharp-email-finder) [Dart](https://docs.tomba.io/libraries/dart-email-finder) [Elixir](https://docs.tomba.io/libraries/elixir-email-finder) [Lua](https://docs.tomba.io/libraries/lua-email-finder) [Perl](https://docs.tomba.io/libraries/perl-email-finder) [R](https://docs.tomba.io/libraries/r-email-finder) [View all libraries](https://docs.tomba.io/libraries) Integrations & Platforms Connect with Your Favorite Tools -------------------------------- Seamlessly integrate Tomba.io with popular automation platforms, CMS, and development tools. ![Tomba.io](https://docs.tomba.io/logo.svg) [![Zapier](https://docs.tomba.io/images/logos/zapier.png)\ \ Zapier\ \ 5,000+ app integrations](https://docs.tomba.io/integrations/zapier) [![Make](https://docs.tomba.io/images/logos/make.png)\ \ Make\ \ Visual automation](https://docs.tomba.io/integrations/make) [![n8n](https://docs.tomba.io/images/logos/n8n.png)\ \ n8n\ \ Workflow automation](https://docs.tomba.io/integrations/n8n) [![Apify](https://docs.tomba.io/images/logos/apify.svg)\ \ Apify\ \ Web scraping platform](https://docs.tomba.io/integrations/apify/introduction) [![Steampipe](https://docs.tomba.io/images/logos/steampipe.png)\ \ Steampipe\ \ SQL queries for APIs](https://docs.tomba.io/integrations/steampipe) [![Pipedream](https://docs.tomba.io/images/logos/pipedream.png)\ \ Pipedream\ \ Serverless workflows](https://docs.tomba.io/integrations/pipedream) [![Maltego](https://docs.tomba.io/images/logos/maltego.png)\ \ Maltego\ \ OSINT investigations](https://docs.tomba.io/integrations/maltego) [![Blivz](https://docs.tomba.io/images/logos/blivz.svg)\ \ Blivz\ \ GTM list enrichment](https://docs.tomba.io/integrations/blivz) [![Orthogonal](https://docs.tomba.io/images/logos/orthogonal.webp)\ \ Orthogonal\ \ Unified API gateway](https://docs.tomba.io/integrations/orthogonal) [![ClawHub](https://docs.tomba.io/images/logos/clawhub.png)\ \ ClawHub\ \ AI skill marketplace](https://docs.tomba.io/integrations/clawhub) [![Zapier](https://docs.tomba.io/images/logos/zapier.png)\ \ Zapier\ \ 5,000+ app integrations](https://docs.tomba.io/integrations/zapier) [![Make](https://docs.tomba.io/images/logos/make.png)\ \ Make\ \ Visual automation](https://docs.tomba.io/integrations/make) [![n8n](https://docs.tomba.io/images/logos/n8n.png)\ \ n8n\ \ Workflow automation](https://docs.tomba.io/integrations/n8n) [![Apify](https://docs.tomba.io/images/logos/apify.svg)\ \ Apify\ \ Web scraping platform](https://docs.tomba.io/integrations/apify/introduction) [![Steampipe](https://docs.tomba.io/images/logos/steampipe.png)\ \ Steampipe\ \ SQL queries for APIs](https://docs.tomba.io/integrations/steampipe) [![Pipedream](https://docs.tomba.io/images/logos/pipedream.png)\ \ Pipedream\ \ Serverless workflows](https://docs.tomba.io/integrations/pipedream) [![Maltego](https://docs.tomba.io/images/logos/maltego.png)\ \ Maltego\ \ OSINT investigations](https://docs.tomba.io/integrations/maltego) [![Blivz](https://docs.tomba.io/images/logos/blivz.svg)\ \ Blivz\ \ GTM list enrichment](https://docs.tomba.io/integrations/blivz) [![Orthogonal](https://docs.tomba.io/images/logos/orthogonal.webp)\ \ Orthogonal\ \ Unified API gateway](https://docs.tomba.io/integrations/orthogonal) [![ClawHub](https://docs.tomba.io/images/logos/clawhub.png)\ \ ClawHub\ \ AI skill marketplace](https://docs.tomba.io/integrations/clawhub) [Explore All Integrations](https://docs.tomba.io/integrations/zapier) Customer Love Trusted by thousands of companies worldwide --------------------------------------------- Don't just take our word for it hear from **real customers** who love using Tomba ![Chrome Web Store](https://docs.tomba.io/images/brands/chrome-web-store.svg) "Stellar product and amazing support. I have tested many tools and this one is far superior by far. I highly recommend it." ![Martin Ebongué](https://docs.tomba.io/images/testimonials/martin.png) Martin Ebongué [](https://www.linkedin.com/in/martin-ebongue/) Entrepreneur Genius Data Flow ![LinkedIn](https://docs.tomba.io/images/brands/linkedin.svg) "I spend 3+ months creating best in class content in the form of data-based research studies. When all is said and done, Tomba is the tool I turn to. Tomba finding the contacts for the perfect prospects at scale is game changing in helping us promote." ![Nicholas Rizzo](https://docs.tomba.io/images/testimonials/nicholas.jpeg) Nicholas Rizzo [](https://www.linkedin.com/in/nicholas-rizzo-7289bb54/) Senior Digital Manager Vizme ![LinkedIn](https://docs.tomba.io/images/brands/linkedin.svg) "We use Tomba to find emails of the right people, helping us reach out and grow our network easily." ![Olderico A.F. Caviglia](https://docs.tomba.io/images/testimonials/olderico.jpeg) Olderico A.F. Caviglia [](https://www.linkedin.com/in/olderico-a-f-caviglia/) CEO Strategycapp ![Capterra](https://docs.tomba.io/images/brands/capterra.svg) "We rely on Tomba to efficiently locate email addresses of key professionals within natural health organizations. This allows us to connect directly, build meaningful relationships, and stay informed about the latest developments in the health and wellness sector." ![Josh Leier](https://docs.tomba.io/images/testimonials/josh.jpeg) Josh Leier [](https://www.linkedin.com/in/joshleier/) Creative Director IceHound Marketing ![G2](https://docs.tomba.io/images/brands/g2.svg) "Tomba.io is very fast and has lots of features to help anyone prospect and find exactly who you need to find. I use my zoom.info and Apollo to find companies for lead gen and then run those leads into tomba to grab me prospect info in record time. Tedious work is the most frustrating part of prospecting. Now I'm saving at least 5 hours a week! No joke." ![Julian M.](https://docs.tomba.io/images/testimonials/julian.jpeg) Julian M. [](https://www.linkedin.com/in/julian-molloy/) Account Executive Insight ![G2](https://docs.tomba.io/images/brands/g2.svg) "Tomba is easy to use for finding the correct and valid email addresses just like Hunter.io." ![Carlos Ubaldo](https://docs.tomba.io/images/testimonials/carlos.jpeg) Carlos Ubaldo [](https://www.linkedin.com/in/carlos-ubaldo/) Founder Husay Digital Ready to Get Started? --------------------- Start finding and verifying professional email addresses today. Free tier available. [Create Free Account](https://app.tomba.io/register) [Read the Docs](https://docs.tomba.io/introduction) --- # Webhooks | Tomba Documentation Menu Overview[](https://docs.tomba.io/webhook#overview) --------------------------------------------------- Webhooks allow external services to be notified when certain events occur in our system. This documentation covers how to set up a webhook to receive notifications when a lead is saved. Webhook Configuration[](https://docs.tomba.io/webhook#webhook-configuration) ----------------------------------------------------------------------------- ### Basic Setup[](https://docs.tomba.io/webhook#basic-setup) 1. **Name your webhook** Provide a unique name for your webhook (e.g., "Lead Tracking Webhook") 2. **Notification URL** Enter the URL where we should send notifications (e.g., `https://your-service.com/webhooks/leads`) 3. **HTTP Method** Select the HTTP method used to send the webhook (typically POST) 4. **Headers (Optional)** Add any required headers as key/value pairs (e.g., Authorization tokens) 5. **Webhook Status** Enable or disable the webhook as needed ### Supported Events[](https://docs.tomba.io/webhook#supported-events) Currently, we support the following event: * `save_lead`: Triggered when a new lead is saved or an existing lead is updated Notification Payload[](https://docs.tomba.io/webhook#notification-payload) --------------------------------------------------------------------------- When a `save_lead` event occurs, your webhook will receive a POST request with the following JSON payload: Code `{ "data": { "email": "", "company": "", "first_name": "", "last_name": "", "phone": "", "website": "", "position": "", "twitter": "", "linkedin": "", "notes": "", "score": 0 } }` ### Field Descriptions[](https://docs.tomba.io/webhook#field-descriptions) | Field | Type | Description | | --- | --- | --- | | email | string | Lead's email address | | website | string | Website URL | | company | \*string | Company name | | first\_name | \*string | Lead's first name | | last\_name | \*string | Lead's last name | | phone | \*string | Phone number | | position | \*string | Job position | | twitter | \*string | Twitter handle | | linkedin | \*string | LinkedIn profile URL | | notes | \*string | Additional notes about the lead | | score | integer | Lead score (numeric value) | Example Implementation[](https://docs.tomba.io/webhook#example-implementation) ------------------------------------------------------------------------------- Here's an example of how you might handle the webhook in a Node.js application: Code `const express = require("express"); const app = express(); app.post("/webhooks/leads", express.json(), (req, res) => { const leadData = req.body.data; console.log("Received new lead:", leadData); // Process the lead data here res.status(200).send("Webhook received"); }); app.listen(3000, () => { console.log("Webhook server listening on port 3000"); });` Webhook URL Query Parameter[](https://docs.tomba.io/webhook#webhook-url-query-parameter) ----------------------------------------------------------------------------------------- You can also receive webhook notifications for specific API requests by passing a `webhook_url` query parameter. This allows you to receive real-time notifications when an operation completes without configuring a global webhook. ### Usage[](https://docs.tomba.io/webhook#usage) Add the `webhook_url` parameter to any supported API endpoint: TerminalCode `curl -X GET "https://api.tomba.io/v1/email-verifier?email=john@example.com&webhook_url=https://your-service.com/webhook" \ -H "X-Tomba-Key: YOUR_API_KEY" \ -H "X-Tomba-Secret: YOUR_API_SECRET"` ### Supported Endpoints[](https://docs.tomba.io/webhook#supported-endpoints) The `webhook_url` query parameter is supported on the following endpoints: * `/email-verifier` - Receive verification results * `/email-finder` - Receive email finder results * `/domain-search` - Receive domain search results * `/author-finder` - Receive author finder results * `/phone-finder` - Receive phone finder results * `/phone-validator` - Receive phone validation results ### Webhook Payload[](https://docs.tomba.io/webhook#webhook-payload) When using the `webhook_url` query parameter, your endpoint will receive the same response data that would be returned by the API call: Code `{ "data": { // Response data from the API endpoint }, "meta": { "endpoint": "/email-verifier", "timestamp": "2026-03-28T10:30:00Z" } }` ### Notes[](https://docs.tomba.io/webhook#notes) * The webhook URL must be a valid HTTPS URL * The webhook is sent as a POST request with JSON content type * The API response is returned immediately; the webhook is sent asynchronously * Failed webhook deliveries are retried up to 3 times with exponential backoff Best Practices[](https://docs.tomba.io/webhook#best-practices) --------------------------------------------------------------- 1. Always validate the incoming webhook data 2. Implement proper error handling 3. Consider adding authentication (e.g., via headers) 4. Respond quickly (within a few seconds) to avoid timeout issues 5. Implement retry logic for failed webhook deliveries Last modified on March 28, 2026 [Data](https://docs.tomba.io/data) [Logo API](https://docs.tomba.io/logo-api) JSON Javascript JSON --- # HTTPS / SSL | Tomba Documentation Our API is available over secure HTTPS for all users, including the free plan. Always use `https://` in request URLs. TerminalCode `curl -X GET "https://api.tomba.io/v1/domain-search?domain=example.com" \ -H "X-Tomba-Key: your_api_key" \ -H "X-Tomba-Secret: your_secret_key"` Last modified on April 28, 2026 --- # Data Updates - Introduction | Tomba Documentation Menu Data Updates[](https://docs.tomba.io/data/introduction#data-updates) ===================================================================== Welcome to the **Data Updates** section. Here we publish regular updates on how our datasets evolve, expand, and improve. Each update includes: * **New Data Imports** – emails, companies, and attributes added. * **Refreshed Records** – improved accuracy, enrichment, and validation. * **Statistics** – insights on growth, duplicates, invalid rates, and more. Our goal is to keep you informed about the progress we make behind the scenes, ensuring your searches, verifications, and enrichments are always powered by the freshest possible data. Last modified on February 9, 2026 [July 2026 Data Update](https://docs.tomba.io/data/2026/07-july) --- # November Data Update | Tomba Documentation Menu We processed billions of records to keep datasets fresher, more accurate, and more complete. Here’s what changed this month: * * * Data Updates[](https://docs.tomba.io/data/2025/02-november#data-updates) ------------------------------------------------------------------------- * **Emails**: Imported, updated, and enriched **49.43M** email records for higher accuracy and coverage. * **Companies**: Enhanced **10.51M** company profiles with social media links, detailed descriptions, country information, and additional attributes. * * * Statistics Overview[](https://docs.tomba.io/data/2025/02-november#statistics-overview) --------------------------------------------------------------------------------------- * **Total Crawled Pages:** 2.08B * **Unique B2B Emails:** 49.43M * **Duplication Rate:** 97.63% * **Invalid Email Rate:** 8.97% * **Processing Time:** 33h 22m 56s * **Pages Processed:** 2.08 Billion Pages in 33 hours ![Overview statistics](https://assets.cdn.frill.co/2145/814eefe2-ad1d-4452-b503-be34dcfbed18.svg) * * * Email Analysis[](https://docs.tomba.io/data/2025/02-november#email-analysis) ----------------------------------------------------------------------------- * **Webmail Domains:** 278.39M (5.63% of unique B2B Emails) * **Business Domains:** 1.62B (85.3% of total) * **Role-Based Emails:** 961.42M (50.7% of all emails; info@, sales@, support@, contact@, etc.) ![Email analysis](https://assets.cdn.frill.co/2145/aedb4054-b8ac-413a-a205-ab7f54e1fc9c.svg) * * * Top 10 Role-Based Email Types[](https://docs.tomba.io/data/2025/02-november#top-10-role-based-email-types) ----------------------------------------------------------------------------------------------------------- * info – 504.41M * sales – 55.77M * support – 44.84M * contact – 44.66M * hello – 25.20M * office – 20.15M * admin – 13.74M * service – 11.95M * kontakt – 11.40M * mail – 11.20M ![Email analysis](https://assets.cdn.frill.co/2145/4de733b2-5c33-4114-ae63-3855a1328df4.svg) * * * Daily Time Series (Last 10 Days)[](https://docs.tomba.io/data/2025/02-november#daily-time-series-last-10-days) --------------------------------------------------------------------------------------------------------------- * 10-10 – 157.02M * 10-11 – 166.32M * 10-12 – 157.82M * 10-13 – 155.32M * 10-14 – 161.35M * 10-15 – 152.41M * 10-16 – 153.38M * 10-17 – 121.73M * 10-18 – 118.43M * 10-19 – 3.44M ![Daily time series](https://assets.cdn.frill.co/2145/a3d32761-940c-474a-8c0c-2901e56c012a.svg) * * * Weekday vs Weekend Activity[](https://docs.tomba.io/data/2025/02-november#weekday-vs-weekend-activity) ------------------------------------------------------------------------------------------------------- * **Weekday**: **1.29B (69.1%)** * **Weekend**: **576.28M (30.9%)** ![Weekday vs weekend](https://assets.cdn.frill.co/2145/6d9a9d3f-177c-4f63-9a63-0d33683d9b5b.svg) * * * Domain Categories[](https://docs.tomba.io/data/2025/02-november#domain-categories) ----------------------------------------------------------------------------------- * Other – 1.20B * E-commerce – 401.28M * News – 115.82M * Blog – 88.23M * Technology – 61.72M * Education – 55.48M * Business – 45.93M * Entertainment – 44.24M * Government – 32.51M * Social – 29.87M * Adult – 7.13M ![Domain categories](https://assets.cdn.frill.co/2145/3440f672-8516-4626-a2b2-27c809956a36.svg) * * * Top Countries[](https://docs.tomba.io/data/2025/02-november#top-countries) --------------------------------------------------------------------------- * Generic TLD – 1.02B * Russia – 162.57M * Germany – 108.51M * United Kingdom – 55.12M * Poland – 53.96M * Italy – 48.20M * Czech Republic – 45.58M * Netherlands – 37.64M * France – 28.47M * Brazil – 28.05M * Australia – 27.36M * Sweden – 21.74M * Canada – 21.14M * Spain – 19.52M * Ukraine – 19.38M ![Top countries](https://assets.cdn.frill.co/2145/43d1a504-34e7-48bb-9f72-8eaa39ded4c6.svg) * * * Hourly Activity[](https://docs.tomba.io/data/2025/02-november#hourly-activity) ------------------------------------------------------------------------------- * **Peak hour**: **5:00 AM (80.87M records)** ![Hourly activity](https://assets.cdn.frill.co/2145/2ccf4c7b-f28c-4ddf-ba18-8276efddf578.svg) * * * Top Domains[](https://docs.tomba.io/data/2025/02-november#top-domains) ----------------------------------------------------------------------- * lists.wikimedia.org – 8.23M * lists.fedorahosted.org – 4.23M * lists.fedoraproject.org – 4.16M * lists.jboss.org – 3.72M * lists.centos.org – 3.30M * classiccmp.org – 2.61M * lists.openldap.org – 2.42M * inbox.sourceware.org – 2.25M * lists.stg.fedoraproject.org – 2.13M * lists.lysator.liu.se – 1.92M ![Top domains](https://assets.cdn.frill.co/2145/3aa46867-fe3f-464f-bd62-9b53a3b240e7.svg) * * * Last modified on February 9, 2026 [October Data Update](https://docs.tomba.io/data/2025/01-october) [December Data Update](https://docs.tomba.io/data/2025/03-december) --- # Top 500 Web Technologies 2026 | Tomba Documentation Menu Complete ranking of the 500 most popular web technologies analyzed across 42.8 million websites, from jQuery and PHP to emerging frameworks and tools **Analysis Summary** * Total Websites: 42,878,238 * Unique Technologies Found: 17,634 * * * | Rank | Technology | Count | | --- | --- | --- | | 1 | jQuery | 23,263,667 | | 2 | PHP | 19,552,483 | | 3 | MySQL | 14,233,330 | | 4 | WordPress | 13,645,852 | | 5 | Nginx | 12,229,593 | | 6 | HTTP/3 | 12,146,261 | | 7 | HSTS | 11,708,206 | | 8 | jQuery Migrate | 11,138,660 | | 9 | Apache HTTP Server | 9,305,428 | | 10 | Cloudflare | 9,177,041 | | 11 | Google Analytics | 7,791,311 | | 12 | Bootstrap | 7,306,831 | | 13 | Contact Form 7 | 3,892,120 | | 14 | Elementor | 3,733,950 | | 15 | reCAPTCHA | 3,677,962 | | 16 | LiteSpeed | 3,498,298 | | 17 | React | 3,255,149 | | 18 | Lodash | 3,023,659 | | 19 | Google Cloud | 2,927,404 | | 20 | Google Cloud CDN | 2,863,913 | | 21 | imagesLoaded | 2,806,970 | | 22 | Wix | 2,674,732 | | 23 | Swiper | 2,617,089 | | 24 | Gravatar | 2,483,450 | | 25 | Google Hosted Libraries | 2,445,857 | | 26 | Slick | 2,401,307 | | 27 | OWL Carousel | 2,391,991 | | 28 | OpenResty | 2,329,022 | | 29 | cdnjs | 2,177,128 | | 30 | jQuery UI | 2,092,568 | | 31 | Underscore.js | 2,078,384 | | 32 | Lightbox | 2,046,455 | | 33 | LiteSpeed Cache | 1,927,086 | | 34 | Modernizr | 1,922,879 | | 35 | WooCommerce | 1,917,518 | | 36 | Magnific Popup | 1,916,238 | | 37 | Litespeed Cache | 1,915,414 | | 38 | Site Kit | 1,829,416 | | 39 | jsDelivr | 1,697,554 | | 40 | Font Awesome | 1,632,929 | | 41 | Slider Revolution | 1,467,723 | | 42 | FitVids.JS | 1,437,669 | | 43 | Cloudflare Bot Management | 1,358,205 | | 44 | Microsoft ASP.NET | 1,341,221 | | 45 | Envoy | 1,336,759 | | 46 | Google Maps | 1,287,966 | | 47 | jQuery CDN | 1,270,567 | | 48 | Hostinger | 1,265,002 | | 49 | Shopify | 1,244,507 | | 50 | WOW | 1,168,336 | | 51 | wpBakery | 1,128,232 | | 52 | Google AdSense | 1,127,133 | | 53 | Amazon Web Services | 1,110,855 | | 54 | Windows Server | 1,100,249 | | 55 | IIS | 1,068,330 | | 56 | Popper | 1,031,231 | | 57 | Node.js | 970,370 | | 58 | All in One SEO | 946,178 | | 59 | parallax.js | 926,027 | | 60 | All in One SEO Pack | 871,038 | | 61 | Ubuntu | 833,313 | | 62 | Divi | 832,751 | | 63 | Cloudflare Browser Insights | 796,579 | | 64 | Varnish | 792,789 | | 65 | WP Rocket | 782,754 | | 66 | Google Tag Manager | 755,668 | | 67 | FancyBox | 755,587 | | 68 | Java | 736,744 | | 69 | Moment.js | 701,170 | | 70 | YouTube | 683,065 | | 71 | prettyPhoto | 662,202 | | 72 | Akismet | 657,167 | | 73 | Yoast SEO | 656,173 | | 74 | WordPress Block Editor | 646,103 | | 75 | CookieYes | 624,665 | | 76 | Unpkg | 610,661 | | 77 | GoDaddy Website Builder | 557,955 | | 78 | Amazon CloudFront | 554,342 | | 79 | Python | 543,619 | | 80 | bxSlider | 542,400 | | 81 | Plesk | 516,834 | | 82 | UNIX | 506,272 | | 83 | AMP | 495,283 | | 84 | Joomla | 495,098 | | 85 | Twitter | 487,863 | | 86 | Vue.js | 483,406 | | 87 | Complianz | 470,701 | | 88 | Easy Pie Chart | 455,494 | | 89 | Select2 | 452,427 | | 90 | BootstrapCDN | 440,479 | | 91 | OpenGSE | 436,614 | | 92 | Blogger | 433,547 | | 93 | Adobe Fonts | 430,898 | | 94 | Typekit | 430,898 | | 95 | Webpack | 430,596 | | 96 | Gravity Forms | 427,088 | | 97 | Weebly | 424,635 | | 98 | Stripe | 419,368 | | 99 | Clipboard.js | 418,284 | | 100 | WP Engine | 414,865 | | 101 | MonsterInsights | 413,475 | | 102 | Infinite Scroll | 412,978 | | 103 | punycode | 411,878 | | 104 | Amazon S3 | 403,370 | | 105 | WPML | 397,779 | | 106 | Jetpack | 388,951 | | 107 | Mailcheck | 384,142 | | 108 | Next.js | 382,869 | | 109 | OpenSSL | 376,460 | | 110 | MailChimp | 370,619 | | 111 | Ruby | 368,742 | | 112 | Redux Framework | 355,108 | | 113 | Hostinger CDN | 354,842 | | 114 | Debian | 351,630 | | 115 | Ruby on Rails | 347,663 | | 116 | Onsen UI | 337,965 | | 117 | AddThis | 328,845 | | 118 | ZURB Foundation | 321,933 | | 119 | Cookie Notice | 321,626 | | 120 | jQuery Mobile | 310,966 | | 121 | DataTables | 310,129 | | 122 | Vercel | 308,847 | | 123 | UIKit | 304,800 | | 124 | Express | 297,345 | | 125 | Backbone.js | 291,881 | | 126 | Drupal | 289,835 | | 127 | WPForms | 288,766 | | 128 | Google Font API | 287,782 | | 129 | Max Mega Menu | 280,159 | | 130 | MooTools | 270,237 | | 131 | RequireJS | 266,347 | | 132 | Chart.js | 263,428 | | 133 | AddToAny | 259,753 | | 134 | Laravel | 246,629 | | 135 | Chosen | 244,295 | | 136 | GSAP | 233,909 | | 137 | Essential Addons for Elementor | 232,721 | | 138 | Klaviyo | 223,584 | | 139 | Fastly | 223,433 | | 140 | particles.js | 219,172 | | 141 | Prototype | 214,137 | | 142 | Jimdo | 211,049 | | 143 | Polylang | 208,146 | | 144 | Smash Balloon Instagram Feed | 207,915 | | 145 | Aruba.it | 207,808 | | 146 | ShareThis | 207,802 | | 147 | Typed.js | 206,356 | | 148 | C3.js | 206,232 | | 149 | PayPal | 206,031 | | 150 | Cookiebot | 205,970 | | 151 | Hammer.js | 205,414 | | 152 | SweetAlert2 | 203,024 | | 153 | Instagram Feed for WordPress | 200,326 | | 154 | The Events Calendar | 196,130 | | 155 | ProgressBar.js | 192,906 | | 156 | CentOS | 189,121 | | 157 | Packery | 188,891 | | 158 | WP Fastest Cache | 182,247 | | 159 | FlexSlider | 181,688 | | 160 | WPMU DEV Smush | 179,104 | | 161 | MailChimp for WordPress | 177,420 | | 162 | SWFObject | 169,950 | | 163 | Amazon ALB | 167,575 | | 164 | Nuxt.js | 160,777 | | 165 | Google Tag Manager for WordPress | 157,329 | | 166 | Pinterest | 155,581 | | 167 | dc.js | 154,349 | | 168 | Netlify | 151,544 | | 169 | spin.js | 150,371 | | 170 | waitForImages | 147,956 | | 171 | AddToAny Share Buttons | 147,351 | | 172 | DDoS-Guard | 146,172 | | 173 | TYPO3 CMS | 144,493 | | 174 | Tilda | 142,867 | | 175 | Stellar.js | 141,663 | | 176 | EWWW Image Optimizer | 141,536 | | 177 | 1C-Bitrix | 138,739 | | 178 | Joinchat | 136,716 | | 179 | Mixitup | 135,642 | | 180 | DoubleClick Ad Exchange (AdX) | 135,398 | | 181 | Smart Slider 3 | 131,463 | | 182 | WooCommerce Stripe Payment Gateway | 130,747 | | 183 | Osano | 128,089 | | 184 | HighLevel | 127,236 | | 185 | Elfsight | 125,459 | | 186 | Material Design Lite | 125,428 | | 187 | Azure | 125,143 | | 188 | GitHub Pages | 123,109 | | 189 | GoDaddy CoBlocks | 122,999 | | 190 | Twenty Seventeen | 119,448 | | 191 | Google PageSpeed | 119,296 | | 192 | sidr | 118,986 | | 193 | CodeIgniter | 116,965 | | 194 | Imagely NextGEN Gallery | 114,797 | | 195 | Autoptimize | 113,182 | | 196 | Plupload | 112,739 | | 197 | iubenda | 109,829 | | 198 | Linkedin Ads | 108,976 | | 199 | Moxie | 108,583 | | 200 | BeTheme | 108,575 | | 201 | Kadence WP Kadence | 108,374 | | 202 | Duda | 108,077 | | 203 | MyWebsite | 108,077 | | 204 | MyWebsite Creator | 108,064 | | 205 | MetaSlider | 107,095 | | 206 | SweetAlert | 107,080 | | 207 | MailChimp for WooCommerce | 105,655 | | 208 | Ninja Forms | 102,593 | | 209 | Sucuri | 102,493 | | 210 | Handlebars | 100,778 | | 211 | OneTrust | 100,656 | | 212 | Spectra | 95,928 | | 213 | hCaptcha | 94,754 | | 214 | Kinsta | 92,946 | | 215 | Webflow | 90,861 | | 216 | Flywheel | 88,818 | | 217 | Performance Lab | 88,304 | | 218 | W3 Total Cache | 87,028 | | 219 | Google Sign-in | 86,105 | | 220 | Usercentrics | 84,698 | | 221 | Caddy | 84,358 | | 222 | JetEngine | 83,803 | | 223 | Responsive Lightbox & Gallery | 82,804 | | 224 | GeneratePress | 81,763 | | 225 | GeneratePress GP Premium | 81,763 | | 226 | Photo Gallery | 81,546 | | 227 | Headroom.js | 81,113 | | 228 | Tengine | 79,896 | | 229 | Blocksy | 79,332 | | 230 | Linkedin Sign-in | 79,187 | | 231 | EmbedPlus | 78,138 | | 232 | Google Publisher Tag | 77,921 | | 233 | WordPress Popular Posts | 77,489 | | 234 | Statcounter | 77,244 | | 235 | Premio Chaty | 75,641 | | 236 | CNZZ | 74,872 | | 237 | WebNode | 74,096 | | 238 | AOS | 73,646 | | 239 | script.aculo.us | 73,075 | | 240 | Tiny Slider | 72,972 | | 241 | Google Cloud Trace | 71,565 | | 242 | Matter.js | 71,089 | | 243 | WooCommerce PayPal Payments | 71,087 | | 244 | Web Font Loader | 69,713 | | 245 | Microsoft Ajax Content Delivery Network | 69,575 | | 246 | Adobe Portfolio | 69,354 | | 247 | Firebase | 69,351 | | 248 | Gutenberg | 69,085 | | 249 | pickadate.js | 68,639 | | 250 | Cloudways | 68,484 | | 251 | ExactMetrics | 68,134 | | 252 | HubSpot | 67,995 | | 253 | Parsley.js | 67,495 | | 254 | FrontPage | 67,151 | | 255 | PixelYourSite | 66,962 | | 256 | scrollreveal | 66,956 | | 257 | Three.js | 66,802 | | 258 | Microsoft Word | 66,541 | | 259 | Alpine.js | 66,406 | | 260 | Burst | 65,912 | | 261 | HubSpot CMS Hub | 65,871 | | 262 | Highlight.js | 65,855 | | 263 | SiteOrigin Page Builder | 65,319 | | 264 | Backstretch | 64,243 | | 265 | OneSignal | 63,835 | | 266 | Alibaba Cloud CDN | 63,227 | | 267 | Genesis theme | 63,116 | | 268 | Conditional Fields for Contact Form 7 | 62,301 | | 269 | TinyMCE | 61,982 | | 270 | Zendesk | 61,702 | | 271 | UserWay | 61,256 | | 272 | Yii | 61,160 | | 273 | Twenty Twenty | 60,939 | | 274 | Weglot | 60,742 | | 275 | Medium | 60,041 | | 276 | SiteOrigin Widgets Bundle | 59,780 | | 277 | Calendly | 59,605 | | 278 | Wistia | 59,035 | | 279 | JouwWeb | 58,875 | | 280 | Yoast SEO Premium | 58,687 | | 281 | Trustpilot | 57,887 | | 282 | Naver Analytics | 57,740 | | 283 | Rich Plugins Reviews | 57,222 | | 284 | ContentViews | 57,111 | | 285 | jPlayer | 56,611 | | 286 | Zepto | 56,236 | | 287 | ProfilePress | 56,185 | | 288 | UltimatelySocial | 56,094 | | 289 | Twenty Twenty-One | 55,832 | | 290 | Contao | 54,799 | | 291 | Akamai | 54,581 | | 292 | libphonenumber | 53,689 | | 293 | Sassy Social Share | 53,589 | | 294 | Strato Website | 52,716 | | 295 | WooCommerce Multilingual | 52,712 | | 296 | Twitter typeahead.js | 52,694 | | 297 | Livewire | 52,006 | | 298 | jQuery Payment | 51,948 | | 299 | Oxygen | 51,700 | | 300 | Translate WordPress | 51,677 | | 301 | Phusion Passenger | 50,824 | | 302 | Modern Image Formats | 50,251 | | 303 | VK Pixel | 50,090 | | 304 | Microsoft HTTPAPI | 50,063 | | 305 | crypto-js | 49,614 | | 306 | Moodle | 47,826 | | 307 | Substack | 47,790 | | 308 | Tablesorter | 47,669 | | 309 | GraphQL | 47,270 | | 310 | MyWebsite Now | 47,120 | | 311 | PrestaShop | 46,703 | | 312 | PostgreSQL | 46,652 | | 313 | Tailwind CSS | 46,296 | | 314 | Less | 45,521 | | 315 | Hostinger Website Builder | 45,491 | | 316 | TypeScript | 45,331 | | 317 | FullCalendar | 45,229 | | 318 | Odoo | 44,911 | | 319 | WordPress Super Cache | 43,657 | | 320 | Mapbox GL JS | 43,230 | | 321 | Morphext | 43,189 | | 322 | OpenCart | 42,910 | | 323 | Azure Front Door | 42,697 | | 324 | Endurance Page Cache | 42,425 | | 325 | Ivory Search | 41,851 | | 326 | a3 Lazy Load | 41,773 | | 327 | ReCaptcha v2 for Contact Form 7 | 41,741 | | 328 | Bootbox.js | 41,412 | | 329 | html2canvas | 41,303 | | 330 | JivoChat | 41,036 | | 331 | Framer Sites | 40,771 | | 332 | Tippy.js | 40,647 | | 333 | Kakao | 40,622 | | 334 | Imperva | 40,621 | | 335 | Email Encoder for Wordpress | 40,416 | | 336 | Instafeed.js | 40,108 | | 337 | Twenty Sixteen | 40,004 | | 338 | Cookie Script | 39,971 | | 339 | Cookie Information | 39,188 | | 340 | Cookie Information plugin | 39,188 | | 341 | Optimizely | 38,994 | | 342 | Contentful | 38,976 | | 343 | Download Monitor | 38,943 | | 344 | Hugo | 38,930 | | 345 | MathJax | 38,816 | | 346 | MariaDB | 38,721 | | 347 | LazySizes unveilhooks plugin | 38,611 | | 348 | Judge.me | 38,584 | | 349 | aThemes Sydney | 38,498 | | 350 | Gatsby | 38,208 | | 351 | Polyfill | 37,847 | | 352 | Perfmatters | 37,774 | | 353 | Pantheon | 37,498 | | 354 | FingerprintJS | 36,881 | | 355 | GiveWP | 36,763 | | 356 | WordPress Site Editor | 36,574 | | 357 | Sensors Data | 36,465 | | 358 | NitroPack | 36,192 | | 359 | Snowplow Analytics | 35,826 | | 360 | Enquire.js | 35,796 | | 361 | Funding Choices | 35,460 | | 362 | slideout | 35,291 | | 363 | Amazon Advertising | 35,246 | | 364 | Lightning | 35,193 | | 365 | Hestia | 34,867 | | 366 | MediaWiki | 34,202 | | 367 | Azure Edge Network | 34,196 | | 368 | EmbedPress | 34,176 | | 369 | Poptin | 33,705 | | 370 | Popup Maker | 33,478 | | 371 | Prism | 33,321 | | 372 | iCheck | 33,061 | | 373 | metisMenu | 33,054 | | 374 | Elementor Addon Elements | 32,895 | | 375 | mobile-detect.js | 32,642 | | 376 | Shortcodes Ultimate | 32,589 | | 377 | Twenty Twelve | 32,445 | | 378 | Clicky | 32,256 | | 379 | Retina.js | 32,235 | | 380 | ValueCommerce | 32,151 | | 381 | Highcharts | 31,671 | | 382 | Showit | 31,493 | | 383 | RackCache | 31,046 | | 384 | ActiveCampaign | 30,854 | | 385 | Liveinternet | 30,493 | | 386 | Thrive Architect | 30,382 | | 387 | Jotform | 30,336 | | 388 | Google Cloud Storage | 30,196 | | 389 | Cufon | 30,007 | | 390 | Speculative Loading | 29,974 | | 391 | Breadcrumb NavXT | 29,870 | | 392 | Glyphicons | 29,606 | | 393 | ThinkPHP | 29,340 | | 394 | Perl | 29,334 | | 395 | Adobe Experience Manager | 29,289 | | 396 | Craft CMS | 29,159 | | 397 | DNN | 29,124 | | 398 | Image Placeholders | 29,014 | | 399 | SVG Support | 28,810 | | 400 | Tidio | 28,626 | | 401 | Engintron | 28,565 | | 402 | Bricks | 28,287 | | 403 | BigCommerce | 28,194 | | 404 | AlmaLinux | 28,081 | | 405 | Axios | 27,912 | | 406 | Cornerstone | 27,877 | | 407 | jQuery-pjax | 27,738 | | 408 | Loox | 27,666 | | 409 | mod\_ssl | 27,630 | | 410 | HashThemes Total | 27,553 | | 411 | Dynamic Conditions | 27,382 | | 412 | WP-Optimize | 27,042 | | 413 | Imweb | 26,850 | | 414 | Symfony | 26,673 | | 415 | Awesomplete | 26,384 | | 416 | Google Optimize | 26,213 | | 417 | MailerLite | 25,971 | | 418 | Ghost | 25,646 | | 419 | Kajabi | 25,557 | | 420 | All in One SEO 4.8.5 | 25,493 | | 421 | Fathom | 25,409 | | 422 | Twenty Fourteen | 25,390 | | 423 | Twenty Fifteen | 25,359 | | 424 | Colibri WP | 25,347 | | 425 | OpenLayers | 25,306 | | 426 | timeago | 25,199 | | 427 | Embed Any Document | 25,074 | | 428 | Astro | 24,490 | | 429 | ColorMag | 24,298 | | 430 | Beaver Builder | 24,288 | | 431 | Flickity | 24,274 | | 432 | Apple MapKit JS | 24,266 | | 433 | Nette Framework | 24,252 | | 434 | Kestrel | 24,218 | | 435 | ThemeGrill ColorMag | 24,092 | | 436 | WP Featherlight | 24,029 | | 437 | Akamai Bot Manager | 23,738 | | 438 | Animate It | 23,461 | | 439 | HT Mega | 23,402 | | 440 | GitBook | 23,031 | | 441 | Supersized | 22,901 | | 442 | Moment Timezone | 22,790 | | 443 | JSZip | 22,783 | | 444 | Optimization Detective | 22,679 | | 445 | Draftpress HFCM | 22,424 | | 446 | Shoptet | 22,296 | | 447 | Constant Contact | 22,275 | | 448 | PageFly | 22,053 | | 449 | Dojo | 22,021 | | 450 | RxJS | 22,014 | | 451 | SyntaxHighlighter | 21,982 | | 452 | Creativ.eMail | 21,905 | | 453 | Red Hat | 21,879 | | 454 | Phlox | 21,869 | | 455 | Apache Tomcat | 21,823 | | 456 | Bunny | 21,639 | | 457 | AngularJS | 21,619 | | 458 | Jekyll | 21,589 | | 459 | YUI | 21,469 | | 460 | Yandex.Metrika | 21,207 | | 461 | SiteOrigin Vantage | 21,140 | | 462 | MODX | 21,006 | | 463 | Ahoy | 21,001 | | 464 | Socket.io | 20,870 | | 465 | Concrete CMS | 20,795 | | 466 | Acquia Cloud Platform | 20,746 | | 467 | phpBB | 20,696 | | 468 | RD Station | 20,358 | | 469 | Stimulus | 20,309 | | 470 | WookMark | 20,228 | | 471 | Mobirise | 20,187 | | 472 | pdfmake | 20,170 | | 473 | Slimbox 2 | 20,166 | | 474 | Pixieset Website | 19,872 | | 475 | Afterpay | 19,842 | | 476 | D3 | 19,755 | | 477 | Metronet Profile Picture | 19,687 | | 478 | Redis | 19,639 | | 479 | mod\_perl | 19,599 | | 480 | Responsive Nav | 19,427 | | 481 | Embed Optimizer | 19,400 | | 482 | Inertia.js | 19,156 | | 483 | Press Customizr | 19,146 | | 484 | Open Journal Systems | 19,111 | | 485 | Hatena Blog | 19,041 | | 486 | Bookly | 18,958 | | 487 | Kadence WP Blocks | 18,955 | | 488 | Typeform | 18,854 | | 489 | Timeago | 18,815 | | 490 | FreeBSD | 18,758 | | 491 | ThimPress LearnPress | 18,742 | | 492 | LottieFiles | 18,681 | | 493 | POWR | 18,646 | | 494 | Rambler | 18,627 | | 495 | Pure CSS | 18,555 | | 496 | BoldGrid | 18,471 | | 497 | Heroku | 18,455 | | 498 | Sentry | 18,452 | | 499 | CakePHP | 18,290 | | 500 | WP Google Map Plugin | 18,265 | * * * _Data source: Tomba.io Technology Database • 42.8M websites analyzed_ Last modified on December 8, 2025 [Web Technology Trends 2025 Analyzing 42 Million Websites](https://docs.tomba.io/data/technology/web-technology-trends-2025) --- # Installation | Tomba Documentation Menu Using npm or Yarn[](https://docs.tomba.io/disposable-email-blocker/installation#using-npm-or-yarn) --------------------------------------------------------------------------------------------------- To install the Disposable Email Blocker via npm or Yarn, use the following commands: TerminalCode `# Using npm npm install disposable-email-blocker --save # Using Yarn yarn add disposable-email-blocker` Via CDN[](https://docs.tomba.io/disposable-email-blocker/installation#via-cdn) ------------------------------------------------------------------------------- For direct use in the browser without installation, include the library via a CDN: Code ` ` Last modified on April 16, 2025 [Disposable Email Blocker](https://docs.tomba.io/disposable-email-blocker/overview) [Usage](https://docs.tomba.io/disposable-email-blocker/usage) --- # December Data Update | Tomba Documentation Menu We processed billions of records to keep datasets fresher, more accurate, and more complete. Here’s what changed this month: * * * Data Updates[](https://docs.tomba.io/data/2025/03-december#data-updates) ------------------------------------------------------------------------- * **Emails**: Imported, updated, and enriched **45.43M** email records for higher accuracy and coverage. * **Companies**: Enhanced **18.51M** company profiles with social media links, detailed descriptions, country information, and additional attributes. * * * Overview Statistics[](https://docs.tomba.io/data/2025/03-december#overview-statistics) --------------------------------------------------------------------------------------- * **Total Crawled Pages:** 1.73B * **Unique B2B Emails:** 45.77M * **Duplication Rate:** 97.36% * **Invalid Email Rate:** 5.29% * **Data Collection Period:** 10 Days * **Pages Processed:** 1.73 Billion Pages in 10 days ![Overview statistics](https://docs.tomba.io/images/data/december/overview.svg) * * * Top 10 Domains[](https://docs.tomba.io/data/2025/03-december#top-10-domains) ----------------------------------------------------------------------------- * **lists.wikimedia.org:** 10.69M records * **lists.fedoraproject.org:** 4.43M records * **lists.fedorahosted.org:** 3.61M records * **lists.centos.org:** 3.40M records * **classiccmp.org:** 2.76M records * **lists.openldap.org:** 2.50M records * **inbox.sourceware.org:** 2.23M records * **auto.hindustantimes.com:** 1.86M records * **lists.jboss.org:** 1.74M records * **lists.lysator.liu.se:** 1.67M records ![Top 10 domains](https://docs.tomba.io/images/data/december/top_domains.svg) * * * Role-Based Email Types[](https://docs.tomba.io/data/2025/03-december#role-based-email-types) --------------------------------------------------------------------------------------------- * **info@:** 429.66M emails * **sales@:** 40.96M emails * **contact@:** 36.21M emails * **support@:** 29.19M emails * **office@:** 17.96M emails * **hello@:** 15.69M emails * **admin@:** 12.11M emails * **mail@:** 10.23M emails * **kontakt@:** 9.89M emails * **zakaz@:** 9.05M emails * **Total Role-Based:** 792.68M (48.3% of all emails) ![Role-based email types](https://docs.tomba.io/images/data/december/role_based_emails.svg) * * * Top 15 Countries[](https://docs.tomba.io/data/2025/03-december#top-15-countries) --------------------------------------------------------------------------------- * **Generic TLD:** 789.12M records * **Russia:** 153.94M records * **Germany:** 99.44M records * **Poland:** 50.13M records * **Italy:** 46.33M records * **Czech Republic:** 41.81M records * **United Kingdom:** 41.07M records * **Netherlands:** 31.39M records * **France:** 25.10M records * **Brazil:** 24.76M records * **Ukraine:** 18.33M records * **Sweden:** 18.30M records * **Australia:** 17.09M records * **Spain:** 16.92M records * **Vietnam:** 16.14M records ![Top 15 countries](https://docs.tomba.io/images/data/december/countries.svg) * * * Domain Categories[](https://docs.tomba.io/data/2025/03-december#domain-categories) ----------------------------------------------------------------------------------- * **Other:** 1.09B records * **E-commerce:** 205.74M records * **News:** 112.48M records * **Blog:** 76.72M records * **Technology:** 55.41M records * **Education:** 53.49M records * **Business:** 39.92M records * **Entertainment:** 34.23M records * **Government:** 29.44M records * **Social:** 27.14M records * **Adult:** 5.08M records ![Domain categories](https://docs.tomba.io/images/data/december/categories.svg) * * * Email Analysis[](https://docs.tomba.io/data/2025/03-december#email-analysis) ----------------------------------------------------------------------------- * **Webmail Domains:** 248.10M (542.0% of unique B2B Emails) * **Business Domains:** 1.39B (84.9% of total) * **Role-Based Emails:** 792.68M (48.3% of all emails) * **File Extension Junk:** 91.70M detected and filtered * **Valid Email Rate:** 94.71% Role-based emails include: info@, sales@, support@, contact@, office@, hello@, admin@, service@, kontakt@, and more. ![Email analysis](https://docs.tomba.io/images/data/december/email_analysis.svg) * * * Daily Time Series (Last 10 Days)[](https://docs.tomba.io/data/2025/03-december#daily-time-series-last-10-days) --------------------------------------------------------------------------------------------------------------- * **2025-11-10:** 142.05M records * **2025-11-11:** 140.44M records * **2025-11-12:** 136.22M records * **2025-11-13:** 123.86M records * **2025-11-14:** 137.90M records * **2025-11-15:** 134.19M records * **2025-11-16:** 136.49M records * **2025-11-17:** 136.32M records * **2025-11-18:** 137.04M records * **2025-11-19:** 66.46M records Peak day: November 10, 2025 with 142.05M records processed. ![Daily time series](https://docs.tomba.io/images/data/december/daily_series.svg) * * * Last modified on December 15, 2025 [November Data Update](https://docs.tomba.io/data/2025/02-november) [Web Technology Trends 2025 Analyzing 42 Million Websites](https://docs.tomba.io/data/technology/web-technology-trends-2025) --- # Tomba Apify MCP Server | Tomba Documentation Menu The Apify Model Context Protocol (MCP) server provides a powerful bridge between AI models and Tomba.io's comprehensive email intelligence tools. This integration enables you to leverage Tomba's email finding, verification, and enrichment capabilities directly within AI-powered workflows and automation processes. What is Apify MCP?[](https://docs.tomba.io/llm/apify/introduction#what-is-apify-mcp) ------------------------------------------------------------------------------------- Apify's MCP server is a standardized protocol that allows AI models to securely connect to external tools and data sources. By integrating Tomba.io tools through Apify's MCP server, you can: * **Find Email Addresses**: Discover professional email addresses for individuals and companies * **Verify Email Validity**: Ensure email addresses are deliverable and active * **Enrich Contact Data**: Add comprehensive information about people and companies * **Validate Phone Numbers**: Verify and format phone numbers globally * **Search Domains**: Find all email addresses associated with a domain * **LinkedIn Intelligence**: Extract contact information from LinkedIn profiles * **Author Discovery**: Find contact details for content creators and journalists Key Benefits[](https://docs.tomba.io/llm/apify/introduction#key-benefits) -------------------------------------------------------------------------- ### **Streamlined Workflows**[](https://docs.tomba.io/llm/apify/introduction#streamlined-workflows) Integrate email intelligence directly into your AI conversations and automation pipelines without complex API integrations. ### **Secure Authentication**[](https://docs.tomba.io/llm/apify/introduction#secure-authentication) Use your Apify API token for secure, authenticated access to Tomba.io tools through the MCP protocol. ### **Targeted Data Collection**[](https://docs.tomba.io/llm/apify/introduction#targeted-data-collection) Access 15+ specialized Tomba.io tools designed for different use cases, from bulk operations to individual lookups. ### **Comprehensive Coverage**[](https://docs.tomba.io/llm/apify/introduction#comprehensive-coverage) Combine multiple data sources including Tomba.io and Clearbit for the most complete contact intelligence. Available Tool Categories[](https://docs.tomba.io/llm/apify/introduction#available-tool-categories) ---------------------------------------------------------------------------------------------------- ### **Core Email Tools**[](https://docs.tomba.io/llm/apify/introduction#core-email-tools) * Email Finder: Discover email addresses for individuals * Email Verifier: Validate email deliverability * Email Enrichment: Add detailed information to existing emails * Email Count: Get statistics about domain email addresses ### **Contact Discovery**[](https://docs.tomba.io/llm/apify/introduction#contact-discovery) * Author Finder: Extract contact information from article URLs * Phone Finder: Discover phone numbers for contacts * Phone Validator: Verify and format phone numbers * LinkedIn Finder: Extract data from LinkedIn profiles ### **Company Intelligence**[](https://docs.tomba.io/llm/apify/introduction#company-intelligence) * Domain Search: Find all emails associated with a domain * Technology Finder: Discover technologies used by companies * Similar Finder: Find companies similar to a target organization ### **Enhanced Data Sources**[](https://docs.tomba.io/llm/apify/introduction#enhanced-data-sources) * Clearbit Person: Detailed person enrichment * Clearbit Company: Comprehensive company data * Clearbit Combined: Unified person and company intelligence Getting Started[](https://docs.tomba.io/llm/apify/introduction#getting-started) -------------------------------------------------------------------------------- To start using Tomba.io tools through Apify's MCP server, you'll need: 1. **Apify API Token**: Your authentication credential for accessing the MCP server 2. **VS Code or Compatible Client**: An MCP-compatible environment to run the integration 3. **Basic Understanding**: Familiarity with the specific Tomba.io tools you want to use The integration uses the following MCP server URL: Code `https://mcp.apify.com/?tools=actors,docs,tomba-io/email-enrichment,tomba-io/technology-finder,tomba-io/email-finder,tomba-io/phone-validator,tomba-io/email-verifier,tomba-io/domain-search,tomba-io/linkedin-finder,tomba-io/email-count,tomba-io/clearbit-combined,tomba-io/clearbit-person,tomba-io/author-finder,tomba-io/phone-finder,tomba-io/similar-finder,tomba-io/clearbit-company` Use Cases[](https://docs.tomba.io/llm/apify/introduction#use-cases) -------------------------------------------------------------------- This integration is perfect for: * **Journalist Outreach**: Find and verify contact information for media professionals * **Lead Generation**: Discover and enrich prospect contact details * **Data Verification**: Validate existing contact databases * **Content Marketing**: Connect with content creators and influencers * **Sales Intelligence**: Gather comprehensive prospect information * **Recruitment**: Find contact details for potential candidates * **Market Research**: Analyze company technologies and similarities Next Steps[](https://docs.tomba.io/llm/apify/introduction#next-steps) ---------------------------------------------------------------------- * [Learn how to set up the integration →](https://docs.tomba.io/llm/apify/integration) * [Explore available tools and their capabilities →](https://docs.tomba.io/llm/apify/tools) * [See practical usage examples and workflows →](https://docs.tomba.io/llm/apify/integration#usage-examples) Last modified on October 31, 2025 [Remote MCP Server - LLM Integration](https://docs.tomba.io/llm/remote-mcp/integration) [Available Tomba.io Tools in Apify MCP](https://docs.tomba.io/llm/apify/tools) --- # October Data Update | Tomba Documentation Menu This is our **first official data update** We processed billions of records to keep datasets fresher, more accurate, and more complete. Here’s what changed this month: * * * Data Updates[](https://docs.tomba.io/data/2025/01-october#data-updates) ------------------------------------------------------------------------ * **Emails**: Imported, updated, and enriched **46.47M** email records for higher accuracy and coverage. * **Companies**: Enhanced **12M** company profiles with social media links, detailed descriptions, country information, and additional attributes. * * * Statistics Overview[](https://docs.tomba.io/data/2025/01-october#statistics-overview) -------------------------------------------------------------------------------------- * **Total Records Processed**: **1.86B** * **Unique Emails**: **46.47M** * **Duplication Rate**: **97.5%** * **Invalid Email Rate**: **8.98%** * **Processing Time**: **30 days** ![Overview statistics](https://assets.cdn.frill.co/2145/5f3303e9-2876-4e1b-a193-484acad25c89.svg) * * * Email Analysis[](https://docs.tomba.io/data/2025/01-october#email-analysis) ---------------------------------------------------------------------------- * **Webmail Domains**: **245.32M** (14.5%) * **Business Domains**: **1.45B** (85.5%) * **File Extension Junk**: **167.22M** * **Role-based Emails**: **1.0K** _(note: role-based stats flagged for correction in next update)_ ![Email analysis](https://assets.cdn.frill.co/2145/b0ffa707-cc61-494e-96ae-7f2b91b2745f.svg) * * * Daily Time Series (Last 10 Days)[](https://docs.tomba.io/data/2025/01-october#daily-time-series-last-10-days) -------------------------------------------------------------------------------------------------------------- * Range: **09-09 → 09-18** * Peak: **149.68M (09-09)** * Low: **64.18M (09-18)** ![Daily time series](https://assets.cdn.frill.co/2145/b7d31339-eaac-4f2c-b4e5-03fb571b9d30.svg) * * * Weekday vs Weekend Activity[](https://docs.tomba.io/data/2025/01-october#weekday-vs-weekend-activity) ------------------------------------------------------------------------------------------------------ * **Weekday**: **1.29B (69.1%)** * **Weekend**: **576.28M (30.9%)** ![Weekday vs weekend](https://assets.cdn.frill.co/2145/6d9a9d3f-177c-4f63-9a63-0d33683d9b5b.svg) * * * Domain Categories[](https://docs.tomba.io/data/2025/01-october#domain-categories) ---------------------------------------------------------------------------------- * Other: **1.07B** * E-commerce: **359.28M** * News: **108.47M** * Blog: **75.84M** * Technology: **57.30M** * Education: **52.25M** * Business: **38.82M** * Entertainment: **38.53M** * Government: **29.81M** * Social: **26.95M** * Adult: **6.35M** ![Domain categories](https://assets.cdn.frill.co/2145/d97ac6c6-acb0-41e6-946d-1fceae5445ad.svg) * * * Top Countries[](https://docs.tomba.io/data/2025/01-october#top-countries) -------------------------------------------------------------------------- 1. Generic TLD 886.57M 2. Russia 147.26M 3. Germany 105.13M 4. UK 48.30M 5. Italy 44.35M 6. Poland 44.01M 7. Czech Republic 37.34M 8. Netherlands 35.15M 9. Australia 31.59M 10. France 25.04M 11. Brazil 22.59M 12. Ukraine 20.33M 13. Canada 19.77M 14. Austria 17.29M 15. Spain 17.13M ![Top countries](https://assets.cdn.frill.co/2145/0d6afe70-82cb-4973-903d-ffc5b24db268.svg) * * * Hourly Activity[](https://docs.tomba.io/data/2025/01-october#hourly-activity) ------------------------------------------------------------------------------ * **Peak hour**: **5:00 AM (80.87M records)** ![Hourly activity](https://assets.cdn.frill.co/2145/2ccf4c7b-f28c-4ddf-ba18-8276efddf578.svg) * * * Top Domains[](https://docs.tomba.io/data/2025/01-october#top-domains) ---------------------------------------------------------------------- * lists.wikimedia.org 5.84M * lists.fedoraproject.org 4.14M * lists.fedorahosted.org 3.97M * inbox.dpdk.org 3.79M * inbox.sourceware.org 2.81M * lists.centos.org 2.77M * mail.python.org 2.35M * lists.linuxaudio.org 2.22M * classiccmp.org 1.79M * auto.hindustantimes.com 1.63M ![Top domains](https://assets.cdn.frill.co/2145/3083dccf-7871-4531-808d-e2deef6f61c8.svg) * * * Last modified on April 19, 2026 [January 2026 Data Update](https://docs.tomba.io/data/2026/01-january) [November Data Update](https://docs.tomba.io/data/2025/02-november) --- # Tomba Remote MCP Tools | Tomba Documentation Menu Available Tools[](https://docs.tomba.io/llm/remote-mcp/tools#available-tools) ============================================================================== The Tomba Remote MCP Server provides a comprehensive suite of professional tools for email discovery, verification, and data enrichment. All tools are accessible through the Model Context Protocol interface with real-time processing and enterprise-grade reliability. Tools (12)[](https://docs.tomba.io/llm/remote-mcp/tools#tools-12) ------------------------------------------------------------------ | Tool | Description | | --- | --- | | `domain_search` | Search for email addresses associated with a domain | | `email_finder` | Find a person's email address by name and company | | `email_verifier` | Verify if an email address is valid and deliverable | | `email_enrichment` | Enrich an email with additional contact information | | `author_finder` | Find the email address of an article's author | | `linkedin_finder` | Find email address from a LinkedIn profile URL | | `phone_finder` | Find phone numbers for an email, domain, or LinkedIn profile | | `phone_validator` | Validate and get information about a phone number | | `email_count` | Get the count of emails available for a domain | | `similar_finder` | Find companies similar to a given domain | | `technology_finder` | Discover technologies used by a website | | `companies_search` | Search for companies in the Tomba database | Resources (3)[](https://docs.tomba.io/llm/remote-mcp/tools#resources-3) ------------------------------------------------------------------------ | Resource | URI | Description | | --- | --- | --- | | Account Info | `tomba://account` | Current account information and usage | | Domain Stats | `tomba://domain/{domain}/stats` | Email statistics for a domain | | Usage Stats | `tomba://usage` | API usage statistics | Prompts (12)[](https://docs.tomba.io/llm/remote-mcp/tools#prompts-12) ---------------------------------------------------------------------- | Prompt | Description | | --- | --- | | `lead-research` | Research a company and find key contacts for outreach | | `competitor-analysis` | Analyze competitors including tech stack, team structure, and contacts | | `email-verification` | Verify a list of email addresses | | `find-person` | Find a specific person's email at a company | | `content-outreach` | Find authors and content creators for outreach campaigns | | `account-based-marketing` | Build comprehensive ABM campaigns with multi-stakeholder targeting | | `investor-research` | Research VCs/investors, portfolio companies, and find decision makers | | `hiring-outreach` | Source candidates from target companies for recruiting | | `partnership-research` | Identify strategic partners and integration opportunities | | `market-research` | Conduct industry analysis across multiple companies | | `sales-territory-mapping` | Build territory plans with account prioritization and stakeholder mapping | | `due-diligence` | Comprehensive company analysis for investment, acquisition, or partnership | Tool Details[](https://docs.tomba.io/llm/remote-mcp/tools#tool-details) ------------------------------------------------------------------------ ### Email Discovery Tools[](https://docs.tomba.io/llm/remote-mcp/tools#email-discovery-tools) #### Domain Search[](https://docs.tomba.io/llm/remote-mcp/tools#domain-search) Discovers all available email addresses associated with a specific domain name. Perfect for competitive intelligence, lead generation, and comprehensive contact mapping. **Parameters:** * `domain` (required): The target domain to search * `limit` (optional): Maximum number of results to return * `department` (optional): Filter by specific department #### Email Finder[](https://docs.tomba.io/llm/remote-mcp/tools#email-finder) Generates potential email addresses based on a person's name and their company domain using advanced pattern recognition and validation. **Parameters:** * `first_name` (required): Person's first name * `last_name` (required): Person's last name * `domain` (required): Company domain * `full_name` (optional): Complete name for better accuracy #### Author Finder[](https://docs.tomba.io/llm/remote-mcp/tools#author-finder) Extracts author email addresses from articles, blog posts, and other content by analyzing bylines, metadata, and content structure. **Parameters:** * `url` (required): URL of the article or content * `author_name` (optional): Specific author name to target #### LinkedIn Finder[](https://docs.tomba.io/llm/remote-mcp/tools#linkedin-finder) Discovers email addresses from LinkedIn profile information using advanced matching algorithms and data correlation. **Parameters:** * `linkedin_url` (required): LinkedIn profile URL * `company_domain` (optional): Company domain for validation ### Verification & Validation Tools[](https://docs.tomba.io/llm/remote-mcp/tools#verification--validation-tools) #### Email Verifier[](https://docs.tomba.io/llm/remote-mcp/tools#email-verifier) Performs comprehensive email deliverability verification including syntax validation, domain verification, and mailbox existence checking. **Parameters:** * `email` (required): Email address to verify * `smtp_check` (optional): Enable/disable SMTP verification #### Email Enrichment[](https://docs.tomba.io/llm/remote-mcp/tools#email-enrichment) Enriches email addresses with additional contact information including social profiles, job titles, and company data. **Parameters:** * `email` (required): Email address to enrich * `include_sources` (optional): Include data source information #### Phone Finder[](https://docs.tomba.io/llm/remote-mcp/tools#phone-finder) Discovers phone numbers associated with email addresses or contact profiles using cross-platform data correlation. **Parameters:** * `email` (optional): Email address for phone lookup * `first_name` (optional): Person's first name * `last_name` (optional): Person's last name * `company` (optional): Company name or domain #### Phone Validator[](https://docs.tomba.io/llm/remote-mcp/tools#phone-validator) Validates phone number format, carrier information, and geographic location for data quality assurance. **Parameters:** * `phone` (required): Phone number to validate * `country_code` (optional): Expected country code ### Company Intelligence Tools[](https://docs.tomba.io/llm/remote-mcp/tools#company-intelligence-tools) #### Email Count[](https://docs.tomba.io/llm/remote-mcp/tools#email-count) Retrieves the total number of email addresses available in Tomba's database for a specific domain. **Parameters:** * `domain` (required): The target domain to count emails * `type` (optional): Filter by email type (personal/generic) **Returns:** Total count, personal emails count, generic emails count, and department breakdown. #### Technology Finder[](https://docs.tomba.io/llm/remote-mcp/tools#technology-finder) Discovers the complete technology stack used by a website. Tracks 6000+ technologies across multiple categories including analytics, payment processing, marketing automation, and more. **Parameters:** * `domain` (required): The target domain to analyze **Returns:** List of technologies with categories, icons, and website links. #### Similar Finder[](https://docs.tomba.io/llm/remote-mcp/tools#similar-finder) Finds companies similar to a target domain based on industry, size, technology stack, and business model. **Parameters:** * `domain` (required): The target domain to find similar companies * `limit` (optional): Maximum number of similar companies to return (default: 10, max: 50) **Returns:** List of similar domains with similarity scores, industry info, and employee counts. #### Companies Search[](https://docs.tomba.io/llm/remote-mcp/tools#companies-search) Search for companies using natural language queries with advanced filtering capabilities. Supports complex queries and multiple filter combinations. **Parameters:** * `query` (required): Natural language search query (e.g., "SaaS startups in Europe") * `page` (optional): Page number for pagination (default: 1) * `limit` (optional): Results per page (default: 50, max: 100) * `filters` (optional): Advanced filters object * `country`: Array of country codes * `industry`: Array of industry names * `employees`: Employee range string * `revenue`: Revenue range string * `technologies`: Array of technology names * `city`: Array of city names * `founded`: Object with min/max year range **Returns:** List of companies with full details including domain, organization name, industry, location, employee count, revenue, technologies, and email count. Usage Examples[](https://docs.tomba.io/llm/remote-mcp/tools#usage-examples) ---------------------------------------------------------------------------- ### Basic Tool Usage[](https://docs.tomba.io/llm/remote-mcp/tools#basic-tool-usage) Code `{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "domain_search", "arguments": { "domain": "example.com", "limit": 10 } } }` ### Workflow Execution[](https://docs.tomba.io/llm/remote-mcp/tools#workflow-execution) Code `{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "find_contact", "arguments": { "first_name": "John", "last_name": "Doe", "company_domain": "example.com" } } }` Error Handling[](https://docs.tomba.io/llm/remote-mcp/tools#error-handling) ---------------------------------------------------------------------------- All tools return standardized error responses with detailed information: Code `{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32000, "message": "Tool execution failed", "data": { "tool_name": "domain_search", "error_type": "validation_error", "details": "Invalid domain format" } } }` Last modified on April 5, 2026 [Remote MCP Server - Introduction](https://docs.tomba.io/llm/remote-mcp/introduction) [Remote MCP Server - LLM Integration](https://docs.tomba.io/llm/remote-mcp/integration) JSON JSON JSON --- # Web Technology Trends 2025 Analyzing 42 Million Websites | Tomba Documentation Menu We analyzed over **42.8 million websites** to uncover the most popular technologies powering the modern web. Here's what we discovered about the current state of web infrastructure, frameworks, and tools. Key Findings at a Glance[](https://docs.tomba.io/data/technology/web-technology-trends-2025#key-findings-at-a-glance) ---------------------------------------------------------------------------------------------------------------------- * **42,878,238** websites analyzed * **17,634** unique technologies detected * **jQuery** remains the #1 technology with 23.2M+ installations * **PHP** powers nearly half of all websites (19.5M) * **HTTP/3** adoption has reached 12.1M sites * * * Top 10 Technologies Dominating the Web[](https://docs.tomba.io/data/technology/web-technology-trends-2025#top-10-technologies-dominating-the-web) -------------------------------------------------------------------------------------------------------------------------------------------------- | Rank | Technology | Websites | Market Share | | --- | --- | --- | --- | | 1 | jQuery | 23,263,667 | 54.3% | | 2 | PHP | 19,552,483 | 45.6% | | 3 | MySQL | 14,233,330 | 33.2% | | 4 | WordPress | 13,645,852 | 31.8% | | 5 | Nginx | 12,229,593 | 28.5% | | 6 | HTTP/3 | 12,146,261 | 28.3% | | 7 | HSTS | 11,708,206 | 27.3% | | 8 | jQuery Migrate | 11,138,660 | 26.0% | | 9 | Apache HTTP Server | 9,305,428 | 21.7% | | 10 | Cloudflare | 9,177,041 | 21.4% | * * * Web Servers: The Infrastructure Battle[](https://docs.tomba.io/data/technology/web-technology-trends-2025#web-servers-the-infrastructure-battle) ------------------------------------------------------------------------------------------------------------------------------------------------- The web server landscape shows a clear leader with Nginx, but Apache remains a strong contender. | Server | Count | Notes | | --- | --- | --- | | Nginx | 12,229,593 | Market leader, preferred for modern stacks | | Apache HTTP Server | 9,305,428 | Legacy favorite, still widely used | | LiteSpeed | 3,498,298 | Growing fast, especially with WordPress | | OpenResty | 2,329,022 | Nginx + Lua, popular in Asia | | IIS | 1,068,330 | Microsoft ecosystem | | Caddy | 84,358 | Modern alternative with automatic HTTPS | | Tengine | 79,896 | Alibaba's Nginx fork | **Insight:** Nginx has overtaken Apache as the preferred web server, largely due to its performance advantages and suitability for containerized deployments. * * * Content Management Systems[](https://docs.tomba.io/data/technology/web-technology-trends-2025#content-management-systems) -------------------------------------------------------------------------------------------------------------------------- WordPress continues its dominance in the CMS space, powering nearly a third of all websites we analyzed. | CMS | Websites | Market Position | | --- | --- | --- | | WordPress | 13,645,852 | Undisputed leader | | Wix | 2,674,732 | Top website builder | | Shopify | 1,244,507 | E-commerce leader | | Joomla | 495,098 | Open-source alternative | | Blogger | 433,547 | Google's blogging platform | | Weebly | 424,635 | SMB-focused builder | | Drupal | 289,835 | Enterprise CMS | | Jimdo | 211,049 | European website builder | | TYPO3 CMS | 144,493 | Enterprise-grade, popular in Germany | | 1C-Bitrix | 138,739 | Dominant in Russia | * * * JavaScript Frameworks & Libraries[](https://docs.tomba.io/data/technology/web-technology-trends-2025#javascript-frameworks--libraries) --------------------------------------------------------------------------------------------------------------------------------------- The JavaScript ecosystem remains fragmented, but clear leaders have emerged. ### Libraries[](https://docs.tomba.io/data/technology/web-technology-trends-2025#libraries) | Library | Count | | --- | --- | | jQuery | 23,263,667 | | jQuery Migrate | 11,138,660 | | Lodash | 3,023,659 | | Underscore.js | 2,078,384 | | Modernizr | 1,922,879 | | Moment.js | 701,170 | | Backbone.js | 291,881 | ### Frameworks[](https://docs.tomba.io/data/technology/web-technology-trends-2025#frameworks) | Framework | Count | | --- | --- | | React | 3,255,149 | | Vue.js | 483,406 | | Next.js | 382,869 | | Nuxt.js | 160,777 | | Alpine.js | 66,406 | | AngularJS | 21,619 | **Insight:** Despite being considered "legacy" by many developers, jQuery remains the most widely deployed JavaScript library by a massive margin. React leads among modern frameworks. * * * Security & Performance[](https://docs.tomba.io/data/technology/web-technology-trends-2025#security--performance) ----------------------------------------------------------------------------------------------------------------- ### Security Headers & Protocols[](https://docs.tomba.io/data/technology/web-technology-trends-2025#security-headers--protocols) | Technology | Count | | --- | --- | | HTTP/3 | 12,146,261 | | HSTS | 11,708,206 | | reCAPTCHA | 3,677,962 | | Cloudflare Bot Management | 1,358,205 | | hCaptcha | 94,754 | ### CDN & Performance[](https://docs.tomba.io/data/technology/web-technology-trends-2025#cdn--performance) | Service | Count | | --- | --- | | Cloudflare | 9,177,041 | | Google Cloud CDN | 2,863,913 | | jsDelivr | 1,697,554 | | Amazon CloudFront | 554,342 | | Fastly | 223,433 | | Akamai | 54,581 | **Insight:** Cloudflare dominates the CDN market with over 9 million websites, more than 3x its nearest competitor. * * * E-commerce Platforms[](https://docs.tomba.io/data/technology/web-technology-trends-2025#e-commerce-platforms) -------------------------------------------------------------------------------------------------------------- | Platform | Count | | --- | --- | | WooCommerce | 1,917,518 | | Shopify | 1,244,507 | | PrestaShop | 46,703 | | OpenCart | 42,910 | | BigCommerce | 28,194 | WooCommerce's integration with WordPress gives it a significant advantage, while Shopify leads among hosted solutions. * * * Analytics & Marketing[](https://docs.tomba.io/data/technology/web-technology-trends-2025#analytics--marketing) --------------------------------------------------------------------------------------------------------------- | Tool | Count | | --- | --- | | Google Analytics | 7,791,311 | | Google Tag Manager | 755,668 | | MonsterInsights | 413,475 | | MailChimp | 370,619 | | AddThis | 328,845 | | Klaviyo | 223,584 | | HubSpot | 67,995 | * * * Cloud & Hosting Infrastructure[](https://docs.tomba.io/data/technology/web-technology-trends-2025#cloud--hosting-infrastructure) --------------------------------------------------------------------------------------------------------------------------------- | Provider | Count | | --- | --- | | Google Cloud | 2,927,404 | | Hostinger | 1,265,002 | | Amazon Web Services | 1,110,855 | | WP Engine | 414,865 | | Vercel | 308,847 | | Azure | 125,143 | | Kinsta | 92,946 | | Flywheel | 88,818 | | Pantheon | 37,498 | * * * WordPress Ecosystem Deep Dive[](https://docs.tomba.io/data/technology/web-technology-trends-2025#wordpress-ecosystem-deep-dive) -------------------------------------------------------------------------------------------------------------------------------- Given WordPress's massive market share, here's a breakdown of its most popular plugins and themes. ### Top WordPress Plugins[](https://docs.tomba.io/data/technology/web-technology-trends-2025#top-wordpress-plugins) | Plugin | Count | | --- | --- | | Contact Form 7 | 3,892,120 | | Elementor | 3,733,950 | | LiteSpeed Cache | 1,927,086 | | Site Kit | 1,829,416 | | Slider Revolution | 1,467,723 | | wpBakery | 1,128,232 | | All in One SEO | 946,178 | | WP Rocket | 782,754 | | Akismet | 657,167 | | Yoast SEO | 656,173 | ### Popular WordPress Themes[](https://docs.tomba.io/data/technology/web-technology-trends-2025#popular-wordpress-themes) | Theme | Count | | --- | --- | | Divi | 832,751 | | GeneratePress | 81,763 | | Blocksy | 79,332 | | Astra | Notable | | Kadence | 108,374 | * * * Programming Languages & Backends[](https://docs.tomba.io/data/technology/web-technology-trends-2025#programming-languages--backends) ------------------------------------------------------------------------------------------------------------------------------------- | Language/Framework | Count | | --- | --- | | PHP | 19,552,483 | | Microsoft ASP.NET | 1,341,221 | | Node.js | 970,370 | | Java | 736,744 | | Python | 543,619 | | Ruby | 368,742 | | Ruby on Rails | 347,663 | | Laravel | 246,629 | | Express | 297,345 | | CodeIgniter | 116,965 | * * * Database Technologies[](https://docs.tomba.io/data/technology/web-technology-trends-2025#database-technologies) ---------------------------------------------------------------------------------------------------------------- | Database | Count | | --- | --- | | MySQL | 14,233,330 | | PostgreSQL | 46,652 | | MariaDB | 38,721 | | Redis | 19,639 | MySQL's dominance is largely driven by WordPress and other PHP-based applications. * * * Emerging Trends[](https://docs.tomba.io/data/technology/web-technology-trends-2025#emerging-trends) ---------------------------------------------------------------------------------------------------- ### Rising Technologies[](https://docs.tomba.io/data/technology/web-technology-trends-2025#rising-technologies) These technologies show significant adoption and growth potential: * **Tailwind CSS** (46,296) - Utility-first CSS framework gaining momentum * **Alpine.js** (66,406) - Lightweight reactive framework * **Astro** (24,490) - Modern static site builder * **Framer Sites** (40,771) - Design-first website builder * **Livewire** (52,006) - Full-stack framework for Laravel * **Inertia.js** (19,156) - Modern monolith approach ### Privacy-Focused Tools[](https://docs.tomba.io/data/technology/web-technology-trends-2025#privacy-focused-tools) With GDPR and privacy regulations, consent management is booming: | Tool | Count | | --- | --- | | CookieYes | 624,665 | | Complianz | 470,701 | | Cookie Notice | 321,626 | | Cookiebot | 205,970 | | iubenda | 109,829 | | OneTrust | 100,656 | | Osano | 128,089 | * * * Regional Technologies[](https://docs.tomba.io/data/technology/web-technology-trends-2025#regional-technologies) ---------------------------------------------------------------------------------------------------------------- Some technologies show strong regional preferences: | Technology | Region | Count | | --- | --- | --- | | 1C-Bitrix | Russia | 138,739 | | Naver Analytics | South Korea | 57,740 | | Kakao | South Korea | 40,622 | | VK Pixel | Russia | 50,090 | | CNZZ | China | 74,872 | | Baidu Analytics | China | Notable | * * * Methodology[](https://docs.tomba.io/data/technology/web-technology-trends-2025#methodology) -------------------------------------------------------------------------------------------- This analysis was performed using Tomba.io's technology detection system, which scans websites for signatures of over 17,000 different technologies. Our dataset covers 42,878,238 unique domains processed in just over 3 minutes using. ### Technical Details[](https://docs.tomba.io/data/technology/web-technology-trends-2025#technical-details) * **Processing Time:** 3 minutes 22 seconds * **Unique Technologies Detected:** 17,634 * **Data Source:** Tomba.io Technology Database * **Analysis Date:** 2025 * * * Conclusion[](https://docs.tomba.io/data/technology/web-technology-trends-2025#conclusion) ------------------------------------------------------------------------------------------ The web in 2025 is powered by a surprisingly stable set of core technologies. Despite years of "jQuery is dead" predictions, it remains the most widely deployed JavaScript library. PHP and WordPress continue to dominate content management, while Cloudflare has become the de facto CDN for millions of websites. Key takeaways for developers and businesses: 1. **jQuery isn't going anywhere** - With 54% market share, it's still essential knowledge 2. **WordPress is the web** - Nearly 1 in 3 websites runs on WordPress 3. **Security is mainstream** - HTTP/3 and HSTS adoption exceeds 27% 4. **Cloudflare won the CDN war** - 3x more sites than the next competitor 5. **React leads modern frameworks** - But Vue.js and Next.js are strong alternatives * * * Access This Data[](https://docs.tomba.io/data/technology/web-technology-trends-2025#access-this-data) ------------------------------------------------------------------------------------------------------ Want to leverage technology intelligence for your sales and marketing? Tomba.io provides: * **Technology Lookup API** - Find companies using specific technologies * **Lead Enrichment** - Enhance your CRM with tech stack data * **Competitive Intelligence** - Track technology adoption trends [Explore Tomba.io Technology Data →](https://tomba.io/) Last modified on December 6, 2025 [December Data Update](https://docs.tomba.io/data/2025/03-december) [Top 500 Web Technologies 2026](https://docs.tomba.io/data/technology/top-500-web-technologies-2026) --- # Remote MCP Server - Introduction | Tomba Documentation Menu Welcome to the **Remote MCP Server** powered by [Tomba.io](https://tomba.io/) , a comprehensive Model Context Protocol (MCP) server that provides advanced email discovery, verification, and enrichment capabilities through a streamlined HTTP transport interface. What is Remote MCP Server?[](https://docs.tomba.io/llm/remote-mcp/introduction#what-is-remote-mcp-server) ---------------------------------------------------------------------------------------------------------- The Remote MCP Server is a cloud-hosted implementation of the Model Context Protocol that allows you to access Tomba.io's powerful email intelligence tools without the need for local installation or configuration. By leveraging our remote infrastructure, you get instant access to: * **12 Professional Tools** for email discovery and verification * **3 Resources** for comprehensive data access * **12 Pre-built Prompts** for common use cases * **Real-time Processing** with high availability * **Scalable Infrastructure** that grows with your needs Key Advantages of Remote MCP[](https://docs.tomba.io/llm/remote-mcp/introduction#key-advantages-of-remote-mcp) --------------------------------------------------------------------------------------------------------------- ### **Instant Setup**[](https://docs.tomba.io/llm/remote-mcp/introduction#instant-setup) No installation, no dependencies, no configuration files. Just connect and start using professional email intelligence tools immediately. ### **Always Up-to-Date**[](https://docs.tomba.io/llm/remote-mcp/introduction#always-up-to-date) Our remote server is continuously updated with the latest features, bug fixes, and API improvements without any action required on your part. MCP Tools & Capabilities[](https://docs.tomba.io/llm/remote-mcp/introduction#mcp-tools--capabilities) ------------------------------------------------------------------------------------------------------ The Remote MCP Server exposes **12 professional tools** that let any MCP-compatible AI assistant discover, verify, and enrich contact data through natural-language prompts. Every tool accepts structured parameters and returns typed JSON — no scraping, no prompt-crafting. | # | Tool | What it does | | --- | --- | --- | | 1 | `domain_search` | Find every email address associated with a company domain. | | 2 | `email_finder` | Find a person's email by first name, last name, and company domain. | | 3 | `email_verifier` | Check deliverability, MX, SMTP, disposable/role status, and catch-all for any email. | | 4 | `email_enrichment` | Return full contact + company profile from an email address. | | 5 | `email_count` | Return the number of public emails available for a given domain. | | 6 | `author_finder` | Extract the author's email from any article, blog post, or URL. | | 7 | `linkedin_finder` | Resolve a LinkedIn profile URL to a verified email address. | | 8 | `phone_finder` | Find validated phone numbers from an email, domain, or LinkedIn URL. | | 9 | `phone_validator` | Validate a phone number and return country, carrier, and line type. | | 10 | `technology_finder` | Detect the full tech stack a website uses. | | 11 | `similar_finder` | Return companies similar to a given domain (lookalike audiences, ABM). | | 12 | `companies_search` | Search Tomba's company database by name, industry, size, and more. | See the [complete tool reference](https://docs.tomba.io/llm/remote-mcp/tools) for parameter schemas, response shapes, and example prompts for every tool. Streamable HTTP Transport[](https://docs.tomba.io/llm/remote-mcp/introduction#streamable-http-transport) --------------------------------------------------------------------------------------------------------- The Remote MCP Server uses **Streamable HTTP Transport** for real-time, bidirectional communication. This modern approach provides: * **Server-Sent Events (SSE)** for real-time notifications * **JSON-RPC 2.0** for structured API communication * **Session Management** for stateful interactions * **WebSocket-like Experience** over standard HTTP ### Connection Endpoint[](https://docs.tomba.io/llm/remote-mcp/introduction#connection-endpoint) TerminalCode `https://mcp.tomba.io/mcp` This single endpoint handles all MCP operations through different HTTP methods: * **POST** - Send JSON-RPC requests * **GET** - Receive real-time notifications via SSE * **DELETE** - Terminate sessions cleanly Agent Skills[](https://docs.tomba.io/llm/remote-mcp/introduction#agent-skills) ------------------------------------------------------------------------------- Install the Tomba MCP skill to help AI assistants effectively use the Tomba tools: TerminalCode `npx skills add https://mcp.tomba.io` The skill provides: * Domain knowledge for email discovery and verification * Best practices for lead generation workflows * Authentication setup guidance * Tool usage examples and patterns View the skill catalog: [https://mcp.tomba.io/.well-known/skills/index.json](https://mcp.tomba.io/.well-known/skills/index.json) Authentication Methods[](https://docs.tomba.io/llm/remote-mcp/introduction#authentication-methods) --------------------------------------------------------------------------------------------------- ### Getting API Keys[](https://docs.tomba.io/llm/remote-mcp/introduction#getting-api-keys) 1. Sign up at [app.tomba.io](https://app.tomba.io/) 2. Navigate to **Settings** → **API Keys** 3. Copy your **API Key** (starts with `ta_`) and **Secret Key** (starts with `ts_`) The Tomba MCP Server supports two authentication methods for HTTP requests: 1. **Bearer Token** (Recommended) 2. **Custom Headers** (Legacy) ### Method 1: Bearer Token (Recommended)[](https://docs.tomba.io/llm/remote-mcp/introduction#method-1-bearer-token-recommended) Encode your credentials as base64: TerminalCode `# Create bearer token echo -n "ta_your_api_key:ts_your_secret_key" | base64` Use in the Authorization header: Code `Authorization: Bearer dGFfeW91cl9hcGlfa2V5OnRzX3lvdXJfc2VjcmV0X2tleQ==` **Example:** TerminalCode `curl -X POST https://mcp.tomba.io/mcp \ -H "Authorization: Bearer dGFfeW91cl9hcGlfa2V5OnRzX3lvdXJfc2VjcmV0X2tleQ==" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'` ### Method 2: Custom Headers (Legacy)[](https://docs.tomba.io/llm/remote-mcp/introduction#method-2-custom-headers-legacy) Send credentials as separate headers: Code `X-Tomba-Key: ta_your_api_key X-Tomba-Secret: ts_your_secret_key` **Example:** TerminalCode `curl -X POST https://mcp.tomba.io/mcp \ -H "X-Tomba-Key: ta_1234567890abcdef" \ -H "X-Tomba-Secret: ts_abcdef1234567890" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'` Rate Limits & Quotas[](https://docs.tomba.io/llm/remote-mcp/introduction#rate-limits--quotas) ---------------------------------------------------------------------------------------------- * Rate limits depend on your subscription plan * Check remaining credits via the `tomba://usage` resource * Free tier includes limited monthly searches and verifications Last modified on April 19, 2026 [Tomba Local MCP LLM Integration](https://docs.tomba.io/llm/local-mcp/integration) [Tomba Remote MCP Tools](https://docs.tomba.io/llm/remote-mcp/tools) --- # Remote MCP Server - LLM Integration | Tomba Documentation Menu LLM Integration Guide[](https://docs.tomba.io/llm/remote-mcp/integration#llm-integration-guide) ================================================================================================ The Tomba Remote MCP Server provides seamless integration with leading Large Language Models (LLMs) and AI assistants through the standardized Model Context Protocol. This guide covers setup, configuration, and best practices for various LLM platforms. Supported LLM Platforms[](https://docs.tomba.io/llm/remote-mcp/integration#supported-llm-platforms) ---------------------------------------------------------------------------------------------------- ### **AI Assistants**[](https://docs.tomba.io/llm/remote-mcp/integration#ai-assistants) | Platform | Support Level | Transport | Authentication | Real-time | | --- | --- | --- | --- | --- | | **Claude Desktop** | ✅ Full | HTTP/SSE | API Key | ✅ Yes | | **ChatGPT** | ✅ Full | HTTP/SSE | API Key | ✅ Yes | | **GitHub Copilot** | ✅ Full | HTTP/SSE | API Key | ✅ Yes | | **Cursor AI** | ✅ Full | HTTP/SSE | API Key | ✅ Yes | | **Codeium** | ✅ Full | HTTP/SSE | API Key | ✅ Yes | ### **Enterprise LLMs**[](https://docs.tomba.io/llm/remote-mcp/integration#enterprise-llms) | Platform | Support Level | Transport | Authentication | Real-time | | --- | --- | --- | --- | --- | | **Azure OpenAI** | ✅ Full | HTTP/SSE | API Key | ✅ Yes | | **Google Gemini** | ✅ Full | HTTP/SSE | API Key | ✅ Yes | | **Anthropic API** | ✅ Full | HTTP/SSE | API Key | ✅ Yes | Quick Start Integration[](https://docs.tomba.io/llm/remote-mcp/integration#quick-start-integration) ---------------------------------------------------------------------------------------------------- ### Claude Desktop Integration[](https://docs.tomba.io/llm/remote-mcp/integration#claude-desktop-integration) **1\. Configuration File** Create or update your Claude Desktop configuration: Code `{ "mcpServers": { "tomba": { "url": "https://mcp.tomba.io/mcp", "headers": { "Authorization": "Bearer YOUR_BASE64_TOKEN" } } } }` **2\. Verify Connection** Start Claude Desktop and verify the integration: Code `Human: Can you check if the Tomba MCP server is connected? Claude: I can see the Tomba Remote MCP server is successfully connected! Available tools: domain_search, email_finder, email_verifier, and more.` ### VS Code (GitHub Copilot) Integration[](https://docs.tomba.io/llm/remote-mcp/integration#vs-code-github-copilot-integration) Add to your VS Code settings or `.vscode/mcp.json`: Code `{ "inputs": [ { "type": "promptString", "id": "tomba-bearer", "description": "Tomba bearer token", "password": true, }, ], "servers": { "tomba": { "type": "http", "url": "https://mcp.tomba.io/mcp", "headers": { "Authorization": "Bearer ${input:tomba-bearer}", }, }, }, }` ### Cursor Integration[](https://docs.tomba.io/llm/remote-mcp/integration#cursor-integration) Add to your Cursor MCP configuration: Code `{ "mcpServers": { "tomba": { "url": "https://mcp.tomba.io/mcp", "transport": "http", "headers": { "X-Tomba-Key": "ta_your_api_key", "X-Tomba-Secret": "ts_your_secret_key" } } } }` ### ChatGPT Integration[](https://docs.tomba.io/llm/remote-mcp/integration#chatgpt-integration) **1\. OpenAI Responses API** Example of using our MCP server with OpenAI's Responses API: TerminalCode `curl https://api.openai.com/v1/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_OPENAI_API_KEY" \ -d '{ "model": "gpt-4.1", "tools": [ { "type": "mcp", "server_label": "tomba-remote-mcp", "server_url": "https://mcp.tomba.io/mcp", "require_approval": "never", "headers": { "x-tomba-key": "ta_1234567890abcdef", "x-tomba-secret": "ts_xxxx" } } ], "input": "Find email addresses for example.com" }'` ### Common Issues[](https://docs.tomba.io/llm/remote-mcp/integration#common-issues) **Connection Refused** TerminalCode `# Check network connectivity curl -I https://mcp.tomba.io/mcp # Verify API credentials curl -X POST https://mcp.tomba.io/mcp \ -H "Authorization: Bearer your_key+your_secret" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'` **Authentication Errors** * Verify API key format: `ta_xxxxxxxxxx` * Verify secret key format: `ts_xxxxxxxxxx` **Rate Limit Exceeded** * Check current usage in dashboard * Implement exponential backoff * Consider upgrading account plan Last modified on April 5, 2026 [Tomba Remote MCP Tools](https://docs.tomba.io/llm/remote-mcp/tools) [Tomba Apify MCP Server](https://docs.tomba.io/llm/apify/introduction) JSON JSON JSON --- # Disposable Email Blocker | Tomba Documentation Menu The **Disposable Email Blocker** is a JavaScript library that detects and blocks disposable email services during account registration. By integrating it into your forms, you can collect valid long-term email addresses and improve user quality. Features[](https://docs.tomba.io/disposable-email-blocker/overview#features) ----------------------------------------------------------------------------- * **Comprehensive Form Protection:** Safeguards all HTML forms by detecting and blocking disposable and webmail email addresses. * **Invalid Email Detection:** Identifies and flags invalid email addresses and domains. * **Customizable Error Messages:** Allows for tailored error messages to provide clear feedback to users. * **Regular Database Updates:** Continuously updates its database of disposable email providers to effectively identify new services. Quick Install[](https://docs.tomba.io/disposable-email-blocker/overview#quick-install) --------------------------------------------------------------------------------------- TerminalCode `npm install disposable-email-blocker --save` Last modified on April 28, 2026 [Ruby Client Library](https://docs.tomba.io/libraries/ruby-email-finder) [Installation](https://docs.tomba.io/disposable-email-blocker/installation) --- # Free Plugins | Tomba Documentation Menu Free Plugins / Forum / E-Commerce / CMS[](https://docs.tomba.io/disposable-email-blocker/free-plugins#free-plugins--forum--e-commerce--cms) -------------------------------------------------------------------------------------------------------------------------------------------- Below is a curated list of free plugins and integrations to prevent disposable email usage across popular platforms and frameworks. | Platform | URL | Status | | --- | --- | --- | | WordPress | [wordpress-disposable-email-blocker](https://github.com/tomba-io/tomba-disposable) | Available | | MyBB | [mybb-disposable-email-blocker](https://github.com/tomba-io/mybb-disposable-email-blocker) | Available | | LiteCart | [litecart-disposable-email-blocker](https://github.com/tomba-io/litecart-disposable-email-blocker) | Available | | Cloudflare | [cloudflare-disposable-email-blocker](https://github.com/tomba-io/cloudflare-disposable-email-blocker) | Available | | Vue 2 | [disposable-email-blocker-vue-2](https://github.com/tomba-io/disposable-email-blocker-vue-2) | Available | | Joomla | [joomla-disposable-email-blocker](https://github.com/tomba-io/joomla-disposable-email-blocker) | Available | | Vue 3 | [disposable-email-blocker-vue-3](https://github.com/tomba-io/disposable-email-blocker-vue-3) | 🚧 | | React | [disposable-email-blocker-react](https://github.com/tomba-io/disposable-email-blocker-react) | 🚧 | | Drupal | _(Coming Soon)_ | 🚧 | Available = plugin is ready to use. 🚧 = plugin is in development. Last modified on April 28, 2026 [Usage](https://docs.tomba.io/disposable-email-blocker/usage) [Tomba Apify Actors](https://docs.tomba.io/integrations/apify/introduction) --- # Usage | Tomba Documentation Menu Basic Initialization[](https://docs.tomba.io/disposable-email-blocker/usage#basic-initialization) -------------------------------------------------------------------------------------------------- After including the library, initialize the `Blocker` to start protecting your forms: Code `import { Blocker } from "disposable-email-blocker"; // Initialize with default settings new Blocker();` Alternatively, if included via a CDN: Code ` ` Customizing Error Messages[](https://docs.tomba.io/disposable-email-blocker/usage#customizing-error-messages) -------------------------------------------------------------------------------------------------------------- You can customize the error messages displayed when a disposable or webmail email is detected: Code `new Blocker({ messages: { disposable: "Disposable email addresses are not allowed.", webmail: "Please use your professional email address.", }, });` Blocking Webmail Services[](https://docs.tomba.io/disposable-email-blocker/usage#blocking-webmail-services) ------------------------------------------------------------------------------------------------------------ By default, the blocker focuses on disposable email services. To extend protection to webmail services (e.g., Gmail, Yahoo), enable the `blockWebmail` option: Code `new Blocker({ blockWebmail: true, });` Blocker options[](https://docs.tomba.io/disposable-email-blocker/usage#blocker-options) ---------------------------------------------------------------------------------------- Blocker constructor options. Code ``const options = { apiUrl: "string", data: "TombaStatusResponse[]", disposable: { message: "string", }, webmail: { message: "string", block: false, }, emailError: { className: "string", style: `string`, }, }; new Disposable.Blocker(options);`` Custom API URL[](https://docs.tomba.io/disposable-email-blocker/usage#custom-api-url) -------------------------------------------------------------------------------------- Code `const options = { apiUrl: "string", }; new Disposable.Blocker(options);` Custom DATA[](https://docs.tomba.io/disposable-email-blocker/usage#custom-data) -------------------------------------------------------------------------------- Use this to skip API calls and rely on local data only. Code `const options = { data: [ { domain: "coronafleet.com", webmail: true, disposable: false, }, ], }; new Disposable.Blocker(options);` Event[](https://docs.tomba.io/disposable-email-blocker/usage#event) -------------------------------------------------------------------- Use the `on()` API method. Available event name: `done`. It fires after input is processed. Code `const blocker = new Blocker(); blocker.on("done", (e) => { if (e.detail.disposable) { alert(blocker.options.disposable.message); } });` Last modified on April 28, 2026 [Installation](https://docs.tomba.io/disposable-email-blocker/installation) [Free Plugins](https://docs.tomba.io/disposable-email-blocker/free-plugins) Javascript Javascript Javascript Javascript Javascript Javascript Javascript --- # Setting Up Apify MCP Integration | Tomba Documentation Menu This guide walks you through configuring the Apify MCP server to access Tomba.io tools in VS Code and other MCP-compatible environments. Prerequisites[](https://docs.tomba.io/llm/apify/integration#prerequisites) --------------------------------------------------------------------------- Before you begin, ensure you have: * **Apify Account**: Sign up at [apify.com](https://apify.com/) if you don't have an account * **Apify API Token**: Generate your API token from the Apify Console * **VS Code**: Install Visual Studio Code or another MCP-compatible client * **MCP Extension**: Install the appropriate MCP extension for your environment VS Code Configuration[](https://docs.tomba.io/llm/apify/integration#vs-code-configuration) ------------------------------------------------------------------------------------------- ### 1\. Install Required Extensions[](https://docs.tomba.io/llm/apify/integration#1-install-required-extensions) First, install the Model Context Protocol extension in VS Code: 1. Open VS Code 2. Go to Extensions (Ctrl+Shift+X) 3. Search for "Model Context Protocol" or "MCP" 4. Install the official MCP extension ### 2\. Configure MCP Settings[](https://docs.tomba.io/llm/apify/integration#2-configure-mcp-settings) Add the following configuration to your VS Code settings or MCP configuration file: Code `{ "inputs": [ { "type": "promptString", "id": "apify-token", "description": "Apify API token", "password": true } ], "servers": { "apify": { "url": "https://mcp.apify.com/?tools=actors,docs,tomba-io/email-enrichment,tomba-io/technology-finder,tomba-io/email-finder,tomba-io/phone-validator,tomba-io/email-verifier,tomba-io/domain-search,tomba-io/linkedin-finder,tomba-io/email-count,tomba-io/clearbit-combined,tomba-io/clearbit-person,tomba-io/author-finder,tomba-io/phone-finder,tomba-io/similar-finder,tomba-io/clearbit-company", "headers": { "Authorization": "Bearer ${input:apify-token}" } } } }` ### 3\. Get Your Apify API Token[](https://docs.tomba.io/llm/apify/integration#3-get-your-apify-api-token) 1. Log in to your [Apify Console](https://console.apify.com/) 2. Navigate to **Settings** → **Integrations** 3. Find the **API tokens** section 4. Click **Create new token** 5. Give it a descriptive name (e.g., "MCP Integration") 6. Copy the generated token ### 4\. Configure Authentication[](https://docs.tomba.io/llm/apify/integration#4-configure-authentication) When prompted by VS Code: 1. Enter your Apify API token when the `apify-token` input prompt appears 2. The token will be securely stored and used for authentication 3. Verify the connection by testing one of the available tools Alternative Configurations[](https://docs.tomba.io/llm/apify/integration#alternative-configurations) ----------------------------------------------------------------------------------------------------- ### Claude Desktop App[](https://docs.tomba.io/llm/apify/integration#claude-desktop-app) For Claude Desktop app integration: Code `{ "mcpServers": { "apify-tomba": { "command": "npx", "args": [ "@modelcontextprotocol/server-web", "https://mcp.apify.com/?tools=actors,docs,tomba-io/email-enrichment,tomba-io/technology-finder,tomba-io/email-finder,tomba-io/phone-validator,tomba-io/email-verifier,tomba-io/domain-search,tomba-io/linkedin-finder,tomba-io/email-count,tomba-io/clearbit-combined,tomba-io/clearbit-person,tomba-io/author-finder,tomba-io/phone-finder,tomba-io/similar-finder,tomba-io/clearbit-company" ], "env": { "APIFY_TOKEN": "your-apify-token-here" } } } }` ### Other MCP Clients[](https://docs.tomba.io/llm/apify/integration#other-mcp-clients) For other MCP-compatible clients, use the server URL directly: Code `https://mcp.apify.com/?tools=actors,docs,tomba-io/email-enrichment,tomba-io/technology-finder,tomba-io/email-finder,tomba-io/phone-validator,tomba-io/email-verifier,tomba-io/domain-search,tomba-io/linkedin-finder,tomba-io/email-count,tomba-io/clearbit-combined,tomba-io/clearbit-person,tomba-io/author-finder,tomba-io/phone-finder,tomba-io/similar-finder,tomba-io/clearbit-company` With authentication header: Code `Authorization: Bearer YOUR_APIFY_TOKEN` Usage Examples[](https://docs.tomba.io/llm/apify/integration#usage-examples) ----------------------------------------------------------------------------- ### Example 1: Journalist Contact Research[](https://docs.tomba.io/llm/apify/integration#example-1-journalist-contact-research) Find contact information for journalists who wrote specific articles: Code `I need to find contact information for journalists who wrote the following articles: - https://techcrunch.com/article-1 - https://wired.com/article-2 - https://forbes.com/article-3 Please: 1. Use the tomba-io/author-finder tool for each article URL 2. For each author found, use the tomba-io/email-verifier tool to verify their email 3. Try to find phone numbers using the tomba-io/phone-finder tool 4. Create a summary table with: - Article URL - Author name - Email address - Phone number (if found) - Verification status 5. Provide any additional insights about the journalists` ### Example 2: Lead Generation for Tech Companies[](https://docs.tomba.io/llm/apify/integration#example-2-lead-generation-for-tech-companies) Research and enrich leads in the technology sector: Code `I need to research potential leads for our B2B software company. Please help me: 1. Use tomba-io/domain-search to find all emails at these competitor domains: - salesforce.com - hubspot.com - pipedrive.com 2. For the decision-makers found, use tomba-io/email-enrichment to get detailed profiles 3. Use tomba-io/technology-finder to analyze what technologies these companies use 4. Use tomba-io/similar-finder to discover other companies similar to these 5. Compile a comprehensive lead list with: - Company name - Contact person - Verified email - Job title - Company technologies - Similar companies to target` ### Example 3: Content Creator Outreach[](https://docs.tomba.io/llm/apify/integration#example-3-content-creator-outreach) Find and verify influencer contact information: Code `I'm planning an influencer marketing campaign. Help me find contact information for content creators: 1. Use tomba-io/linkedin-finder with these LinkedIn profiles: - linkedin.com/in/techinfluencer1 - linkedin.com/in/marketer2 - linkedin.com/in/entrepreneur3 2. For each contact found: - Verify emails with tomba-io/email-verifier - Find phone numbers with tomba-io/phone-finder - Enrich profiles with tomba-io/clearbit-person 3. Create an outreach list with: - Name and social media handle - Verified contact information - Professional background - Engagement strategy recommendations` ### Example 4: Market Research Analysis[](https://docs.tomba.io/llm/apify/integration#example-4-market-research-analysis) Comprehensive company and contact analysis: Code `I need to analyze our target market. Please help with: 1. Use tomba-io/domain-search to map out key contacts at these target companies: - company1.com - company2.com - company3.com 2. Use tomba-io/technology-finder to understand their tech stack 3. Use tomba-io/clearbit-company to get detailed company information 4. Use tomba-io/similar-finder to identify other companies in this space 5. Generate a market analysis report including: - Company profiles and contact hierarchies - Technology adoption patterns - Market size and opportunity assessment - Recommended entry strategies` ### Example 5: Email List Validation[](https://docs.tomba.io/llm/apify/integration#example-5-email-list-validation) Clean and enrich existing contact databases: Code `I have a list of email addresses that need validation and enrichment: email1@company.com email2@startup.io email3@enterprise.org Please: 1. Use tomba-io/email-verifier to check deliverability of each email 2. Use tomba-io/email-enrichment to add detailed contact information 3. For any invalid emails, use tomba-io/email-finder to find alternative contacts at those companies 4. Create a cleaned and enriched contact list with validation status` Troubleshooting[](https://docs.tomba.io/llm/apify/integration#troubleshooting) ------------------------------------------------------------------------------- ### Common Issues[](https://docs.tomba.io/llm/apify/integration#common-issues) **Authentication Errors** * Verify your Apify API token is correct and has proper permissions * Check that the token hasn't expired * Ensure the Authorization header is properly formatted **Connection Issues** * Confirm your internet connection is stable * Verify the MCP server URL is correct * Check if your firewall is blocking the connection **Tool Not Found Errors** * Ensure you're using the correct tool names (e.g., `tomba-io/email-finder`) * Verify the tool is included in your server URL configuration * Check the Apify platform for tool availability ### Getting Help[](https://docs.tomba.io/llm/apify/integration#getting-help) If you encounter issues: 1. Check the [Apify documentation](https://docs.apify.com/platform/integrations/mcp) 2. Apify MCP [Apify MCP](https://mcp.apify.com/) 3. Review the [MCP specification](https://modelcontextprotocol.io/) 4. Contact Apify support for server-related issues 5. Reach out to Tomba.io support for tool-specific questions Security Best Practices[](https://docs.tomba.io/llm/apify/integration#security-best-practices) ----------------------------------------------------------------------------------------------- * **Never hardcode API tokens** in configuration files * **Use environment variables** or secure input prompts for tokens * **Regularly rotate** your API tokens * **Monitor usage** through the Apify Console * **Restrict token permissions** to only necessary scopes * **Keep your MCP client updated** to the latest version Next Steps[](https://docs.tomba.io/llm/apify/integration#next-steps) --------------------------------------------------------------------- * [Explore the complete list of available tools →](https://docs.tomba.io/llm/apify/tools) * [Learn about tool capabilities and parameters →](https://docs.tomba.io/llm/apify/tools#tool-reference) * [See advanced usage patterns and workflows →](https://docs.tomba.io/llm/apify/tools#advanced-usage) Last modified on October 31, 2025 [Available Tomba.io Tools in Apify MCP](https://docs.tomba.io/llm/apify/tools) [Editor Setup](https://docs.tomba.io/llm/editor/setup) JSON JSON --- # Available Tomba.io Tools in Apify MCP | Tomba Documentation Menu The Apify MCP server provides access to 15 powerful Tomba.io tools designed for email intelligence, contact discovery, and data enrichment. Each tool serves specific use cases and can be combined for comprehensive contact research workflows. Core Email Tools[](https://docs.tomba.io/llm/apify/tools#core-email-tools) --------------------------------------------------------------------------- ### tomba-io/email-finder[](https://docs.tomba.io/llm/apify/tools#tomba-ioemail-finder) **Purpose**: Discover professional email addresses for individuals based on their name and company domain. **Use Cases**: * Finding contact information for prospects * Locating decision-makers at target companies * Building outreach lists for sales and marketing **Example Usage**: Code `Use tomba-io/email-finder to find the email address for: - Name: John Smith - Company: example.com` * * * ### tomba-io/email-verifier[](https://docs.tomba.io/llm/apify/tools#tomba-ioemail-verifier) **Purpose**: Validate email addresses to ensure they are deliverable and active. **Use Cases**: * Cleaning existing email lists * Reducing bounce rates in email campaigns * Verifying prospect contact information **Example Usage**: Code `Use tomba-io/email-verifier to verify these email addresses: - john.smith@example.com - sales@company.io - info@startup.co` * * * ### tomba-io/email-enrichment[](https://docs.tomba.io/llm/apify/tools#tomba-ioemail-enrichment) **Purpose**: Add comprehensive information to existing email addresses including personal and professional details. **Use Cases**: * Enriching contact databases * Personalizing outreach campaigns * Building detailed prospect profiles **Example Usage**: Code `Use tomba-io/email-enrichment to enrich the profile for: - Email: ceo@techstartup.com Include: job title, social profiles, company information, location` * * * ### tomba-io/email-count[](https://docs.tomba.io/llm/apify/tools#tomba-ioemail-count) **Purpose**: Get statistics about the number of email addresses associated with a domain. **Use Cases**: * Assessing company size and structure * Planning outreach strategies * Market research and analysis **Example Usage**: Code `Use tomba-io/email-count to analyze these domains: - salesforce.com - hubspot.com - mailchimp.com` Contact Discovery Tools[](https://docs.tomba.io/llm/apify/tools#contact-discovery-tools) ----------------------------------------------------------------------------------------- ### tomba-io/author-finder[](https://docs.tomba.io/llm/apify/tools#tomba-ioauthor-finder) **Purpose**: Extract contact information from article URLs, finding details about the authors and content creators. **Use Cases**: * Journalist outreach and PR campaigns * Content creator partnerships * Media relations and press coverage **Example Usage**: Code `Use tomba-io/author-finder to find contact information for authors of: - https://techcrunch.com/2024/10/startup-funding-article - https://forbes.com/2024/10/business-trends-analysis - https://wired.com/2024/10/technology-review` * * * ### tomba-io/phone-finder[](https://docs.tomba.io/llm/apify/tools#tomba-iophone-finder) **Purpose**: Discover phone numbers for individuals and companies. **Use Cases**: * Building complete contact profiles * Cold calling campaigns * Emergency contact information **Example Usage**: Code `Use tomba-io/phone-finder to find phone numbers for: - Person: Jane Doe at marketing@company.com - Company: TechCorp Inc. - Domain: enterprise.com` * * * ### tomba-io/phone-validator[](https://docs.tomba.io/llm/apify/tools#tomba-iophone-validator) **Purpose**: Verify and format phone numbers to ensure they are valid and properly formatted. **Use Cases**: * Cleaning phone number databases * International number formatting * Validating contact forms **Example Usage**: Code `Use tomba-io/phone-validator to validate and format: - +1-555-123-4567 - (555) 987-6543 - 555.111.2222` * * * ### tomba-io/linkedin-finder[](https://docs.tomba.io/llm/apify/tools#tomba-iolinkedin-finder) **Purpose**: Extract contact information and professional details from LinkedIn profiles. **Use Cases**: * Social selling and networking * Recruiting and talent acquisition * Professional relationship building **Example Usage**: Code `Use tomba-io/linkedin-finder to extract information from: - linkedin.com/in/marketing-director-tech - linkedin.com/in/startup-founder-2024 - linkedin.com/in/sales-executive-saas` Company Intelligence Tools[](https://docs.tomba.io/llm/apify/tools#company-intelligence-tools) ----------------------------------------------------------------------------------------------- ### tomba-io/domain-search[](https://docs.tomba.io/llm/apify/tools#tomba-iodomain-search) **Purpose**: Find all email addresses associated with a specific domain or company. **Use Cases**: * Mapping organizational structures * Comprehensive lead generation * Competitive intelligence **Example Usage**: Code `Use tomba-io/domain-search to find all contacts at: - apple.com (limit to 50 results) - microsoft.com (focus on @outlook.com emails) - google.com (exclude generic emails like info@, support@)` * * * ### tomba-io/technology-finder[](https://docs.tomba.io/llm/apify/tools#tomba-iotechnology-finder) **Purpose**: Discover technologies, tools, and software used by companies based on their domain. **Use Cases**: * Sales qualification and targeting * Competitive analysis * Technology trend research **Example Usage**: Code `Use tomba-io/technology-finder to analyze tech stacks for: - shopify.com - stripe.com - atlassian.com Focus on: CRM, marketing tools, development frameworks` * * * ### tomba-io/similar-finder[](https://docs.tomba.io/llm/apify/tools#tomba-iosimilar-finder) **Purpose**: Find companies similar to a target organization based on various criteria. **Use Cases**: * Market expansion strategies * Competitive landscape analysis * Lead list building **Example Usage**: Code `Use tomba-io/similar-finder to find companies similar to: - Target: salesforce.com - Criteria: SaaS, CRM, enterprise software - Size: 1000-5000 employees - Geography: North America` Enhanced Data Sources (Clearbit Integration)[](https://docs.tomba.io/llm/apify/tools#enhanced-data-sources-clearbit-integration) --------------------------------------------------------------------------------------------------------------------------------- ### tomba-io/clearbit-person[](https://docs.tomba.io/llm/apify/tools#tomba-ioclearbit-person) **Purpose**: Get detailed person enrichment data using Clearbit's comprehensive database. **Use Cases**: * Executive profiling * Detailed prospect research * Personalized outreach preparation **Example Usage**: Code `Use tomba-io/clearbit-person to enrich: - Email: ceo@startup.io Return: employment history, education, social profiles, personal interests` * * * ### tomba-io/clearbit-company[](https://docs.tomba.io/llm/apify/tools#tomba-ioclearbit-company) **Purpose**: Retrieve comprehensive company information and intelligence using Clearbit data. **Use Cases**: * Company due diligence * Market research * Investment analysis **Example Usage**: Code `Use tomba-io/clearbit-company to analyze: - Company: acme-corp.com Include: revenue, employee count, funding, technology stack, news` * * * ### tomba-io/clearbit-combined[](https://docs.tomba.io/llm/apify/tools#tomba-ioclearbit-combined) **Purpose**: Unified person and company enrichment combining multiple data sources for complete intelligence. **Use Cases**: * Comprehensive prospect research * Account-based marketing * Investment due diligence **Example Usage**: Code `Use tomba-io/clearbit-combined for complete analysis of: - Contact: john.doe@techstartup.com Include: personal profile, company details, recent news, social presence` Advanced Usage Patterns[](https://docs.tomba.io/llm/apify/tools#advanced-usage-patterns) ----------------------------------------------------------------------------------------- ### Multi-Tool Workflows[](https://docs.tomba.io/llm/apify/tools#multi-tool-workflows) **Complete Contact Research Pipeline**: Code `1. Use tomba-io/domain-search to find all contacts at target-company.com 2. Use tomba-io/email-verifier to validate each email found 3. Use tomba-io/email-enrichment to add detailed profiles 4. Use tomba-io/clearbit-company to understand the company 5. Use tomba-io/similar-finder to identify expansion opportunities` **Journalist Outreach Campaign**: Code `1. Use tomba-io/author-finder for each target article URL 2. Use tomba-io/email-verifier to ensure deliverability 3. Use tomba-io/phone-finder for direct contact options 4. Use tomba-io/clearbit-person for personalization data 5. Create segmented outreach lists based on beat/expertise` **Market Research Analysis**: Code `1. Use tomba-io/technology-finder to analyze competitor tech stacks 2. Use tomba-io/similar-finder to identify market players 3. Use tomba-io/clearbit-company for company intelligence 4. Use tomba-io/domain-search to map decision-makers 5. Generate comprehensive market landscape report` ### Batch Operations[](https://docs.tomba.io/llm/apify/tools#batch-operations) **Process Multiple Domains**: Code `For each domain in [company1.com, company2.com, company3.com]: 1. Run tomba-io/email-count for sizing analysis 2. Run tomba-io/technology-finder for tech stack 3. Run tomba-io/domain-search for key contacts 4. Compile comparative analysis report` **Validate Contact Database**: Code `For each email in existing database: 1. Run tomba-io/email-verifier for deliverability 2. If invalid, run tomba-io/email-finder for alternatives 3. Run tomba-io/email-enrichment for updated information 4. Export cleaned and enriched contact list` Best Practices[](https://docs.tomba.io/llm/apify/tools#best-practices) ----------------------------------------------------------------------- ### Rate Limiting and Usage[](https://docs.tomba.io/llm/apify/tools#rate-limiting-and-usage) * **Batch similar requests** to optimize API usage * **Monitor your Apify usage** through the console * **Implement delays** between large batch operations * **Cache results** when possible to avoid duplicate calls ### Data Quality[](https://docs.tomba.io/llm/apify/tools#data-quality) * **Always verify emails** before sending campaigns * **Cross-reference data** from multiple tools when possible * **Update contact information** regularly * **Respect opt-out preferences** and privacy settings ### Privacy and Compliance[](https://docs.tomba.io/llm/apify/tools#privacy-and-compliance) * **Follow GDPR guidelines** for EU contacts * **Respect CAN-SPAM regulations** for US marketing * **Honor LinkedIn terms of service** when using LinkedIn data * **Implement proper data retention** policies ### Tool Selection Guide[](https://docs.tomba.io/llm/apify/tools#tool-selection-guide) **For Individual Contact Research**: * Start with `email-finder` or `linkedin-finder` * Verify with `email-verifier` * Enrich with `clearbit-person` **For Company Analysis**: * Use `domain-search` for comprehensive contact mapping * Add `technology-finder` for tech stack analysis * Enhance with `clearbit-company` for business intelligence **For Content Creator Outreach**: * Begin with `author-finder` for article-based discovery * Use `linkedin-finder` for social media profiles * Validate with `email-verifier` and `phone-validator` **For Market Research**: * Combine `technology-finder` and `similar-finder` * Use `clearbit-company` for detailed business data * Map contacts with `domain-search` Error Handling[](https://docs.tomba.io/llm/apify/tools#error-handling) ----------------------------------------------------------------------- Common error scenarios and solutions: **Rate Limit Exceeded**: * Implement exponential backoff * Spread requests over time * Consider upgrading your Apify plan **Invalid Domain/Email**: * Validate input formats before processing * Handle gracefully with alternative approaches * Log errors for analysis **No Data Found**: * Try alternative search strategies * Use broader search criteria * Combine multiple tools for better coverage Integration Examples[](https://docs.tomba.io/llm/apify/tools#integration-examples) ----------------------------------------------------------------------------------- ### CRM Integration Workflow[](https://docs.tomba.io/llm/apify/tools#crm-integration-workflow) Code `Weekly contact enrichment process: 1. Export contacts from CRM with missing information 2. Use tomba-io/email-enrichment for profile completion 3. Use tomba-io/clearbit-person for additional insights 4. Import enriched data back to CRM 5. Tag contacts with data quality scores` ### Sales Intelligence Pipeline[](https://docs.tomba.io/llm/apify/tools#sales-intelligence-pipeline) Code `Prospect qualification workflow: 1. Use tomba-io/domain-search for target company mapping 2. Use tomba-io/technology-finder for solution fit analysis 3. Use tomba-io/clearbit-company for company health metrics 4. Score and prioritize prospects automatically 5. Generate personalized outreach sequences` This comprehensive toolset provides everything needed for modern contact intelligence and business development workflows. Each tool can be used independently or combined for powerful multi-step processes that automate and enhance your contact research and outreach efforts. Last modified on October 31, 2025 [Tomba Apify MCP Server](https://docs.tomba.io/llm/apify/introduction) [Setting Up Apify MCP Integration](https://docs.tomba.io/llm/apify/integration) --- # Usage Limits and Quotas | Tomba Documentation Menu [Usage Limits and Quotas](https://app.tomba.io/usage) [](https://docs.tomba.io/usage-and-quotas#usage-limits-and-quotas) ------------------------------------------------------------------------------------------------------------------------- Use the [**Usage Dashboard**](https://app.tomba.io/usage) to monitor and manage your API usage. It provides a clear summary of: * API call volume * Remaining quota * Personal vs. team usage * Historical trends (up to 3 months) * * * Viewing Your Usage[](https://docs.tomba.io/usage-and-quotas#viewing-your-usage) -------------------------------------------------------------------------------- * **Individual and Team Views:** Choose to display only your own API requests or view the cumulative usage of your team via the [Usage Panel](https://app.tomba.io/usage) . * **Flexible Insights:** Switch between daily, weekly, and monthly data to track your activity and adjust your strategy accordingly. If you want to monitor usage during API calls, inspect rate-limit headers directly: TerminalCode `curl -i -X GET "https://api.tomba.io/v1/domain-search?domain=example.com" \ -H "X-Tomba-Key: your_api_key" \ -H "X-Tomba-Secret: your_secret_key"` Check `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` in the response headers. * * * [Request History](https://app.tomba.io/usage/requests) [](https://docs.tomba.io/usage-and-quotas#request-history) ------------------------------------------------------------------------------------------------------------------ For advanced tracking and auditing: * **Detailed Logs:** View up to **1,000 recent requests** made in the past 90 days in the [Request History](https://app.tomba.io/usage/requests) section. * **CSV Export:** Download your request log as a CSV file for further analysis, performance review, or compliance tracking. * * * Smart Request Handling[](https://docs.tomba.io/usage-and-quotas#smart-request-handling) ---------------------------------------------------------------------------------------- * **No Charge for Empty Results:** When a **[Domain Search](https://tomba.io/domain-search) **, **[Email Finder](https://tomba.io/email-finder) **, or **[Email Verifier](https://tomba.io/email-verifier) ** request doesn’t return a result, it **will not count** against your quota. > For example: Verifying a webmail like `gmail.com` will return no result and consume **zero requests**. * **Requests Counted Once Every 30 Days:** Identical API requests are **only counted once every 30 days**. > This is especially useful when re-running the same data due to temporary storage issues or testing your integration. * * * Monthly Reset and Carryover Policy[](https://docs.tomba.io/usage-and-quotas#monthly-reset-and-carryover-policy) ---------------------------------------------------------------------------------------------------------------- * **Monthly Reset:** Your quota resets automatically every 30 days based on your [subscription cycle](https://app.tomba.io/settings/subscription) . * **No Carryover:** **Unused requests do not roll over** to the next month. Be sure to make full use of your credits within the cycle. * * * By understanding your usage patterns and these rules, you can optimize workflows, avoid unnecessary consumption, and fully use your monthly plan with [Tomba.io](https://tomba.io/) . Last modified on April 28, 2026 [Error Handling](https://docs.tomba.io/error-handling) [Rate Limits](https://docs.tomba.io/rate-limits) --- # July 2026 Data Update | Tomba Documentation Menu We processed hundreds of millions of records to keep our datasets fresh, accurate, and complete. Here’s what changed this month: * * * Data Updates[](https://docs.tomba.io/data/2026/07-july#data-updates) --------------------------------------------------------------------- * **Total Rows:** 752,737,481 * **Total Records Processed:** 752,637,745 * **Unique Emails:** 48,661,711 * **Data Quality:** 99.93% valid email rate with minimal duplication * **Processing Time:** 12h 31m 37s * * * Overview Statistics[](https://docs.tomba.io/data/2026/07-july#overview-statistics) ----------------------------------------------------------------------------------- * **Total Records:** 752,637,745 * **Unique Emails:** 48,661,711 * **Duplication Rate:** 93.53% * **Invalid Email Rate:** 0.07% * **File Extension Junk:** 505,057 * **Peak Activity Hour:** 14:00 ![Email and domain analysis](https://docs.tomba.io/images/data/july-2026/stats_part1.svg) ![Geographic and temporal analysis](https://docs.tomba.io/images/data/july-2026/stats_part2.svg) * * * Top 10 Domains[](https://docs.tomba.io/data/2026/07-july#top-10-domains) ------------------------------------------------------------------------- * **nagasawa-mfg.co.jp:** 577,304 records * **hsw.com.pl:** 509,207 records * **public-inbox.org:** 438,705 records * **inbox.sourceware.org:** 385,300 records * **forums.macrumors.com:** 335,854 records * **festival.shortfilm.com:** 324,349 records * **jsimlo.sk:** 322,238 records * **exibart.com:** 311,146 records * **tvwatchers.nl:** 278,930 records * **cgi.kiwi.ne.jp:** 252,600 records * * * Role-Based Email Types[](https://docs.tomba.io/data/2026/07-july#role-based-email-types) ----------------------------------------------------------------------------------------- * **info@:** 188,725,134 emails * **contact@:** 18,981,838 emails * **sales@:** 17,499,850 emails * **support@:** 17,164,056 emails * **hello@:** 8,913,789 emails * **office@:** 8,404,661 emails * **kontakt@:** 4,360,940 emails * **service@:** 4,159,194 emails * **mail@:** 4,018,442 emails * **contato@:** 3,214,447 emails * **Total Role-Based:** 353,655,555 (72.7% of all unique emails) * * * Top 30 Countries[](https://docs.tomba.io/data/2026/07-july#top-30-countries) ----------------------------------------------------------------------------- * **Generic TLD:** 346,988,197 records * **Russia:** 48,701,827 records * **Germany:** 43,517,739 records * **Poland:** 24,931,485 records * **Italy:** 23,947,386 records * **United Kingdom:** 18,701,740 records * **Czech Republic:** 15,379,697 records * **Netherlands:** 14,790,622 records * **Brazil:** 12,215,808 records * **France:** 11,531,625 records * **Ukraine:** 8,199,746 records * **Spain:** 7,771,317 records * **Sweden:** 7,687,906 records * **Canada:** 7,334,270 records * **Switzerland:** 7,251,574 records * **Australia:** 7,201,150 records * **Vietnam:** 6,679,593 records * **EU:** 6,548,358 records * **Belgium:** 6,278,206 records * **Austria:** 6,168,579 records * **Denmark:** 5,722,741 records * **Slovakia:** 5,512,628 records * **India:** 5,241,537 records * **Romania:** 4,568,364 records * **Norway:** 4,548,251 records * **Japan:** 4,514,460 records * **Hungary:** 4,506,128 records * **Greece:** 3,907,138 records * **Turkey:** 3,649,960 records * **Finland:** 3,384,684 records * * * Domain Categories[](https://docs.tomba.io/data/2026/07-july#domain-categories) ------------------------------------------------------------------------------- * **Other:** 472,928,161 records * **E-commerce:** 83,638,380 records * **News:** 48,917,414 records * **Blog:** 39,068,020 records * **Education:** 25,503,129 records * **Technology:** 20,840,208 records * **Business:** 16,508,536 records * **Entertainment:** 16,433,939 records * **Government:** 15,032,184 records * **Social:** 11,381,076 records * **Adult:** 2,386,698 records * * * Data Quality Metrics[](https://docs.tomba.io/data/2026/07-july#data-quality-metrics) ------------------------------------------------------------------------------------- * **Valid URLs:** 752,637,745 — Invalid: 0 (100.00% valid) * **Valid Emails:** 752,132,688 — Invalid: 505,057 (99.93% valid) * **Valid Dates:** 752,637,745 — Invalid: 0 (100.00% valid) * * * Temporal Patterns[](https://docs.tomba.io/data/2026/07-july#temporal-patterns) ------------------------------------------------------------------------------- * **Peak Hour:** 14:00 * **Peak Day:** 2026-06-06 * **Activity Spread:** 24 hours * **Weekday vs Weekend:** 515,897,214 vs 236,740,531 * * * Daily Time Series[](https://docs.tomba.io/data/2026/07-july#daily-time-series) ------------------------------------------------------------------------------- * **2026-06-09:** 58,787,348 records * **2026-06-10:** 56,715,836 records * **2026-06-11:** 59,268,502 records * **2026-06-12:** 57,312,144 records * **2026-06-13:** 56,075,485 records * **2026-06-14:** 60,091,775 records * **2026-06-15:** 56,401,737 records * **2026-06-16:** 56,150,548 records * **2026-06-17:** 59,913,293 records * **2026-06-18:** 44,643,793 records * * * ✅ **Analysis complete!** Processed 752,637,745 records in 12h 31m 37s with 99.93% email validity and wide geographic coverage. Last modified on July 1, 2026 [Data Updates - Introduction](https://docs.tomba.io/data/introduction) [June 2026 Data Update](https://docs.tomba.io/data/2026/06-june) --- # May 2026 Data Update | Tomba Documentation Menu We processed hundreds of millions of records to maintain fresh, accurate, and complete datasets. Here's what changed this month: * * * Data Updates[](https://docs.tomba.io/data/2026/05-may#data-updates) -------------------------------------------------------------------- * **Total Records Processed:** 466.5M records analyzed * **Unique B2B Emails:** 35.2M high-quality business emails * **Data Quality:** 99.94% valid email rate with minimal duplication * **Collection Period:** 10 days of continuous web crawling * **Processing Time:** 7h 43m 43s * * * Overview Statistics[](https://docs.tomba.io/data/2026/05-may#overview-statistics) ---------------------------------------------------------------------------------- * **Total Records:** 466.5M * **Unique B2B Emails:** 35.2M * **Duplication Rate:** 92.45% * **Invalid Email Rate:** 0.06% * **Data Collection Period:** 10 Days (April 12-21, 2026) * **Peak Activity Hour:** 8:00 AM ![Email and domain analysis](https://docs.tomba.io/images/data/may-2026/overview.svg) ![Geographic and temporal analysis](https://docs.tomba.io/images/data/may-2026/overview_2.svg) * * * Top 10 Domains[](https://docs.tomba.io/data/2026/05-may#top-10-domains) ------------------------------------------------------------------------ * **ragusawelcome.com:** 397.81K records * **public-inbox.org:** 314.73K records * **nagasawa-mfg.co.jp:** 311.67K records * **festival.shortfilm.com:** 294.54K records * **inbox.sourceware.org:** 285.86K records * **zdravniki-zobozdravniki.net:** 250.03K records * **macrumors.com:** 235.95K records * **jsimlo.sk:** 222.14K records * **alex0rus.net:** 202.39K records * **nafta-sec-us.org:** 194.81K records * * * Role-Based Email Types[](https://docs.tomba.io/data/2026/05-may#role-based-email-types) ---------------------------------------------------------------------------------------- * **info@:** 116.89M emails * **contact@:** 11.66M emails * **sales@:** 10.75M emails * **support@:** 10.34M emails * **hello@:** 5.46M emails * **office@:** 5.12M emails * **kontakt@:** 2.82M emails * **mail@:** 2.51M emails * **service@:** 2.47M emails * **contato@:** 2.02M emails * **Total Role-Based:** 218.74M (46.9% of all emails) * * * Top 30 Countries[](https://docs.tomba.io/data/2026/05-may#top-30-countries) ---------------------------------------------------------------------------- * **Generic TLD:** 217.28M records * **Russia:** 29.12M records * **Germany:** 26.52M records * **Poland:** 16.57M records * **Italy:** 13.36M records * **United Kingdom:** 11.83M records * **Czech Republic:** 9.29M records * **Netherlands:** 8.95M records * **Brazil:** 7.41M records * **France:** 7.19M records * **Ukraine:** 5.03M records * **Sweden:** 4.76M records * **Spain:** 4.71M records * **Australia:** 4.69M records * **Switzerland:** 4.65M records * **Canada:** 4.58M records * **Vietnam:** 4.43M records * **EU:** 4.01M records * **Austria:** 3.86M records * **Belgium:** 3.85M records * **Denmark:** 3.56M records * **Slovakia:** 3.34M records * **India:** 3.15M records * **Norway:** 3.01M records * **Romania:** 2.97M records * **Hungary:** 2.91M records * **Greece:** 2.87M records * **Japan:** 2.44M records * **Turkey:** 2.23M records * **Finland:** 2.16M records * * * Domain Categories[](https://docs.tomba.io/data/2026/05-may#domain-categories) ------------------------------------------------------------------------------ * **Other:** 294.94M records * **E-commerce:** 52.55M records * **News:** 28.74M records * **Blog:** 22.59M records * **Education:** 15.86M records * **Technology:** 13.50M records * **Business:** 10.54M records * **Entertainment:** 10.12M records * **Government:** 8.95M records * **Social:** 7.21M records * **Adult:** 1.50M records * * * Hourly Activity Distribution[](https://docs.tomba.io/data/2026/05-may#hourly-activity-distribution) ---------------------------------------------------------------------------------------------------- Peak activity hour was **8:00 AM** with 24.78M records: * **00:00** — 19.92M records * **01:00** — 23.25M records * **02:00** — 21.72M records * **03:00** — 15.30M records * **04:00** — 17.63M records * **05:00** — 23.39M records * **06:00** — 20.02M records * **07:00** — 17.38M records * **08:00** — **24.78M records** ← Peak * **09:00** — 23.57M records * **10:00** — 12.76M records * **11:00** — 19.25M records * **12:00** — 22.11M records * **13:00** — 16.63M records * **14:00** — 18.73M records * **15:00** — 19.46M records * **16:00** — 20.69M records * **17:00** — 21.42M records * **18:00** — 17.77M records * **19:00** — 19.20M records * **20:00** — 20.89M records * **21:00** — 13.42M records * **22:00** — 15.93M records * **23:00** — 21.30M records * * * Email Distribution[](https://docs.tomba.io/data/2026/05-may#email-distribution) -------------------------------------------------------------------------------- * **Business Domains:** 392.56M emails (84.1%) * **Webmail Domains:** 73.68M emails (15.8%) * **File Extension Issues:** 273,055 records * **Weekday Activity:** 313.36M records (67.2%) * **Weekend Activity:** 153.15M records (32.8%) * * * Data Quality Metrics[](https://docs.tomba.io/data/2026/05-may#data-quality-metrics) ------------------------------------------------------------------------------------ * **Valid Emails:** 466,239,395 — Invalid: 273,055 (99.94% valid) * **Valid URLs:** 466,512,450 — Invalid: 0 (100.00% valid) * **Valid Dates:** 466,512,450 — Invalid: 0 (100.00% valid) * * * Daily Time Series[](https://docs.tomba.io/data/2026/05-may#daily-time-series) ------------------------------------------------------------------------------ Activity distribution across the collection period: * **2026-04-12:** 64.80M records * **2026-04-13:** 59.61M records * **2026-04-14:** 58.16M records * **2026-04-15:** 62.92M records * **2026-04-16:** 47.08M records * **2026-04-17:** 23.66M records * **2026-04-18:** 27.07M records * **2026-04-19:** 5.68M records * **2026-04-20:** 8.21M records * **2026-04-21:** 7.64M records * * * ✅ **Analysis complete!** Processed 466.5M records with 99.94% email validity and comprehensive geographic coverage across 30+ countries. Last modified on May 22, 2026 [June 2026 Data Update](https://docs.tomba.io/data/2026/06-june) [April 2026 Data Update](https://docs.tomba.io/data/2026/04-april) --- # April 2026 Data Update | Tomba Documentation Menu We processed hundreds of millions of records to maintain fresh, accurate, and complete datasets. Here's what changed this month: * * * Data Updates[](https://docs.tomba.io/data/2026/04-april#data-updates) ---------------------------------------------------------------------- * **Total Records Processed:** 676.7M records analyzed * **Unique B2B Emails:** 47.8M high-quality business emails * **Data Quality:** 99.93% valid email rate with minimal duplication * **Collection Period:** 10 days of continuous web crawling * **Processing Time:** 11h 19m 56s * * * Overview Statistics[](https://docs.tomba.io/data/2026/04-april#overview-statistics) ------------------------------------------------------------------------------------ * **Total Records:** 676.7M * **Unique B2B Emails:** 47.8M * **Duplication Rate:** 92.93% * **Invalid Email Rate:** 0.07% * **Data Collection Period:** 10 Days * **Peak Activity Hour:** 5:00 PM ![Email and domain analysis](https://docs.tomba.io/images/data/april-2026/overview.svg) ![Geographic and temporal analysis](https://docs.tomba.io/images/data/april-2026/overview_2.svg) * * * Top 10 Domains[](https://docs.tomba.io/data/2026/04-april#top-10-domains) -------------------------------------------------------------------------- * **nagasawa-mfg.co.jp:** 554.64K records * **senri.co.jp:** 529.16K records * **public-inbox.org:** 509.29K records * **inbox.sourceware.org:** 476.02K records * **wtcgdynia.com.pl:** 466.88K records * **feedc0de.net:** 420.82K records * **jsimlo.sk:** 393.31K records * **marocannuaire.org:** 379.74K records * **adelaide.edu.au:** 351.86K records * **exibart.com:** 302.10K records * * * Role-Based Email Types[](https://docs.tomba.io/data/2026/04-april#role-based-email-types) ------------------------------------------------------------------------------------------ * **info@:** 166.84M emails * **contact@:** 16.60M emails * **sales@:** 15.47M emails * **support@:** 15.04M emails * **hello@:** 7.61M emails * **office@:** 7.18M emails * **kontakt@:** 4.08M emails * **service@:** 3.70M emails * **mail@:** 3.62M emails * **contato@:** 2.97M emails * **Total Role-Based:** 314.23M (46.4% of all emails) * * * Top 15 Countries[](https://docs.tomba.io/data/2026/04-april#top-15-countries) ------------------------------------------------------------------------------ * **Generic TLD:** 311.17M records * **Russia:** 42.73M records * **Germany:** 39.69M records * **Poland:** 23.69M records * **Italy:** 20.35M records * **United Kingdom:** 16.72M records * **Czech Republic:** 13.59M records * **Netherlands:** 13.08M records * **Brazil:** 11.09M records * **France:** 10.17M records * **Australia:** 7.30M records * **Sweden:** 7.16M records * **Spain:** 6.90M records * **Canada:** 6.85M records * **Switzerland:** 6.81M records * * * Domain Categories[](https://docs.tomba.io/data/2026/04-april#domain-categories) -------------------------------------------------------------------------------- * **Other:** 426.41M records * **E-commerce:** 73.77M records * **News:** 43.90M records * **Blog:** 34.11M records * **Education:** 23.10M records * **Technology:** 19.61M records * **Entertainment:** 14.90M records * **Business:** 14.68M records * **Government:** 13.46M records * **Social:** 10.59M records * **Adult:** 2.12M records * * * Email Analysis[](https://docs.tomba.io/data/2026/04-april#email-analysis) -------------------------------------------------------------------------- * **Webmail Domains:** 103.93M (15.4% of total records) * **Business Domains:** 572.29M (84.6% of total) * **Role-Based Emails:** 314.23M (46.4% of all emails) * **File Extension Junk:** 447.26K detected and filtered * **Valid Email Rate:** 99.93% Role-based emails include: info@, sales@, support@, contact@, office@, hello@, kontakt@, mail@, service@, and more. * * * Daily Time Series (Last 10 Days)[](https://docs.tomba.io/data/2026/04-april#daily-time-series-last-10-days) ------------------------------------------------------------------------------------------------------------ * **2026-03-08:** 61.28M records * **2026-03-09:** 52.75M records * **2026-03-10:** 53.04M records * **2026-03-11:** 53.74M records * **2026-03-12:** 54.01M records * **2026-03-13:** 53.24M records * **2026-03-14:** 60.71M records * **2026-03-15:** 51.67M records * **2026-03-16:** 53.54M records * **2026-03-17:** 37.97M records Peak day: March 8, 2026 with 61.28M records processed. * * * Hourly Activity Distribution[](https://docs.tomba.io/data/2026/04-april#hourly-activity-distribution) ------------------------------------------------------------------------------------------------------ * **Peak Hour:** 5:00 PM with 36.32M records * **Weekday Records:** 450.16M (66.5%) * **Weekend Records:** 226.50M (33.5%) * **Activity Spread:** 24 hours continuous processing * * * Key Highlights[](https://docs.tomba.io/data/2026/04-april#key-highlights) -------------------------------------------------------------------------- * **Record Quality:** Achieved 99.93% valid email rate * **Deduplication Efficiency:** 92.93% duplication rate shows effective filtering * **Role-Based Coverage:** 314.23M role-based emails identified across all industries * **Geographic Reach:** Coverage spans 30+ countries with strong presence in Europe and Asia * **Category Diversity:** E-commerce leads with 73.77M records, followed by News (43.90M) and Blog (34.11M) sectors * **Processing Speed:** Completed analysis of 676.7M records in just 11 hours Last modified on April 1, 2026 [May 2026 Data Update](https://docs.tomba.io/data/2026/05-may) [March 2026 Data Update](https://docs.tomba.io/data/2026/03-march) --- # March 2026 Data Update | Tomba Documentation Menu We processed hundreds of millions of records to maintain fresh, accurate, and complete datasets. Here's what changed this month: * * * Data Updates[](https://docs.tomba.io/data/2026/03-march#data-updates) ---------------------------------------------------------------------- * **Total Records Processed:** 711.53M records analyzed * **Unique B2B Emails:** 48.80M high-quality business emails * **Data Quality:** 99.94% valid email rate with minimal duplication * **Collection Period:** 10 days of continuous web crawling * **Processing Time:** 12h 1m 59s * * * Overview Statistics[](https://docs.tomba.io/data/2026/03-march#overview-statistics) ------------------------------------------------------------------------------------ * **Total Records:** 711.53M * **Unique B2B Emails:** 48.80M * **Duplication Rate:** 93.14% * **Invalid Email Rate:** 0.06% * **Data Collection Period:** 10 Days * **Peak Activity Hour:** 8:00 AM ![Overview statistics](https://docs.tomba.io/images/data/march-2026/overview.svg) ![Overview statistics](https://docs.tomba.io/images/data/march-2026/overview_2.svg) * * * Top 10 Domains[](https://docs.tomba.io/data/2026/03-march#top-10-domains) -------------------------------------------------------------------------- * **inbox.sourceware.org:** 814.30K records * **nagasawa-mfg.co.jp:** 496.52K records * **senri.co.jp:** 465.12K records * **wtcgdynia.com.pl:** 462.80K records * **tvwatchers.nl:** 399.27K records * **jsimlo.sk:** 394.14K records * **old.lemmy.sdf.org:** 373.11K records * **adelaide.edu.au:** 332.32K records * **ys99.com:** 329.29K records * **chromeoxide.com:** 329.08K records * * * Role-Based Email Types[](https://docs.tomba.io/data/2026/03-march#role-based-email-types) ------------------------------------------------------------------------------------------ * **info@:** 174.65M emails * **contact@:** 17.32M emails * **sales@:** 15.97M emails * **support@:** 15.57M emails * **hello@:** 7.81M emails * **office@:** 7.37M emails * **kontakt@:** 4.12M emails * **service@:** 3.87M emails * **mail@:** 3.80M emails * **contato@:** 3.00M emails * **Total Role-Based:** 328.26M (46.1% of all emails) * * * Top 15 Countries[](https://docs.tomba.io/data/2026/03-march#top-15-countries) ------------------------------------------------------------------------------ * **Generic TLD:** 331.14M records * **Russia:** 44.11M records * **Germany:** 42.07M records * **Poland:** 25.54M records * **Italy:** 21.33M records * **United Kingdom:** 17.19M records * **Czech Republic:** 14.53M records * **Netherlands:** 13.69M records * **Brazil:** 11.26M records * **France:** 11.10M records * **Spain:** 7.63M records * **Australia:** 7.33M records * **Switzerland:** 7.13M records * **Sweden:** 7.06M records * **Canada:** 6.97M records * * * Domain Categories[](https://docs.tomba.io/data/2026/03-march#domain-categories) -------------------------------------------------------------------------------- * **Other:** 448.05M records * **E-commerce:** 77.62M records * **News:** 45.89M records * **Blog:** 35.92M records * **Education:** 25.57M records * **Technology:** 20.00M records * **Business:** 15.77M records * **Entertainment:** 15.37M records * **Government:** 13.81M records * **Social:** 11.06M records * **Adult:** 2.48M records * * * Email Analysis[](https://docs.tomba.io/data/2026/03-march#email-analysis) -------------------------------------------------------------------------- * **Webmail Domains:** 110.95M (15.6% of total records) * **Business Domains:** 600.17M (84.4% of total) * **Role-Based Emails:** 328.26M (46.1% of all emails) * **File Extension Junk:** 403.82K detected and filtered * **Valid Email Rate:** 99.94% Role-based emails include: info@, sales@, support@, contact@, office@, hello@, kontakt@, mail@, service@, and more. * * * Daily Time Series (Last 10 Days)[](https://docs.tomba.io/data/2026/03-march#daily-time-series-last-10-days) ------------------------------------------------------------------------------------------------------------ * **2026-02-10:** 57.27M records * **2026-02-11:** 56.61M records * **2026-02-12:** 57.38M records * **2026-02-13:** 55.56M records * **2026-02-14:** 56.33M records * **2026-02-15:** 56.38M records * **2026-02-16:** 54.73M records * **2026-02-17:** 54.17M records * **2026-02-18:** 53.57M records * **2026-02-19:** 27.18M records Peak day: February 12, 2026 with 57.38M records processed. * * * Hourly Activity Distribution[](https://docs.tomba.io/data/2026/03-march#hourly-activity-distribution) ------------------------------------------------------------------------------------------------------ * **Peak Hour:** 8:00 AM with 33.59M records * **Weekday Records:** 488.31M (68.6%) * **Weekend Records:** 223.22M (31.4%) * **Activity Spread:** 24 hours continuous processing * * * Key Highlights[](https://docs.tomba.io/data/2026/03-march#key-highlights) -------------------------------------------------------------------------- * **Record Quality:** Achieved 99.94% valid email rate (improvement from 99.91%) * **Deduplication Efficiency:** 93.14% duplication rate shows effective filtering * **Role-Based Coverage:** 328.26M role-based emails identified across all industries * **Geographic Reach:** Coverage spans 30+ countries with strong presence in Europe and Asia * **Category Diversity:** E-commerce leads with 77.62M records, followed by News (45.89M) and Blog (35.92M) sectors * **Processing Speed:** Completed analysis of 711.53M records in just 12 hours Last modified on March 9, 2026 [April 2026 Data Update](https://docs.tomba.io/data/2026/04-april) [February 2026 Data Update](https://docs.tomba.io/data/2026/02-february) --- # June 2026 Data Update | Tomba Documentation Menu We processed hundreds of millions of records to keep our datasets fresh, accurate, and complete. Here’s what changed this month: * * * Data Updates[](https://docs.tomba.io/data/2026/06-june#data-updates) --------------------------------------------------------------------- * **Total Records Processed:** 761.95M records analyzed * **Unique B2B Emails:** 50.33M high-quality business emails * **Data Quality:** 99.93% valid email rate with minimal duplication * **Collection Period:** 10 days of continuous web crawling * **Processing Time:** 12h 46m 19s * * * Overview Statistics[](https://docs.tomba.io/data/2026/06-june#overview-statistics) ----------------------------------------------------------------------------------- * **Total Records:** 761.95M * **Unique B2B Emails:** 50.33M * **Duplication Rate:** 93.39% * **Invalid Email Rate:** 0.07% * **Data Collection Period:** 10 Days * **Peak Activity Hour:** 14:00 ![Email and domain analysis](https://docs.tomba.io/images/data/june-2026/stats_part1.svg) ![Geographic and temporal analysis](https://docs.tomba.io/images/data/june-2026/stats_part2.svg) * * * Top 10 Domains[](https://docs.tomba.io/data/2026/06-june#top-10-domains) ------------------------------------------------------------------------- * **ragusawelcome.com:** 608.28K records * **public-inbox.org:** 545.28K records * **nagasawa-mfg.co.jp:** 544.32K records * **inbox.sourceware.org:** 417.95K records * **dazoo.ne.jp:** 354.57K records * **jsimlo.sk:** 326.73K records * **macrumors.com:** 315.55K records * **exibart.com:** 304.99K records * **ys99.com:** 276.52K records * **lists.debian.org:** 271.90K records * * * Role-Based Email Types[](https://docs.tomba.io/data/2026/06-june#role-based-email-types) ----------------------------------------------------------------------------------------- * **info@:** 191.75M emails * **contact@:** 18.89M emails * **sales@:** 17.71M emails * **support@:** 16.97M emails * **hello@:** 8.94M emails * **office@:** 8.56M emails * **kontakt@:** 4.41M emails * **service@:** 4.13M emails * **mail@:** 4.09M emails * **contato@:** 3.24M emails * **Total Role-Based:** 358.06M (47.0% of all emails) * * * Top 30 Countries[](https://docs.tomba.io/data/2026/06-june#top-30-countries) ----------------------------------------------------------------------------- * **Generic TLD:** 355.53M records * **Russia:** 46.68M records * **Germany:** 44.93M records * **Poland:** 24.76M records * **Italy:** 23.99M records * **United Kingdom:** 18.89M records * **Czech Republic:** 15.28M records * **Netherlands:** 14.59M records * **Brazil:** 12.11M records * **France:** 11.52M records * **Ukraine:** 8.54M records * **Spain:** 7.87M records * **Sweden:** 7.79M records * **Switzerland:** 7.48M records * **Canada:** 7.48M records * **Australia:** 7.40M records * **Vietnam:** 6.77M records * **EU:** 6.66M records * **Austria:** 6.28M records * **Belgium:** 6.25M records * **Denmark:** 5.85M records * **Slovakia:** 5.31M records * **India:** 5.17M records * **Romania:** 4.81M records * **Japan:** 4.71M records * **Hungary:** 4.69M records * **Norway:** 4.67M records * **Greece:** 4.31M records * **Finland:** 3.56M records * **Turkey:** 3.46M records * * * Domain Categories[](https://docs.tomba.io/data/2026/06-june#domain-categories) ------------------------------------------------------------------------------- * **Other:** 482.14M records * **E-commerce:** 84.49M records * **News:** 43.66M records * **Blog:** 41.33M records * **Education:** 26.32M records * **Technology:** 22.16M records * **Business:** 18.62M records * **Government:** 15.03M records * **Entertainment:** 13.72M records * **Social:** 12.02M records * **Adult:** 2.47M records * * * Data Quality Metrics[](https://docs.tomba.io/data/2026/06-june#data-quality-metrics) ------------------------------------------------------------------------------------- * **Valid URLs:** 761,953,381 — Invalid: 0 (100.00% valid) * **Valid Emails:** 761,440,941 — Invalid: 512,440 (99.93% valid) * **Valid Dates:** 761,953,381 — Invalid: 0 (100.00% valid) * * * Temporal Patterns[](https://docs.tomba.io/data/2026/06-june#temporal-patterns) ------------------------------------------------------------------------------- * **Peak Hour:** 14:00 * **Peak Day:** 2026-05-14 * **Activity Spread:** 24 hours * **Weekday vs Weekend:** 558,985,350 vs 202,968,031 * * * Daily Time Series[](https://docs.tomba.io/data/2026/06-june#daily-time-series) ------------------------------------------------------------------------------- * **2026-05-12:** 59.73M records * **2026-05-13:** 61.30M records * **2026-05-14:** 61.61M records * **2026-05-15:** 57.50M records * **2026-05-16:** 54.69M records * **2026-05-17:** 58.93M records * **2026-05-18:** 60.27M records * **2026-05-19:** 60.83M records * **2026-05-20:** 61.45M records * **2026-05-21:** 53.73M records * * * ✅ **Analysis complete!** Processed 761.95M records with 99.93% email validity and broad coverage across 30+ countries. Last modified on June 2, 2026 [July 2026 Data Update](https://docs.tomba.io/data/2026/07-july) [May 2026 Data Update](https://docs.tomba.io/data/2026/05-may) --- # February 2026 Data Update | Tomba Documentation Menu We processed hundreds of millions of records to maintain fresh, accurate, and complete datasets. Here's what changed this month: * * * Data Updates[](https://docs.tomba.io/data/2026/02-february#data-updates) ------------------------------------------------------------------------- * **Total Records Processed:** 735M pages crawled * **Unique B2B Emails:** 49.49M high-quality business emails * **Data Quality:** 99.91% valid email rate with minimal duplication * **Collection Period:** 10 days of continuous web crawling * * * Overview Statistics[](https://docs.tomba.io/data/2026/02-february#overview-statistics) --------------------------------------------------------------------------------------- * **Total Crawled Pages:** 735.56M * **Unique B2B Emails:** 49.49M * **Duplication Rate:** 93.27% * **Invalid Email Rate:** 0.09% * **Data Collection Period:** 10 Days * **Pages Processed:** 735 Million Pages in 10 days ![Overview statistics](https://docs.tomba.io/images/data/february-2026/overview.svg) * * * Top 10 Domains[](https://docs.tomba.io/data/2026/02-february#top-10-domains) ----------------------------------------------------------------------------- * **inbox.sourceware.org:** 777.59K records * **hsw.com.pl:** 508.96K records * **bgu.ru:** 468.69K records * **wtcgdynia.com.pl:** 467.90K records * **nagasawa-mfg.co.jp:** 465.34K records * **public-inbox.org:** 458.74K records * **jsimlo.sk:** 401.68K records * **marocannuaire.org:** 376.10K records * **tvwatchers.nl:** 369.57K records * **macrumors.com:** 349.12K records ![Top 10 domains](https://docs.tomba.io/images/data/february-2026/top_domains.svg) * * * Role-Based Email Types[](https://docs.tomba.io/data/2026/02-february#role-based-email-types) --------------------------------------------------------------------------------------------- * **info@:** 182.36M emails * **contact@:** 18.01M emails * **sales@:** 16.09M emails * **support@:** 14.32M emails * **office@:** 7.99M emails * **hello@:** 7.86M emails * **kontakt@:** 4.53M emails * **mail@:** 4.18M emails * **service@:** 3.96M emails * **contato@:** 2.92M emails * **Total Role-Based:** 336.36M (45.8% of all emails) ![Role-based email types](https://docs.tomba.io/images/data/february-2026/role_based_emails.svg) * * * Top 15 Countries[](https://docs.tomba.io/data/2026/02-february#top-15-countries) --------------------------------------------------------------------------------- * **Generic TLD:** 334.00M records * **Russia:** 49.35M records * **Germany:** 45.94M records * **Poland:** 26.50M records * **Italy:** 23.65M records * **United Kingdom:** 17.39M records * **Czech Republic:** 15.82M records * **Netherlands:** 14.09M records * **France:** 12.22M records * **Brazil:** 11.20M records * **Spain:** 8.04M records * **Sweden:** 7.83M records * **Switzerland:** 7.75M records * **Australia:** 7.70M records * **Canada:** 7.14M records ![Top 15 countries](https://docs.tomba.io/images/data/february-2026/countries.svg) * * * Domain Categories[](https://docs.tomba.io/data/2026/02-february#domain-categories) ----------------------------------------------------------------------------------- * **Other:** 464.83M records * **E-commerce:** 81.64M records * **News:** 40.69M records * **Blog:** 40.02M records * **Education:** 27.47M records * **Technology:** 20.83M records * **Business:** 16.89M records * **Entertainment:** 14.95M records * **Government:** 14.13M records * **Social:** 11.89M records * **Adult:** 2.21M records ![Domain categories](https://docs.tomba.io/images/data/february-2026/categories.svg) * * * Email Analysis[](https://docs.tomba.io/data/2026/02-february#email-analysis) ----------------------------------------------------------------------------- * **Webmail Domains:** 116.90M (236.2% of unique B2B Emails) * **Business Domains:** 617.98M (84.1% of total) * **Role-Based Emails:** 336.36M (45.8% of all emails) * **File Extension Junk:** 681.25K detected and filtered * **Valid Email Rate:** 99.91% Role-based emails include: info@, sales@, support@, contact@, office@, hello@, kontakt@, mail@, service@, and more. ![Email analysis](https://docs.tomba.io/images/data/february-2026/email_analysis.svg) * * * Daily Time Series (Last 10 Days)[](https://docs.tomba.io/data/2026/02-february#daily-time-series-last-10-days) --------------------------------------------------------------------------------------------------------------- * **2026-01-16:** 58.38M records * **2026-01-17:** 58.85M records * **2026-01-18:** 58.69M records * **2026-01-19:** 55.54M records * **2026-01-20:** 56.13M records * **2026-01-21:** 58.30M records * **2026-01-22:** 58.24M records * **2026-01-23:** 55.58M records * **2026-01-24:** 54.02M records * **2026-01-25:** 32.62M records Peak day: January 17, 2026 with 58.85M records processed. ![Daily time series](https://docs.tomba.io/images/data/february-2026/daily_series.svg) * * * Key Highlights[](https://docs.tomba.io/data/2026/02-february#key-highlights) ----------------------------------------------------------------------------- * **Record Quality:** Achieved 99.91% valid email rate * **Deduplication Efficiency:** 93.27% duplication rate shows effective filtering * **Role-Based Coverage:** 336.36M role-based emails identified across all industries * **Geographic Reach:** Coverage spans 30+ countries with strong presence in Europe and Asia * **Category Diversity:** E-commerce leads with 81.64M records, followed by News and Blog sectors * **Growth:** 14.8% increase in total records processed compared to January 2026 Last modified on February 9, 2026 [March 2026 Data Update](https://docs.tomba.io/data/2026/03-march) [January 2026 Data Update](https://docs.tomba.io/data/2026/01-january) --- # Migrate from Snov.io to Tomba Email Finder | Tomba Documentation Menu Switch from Snov.io to Tomba for better accuracy, larger database, free verification, and 35-40% cost savings. * * * Why Switch from Snov.io to Tomba?[](https://docs.tomba.io/migration/email-finder/snov#why-switch-from-snovio-to-tomba) ----------------------------------------------------------------------------------------------------------------------- | Feature | Snov.io | Tomba | | --- | --- | --- | | **Database Size** | 150M emails | 450M+ emails (3.3x larger) | | **Accuracy** | 85-88% | 98%+ | | **Email Verification** | Limited credits | FREE with every search | | **Data Attributes** | 6-8 fields | 20+ fields | | **Author Finder** | ❌ | ✅ | | **LinkedIn Finder** | ⚠️ Limited | ✅ Full support | | **Phone Finder** | ❌ | ✅ Phone Finder & Validator | | **Technology Detection** | ❌ | ✅ 6000+ techs | | **Similar Companies** | ❌ | ✅ | | **Drip Campaigns** | ✅ | Use with Zapier/n8n | | **Chrome Extension** | ✅ | ✅ Enhanced | | **Excel Add-in** | ❌ | ✅ Native | | **Airtable Extension** | ❌ | ✅ Native | | **MCP/AI Integration** | ❌ | ✅ Claude, ChatGPT | | **Pricing (5000 credits)** | $99/mo | $59/mo (40% savings) | * * * Migration Steps[](https://docs.tomba.io/migration/email-finder/snov#migration-steps) ------------------------------------------------------------------------------------- ### Step 1: Get Tomba Credentials[](https://docs.tomba.io/migration/email-finder/snov#step-1-get-tomba-credentials) 1. Sign up at [app.tomba.io](https://app.tomba.io/) 2. Get your **API Key** and **Secret Key** ### Step 2: Update API Endpoints[](https://docs.tomba.io/migration/email-finder/snov#step-2-update-api-endpoints) **Snov.io:** Code `POST https://api.snov.io/v1/get-emails-from-name` **Tomba:** Code `GET https://api.tomba.io/v1/email-finder` ### Step 3: Update Authentication[](https://docs.tomba.io/migration/email-finder/snov#step-3-update-authentication) **Snov.io:** Code ``{ headers: { 'Authorization': `Bearer ${SNOV_TOKEN}` } }`` **Tomba:** Code `{ headers: { 'X-Tomba-Key': TOMBA_KEY, 'X-Tomba-Secret': TOMBA_SECRET } }` * * * Code Examples[](https://docs.tomba.io/migration/email-finder/snov#code-examples) --------------------------------------------------------------------------------- ### Node.js[](https://docs.tomba.io/migration/email-finder/snov#nodejs) **Before (Snov.io):** Code ``const axios = require("axios"); async function findEmail(domain, firstName, lastName) { const response = await axios.post( "https://api.snov.io/v1/get-emails-from-name", { domain: domain, firstName: firstName, lastName: lastName, }, { headers: { Authorization: `Bearer ${process.env.SNOV_TOKEN}` }, }, ); return response.data; }`` **After (Tomba with FREE verification):** Code ``const axios = require("axios"); async function findEmail(domain, firstName, lastName) { const response = await axios.get("https://api.tomba.io/v1/email-finder", { params: { domain: domain, first_name: firstName, last_name: lastName, }, headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }); const data = response.data.data; console.log(`Email: ${data.email}`); console.log(`Verified: ${data.verification.status}`); // FREE! console.log(`Phone: ${data.phone_number}`); // NEW! return data; }`` ### Python[](https://docs.tomba.io/migration/email-finder/snov#python) **Before (Snov.io):** Code `import requests def find_email(domain, first_name, last_name): response = requests.post( 'https://api.snov.io/v1/get-emails-from-name', json={ 'domain': domain, 'firstName': first_name, 'lastName': last_name }, headers={'Authorization': f'Bearer {os.environ["SNOV_TOKEN"]}'} ) return response.json()` **After (Tomba):** Code `import requests def find_email(domain, first_name, last_name): response = requests.get( 'https://api.tomba.io/v1/email-finder', params={ 'domain': domain, 'first_name': first_name, 'last_name': last_name }, headers={ 'X-Tomba-Key': os.environ['TOMBA_KEY'], 'X-Tomba-Secret': os.environ['TOMBA_SECRET'] } ) data = response.json()['data'] print(f"Verified: {data['verification']['status']}") # FREE! return data` * * * Drip Campaign Alternative[](https://docs.tomba.io/migration/email-finder/snov#drip-campaign-alternative) --------------------------------------------------------------------------------------------------------- Snov.io's drip campaigns can be replaced with: 1. **Zapier Integration**: Connect Tomba → Email tool 2. **n8n Workflow**: Build custom automation 3. **Direct Integration**: Use Tomba API + your CRM Code `// Example: Tomba + Mailchimp integration const tomba = require("tomba"); const mailchimp = require("@mailchimp/mailchimp_marketing"); async function addToSequence(domain, firstName, lastName) { // 1. Find & verify email with Tomba const contact = await tomba.emailFinder({ domain, first_name: firstName, last_name: lastName, }); // 2. Add to Mailchimp campaign if (contact.verification.status === "valid") { await mailchimp.lists.addListMember(LIST_ID, { email_address: contact.email, status: "subscribed", merge_fields: { FNAME: firstName, LNAME: lastName, PHONE: contact.phone_number, }, }); } }` * * * Cost Comparison[](https://docs.tomba.io/migration/email-finder/snov#cost-comparison) ------------------------------------------------------------------------------------- ### 5,000 Emails/Month[](https://docs.tomba.io/migration/email-finder/snov#5000-emailsmonth) **Snov.io:** * Plan: $99/month (5,000 credits) * Verification: Limited * **Total: $99/month** **Tomba:** * Plan: $59/month (5,000 searches) * Verification: FREE * **Total: $59/month** **💰 Savings: $40/month = $480/year (40% cheaper!)** * * * Unique Tomba Features[](https://docs.tomba.io/migration/email-finder/snov#unique-tomba-features) ------------------------------------------------------------------------------------------------- ### Author Finder (Not in Snov.io)[](https://docs.tomba.io/migration/email-finder/snov#author-finder-not-in-snovio) Code `const author = await axios.get("https://api.tomba.io/v1/author-finder", { params: { url: "https://example.com/blog/article" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, });` ### LinkedIn Finder (Better than Snov.io)[](https://docs.tomba.io/migration/email-finder/snov#linkedin-finder-better-than-snovio) Code `const contact = await axios.get("https://api.tomba.io/v1/linkedin", { params: { url: "https://linkedin.com/in/johndoe" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, });` ### Technology Detection (Not in Snov.io)[](https://docs.tomba.io/migration/email-finder/snov#technology-detection-not-in-snovio) Code `const tech = await axios.get("https://api.tomba.io/v1/technology", { params: { domain: "stripe.com" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); // Returns: 50+ technologies used` * * * Migration Checklist[](https://docs.tomba.io/migration/email-finder/snov#migration-checklist) --------------------------------------------------------------------------------------------- * [ ] Sign up for Tomba * [ ] Get API credentials * [ ] Update API endpoints * [ ] Update authentication * [ ] Test email finding * [ ] Migrate drip campaigns to Zapier/n8n * [ ] Update Chrome extension * [ ] Train team * [ ] Cancel Snov.io subscription * * * Support[](https://docs.tomba.io/migration/email-finder/snov#support) --------------------------------------------------------------------- * [API Documentation](https://docs.tomba.io/) * [Email Finder API](https://docs.tomba.io/api#tag/Email-Finder) * [Support Portal](https://help.tomba.io/) Need help? [Contact us](https://app.tomba.io/contact) for migration assistance. Last modified on April 28, 2026 [Migrate from Hunter Email Finder to Tomba](https://docs.tomba.io/migration/email-finder/hunter) [Migrate from Prospeo to Tomba Email Finder](https://docs.tomba.io/migration/email-finder/prospeo) Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript --- # Clearbit API Replacement - Migrate to Tomba | Tomba Documentation Menu Following Clearbit's shutdown announcement, this guide will help you seamlessly transition to Tomba as your Clearbit alternative for company enrichment, person enrichment, and combined data lookups. * * * Why Choose Tomba as Your Clearbit Replacement?[](https://docs.tomba.io/migration/clearbit/introduction#why-choose-tomba-as-your-clearbit-replacement) ------------------------------------------------------------------------------------------------------------------------------------------------------ | Feature | Clearbit | Tomba | | --- | --- | --- | | **Service Status** | ⚠️ Shutting down | ✅ Active & growing | | **Database Size** | ~200M contacts | 450M+ emails | | **Company Enrichment** | ✅ | ✅ Enhanced with tech stack | | **Person Enrichment** | ✅ | ✅ Plus phone & LinkedIn | | **Combined API** | ✅ | ✅ Person + Company in one call | | **Email Verification** | No | FREE with every search | | **Phone Finder** | Limited | Phone Finder & Phone Validator | | **Technology Detection** | Basic | 6000+ technologies tracked | | **Similar Companies** | No | Find lookalike companies | | **Author Finder** | No | Extract contacts from articles | | **LinkedIn Integration** | Basic | Direct profile to email | | **Domain Search** | No | Find all contacts at a company | | **API Rate Limits** | 600 req/min | 300 req/min | | **Data Freshness** | Monthly | Real-time + quarterly updates | | **Excel Integration** | ❌ | ✅ Native add-in | | **Airtable Extension** | ❌ | ✅ Native extension | | **MCP/AI Integration** | ❌ | ✅ Claude, ChatGPT, Cursor, etc. | | **Pricing (10k requests)** | $999/month | ~$119/month (88% savings) | * * * Migration Overview[](https://docs.tomba.io/migration/clearbit/introduction#migration-overview) ----------------------------------------------------------------------------------------------- Tomba provides direct replacements for all three Clearbit APIs: ### API Mapping[](https://docs.tomba.io/migration/clearbit/introduction#api-mapping) | Clearbit API | Tomba Replacement | Description | | --- | --- | --- | | **Company API** (`/companies/find`) | `/companies/find` | Lookup company data by domain | | **Person API** (`/people/find`) | `/people/find` | Enrich person data by email | | **Combined API** (`/combined/find`) | `/combined/find` | Get person + company in one call | ### Quick Comparison[](https://docs.tomba.io/migration/clearbit/introduction#quick-comparison) TerminalCode `# Clearbit Company API GET https://company.clearbit.com/v2/companies/find?domain=tomba.io # Tomba Company API (drop-in replacement) GET https://api.tomba.io/v1/companies/find?domain=tomba.io` * * * Migration Guides[](https://docs.tomba.io/migration/clearbit/introduction#migration-guides) ------------------------------------------------------------------------------------------- Choose your migration path based on which Clearbit APIs you're currently using: ### 1\. [Company API Migration](https://docs.tomba.io/migration/clearbit/company-api) [](https://docs.tomba.io/migration/clearbit/introduction#1-company-api-migration) Replace Clearbit's Company API with Tomba's enhanced company enrichment. **What you get:** * Company name, description, industry * Location, employee count, revenue * Social profiles (LinkedIn, Twitter, Facebook) * Logo and brand assets * **Plus:** Technology stack (6000+ techs) * **Plus:** Similar companies finder ### 2\. [Person API Migration](https://docs.tomba.io/migration/clearbit/person-api) [](https://docs.tomba.io/migration/clearbit/introduction#2-person-api-migration) Replace Clearbit's Person API with Tomba's comprehensive person enrichment. **What you get:** * Full name, position, department * Company affiliation * Social profiles (LinkedIn, Twitter, GitHub) * Location and timezone * **Plus:** Phone numbers with validation * **Plus:** Email verification (FREE) * **Plus:** LinkedIn profile extraction ### 3\. [Combined API Migration](https://docs.tomba.io/migration/clearbit/combined-api) [](https://docs.tomba.io/migration/clearbit/introduction#3-combined-api-migration) Replace Clearbit's Combined API to get both person and company data in a single call. **What you get:** * Everything from Person API * Everything from Company API * Reduced API calls (1 instead of 2) * Lower latency * **Plus:** All Tomba enhancements * * * Key Differences from Clearbit[](https://docs.tomba.io/migration/clearbit/introduction#key-differences-from-clearbit) --------------------------------------------------------------------------------------------------------------------- ### ✅ What's Better in Tomba[](https://docs.tomba.io/migration/clearbit/introduction#-whats-better-in-tomba) 1. **Free Email Verification**: Every email is verified automatically 2. **Phone Data**: Access to phone numbers with carrier info 3. **Technology Stack**: Detect 6000+ technologies used by companies 4. **LinkedIn Integration**: Extract emails directly from LinkedIn profiles 5. **Domain Search**: Find all contacts at a company (not available in Clearbit) 6. **Similar Companies**: Expand your TAM with lookalike finder 7. **Author Finder**: Extract contacts from blog posts and articles 8. **Cost**: 70-88% cheaper than Clearbit 9. **AI Integration**: Native MCP support for Claude, ChatGPT, etc. ### ⚠️ Migration Considerations[](https://docs.tomba.io/migration/clearbit/introduction#%EF%B8%8F-migration-considerations) 1. **Rate Limits**: Tomba offers 300 req/min (vs Clearbit's 600) * **Solution**: Use bulk operations for high-volume needs 2. **Response Format**: Similar but with additional fields * **Solution**: Update type definitions to include new fields 3. **Some Field Names Differ**: Minor mapping required * **Solution**: We provide complete field mapping in each guide * * * Migration Steps[](https://docs.tomba.io/migration/clearbit/introduction#migration-steps) ----------------------------------------------------------------------------------------- ### Step 1: Get Your Tomba API Keys[](https://docs.tomba.io/migration/clearbit/introduction#step-1-get-your-tomba-api-keys) 1. Sign up at [app.tomba.io/auth/register](https://app.tomba.io/auth/register) 2. Navigate to [API Keys](https://app.tomba.io/api) 3. Copy your API Key and Secret ### Step 2: Update Authentication[](https://docs.tomba.io/migration/clearbit/introduction#step-2-update-authentication) **Clearbit:** Code `headers: { 'Authorization': 'Bearer sk_clearbit_xxx' }` **Tomba:** Code `headers: { 'X-Tomba-Key': 'your-api-key', 'X-Tomba-Secret': 'your-secret-key' }` ### Step 3: Update Endpoints[](https://docs.tomba.io/migration/clearbit/introduction#step-3-update-endpoints) Replace base URLs: Code `// Old const CLEARBIT_BASE = "https://company.clearbit.com/v2"; // New const TOMBA_BASE = "https://api.tomba.io/v1";` ### Step 4: Test in Parallel (Recommended)[](https://docs.tomba.io/migration/clearbit/introduction#step-4-test-in-parallel-recommended) Run both APIs in parallel during transition: Code `// Dual-mode for safe migration const results = await Promise.allSettled([ getClearbitData(email), getTombaData(email), ]); // Use Tomba if available, fallback to Clearbit const data = results[1].status === "fulfilled" ? results[1].value : results[0].value;` ### Step 5: Update Type Definitions[](https://docs.tomba.io/migration/clearbit/introduction#step-5-update-type-definitions) Tomba provides enhanced data - update your types: Code `// Enhanced company type with Tomba fields interface Company { // Clearbit fields (maintained) name: string; domain: string; description: string; // New Tomba fields technologies?: Technology[]; similar_domains?: string[]; email_count?: number; phone_number?: string; }` ### Step 6: Migrate Completely[](https://docs.tomba.io/migration/clearbit/introduction#step-6-migrate-completely) Once validated, remove Clearbit code and use Tomba exclusively. * * * Cost Comparison Calculator[](https://docs.tomba.io/migration/clearbit/introduction#cost-comparison-calculator) --------------------------------------------------------------------------------------------------------------- Calculate your savings: | Usage Level | Clearbit Cost/mo | Tomba Cost/mo | Annual Savings | | --- | --- | --- | --- | | 1,000 calls | $99 | $12 | $1,044 | | 5,000 calls | $499 | $59 | $5,280 | | 10,000 calls | $999 | $119 | $10,560 | | 25,000 calls | $2,499 | $273 | $26,712 | | 50,000 calls | $4,999 | $490 | $54,108 | **Average savings: 80-88%** * * * Enhanced Features Only in Tomba[](https://docs.tomba.io/migration/clearbit/introduction#enhanced-features-only-in-tomba) ------------------------------------------------------------------------------------------------------------------------- ### Technology Stack Detection[](https://docs.tomba.io/migration/clearbit/introduction#technology-stack-detection) TerminalCode `# Discover what technologies a company uses GET https://api.tomba.io/v1/technology?domain=stripe.com # Response includes: Payment gateways, Analytics, CRM, Marketing tools, etc.` ### Domain Search (Not Available in Clearbit)[](https://docs.tomba.io/migration/clearbit/introduction#domain-search-not-available-in-clearbit) TerminalCode `# Find all contacts at a company GET https://api.tomba.io/v1/domain-search?domain=stripe.com&limit=50 # Returns: All employees with verified emails` ### Similar Companies Finder[](https://docs.tomba.io/migration/clearbit/introduction#similar-companies-finder) TerminalCode `# Find companies similar to your target GET https://api.tomba.io/v1/similar?domain=salesforce.com # Returns: Competitors and similar companies` ### Author Finder (Content Marketing Gold)[](https://docs.tomba.io/migration/clearbit/introduction#author-finder-content-marketing-gold) TerminalCode `# Extract author contact from article URL GET https://api.tomba.io/v1/author-finder?url=https://stripe.com/blog/api-versioning # Returns: Author email, name, social profiles` ### LinkedIn to Email[](https://docs.tomba.io/migration/clearbit/introduction#linkedin-to-email) TerminalCode `# Convert LinkedIn profile to email GET https://api.tomba.io/v1/linkedin-finder?url=https://linkedin.com/in/username # Returns: Email + full profile data` * * * Integration Examples[](https://docs.tomba.io/migration/clearbit/introduction#integration-examples) --------------------------------------------------------------------------------------------------- ### Node.js Migration[](https://docs.tomba.io/migration/clearbit/introduction#nodejs-migration) Code `// Before (Clearbit) const clearbit = require("clearbit")("sk_clearbit_xxx"); const company = await clearbit.Company.find({ domain: "stripe.com" }); // After (Tomba) const axios = require("axios"); const response = await axios.get("https://api.tomba.io/v1/companies/find", { params: { domain: "stripe.com" }, headers: { "X-Tomba-Key": "your-key", "X-Tomba-Secret": "your-secret", }, }); const company = response.data.data;` ### Python Migration[](https://docs.tomba.io/migration/clearbit/introduction#python-migration) Code `# Before (Clearbit) import clearbit clearbit.key = 'sk_clearbit_xxx' company = clearbit.Company.find(domain='stripe.com') # After (Tomba) import requests response = requests.get( 'https://api.tomba.io/v1/companies/find', params={'domain': 'stripe.com'}, headers={ 'X-Tomba-Key': 'your-key', 'X-Tomba-Secret': 'your-secret' } ) company = response.json()['data']` ### PHP Migration[](https://docs.tomba.io/migration/clearbit/introduction#php-migration) Code `// Before (Clearbit) $clearbit = new Clearbit\Clearbit('sk_clearbit_xxx'); $company = $clearbit->company->find(['domain' => 'stripe.com']); // After (Tomba) $client = new GuzzleHttp\Client(); $response = $client->get('https://api.tomba.io/v1/companies/find', [ 'query' => ['domain' => 'stripe.com'], 'headers' => [ 'X-Tomba-Key' => 'your-key', 'X-Tomba-Secret' => 'your-secret' ] ]); $company = json_decode($response->getBody())->data;` * * * Migration Checklist[](https://docs.tomba.io/migration/clearbit/introduction#migration-checklist) ------------------------------------------------------------------------------------------------- * [ ] Sign up for Tomba account * [ ] Generate API keys * [ ] Review API mapping for your use case * [ ] Update authentication headers * [ ] Update base URLs and endpoints * [ ] Test Company API replacement * [ ] Test Person API replacement * [ ] Test Combined API replacement * [ ] Update type definitions/interfaces * [ ] Implement parallel testing (optional) * [ ] Update error handling * [ ] Test edge cases * [ ] Deploy to staging * [ ] Monitor for issues * [ ] Deploy to production * [ ] Remove Clearbit dependencies * [ ] Cancel Clearbit subscription * * * Support & Resources[](https://docs.tomba.io/migration/clearbit/introduction#support--resources) ------------------------------------------------------------------------------------------------ ### Documentation[](https://docs.tomba.io/migration/clearbit/introduction#documentation) * [Company API Guide](https://docs.tomba.io/migration/clearbit/company-api) * [Person API Guide](https://docs.tomba.io/migration/clearbit/person-api) * [Combined API Guide](https://docs.tomba.io/migration/clearbit/combined-api) * [Full API Documentation](https://docs.tomba.io/) ### Tools & Integrations[](https://docs.tomba.io/migration/clearbit/introduction#tools--integrations) * [Chrome Extension](https://chrome.google.com/webstore/detail/tomba-email-finder/icmjegjggphchjckknoooajmklibccjb) * [Google Sheets Add-on](https://workspace.google.com/marketplace/app/tomba_email_extractor_email_finder_plus/915979967841) * [Microsoft Excel Add-in](https://appsource.microsoft.com/en-us/product/office/WA200003632) * [Airtable Extension](https://airtable.com/marketplace/blkzHq5ZaqM1hWS13/find-verify-emails-tomba) * [MCP Server for AI](https://github.com/tomba-io/tomba-mcp-server) ### Get Help[](https://docs.tomba.io/migration/clearbit/introduction#get-help) * **Email**: [support@tomba.io](mailto:support@tomba.io) * **Documentation**: [docs.tomba.io](https://docs.tomba.io/) * **API Status**: [status.tomba.io](https://status.tomba.io/) * **Community**: Join our Discord * * * Frequently Asked Questions[](https://docs.tomba.io/migration/clearbit/introduction#frequently-asked-questions) --------------------------------------------------------------------------------------------------------------- ### How long does migration take?[](https://docs.tomba.io/migration/clearbit/introduction#how-long-does-migration-take) Most teams complete migration in 1-2 days. The API structure is similar to Clearbit, so changes are minimal. ### Will I lose any data during migration?[](https://docs.tomba.io/migration/clearbit/introduction#will-i-lose-any-data-during-migration) No. Tomba often provides MORE data than Clearbit, including phone numbers, technology stack, and email verification. ### What about my existing Clearbit integrations?[](https://docs.tomba.io/migration/clearbit/introduction#what-about-my-existing-clearbit-integrations) Tomba provides drop-in replacements for all three Clearbit APIs. Update the base URL and authentication, and you're done. ### Can I run both APIs in parallel?[](https://docs.tomba.io/migration/clearbit/introduction#can-i-run-both-apis-in-parallel) Yes! We recommend running both during migration to ensure data quality and minimize risk. ### What's the refund policy?[](https://docs.tomba.io/migration/clearbit/introduction#whats-the-refund-policy) We offer a 30-day money-back guarantee. If Tomba doesn't meet your needs, get a full refund. ### Do you offer migration support?[](https://docs.tomba.io/migration/clearbit/introduction#do-you-offer-migration-support) Yes! Our team can help with migration planning, code review, and implementation support. Contact [support@tomba.io](mailto:support@tomba.io) . ### How accurate is Tomba compared to Clearbit?[](https://docs.tomba.io/migration/clearbit/introduction#how-accurate-is-tomba-compared-to-clearbit) Tomba maintains 98%+ accuracy with our 450M+ email database and automatic verification. Most users report equal or better data quality. ### What about GDPR compliance?[](https://docs.tomba.io/migration/clearbit/introduction#what-about-gdpr-compliance) Tomba is fully GDPR compliant with data processing agreements available. We only provide publicly available business contact information. * * * **Ready to migrate from Clearbit?** Get started with a free Tomba account - includes 50 free searches and 500 free verifications! [Start Migration →](https://app.tomba.io/auth/register) Last modified on April 28, 2026 [Clearbit Company API Replacement](https://docs.tomba.io/migration/clearbit/company-api) Javascript Javascript Javascript Javascript TypeScript Javascript PHP --- # Creating a Free Account | Tomba Documentation Menu Getting started with Tomba.io is simple and flexible. Whether you prefer using your existing Google account, LinkedIn profile, GitHub account, or simply registering with your email, our streamlined process has you covered. 👉 **[Click here to get started](https://app.tomba.io/auth/signin) ** Sign Up Options[](https://docs.tomba.io/free-account#sign-up-options) ---------------------------------------------------------------------- ### 1\. Google Login[](https://docs.tomba.io/free-account#1-google-login) * Click the **"Sign Up with Google"** button. * You will be redirected to Google for authentication. * Once authenticated, you'll be automatically redirected back to Tomba.io with your account set up. ![Tomba Sign Up](https://downloads.intercomcdn.com/i/o/u7emjso2/1467028605/49dcb00c1a6df499b5eb0ad53fcd/googlehgfhgfh.png) ### 2\. LinkedIn Login[](https://docs.tomba.io/free-account#2-linkedin-login) * Choose the **"Sign Up with LinkedIn"** option. * Authenticate using your LinkedIn credentials. * After a successful login, your Tomba.io account will be created using your LinkedIn information. ![Tomba Sign Up](https://downloads.intercomcdn.com/i/o/u7emjso2/1467027236/3dfd8ddb530a7873c8eac12a7797/li.png) ### 3\. GitHub Login[](https://docs.tomba.io/free-account#3-github-login) * Select the **"Sign Up with GitHub"** option. * You’ll be redirected to GitHub for secure authentication. * After confirming access, your account on Tomba.io will be instantly created. ### 4\. Email Registration[](https://docs.tomba.io/free-account#4-email-registration) * Select the **"Sign Up with Email"** option. * Enter your details: name, email, and password. * Verify your email address by clicking the confirmation link sent to your inbox. Start building smarter outreach workflows in minutes with Tomba.io. Last modified on April 28, 2026 [Introduction to Tomba.io](https://docs.tomba.io/introduction) [Dashboard Overview](https://docs.tomba.io/dashboard) --- # Rate Limits | Tomba Documentation Menu If you exceed the rate limit, the API returns `429 Too Many Requests`. Rate Limit Headers[](https://docs.tomba.io/rate-limits#rate-limit-headers) --------------------------------------------------------------------------- Each API response includes rate limit headers: * `X-RateLimit-Limit`: Total requests allowed in the current window (example: `15`) * `X-RateLimit-Remaining`: Requests left in the current window (example: `14`) * `X-RateLimit-Reset`: Seconds until the limit resets (example: `1`) If `X-RateLimit-Remaining` reaches `0`, the next request returns `429 Too Many Requests` until the reset window expires. Handle 429 Responses[](https://docs.tomba.io/rate-limits#handle-429-responses) ------------------------------------------------------------------------------- When you receive a `429`, wait for the number of seconds in `X-RateLimit-Reset` before retrying. TerminalCode `curl -i -X GET "https://api.tomba.io/v1/domain-search?domain=example.com" \ -H "X-Tomba-Key: your_api_key" \ -H "X-Tomba-Secret: your_secret_key"` In JavaScript, you can apply a simple retry based on the reset header: Code `const request = async () => { const res = await fetch("https://api.tomba.io/v1/domain-search?domain=example.com", { headers: { "X-Tomba-Key": "your_api_key", "X-Tomba-Secret": "your_secret_key", }, }); if (res.status === 429) { const wait = Number(res.headers.get("X-RateLimit-Reset") || 1); await new Promise((resolve) => setTimeout(resolve, wait * 1000)); return request(); } return res.json(); };` Overview of Request Costs[](https://docs.tomba.io/rate-limits#overview-of-request-costs) ----------------------------------------------------------------------------------------- | Tool | Request Cost | | --- | --- | | [Domain Search](https://tomba.io/domain-search) | Counted 1 for up to 10 Emails | | [Email Finder](https://tomba.io/email-finder) | Counted as 1 for 1 Email | | [Author Finder](https://tomba.io/author-finder) | Counted as 1 for 1 Email or article person name | | [Email & Domain Enrichment](https://tomba.io/enrichment) | Counted as 1 for 1 Email | | [LinkedIn Email Finder](https://tomba.io/linkedin-finder) | Counted as 1 for 1 Email | | [Email Verification](https://tomba.io/email-verifier) | Counted as 1 for 1 Email | | [Phone Finder](https://tomba.io/phone-finder) | Counted as 5 for up to 10 Phones | | [Phone Validate](https://tomba.io/phone-validator) | Counted as 1 for 1 Phone | | [Reveal search](https://docs.tomba.io/api/reveal#search-companies) | Counted as 1 for 50 companies | requests No requests are counted if Tomba cannot provide an email. Overview of Bulk Limits and Concurrency[](https://docs.tomba.io/rate-limits#overview-of-bulk-limits-and-concurrency) --------------------------------------------------------------------------------------------------------------------- The following table outlines the daily bulk limits and maximum concurrent operations allowed per tool. Staying within these limits ensures optimal performance and resource utilization. | Tool | Limit | Max Concurrent Jobs | | --- | --- | --- | | [Bulks Domain Search](https://tomba.io/bulks/domain-search) | 15/day | 2 | | [Bulk Email Finder](https://tomba.io/bulks/email-finder) | 15/day | 2 | | [Bulk Author Finder](https://tomba.io/bulks/author-finder) | 15/day | 2 | | [Bulk Email Enrichment](https://tomba.io/bulks/email-enrichment) | 15/day | 2 | | [Bulk Linkedin Finder](https://tomba.io/bulks/linkedin-finder) | 15/day | 2 | | [Bulk Email Verifier](https://tomba.io/bulks/email-verifier) | 15/day | 2 | | [Bulks Phone Finder](https://tomba.io/bulks/phone-finder) | 15/day | 2 | | [Bulks Phone Validate](https://tomba.io/bulks/phone-validator) | 15/day | 2 | | [Bulks Company Enrichment](https://tomba.io/bulks/company-enrichment) | 15/day | 2 | | [Bulks Similar](https://tomba.io/bulks/domain-similar) | 15/day | 2 | | Domain export | 15/day | 2 | | Reveal search export | 15/day | 2 | Additional Notes[](https://docs.tomba.io/rate-limits#additional-notes) ----------------------------------------------------------------------- Bulk Input Limits[](https://docs.tomba.io/rate-limits#bulk-input-limits) ------------------------------------------------------------------------- The following input limits apply to bulk upload files or single bulk operations. These limits define the maximum number of rows (inputs) you can include in a single bulk file or request. | Tool / Bulk Job Type | Input Limit (rows) | | --- | --- | | Bulks Domain Search | 25,000 | | Bulks Company Enrichment | 25,000 | | Bulk Email Finder | 10,000 | | Bulk Email Verifier | 20,000 | | Bulk Email Enrichment | 20,000 | | Bulk LinkedIn Finder | 20,000 | | Bulk Author Finder | 5,000 | | Bulks Similar (domain similar) | 5,000 | | Bulks Phone Finder / Bulks Phone Validate | 10,000 | If your file exceeds these limits, split it into multiple files or batches to ensure successful processing. * When a Domain Search or an Email Finder request doesn't return a result, the request isn't counted. Similarly, for the Email Verifier: if you verify a webmail and no result is provided, the request will not be used. * Unique requests are counted only once every 30 days against your quota. If you need to re-run a series of requests due to improper data storage or for any other reason, these will not count against your monthly quota. Consequently, you can make identical API requests repeatedly within the same billing period. This flexibility is especially beneficial for developers who are testing integrations. * **⚠️ All limits are shared across your team members. Please respect these limits. If you need higher limits for an integration app, [contact us](https://tomba.io/) to discuss options.** Is There a Request Per Second Limit?[](https://docs.tomba.io/rate-limits#is-there-a-request-per-second-limit) -------------------------------------------------------------------------------------------------------------- Yes. The following limits apply per endpoint. Request Rate Limits[](https://docs.tomba.io/rate-limits#request-rate-limits) ----------------------------------------------------------------------------- | API Endpoint | Rate Limit (per second) | Rate Limit (per minute) | | --- | --- | --- | | [Domain Search](https://docs.tomba.io/api/finder#domain-search) | 15 | 900 | | [Email Finder](https://docs.tomba.io/api/finder#email-finder) | 15 | 900 | | [Similar](https://docs.tomba.io/api/~endpoints#similar) | 15 | 900 | | [Technology](https://docs.tomba.io/api/~endpoints#Technology) | 15 | 900 | | [Enrichment](https://docs.tomba.io/api/finder#email-enrichment) | 5 | 300 | | [Author Finder](https://docs.tomba.io/api/finder#author-finder) | 2.5 | 150 | | [Email Verifier](https://docs.tomba.io/api/verifier#email-verifier) | 2.5 | 150 | | [LinkedIn Email Finder](https://docs.tomba.io/api/finder#linkedin-finder) | 1.67 | 100 | | [Reveal search](https://docs.tomba.io/api/reveal#search-companies) | 5 | 300 | limit If you reach the limit, the API returns a 429 error. Last modified on June 12, 2026 [Usage Limits and Quotas](https://docs.tomba.io/usage-and-quotas) [Key Features and Endpoints](https://docs.tomba.io/features) Javascript --- # Logo API | Tomba Documentation Menu Get the logo of any company by providing its domain name. Returns the logo image directly. No authentication is required for GET requests. Get Logo[](https://docs.tomba.io/logo-api#get-logo) ---------------------------------------------------- Code `GET https://logo.tomba.io/:domain` **Parameters:** | Name | Type | Required | Description | | --- | --- | --- | --- | | domain | string | Yes | The domain name (e.g., `tomba.io`) | Subdomains are automatically resolved to the root domain (e.g., `www.google.com` and `mail.google.com` both resolve to `google.com`). **Query Parameters:** | Name | Type | Default | Description | | --- | --- | --- | --- | | `s` | int | 80 | Image size in pixels (1-512). Square output. | | `size` | int | 80 | Alias for `s`. | | `greyscale` | boolean | false | Returns a greyscale version of the logo when set to `true`. | | `d` | string | | URL-encoded URL of a custom default image. | | `default` | string | | Alias for `d`. | By default, images are presented at 80px by 80px if no size parameter is supplied. You may request a specific image size, which will be dynamically delivered from Tomba by using the `s=` or `size=` parameter and passing a single pixel dimension (since the images are square). **Using an `` tag:** Since the endpoint returns the image directly, you can drop the URL straight into the `src` attribute of an `` tag — no API key and no preprocessing required. Code ` zynga zynga zynga Fallback` Rendered results for `tomba.io`: | `?s=48` | `?s=80` (default) | `?s=128` | `?s=128&greyscale=true` | | --- | --- | --- | --- | | ![Tomba logo 48px](https://logo.tomba.io/zynga.com?s=48) | ![Tomba logo 80px](https://logo.tomba.io/zynga.com?s=80) | ![Tomba logo 128px](https://logo.tomba.io/zynga.com?s=128) | ![Tomba logo greyscale](https://logo.tomba.io/zynga.com?s=128&greyscale=true) | **Response Headers:** | Header | Description | | --- | --- | | `Content-Type` | Image MIME type (`image/png`, `image/webp`, etc.) | | `Content-Disposition` | `attachment; filename="domain.ext"` | | `Cache-Control` | `public, max-age=86400` (24h for logos, 5min for defaults) | | `X-Cache` | `hit` or `miss` (in-memory cache status) | **Response:** | Status | Description | | --- | --- | | 200 | Logo image with `Content-Type: image/png\|webp\|avif` | | 400 | Invalid domain or invalid size parameter | Default Image[](https://docs.tomba.io/logo-api#default-image) -------------------------------------------------------------- When a domain has no matching Tomba logo, a default placeholder image is returned instead of a 404 error. The default image is a gray square with a "?" mark, sized according to the `s`/`size` parameter (or 80x80 by default). If you'd prefer to use your own default image, supply the URL in the `d=` or `default=` parameter. The URL should be URL-encoded to ensure that it carries across correctly. When a custom default is provided and the logo is not found, the API proxies the image from your URL. TerminalCode `# Custom default image curl "https://logo.tomba.io/unknown.com?d=https%3A%2F%2Fexample.com%2Fimages%2Favatar.jpg" # Using default= alias curl "https://logo.tomba.io/unknown.com?default=https%3A%2F%2Fexample.com%2Flogo.png"` Only `https` URLs are accepted. Invalid URLs return a `400 Bad Request`. Examples[](https://docs.tomba.io/logo-api#examples) ---------------------------------------------------- TerminalCode `# Default size (80x80) curl -O https://logo.tomba.io/zynga.com # Custom size (200x200) curl -O "https://logo.tomba.io/stripe.com?s=200" # Using size= alias curl -O "https://logo.tomba.io/google.com?size=128" # Greyscale curl -O "https://logo.tomba.io/zynga.com?greyscale=true" # Greyscale with custom size curl -O "https://logo.tomba.io/stripe.com?s=128&greyscale=true" # Subdomain resolves to root domain curl -O https://logo.tomba.io/www.google.com # Unknown domain returns default placeholder curl -O https://logo.tomba.io/unknown-domain.com` Last modified on July 10, 2026 [Webhooks](https://docs.tomba.io/webhook) [Official Language Libraries](https://docs.tomba.io/libraries) --- # January 2026 Data Update | Tomba Documentation Menu We processed hundreds of millions of records to maintain fresh, accurate, and complete datasets. Here's what changed this month: * * * Data Updates[](https://docs.tomba.io/data/2026/01-january#data-updates) ------------------------------------------------------------------------ * **Total Records Processed:** 640M pages crawled * **Unique B2B Emails:** 44.94M high-quality business emails * **Data Quality:** 99.94% valid email rate with minimal duplication * **Collection Period:** 10 days of continuous web crawling * * * Overview Statistics[](https://docs.tomba.io/data/2026/01-january#overview-statistics) -------------------------------------------------------------------------------------- * **Total Crawled Pages:** 640M * **Unique B2B Emails:** 44.94M * **Duplication Rate:** 92.98% * **Invalid Email Rate:** 0.06% * **Data Collection Period:** 10 Days * **Pages Processed:** 640 Million Pages in 10 days ![Overview statistics](https://docs.tomba.io/images/data/january-2026/overview.svg) * * * Top 10 Domains[](https://docs.tomba.io/data/2026/01-january#top-10-domains) ---------------------------------------------------------------------------- * **inbox.sourceware.org:** 835.96K records * **ville-bagnolet.fr:** 530.73K records * **wtcgdynia.com.pl:** 453.11K records * **ys99.com:** 419.44K records * **nagasawa-mfg.co.jp:** 389.36K records * **feedc0de.org:** 382.44K records * **tvwatchers.nl:** 369.94K records * **jsimlo.sk:** 369.15K records * **macrumors.com:** 328.69K records * **arrl.org:** 324.86K records ![Top 10 domains](https://docs.tomba.io/images/data/january-2026/top_domains.svg) * * * Role-Based Email Types[](https://docs.tomba.io/data/2026/01-january#role-based-email-types) -------------------------------------------------------------------------------------------- * **info@:** 155.15M emails * **contact@:** 15.18M emails * **sales@:** 14.09M emails * **support@:** 13.14M emails * **office@:** 6.67M emails * **hello@:** 6.41M emails * **kontakt@:** 3.79M emails * **mail@:** 3.62M emails * **service@:** 3.46M emails * **contato@:** 2.41M emails * **Total Role-Based:** 288.37M (45.1% of all emails) ![Role-based email types](https://docs.tomba.io/images/data/january-2026/role_based_emails.svg) * * * Top 15 Countries[](https://docs.tomba.io/data/2026/01-january#top-15-countries) -------------------------------------------------------------------------------- * **Generic TLD:** 286.55M records * **Russia:** 44.88M records * **Germany:** 39.91M records * **Poland:** 23.31M records * **Italy:** 20.77M records * **United Kingdom:** 15.27M records * **Czech Republic:** 13.83M records * **Netherlands:** 12.02M records * **France:** 10.67M records * **Brazil:** 9.61M records * **Switzerland:** 6.79M records * **Australia:** 6.60M records * **Sweden:** 6.50M records * **Spain:** 6.47M records * **Ukraine:** 6.44M records ![Top 15 countries](https://docs.tomba.io/images/data/january-2026/countries.svg) * * * Domain Categories[](https://docs.tomba.io/data/2026/01-january#domain-categories) ---------------------------------------------------------------------------------- * **Other:** 402.12M records * **E-commerce:** 72.37M records * **News:** 41.24M records * **Blog:** 31.16M records * **Education:** 23.28M records * **Technology:** 17.20M records * **Business:** 14.12M records * **Entertainment:** 13.21M records * **Government:** 12.95M records * **Social:** 10.39M records * **Adult:** 1.90M records ![Domain categories](https://docs.tomba.io/images/data/january-2026/categories.svg) * * * Email Analysis[](https://docs.tomba.io/data/2026/01-january#email-analysis) ---------------------------------------------------------------------------- * **Webmail Domains:** 103.13M (22.9% of unique B2B Emails) * **Business Domains:** 536.38M (83.9% of total) * **Role-Based Emails:** 288.37M (45.1% of all emails) * **File Extension Junk:** 406.78K detected and filtered * **Valid Email Rate:** 99.94% Role-based emails include: info@, sales@, support@, contact@, office@, hello@, kontakt@, mail@, service@, and more. ![Email analysis](https://docs.tomba.io/images/data/january-2026/email_analysis.svg) * * * Daily Time Series (Last 10 Days)[](https://docs.tomba.io/data/2026/01-january#daily-time-series-last-10-days) -------------------------------------------------------------------------------------------------------------- * **2025-12-08:** 52.23M records * **2025-12-09:** 52.26M records * **2025-12-10:** 49.97M records * **2025-12-11:** 48.41M records * **2025-12-12:** 48.97M records * **2025-12-13:** 50.11M records * **2025-12-14:** 50.85M records * **2025-12-15:** 49.00M records * **2025-12-16:** 49.16M records * **2025-12-17:** 29.94M records Peak day: December 9, 2025 with 52.26M records processed. ![Daily time series](https://docs.tomba.io/images/data/january-2026/daily_series.svg) * * * Key Highlights[](https://docs.tomba.io/data/2026/01-january#key-highlights) ---------------------------------------------------------------------------- * **Record Quality:** Achieved 99.94% valid email rate, our highest ever * **Deduplication Efficiency:** 92.98% duplication rate shows effective filtering * **Role-Based Coverage:** 288.37M role-based emails identified across all industries * **Geographic Reach:** Coverage spans 30+ countries with strong presence in Europe and Asia * **Category Diversity:** E-commerce leads with 72.37M records, followed by News and Blog sectors Last modified on January 8, 2026 [February 2026 Data Update](https://docs.tomba.io/data/2026/02-february) [October Data Update](https://docs.tomba.io/data/2025/01-october) --- # Key Features and Endpoints | Tomba Documentation Menu Tomba.io provides a robust set of API endpoints for email discovery, enrichment, and lead generation workflows. Below is an overview of the main features, with short descriptions and direct links. * * * [Account Information](https://app.tomba.io/settings/) [](https://docs.tomba.io/features#account-information) ------------------------------------------------------------------------------------------------------------- **Description:** Retrieve detailed information about your Tomba.io account, including subscription, settings, and usage. **Features:** * Access profile and billing data. * Monitor plan quotas and consumption. * Customize preferences and security settings. * * * [Domain Search](https://tomba.io/domain-search) [](https://docs.tomba.io/features#domain-search) ------------------------------------------------------------------------------------------------- **Description:** Search for professional email addresses and company data using a domain name. **Features:** * Retrieve verified email lists per domain. * Filter by department or seniority. * Access domain metadata and company info. * * * [Email Finder](https://tomba.io/email-finder) [](https://docs.tomba.io/features#email-finder) ---------------------------------------------------------------------------------------------- **Description:** Find a specific email address by entering a name and domain. **Features:** * Search by full name and domain. * Get confidence score and status. * Great for outbound prospecting. Quick API example: TerminalCode `curl -X GET "https://api.tomba.io/v1/email-finder?domain=example.com&first_name=John&last_name=Doe" \ -H "X-Tomba-Key: your_api_key" \ -H "X-Tomba-Secret: your_secret_key"` * * * [Email Enrichment](https://tomba.io/enrichment) [](https://docs.tomba.io/features#email-enrichment) ---------------------------------------------------------------------------------------------------- **Description:** Enrich email data with social, company, and location details. **Features:** * Augment leads with verified metadata. * Identify job roles, social handles, and company info. * Improve targeting and segmentation. * * * [Author Finder](https://tomba.io/author-finder) [](https://docs.tomba.io/features#author-finder) ------------------------------------------------------------------------------------------------- **Description:** Find emails of blog authors and contributors on websites. **Features:** * Discover authors of online content. * Useful for PR and media outreach. * Filter by source or publication type. * * * [LinkedIn Finder](https://tomba.io/linkedin-finder) [](https://docs.tomba.io/features#linkedin-finder) ------------------------------------------------------------------------------------------------------- **Description:** Use a LinkedIn profile URL to discover the associated professional email. **Features:** * Extract verified emails directly from LinkedIn URLs. * Fast and accurate with a high match rate. * Ideal for recruiters and B2B sales teams. * * * [Email Verifier](https://tomba.io/email-verifier) [](https://docs.tomba.io/features#email-verifier) ---------------------------------------------------------------------------------------------------- **Description:** Validate any email address for deliverability. **Features:** * Check SMTP and MX records. * Return real-time status. * Reduce bounce rates and spam flags. * * * [Email Sources](https://tomba.io/email-finder#sources) [](https://docs.tomba.io/features#email-sources) -------------------------------------------------------------------------------------------------------- **Description:** View the original URLs where Tomba found the email. **Features:** * Ensure traceability and authenticity. * Display source page, date, and context. * Useful for compliance and transparency. * * * [Phone Finder](https://tomba.io/phone-finder) [](https://docs.tomba.io/features#phone-finder) ---------------------------------------------------------------------------------------------- **Description:** Discover phone numbers linked to domains or emails. **Features:** * Get company and contact-level numbers. * Validate phone numbers for accuracy. * Complement email-based outreach. * * * [Usage Stats](https://app.tomba.io/usage) [](https://docs.tomba.io/features#usage-stats) ----------------------------------------------------------------------------------------- **Description:** Track your API consumption and usage limits. **Features:** * Visualize API call history. * Optimize usage with quota analysis. * Real-time updates. * * * [Leads](https://app.tomba.io/leads) [](https://docs.tomba.io/features#leads) ----------------------------------------------------------------------------- **Description:** Fetch leads based on company, industry, or location filters. **Features:** * Search leads using smart filters. * Export lead data to your CRM. * Segment by industry, size, role, etc. * * * [Lead Lists](https://app.tomba.io/leads/lists) [](https://docs.tomba.io/features#lead-lists) --------------------------------------------------------------------------------------------- **Description:** Create and manage groups of leads for campaign targeting. **Features:** * Organize leads by project or region. * Share lists across your team. * Import/export CSVs in bulk. * * * Lead Attributes[](https://docs.tomba.io/features#lead-attributes) ------------------------------------------------------------------ **Description:** Access enriched metadata for a specific lead. **Features:** * Get role, company, social profiles, etc. * Enhance targeting and personalization. * Improve scoring models. * * * [Account Logs](https://app.tomba.io/usage/requests) [](https://docs.tomba.io/features#account-logs) ---------------------------------------------------------------------------------------------------- **Description:** View activity logs for API events and account changes. **Features:** * Review login, API, and team events. * Ensure team and system accountability. * Audit changes and permissions. * * * [API Keys](https://app.tomba.io/api) [](https://docs.tomba.io/features#api-keys) --------------------------------------------------------------------------------- **Description:** Manage your API access credentials securely. **Features:** * Generate new keys or revoke old ones. * Rotate secrets securely. * Maintain seamless integration. * * * [Email Count](https://tomba.io/domain-search) [](https://docs.tomba.io/features#email-count) --------------------------------------------------------------------------------------------- **Description:** Quickly get the total number of emails found on a domain. **Features:** * Check email availability at scale. * Preview lead potential before diving in. * Use in dashboards or decision logic. * * * [Technology Detection](https://docs.tomba.io/api/~endpoints#technology) [](https://docs.tomba.io/features#technology-detection) -------------------------------------------------------------------------------------------------------------------------------- **Description:** Detect what technologies (e.g. CMS, analytics) a site is using. **Features:** * Know what tools your leads are using. * Great for MarTech and SaaS targeting. * Identify platform opportunities. * * * [Similar Websites](https://docs.tomba.io/api/~endpoints#similar) [](https://docs.tomba.io/features#similar-websites) --------------------------------------------------------------------------------------------------------------------- **Description:** Discover competitors or look-alike domains. **Features:** * Get sites similar to a given domain. * Useful for expanding prospect lists. * Unlock market clusters easily. * * * Each endpoint includes request parameters, examples, and responses in our [API Reference Documentation](https://docs.tomba.io/api) . Last modified on April 28, 2026 [Rate Limits](https://docs.tomba.io/rate-limits) [Data](https://docs.tomba.io/data) --- # Migrate to Tomba Email Finder | Tomba Documentation Menu Looking to switch from your current email finder service? This guide will help you migrate to Tomba's comprehensive email finding platform with better accuracy, more data points, and competitive pricing. * * * Why Choose Tomba Email Finder?[](https://docs.tomba.io/migration/email-finder/introduction#why-choose-tomba-email-finder) -------------------------------------------------------------------------------------------------------------------------- | Feature | Hunter / Snov / Prospeo / Findymail | Tomba | | --- | --- | --- | | **Accuracy** | 85-92% | 98%+ with verification included | | **Database Size** | 100M-200M emails | 450M+ emails and growing | | **Data Attributes** | 5-8 fields | 20+ comprehensive attributes | | **Email Verification** | Separate cost or limited | Included free with every search | | **Domain Search** | Yes | Yes, with advanced filters | | **Author Finder** | No | Find emails from article URLs | | **LinkedIn Finder** | Limited | Direct LinkedIn profile to email | | **Phone Numbers** | No | Phone Finder & Phone Validator included | | **Technology Detection** | No | Detect tech stack (6000+ technologies) | | **Similar Companies** | No | Find similar companies to expand reach | | **Email Enrichment** | Basic | Complete contact and company data | | **Bulk Operations** | Yes | Yes, with better processing | | **API Access** | REST API | REST API + MCP integration | | **Pricing** | $49-199/month | From $49/month (40% more affordable) | * * * Key Advantages of Tomba[](https://docs.tomba.io/migration/email-finder/introduction#key-advantages-of-tomba) ------------------------------------------------------------------------------------------------------------- ### 1\. All-in-One Platform[](https://docs.tomba.io/migration/email-finder/introduction#1-all-in-one-platform) Unlike competitors that require multiple tools, Tomba provides: * **Email Finder**: Find emails by name + domain * **Domain Search**: Discover all emails at a company * **Email Verifier**: Verify deliverability (included free!) * **Author Finder**: Extract author emails from articles * **LinkedIn Finder**: Find emails from LinkedIn profiles * **Phone Finder**: Get phone numbers for contacts * **Phone Validator**: Validate phone number format and location * **Email Enrichment**: Complete contact data * **Technology Finder**: Detect tech stacks (6000+ technologies) * **Similar Companies**: Expand your target list **One API key. One dashboard. One bill.** ### 2\. Free Email Verification[](https://docs.tomba.io/migration/email-finder/introduction#2-free-email-verification) Every email found is automatically verified at no extra cost: * Deliverability check * SMTP validation * MX record verification * Disposable email detection * Role-based email detection **Competitors charge separately** for verification or provide limited checks. ### 3\. Rich Data Attributes (20+ Fields)[](https://docs.tomba.io/migration/email-finder/introduction#3-rich-data-attributes-20-fields) Tomba provides comprehensive contact data: **Person Data:** * Full name (first, last) * Position/title * Department * Seniority level * Email address (verified) * Phone numbers * LinkedIn profile * Twitter handle * Social profiles **Company Data:** * Company name * Domain/website * Industry * Size (employees) * Location (country, city) * Founded year * Revenue * Technology stack * Social profiles **Email Intelligence:** * Verification status * Confidence score (0-100) * Sources (URLs where found) * Last verified date * Email type (generic, personal) * Accept-all status ### 4\. Better Pricing (Save 40-50%)[](https://docs.tomba.io/migration/email-finder/introduction#4-better-pricing-save-40-50) **Hunter pricing:** $49-199/month + extra for verification **Snov.io pricing:** $39-189/month + credit system **Prospeo pricing:** $119/month + limited searches **Findymail pricing:** $49-999/month **Tomba pricing:** From $49/month * All features included * Free verification * No hidden costs * Credits roll over * Volume discounts available ### 5\. Advanced Features[](https://docs.tomba.io/migration/email-finder/introduction#5-advanced-features) * **Model Context Protocol (MCP)**: AI tool integration * **Chrome Extension**: Find emails while browsing * **Google Sheets Add-on**: Bulk find in spreadsheets * **Microsoft Excel Add-in**: Find and verify emails directly in Excel * **Airtable Extension**: Find and verify email addresses directly in Airtable * **Bulk API**: Process thousands of emails * **Zapier/n8n**: Workflow automation * **10+ Official SDKs**: Easy integration * * * Quick Start Migration[](https://docs.tomba.io/migration/email-finder/introduction#quick-start-migration) --------------------------------------------------------------------------------------------------------- ### Step 1: Sign Up[](https://docs.tomba.io/migration/email-finder/introduction#step-1-sign-up) Create your Tomba account at [app.tomba.io](https://app.tomba.io/) ### Step 2: Get API Credentials[](https://docs.tomba.io/migration/email-finder/introduction#step-2-get-api-credentials) 1. Navigate to **API** → **API Keys** 2. Copy your **API Key** and **Secret Key** ### Step 3: Update Your Code[](https://docs.tomba.io/migration/email-finder/introduction#step-3-update-your-code) **Generic example (any competitor):** Code ``// Before (Hunter/Snov/Prospeo/Findymail) const response = await axios.get("https://competitor-api.com/v2/email-finder", { params: { domain: "stripe.com", first_name: "John", last_name: "Doe", }, headers: { Authorization: `Bearer ${API_KEY}` }, }); // After (Tomba) const response = await axios.get("https://api.tomba.io/v1/email-finder", { params: { domain: "stripe.com", first_name: "John", last_name: "Doe", }, headers: { "X-Tomba-Key": TOMBA_KEY, "X-Tomba-Secret": TOMBA_SECRET, }, }); // Tomba response includes verification for free! const email = response.data.data.email; // "john.doe@stripe.com" const verified = response.data.data.verification.status; // "valid" const score = response.data.data.score; // 95`` ### Step 4: Explore Additional Features[](https://docs.tomba.io/migration/email-finder/introduction#step-4-explore-additional-features) Code `// Author Finder (unique to Tomba) const author = await axios.get("https://api.tomba.io/v1/author-finder", { params: { url: "https://blog.stripe.com/article" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); // LinkedIn Finder (unique to Tomba) const linkedin = await axios.get("https://api.tomba.io/v1/linkedin", { params: { url: "https://linkedin.com/in/johndoe" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); // Technology Detection (unique to Tomba) const tech = await axios.get("https://api.tomba.io/v1/technology", { params: { domain: "stripe.com" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, });` * * * Service-Specific Migration Guides[](https://docs.tomba.io/migration/email-finder/introduction#service-specific-migration-guides) --------------------------------------------------------------------------------------------------------------------------------- Choose your current provider for detailed migration instructions: ### From Hunter[](https://docs.tomba.io/migration/email-finder/introduction#from-hunter) * [Hunter Email Finder Migration Guide](https://docs.tomba.io/migration/email-finder/hunter) * Complete API mapping and code examples * Hunter Credits → Tomba Credits conversion * Advanced feature comparison ### From Snov.io[](https://docs.tomba.io/migration/email-finder/introduction#from-snovio) * [Snov.io Migration Guide](https://docs.tomba.io/migration/email-finder/snov) * Drip campaign alternative strategies * API endpoint mapping * Bulk operation migration ### From Prospeo[](https://docs.tomba.io/migration/email-finder/introduction#from-prospeo) * [Prospeo Migration Guide](https://docs.tomba.io/migration/email-finder/prospeo) * LinkedIn export migration * Credit system comparison * Bulk verification migration ### From Findymail[](https://docs.tomba.io/migration/email-finder/introduction#from-findymail) * [Findymail Migration Guide](https://docs.tomba.io/migration/email-finder/findymail) * Waterfall enrichment alternative * API comparison and mapping * Cost savings calculator * * * Feature Comparison Matrix[](https://docs.tomba.io/migration/email-finder/introduction#feature-comparison-matrix) ----------------------------------------------------------------------------------------------------------------- | Feature | Hunter | Snov.io | Prospeo | Findymail | Tomba | | --- | --- | --- | --- | --- | --- | | **Email Finder** | ✅ | ✅ | ✅ | ✅ | ✅ | | **Domain Search** | ✅ | ✅ | ✅ | ✅ | ✅ | | **Email Verification** | 💰 Paid extra | 💰 Limited | 💰 Paid extra | ✅ | ✅ Free | | **Author Finder** | ❌ | ❌ | ❌ | ❌ | ✅ | | **LinkedIn Finder** | ❌ | ⚠️ Limited | ✅ | ✅ | ✅ | | **Phone Finder** | ❌ | ❌ | ❌ | ⚠️ Limited | ✅ | | **Technology Detection** | ❌ | ❌ | ❌ | ❌ | ✅ | | **Similar Companies** | ❌ | ❌ | ❌ | ❌ | ✅ | | **Email Enrichment** | ⚠️ Basic | ⚠️ Basic | ⚠️ Basic | ✅ | ✅ | | **Bulk Operations** | ✅ | ✅ | ✅ | ✅ | ✅ | | **Chrome Extension** | ✅ | ✅ | ✅ | ✅ | ✅ | | **Google Sheets** | ✅ | ✅ | ❌ | ❌ | ✅ | | **Excel Add-in** | ❌ | ❌ | ❌ | ❌ | ✅ | | **Airtable Extension** | ❌ | ❌ | ❌ | ❌ | ✅ | | **Bulk API** | ⚠️ Limited | ✅ | ⚠️ Limited | ✅ | ✅ | | **MCP/AI Integration** | ❌ | ❌ | ❌ | ❌ | ✅ | | **Database Size** | 200M | 150M | 100M | 250M | 450M+ | | **Accuracy** | 85-90% | 85-88% | 87-92% | 90-95% | 98%+ | | **Starting Price** | $49/mo | $39/mo | $119/mo | $49/mo | $49/mo | Legend: ✅ Full support | ⚠️ Limited | ❌ Not available | 💰 Additional cost * * * Common Migration Questions[](https://docs.tomba.io/migration/email-finder/introduction#common-migration-questions) ------------------------------------------------------------------------------------------------------------------- ### Q: Will I lose any data during migration?[](https://docs.tomba.io/migration/email-finder/introduction#q-will-i-lose-any-data-during-migration) **A:** No. You can run Tomba alongside your current service during testing. Export your existing data and gradually transition workflows. ### Q: How long does migration take?[](https://docs.tomba.io/migration/email-finder/introduction#q-how-long-does-migration-take) **A:** Most teams complete migration in 1-3 days: * Day 1: Account setup, API integration, testing * Day 2: Bulk operations migration, workflow updates * Day 3: Team training, full production deployment ### Q: What about my existing credits?[](https://docs.tomba.io/migration/email-finder/introduction#q-what-about-my-existing-credits) **A:** Use remaining credits with your current provider while gradually shifting to Tomba. We offer flexible plans to match your needs. ### Q: Can I import my saved searches/campaigns?[](https://docs.tomba.io/migration/email-finder/introduction#q-can-i-import-my-saved-searchescampaigns) **A:** Yes! Tomba supports bulk imports via CSV or API. Our team can help migrate large datasets for enterprise customers. ### Q: Do you offer migration assistance?[](https://docs.tomba.io/migration/email-finder/introduction#q-do-you-offer-migration-assistance) **A:** Yes! We provide: * Free migration consultation * API integration support * Code review and optimization * Bulk data migration help (enterprise) * Dedicated onboarding for teams ### Q: What if Tomba doesn't have a feature I need?[](https://docs.tomba.io/migration/email-finder/introduction#q-what-if-tomba-doesnt-have-a-feature-i-need) **A:** Contact us! We actively develop based on customer feedback. Many features were built from user requests. * * * Next Steps[](https://docs.tomba.io/migration/email-finder/introduction#next-steps) ----------------------------------------------------------------------------------- 1. **Choose your migration guide** from the list above 2. **Sign up** at [app.tomba.io](https://app.tomba.io/) 3. **Test in parallel** with your current service 4. **Compare results** (accuracy, speed, data quality) 5. **Migrate workflows** gradually 6. **Train your team** on new features 7. **Cancel old service** and enjoy savings! * * * Support and Resources[](https://docs.tomba.io/migration/email-finder/introduction#support-and-resources) --------------------------------------------------------------------------------------------------------- * [Tomba API Documentation](https://docs.tomba.io/) * [Email Finder API](https://docs.tomba.io/api#tag/Email-Finder) * [Domain Search API](https://docs.tomba.io/api#tag/Domain-Search) * [SDKs and Libraries](https://docs.tomba.io/libraries) * [Chrome Extension](https://chrome.google.com/webstore/detail/tomba-email-finder/icmjegjggphchjckknoooajmklibccjb) * [Support Portal](https://help.tomba.io/) * [Live Chat](https://app.tomba.io/) - Available in dashboard Need personalized migration assistance? [Contact our team](https://app.tomba.io/contact) for dedicated support. Last modified on April 28, 2026 [Migrate from Hunter to Tomba](https://docs.tomba.io/migration/email-verifier/hunter) [Migrate from Hunter Email Finder to Tomba](https://docs.tomba.io/migration/email-finder/hunter) Javascript Javascript --- # Migrate from Prospeo to Tomba Email Finder | Tomba Documentation Menu Switch from Prospeo to Tomba for a larger database, better pricing, free verification, and more features. * * * Why Switch from Prospeo to Tomba?[](https://docs.tomba.io/migration/email-finder/prospeo#why-switch-from-prospeo-to-tomba) --------------------------------------------------------------------------------------------------------------------------- | Feature | Prospeo | Tomba | | --- | --- | --- | | **Database Size** | 100M emails | 450M+ emails (5x larger) | | **Accuracy** | 87-92% | 98%+ | | **Email Verification** | Paid extra | FREE with every search | | **Data Attributes** | 6-8 fields | 20+ fields | | **LinkedIn Export** | ✅ | ✅ Better | | **Author Finder** | ❌ | ✅ | | **Phone Finder** | ❌ | ✅ Finder & Validator | | **Technology Detection** | ❌ | ✅ 6000+ techs | | **Similar Companies** | ❌ | ✅ | | **Chrome Extension** | ✅ | ✅ Enhanced | | **Google Sheets** | ❌ | ✅ | | **Excel Integration** | ❌ | ✅ Native add-in | | **Airtable Extension** | ❌ | ✅ Native | | **MCP/AI Integration** | ❌ | ✅ | | **Pricing (10k searches)** | $199/mo | $119/mo (40% savings) | * * * Migration Steps[](https://docs.tomba.io/migration/email-finder/prospeo#migration-steps) ---------------------------------------------------------------------------------------- ### Step 1: Get Tomba Credentials[](https://docs.tomba.io/migration/email-finder/prospeo#step-1-get-tomba-credentials) 1. Sign up at [app.tomba.io](https://app.tomba.io/) 2. Get your **API Key** and **Secret Key** ### Step 2: Update API Endpoints[](https://docs.tomba.io/migration/email-finder/prospeo#step-2-update-api-endpoints) **Prospeo:** Code `POST https://api.prospeo.io/email-finder` **Tomba:** Code `GET https://api.tomba.io/v1/email-finder` ### Step 3: Update Authentication[](https://docs.tomba.io/migration/email-finder/prospeo#step-3-update-authentication) **Prospeo:** Code `{ headers: { 'X-KEY': PROSPEO_KEY } }` **Tomba:** Code `{ headers: { 'X-Tomba-Key': TOMBA_KEY, 'X-Tomba-Secret': TOMBA_SECRET } }` * * * Code Examples[](https://docs.tomba.io/migration/email-finder/prospeo#code-examples) ------------------------------------------------------------------------------------ ### Node.js[](https://docs.tomba.io/migration/email-finder/prospeo#nodejs) **Before (Prospeo):** Code `const axios = require("axios"); async function findEmail(domain, firstName, lastName) { const response = await axios.post( "https://api.prospeo.io/email-finder", { domain: domain, first_name: firstName, last_name: lastName, }, { headers: { "X-KEY": process.env.PROSPEO_KEY }, }, ); return response.data; } // Verification costs extra async function verifyEmail(email) { const response = await axios.post( "https://api.prospeo.io/email-verifier", { email: email }, { headers: { "X-KEY": process.env.PROSPEO_KEY } }, ); return response.data; }` **After (Tomba with FREE verification):** Code ``const axios = require("axios"); async function findEmail(domain, firstName, lastName) { const response = await axios.get("https://api.tomba.io/v1/email-finder", { params: { domain: domain, first_name: firstName, last_name: lastName, }, headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }); const data = response.data.data; // Verification included FREE! console.log(`Email: ${data.email}`); console.log(`Verified: ${data.verification.status}`); console.log(`Score: ${data.score}`); console.log(`Phone: ${data.phone_number}`); // BONUS! return data; } // No separate verification call needed!`` ### Python[](https://docs.tomba.io/migration/email-finder/prospeo#python) **Before (Prospeo):** Code `import requests def find_email(domain, first_name, last_name): response = requests.post( 'https://api.prospeo.io/email-finder', json={ 'domain': domain, 'first_name': first_name, 'last_name': last_name }, headers={'X-KEY': os.environ['PROSPEO_KEY']} ) return response.json() def verify_email(email): # Extra cost response = requests.post( 'https://api.prospeo.io/email-verifier', json={'email': email}, headers={'X-KEY': os.environ['PROSPEO_KEY']} ) return response.json()` **After (Tomba):** Code `import requests def find_email(domain, first_name, last_name): response = requests.get( 'https://api.tomba.io/v1/email-finder', params={ 'domain': domain, 'first_name': first_name, 'last_name': last_name }, headers={ 'X-Tomba-Key': os.environ['TOMBA_KEY'], 'X-Tomba-Secret': os.environ['TOMBA_SECRET'] } ) data = response.json()['data'] # Verification included FREE! print(f"Verified: {data['verification']['status']}") print(f"Phone: {data.get('phone_number', 'N/A')}") return data # No separate verification needed!` * * * LinkedIn Export Migration[](https://docs.tomba.io/migration/email-finder/prospeo#linkedin-export-migration) ------------------------------------------------------------------------------------------------------------ ### Prospeo LinkedIn Export[](https://docs.tomba.io/migration/email-finder/prospeo#prospeo-linkedin-export) **Before:** Export LinkedIn leads → Prospeo enrichment **After:** Use Tomba LinkedIn Finder directly Code `// Tomba LinkedIn Finder (direct) const axios = require("axios"); async function enrichLinkedInProfile(linkedinUrl) { const response = await axios.get("https://api.tomba.io/v1/linkedin", { params: { url: linkedinUrl }, headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }); const data = response.data.data; return { email: data.email, phone: data.phone_number, verified: data.verification.status, company: data.company, position: data.position, linkedin: data.linkedin, }; } // Process LinkedIn Sales Navigator export const csvData = readCSV("linkedin_export.csv"); for (const row of csvData) { const enriched = await enrichLinkedInProfile(row.linkedin_url); // Save to CRM }` * * * Cost Comparison[](https://docs.tomba.io/migration/email-finder/prospeo#cost-comparison) ---------------------------------------------------------------------------------------- ### 10,000 Emails/Month[](https://docs.tomba.io/migration/email-finder/prospeo#10000-emailsmonth) **Prospeo:** * Plan: $199/month (10,000 credits) * Verification: $80/month (10,000 @ $0.008) * **Total: $279/month** **Tomba:** * Plan: $119/month (10,000 searches) * Verification: FREE * **Total: $119/month** **💰 Savings: $160/month = $1,920/year (57% cheaper!)** * * * Unique Tomba Features[](https://docs.tomba.io/migration/email-finder/prospeo#unique-tomba-features) ---------------------------------------------------------------------------------------------------- ### Author Finder[](https://docs.tomba.io/migration/email-finder/prospeo#author-finder) Code `const author = await axios.get("https://api.tomba.io/v1/author-finder", { params: { url: "https://example.com/blog/article" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, });` ### Technology Detection[](https://docs.tomba.io/migration/email-finder/prospeo#technology-detection) Code `const tech = await axios.get("https://api.tomba.io/v1/technology", { params: { domain: "stripe.com" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, });` ### Similar Companies[](https://docs.tomba.io/migration/email-finder/prospeo#similar-companies) Code `const similar = await axios.get("https://api.tomba.io/v1/similar", { params: { domain: "stripe.com" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, });` ### Phone Finder[](https://docs.tomba.io/migration/email-finder/prospeo#phone-finder) Code `const phone = await axios.get("https://api.tomba.io/v1/phone-finder", { params: { full_name: "John Doe", domain: "stripe.com", }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, });` * * * Bulk Operations[](https://docs.tomba.io/migration/email-finder/prospeo#bulk-operations) ---------------------------------------------------------------------------------------- Code `// Bulk email finding with Tomba const axios = require("axios"); async function bulkFind(contacts) { const response = await axios.post( "https://api.tomba.io/v1/bulk/email-finder", { contacts: contacts }, { headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }, ); return response.data.task_id; } // Process thousands of contacts const contacts = [ { domain: "stripe.com", first_name: "John", last_name: "Doe" }, { domain: "shopify.com", first_name: "Jane", last_name: "Smith" }, // ... thousands more ]; const taskId = await bulkFind(contacts);` * * * Migration Checklist[](https://docs.tomba.io/migration/email-finder/prospeo#migration-checklist) ------------------------------------------------------------------------------------------------ * [ ] Sign up for Tomba * [ ] Get API credentials * [ ] Update API endpoints * [ ] Update authentication * [ ] Test email finding * [ ] Migrate LinkedIn workflows * [ ] Update bulk operations * [ ] Install Chrome extension * [ ] Train team * [ ] Cancel Prospeo subscription * * * Support[](https://docs.tomba.io/migration/email-finder/prospeo#support) ------------------------------------------------------------------------ * [API Documentation](https://docs.tomba.io/) * [Email Finder API](https://docs.tomba.io/api#tag/Email-Finder) * [LinkedIn Finder](https://docs.tomba.io/bulks/linkedin-finder) * [Support Portal](https://help.tomba.io/) Need help? [Contact us](https://app.tomba.io/contact) for migration assistance. Last modified on April 28, 2026 [Migrate from Snov.io to Tomba Email Finder](https://docs.tomba.io/migration/email-finder/snov) [Migrate from Findymail to Tomba Email Finder](https://docs.tomba.io/migration/email-finder/findymail) Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript --- # Clearbit Company API Replacement | Tomba Documentation Menu This guide provides step-by-step instructions for migrating from Clearbit's Company API to Tomba's `/companies/find` endpoint. * * * API Comparison[](https://docs.tomba.io/migration/clearbit/company-api#api-comparison) -------------------------------------------------------------------------------------- | Feature | Clearbit Company API | Tomba Company API | | --- | --- | --- | | **Endpoint** | `company.clearbit.com/v2/companies/find` | `api.tomba.io/v1/companies/find` | | **Input** | Domain | Domain | | **Authentication** | Bearer token | API Key + Secret headers | | **Rate Limit** | 600 req/min | 300 req/min | | **Company Data** | ✅ | ✅ Enhanced | | **Social Profiles** | ✅ | ✅ | | **Logo & Assets** | ✅ | ✅ | | **Technology Stack** | ❌ | ✅ 6000+ technologies | | **Similar Companies** | ❌ | ✅ | | **Phone Number** | Limited | ✅ Verified | | **Email Count** | ❌ | ✅ | | **Free Trial** | 50 calls | 50 searches + 500 verifications | * * * Endpoint Migration[](https://docs.tomba.io/migration/clearbit/company-api#endpoint-migration) ---------------------------------------------------------------------------------------------- ### Clearbit Company API[](https://docs.tomba.io/migration/clearbit/company-api#clearbit-company-api) Code `GET https://company.clearbit.com/v2/companies/find?domain=tomba.io Authorization: Bearer sk_clearbit_xxx` ### Tomba Company API[](https://docs.tomba.io/migration/clearbit/company-api#tomba-company-api) Code `GET https://api.tomba.io/v1/companies/find?domain=tomba.io X-Tomba-Key: your-api-key X-Tomba-Secret: your-secret-key` * * * Response Format Comparison[](https://docs.tomba.io/migration/clearbit/company-api#response-format-comparison) -------------------------------------------------------------------------------------------------------------- ### Clearbit Response[](https://docs.tomba.io/migration/clearbit/company-api#clearbit-response) Code `{ "id": "027b0d40-016c-40ea-8925-a076fa640992", "name": "Tomba", "legalName": "Tomba Technology Web Service LLC", "domain": "tomba.io", "domainAliases": [], "url": "https://tomba.io", "site": { "title": "Tomba - Email Finder", "h1": "Find Anyone's Email Address", "metaDescription": "Tomba helps you find email addresses", "phoneNumbers": ["+1-234-567-8900"] }, "tags": ["Technology", "B2B", "SaaS"], "description": "Email finding and verification platform", "foundedYear": 2018, "location": "123 Tech Street, San Francisco, CA 94105, USA", "timeZone": "America/Los_Angeles", "utcOffset": -8, "geo": { "streetNumber": "123", "streetName": "Tech Street", "subPremise": null, "city": "San Francisco", "postalCode": "94105", "state": "California", "stateCode": "CA", "country": "United States", "countryCode": "US", "lat": 37.7749, "lng": -122.4194 }, "logo": "https://logo.clearbit.com/tomba.io", "facebook": { "handle": "tombaio" }, "linkedin": { "handle": "company/tomba" }, "twitter": { "handle": "tomba_io", "id": "123456789", "followers": 5000 }, "crunchbase": { "handle": "organization/tomba" }, "emailProvider": false, "type": "private", "ticker": null, "phone": "+1-234-567-8900", "metrics": { "alexaUsRank": 50000, "alexaGlobalRank": 150000, "googleRank": 5, "employees": 50, "employeesRange": "11-50", "marketCap": null, "raised": 2000000, "annualRevenue": null, "estimatedAnnualRevenue": "$5M-$10M" }, "category": { "sector": "Information Technology", "industryGroup": "Software", "industry": "Application Software", "subIndustry": "Business Intelligence Software", "gicsCode": "45103010" }, "tech": ["google_analytics", "stripe"], "parent": { "domain": null } }` ### Tomba Response[](https://docs.tomba.io/migration/clearbit/company-api#tomba-response) Code `{ "data": { "organization": "Tomba", "email_count": 15, "phone_number": "+1-234-567-8900", "website": "https://tomba.io", "country": "US", "state": "California", "city": "San Francisco", "postal_code": "94105", "street": "123 Tech Street", "revenue": "5000000-10000000", "employees": "11-50", "founded": 2018, "industry": "Computer Software", "description": "Tomba helps you find and verify professional email addresses", "logo": "https://d12h6n0d1mbsct.cloudfront.net/logos/tomba-io.jpg", "twitter": "tomba_io", "linkedin": "tomba", "facebook": "tombaio", "technologies": [ { "name": "Google Analytics", "category": "Analytics", "icon": "https://d12h6n0d1mbsct.cloudfront.net/technologies/google-analytics.png" }, { "name": "Stripe", "category": "Payment", "icon": "https://d12h6n0d1mbsct.cloudfront.net/technologies/stripe.png" } ], "similar_domains": ["xxx.io", "xxx.io", "xxx.com"] } }` * * * Field Mapping[](https://docs.tomba.io/migration/clearbit/company-api#field-mapping) ------------------------------------------------------------------------------------ | Clearbit Field | Tomba Field | Notes | | --- | --- | --- | | `name` | `organization` | Company name | | `domain` | N/A | Input parameter | | `url` | `website` | Company website | | `description` | `description` | Company description | | `foundedYear` | `founded` | Year founded | | `geo.city` | `city` | City location | | `geo.state` | `state` | State/Province | | `geo.country` | `country` | Country code | | `geo.postalCode` | `postal_code` | Postal code | | `geo.streetName` + `geo.streetNumber` | `street` | Street address | | `logo` | `logo` | Logo URL | | `phone` | `phone_number` | Company phone | | `metrics.employees` | `employees` | Employee count | | `metrics.estimatedAnnualRevenue` | `revenue` | Revenue estimate | | `facebook.handle` | `facebook` | Facebook username | | `linkedin.handle` | `linkedin` | LinkedIn handle | | `twitter.handle` | `twitter` | Twitter handle | | `tech` | `technologies` | **Enhanced array with details** | | N/A | `email_count` | **New: Total emails available** | | N/A | `similar_domains` | **New: Competitor list** | * * * Code Examples[](https://docs.tomba.io/migration/clearbit/company-api#code-examples) ------------------------------------------------------------------------------------ ### Node.js / JavaScript[](https://docs.tomba.io/migration/clearbit/company-api#nodejs--javascript) **Before (Clearbit):** Code ``const clearbit = require("clearbit")("sk_clearbit_xxx"); async function getCompany(domain) { try { const company = await clearbit.Company.find({ domain }); return { name: company.name, employees: company.metrics?.employees, industry: company.category?.industry, location: `${company.geo?.city}, ${company.geo?.country}`, }; } catch (error) { console.error("Clearbit error:", error); throw error; } }`` **After (Tomba):** Code ``const axios = require("axios"); async function getCompany(domain) { try { const response = await axios.get( "https://api.tomba.io/v1/companies/find", { params: { domain }, headers: { "X-Tomba-Key": process.env.TOMBA_API_KEY, "X-Tomba-Secret": process.env.TOMBA_API_SECRET, }, }, ); const company = response.data.data; return { name: company.organization, employees: company.employees, industry: company.industry, location: `${company.city}, ${company.country}`, // Bonus fields not in Clearbit emailCount: company.email_count, technologies: company.technologies?.map((t) => t.name), competitors: company.similar_domains, }; } catch (error) { console.error("Tomba error:", error); throw error; } } // Usage getCompany("stripe.com").then(console.log);`` ### Python[](https://docs.tomba.io/migration/clearbit/company-api#python) **Before (Clearbit):** Code `import clearbit clearbit.key = 'sk_clearbit_xxx' def get_company(domain): try: company = clearbit.Company.find(domain=domain) return { 'name': company['name'], 'employees': company.get('metrics', {}).get('employees'), 'industry': company.get('category', {}).get('industry'), 'location': f"{company.get('geo', {}).get('city')}, {company.get('geo', {}).get('country')}" } except clearbit.errors.NotFoundError: return None` **After (Tomba):** Code `import requests import os def get_company(domain): try: response = requests.get( 'https://api.tomba.io/v1/companies/find', params={'domain': domain}, headers={ 'X-Tomba-Key': os.getenv('TOMBA_API_KEY'), 'X-Tomba-Secret': os.getenv('TOMBA_API_SECRET') } ) response.raise_for_status() company = response.json()['data'] return { 'name': company['organization'], 'employees': company.get('employees'), 'industry': company.get('industry'), 'location': f"{company.get('city')}, {company.get('country')}", # Bonus fields 'email_count': company.get('email_count'), 'technologies': [t['name'] for t in company.get('technologies', [])], 'competitors': company.get('similar_domains', []) } except requests.exceptions.HTTPError as e: if e.response.status_code == 404: return None raise # Usage company = get_company('stripe.com') print(company)` ### PHP[](https://docs.tomba.io/migration/clearbit/company-api#php) **Before (Clearbit):** Code `find(['domain' => $domain]); return [ 'name' => $company->name, 'employees' => $company->metrics->employees ?? null, 'industry' => $company->category->industry ?? null, 'location' => "{$company->geo->city}, {$company->geo->country}" ]; } catch (\Clearbit\Errors\NotFoundError $e) { return null; } }` **After (Tomba):** Code `get('https://api.tomba.io/v1/companies/find', [ 'query' => ['domain' => $domain], 'headers' => [ 'X-Tomba-Key' => getenv('TOMBA_API_KEY'), 'X-Tomba-Secret' => getenv('TOMBA_API_SECRET') ] ]); $company = json_decode($response->getBody())->data; return [ 'name' => $company->organization, 'employees' => $company->employees ?? null, 'industry' => $company->industry ?? null, 'location' => "{$company->city}, {$company->country}", // Bonus fields 'email_count' => $company->email_count ?? 0, 'technologies' => array_map(fn($t) => $t->name, $company->technologies ?? []), 'competitors' => $company->similar_domains ?? [] ]; } catch (\GuzzleHttp\Exception\ClientException $e) { if ($e->getResponse()->getStatusCode() === 404) { return null; } throw $e; } } // Usage $company = getCompany('stripe.com'); print_r($company);` ### Ruby[](https://docs.tomba.io/migration/clearbit/company-api#ruby) **Before (Clearbit):** Code `require 'clearbit' Clearbit.key = 'sk_clearbit_xxx' def get_company(domain) company = Clearbit::Enrichment::Company.find(domain: domain) { name: company.name, employees: company.metrics&.employees, industry: company.category&.industry, location: "#{company.geo&.city}, #{company.geo&.country}" } rescue Clearbit::NotFoundError nil end` **After (Tomba):** Code `require 'httparty' def get_company(domain) response = HTTParty.get( 'https://api.tomba.io/v1/companies/find', query: { domain: domain }, headers: { 'X-Tomba-Key' => ENV['TOMBA_API_KEY'], 'X-Tomba-Secret' => ENV['TOMBA_API_SECRET'] } ) return nil if response.code == 404 raise "API Error: #{response.code}" unless response.success? company = response.parsed_response['data'] { name: company['organization'], employees: company['employees'], industry: company['industry'], location: "#{company['city']}, #{company['country']}", # Bonus fields email_count: company['email_count'], technologies: company['technologies']&.map { |t| t['name'] }, competitors: company['similar_domains'] } end # Usage company = get_company('stripe.com') puts company` * * * Enhanced Features[](https://docs.tomba.io/migration/clearbit/company-api#enhanced-features) -------------------------------------------------------------------------------------------- ### Technology Stack Detection[](https://docs.tomba.io/migration/clearbit/company-api#technology-stack-detection) Tomba provides detailed technology information not available in Clearbit: Code ``const response = await axios.get("https://api.tomba.io/v1/companies/find", { params: { domain: "shopify.com" }, headers: { "X-Tomba-Key": process.env.TOMBA_API_KEY, "X-Tomba-Secret": process.env.TOMBA_API_SECRET, }, }); console.log("Technologies used:"); response.data.data.technologies.forEach((tech) => { console.log(`- ${tech.name} (${tech.category})`); }); // Output: // - Google Analytics (Analytics) // - Stripe (Payment Processing) // - Cloudflare (CDN) // - Shopify (E-commerce) // - Mailchimp (Email Marketing)`` ### Similar Companies / Competitors[](https://docs.tomba.io/migration/clearbit/company-api#similar-companies--competitors) Find competitors automatically: Code ``const company = response.data.data; console.log(`Companies similar to ${company.organization}:`); console.log(company.similar_domains); // Output: // ['bigcommerce.com', 'woocommerce.com', 'magento.com']`` ### Email Count[](https://docs.tomba.io/migration/clearbit/company-api#email-count) Know how many contacts are available: Code ``const company = response.data.data; console.log( `${company.email_count} contacts available at ${company.organization}`, ); // Output: "147 contacts available at Shopify"`` * * * Error Handling[](https://docs.tomba.io/migration/clearbit/company-api#error-handling) -------------------------------------------------------------------------------------- ### Clearbit Errors[](https://docs.tomba.io/migration/clearbit/company-api#clearbit-errors) Code `try { const company = await clearbit.Company.find({ domain }); } catch (error) { if (error.type === "not_found") { // Company not found } else if (error.type === "rate_limit") { // Rate limited } else if (error.type === "invalid_request") { // Bad request } }` ### Tomba Errors[](https://docs.tomba.io/migration/clearbit/company-api#tomba-errors) Code `try { const response = await axios.get("https://api.tomba.io/v1/companies/find", { params: { domain }, headers: { "X-Tomba-Key": process.env.TOMBA_API_KEY, "X-Tomba-Secret": process.env.TOMBA_API_SECRET, }, }); } catch (error) { if (error.response?.status === 404) { // Company not found console.log("Company not found in database"); } else if (error.response?.status === 429) { // Rate limited console.log("Rate limit exceeded"); } else if (error.response?.status === 400) { // Bad request console.log("Invalid domain format"); } else if (error.response?.status === 401) { // Authentication failed console.log("Invalid API credentials"); } }` * * * Testing[](https://docs.tomba.io/migration/clearbit/company-api#testing) ------------------------------------------------------------------------ ### Sample Test Cases[](https://docs.tomba.io/migration/clearbit/company-api#sample-test-cases) Code `const assert = require("assert"); describe("Company API Migration", () => { it("should return company data for valid domain", async () => { const company = await getCompany("stripe.com"); assert(company.name); assert(company.location); assert(company.industry); assert.ok(company.emailCount > 0); // New field }); it("should return null for non-existent domain", async () => { const company = await getCompany("thisdoesnotexist12345.com"); assert.strictEqual(company, null); }); it("should include technology data", async () => { const company = await getCompany("shopify.com"); assert(Array.isArray(company.technologies)); assert(company.technologies.length > 0); }); it("should include similar companies", async () => { const company = await getCompany("salesforce.com"); assert(Array.isArray(company.competitors)); }); });` * * * Migration Checklist[](https://docs.tomba.io/migration/clearbit/company-api#migration-checklist) ------------------------------------------------------------------------------------------------ * [ ] Update authentication to use API Key + Secret headers * [ ] Change base URL to `api.tomba.io/v1` * [ ] Update field mappings in your code * [ ] Add handling for new fields (technologies, similar\_domains, email\_count) * [ ] Update error handling for Tomba response codes * [ ] Test with sample domains * [ ] Update type definitions/interfaces * [ ] Test edge cases (invalid domains, rate limits) * [ ] Deploy to staging environment * [ ] Monitor API responses * [ ] Deploy to production * * * Next Steps[](https://docs.tomba.io/migration/clearbit/company-api#next-steps) ------------------------------------------------------------------------------ * [Person API Migration](https://docs.tomba.io/migration/clearbit/person-api) - Enrich person data * [Combined API Migration](https://docs.tomba.io/migration/clearbit/combined-api) - Get person + company data * [Full API Documentation](https://docs.tomba.io/) * * * **Need help with migration?** Contact our support team at [support@tomba.io](mailto:support@tomba.io) for personalized migration assistance. Last modified on December 1, 2025 [Clearbit API Replacement - Migrate to Tomba](https://docs.tomba.io/migration/clearbit/introduction) [Clearbit Person API Replacement](https://docs.tomba.io/migration/clearbit/person-api) JSON JSON Javascript Javascript PHP PHP Ruby Ruby Javascript Javascript Javascript Javascript Javascript Javascript --- # Migrate from Findymail to Tomba Email Finder | Tomba Documentation Menu Switch from Findymail to Tomba for better pricing, more features, and superior data enrichment. * * * Why Switch from Findymail to Tomba?[](https://docs.tomba.io/migration/email-finder/findymail#why-switch-from-findymail-to-tomba) --------------------------------------------------------------------------------------------------------------------------------- | Feature | Findymail | Tomba | | --- | --- | --- | | **Database Size** | 250M emails | 450M+ emails | | **Accuracy** | 90-95% | 98%+ | | **Email Verification** | ✅ Included | ✅ FREE included | | **Data Attributes** | 12 fields | 20+ fields | | **Waterfall Enrichment** | ✅ | API-based alternative | | **Author Finder** | ❌ | ✅ | | **Phone Finder** | ⚠️ Limited | ✅ Finder & Validator | | **Technology Detection** | ❌ | ✅ 6000+ techs | | **Similar Companies** | ❌ | ✅ | | **LinkedIn Finder** | ✅ | ✅ Better | | **Chrome Extension** | ✅ | ✅ Enhanced | | **Google Sheets** | ❌ | ✅ | | **Excel Integration** | ❌ | ✅ Native add-in | | **Airtable Extension** | ❌ | ✅ Native | | **MCP/AI Integration** | ❌ | ✅ Claude, ChatGPT | | **Pricing (10k searches)** | $199/mo | $119/mo (40% savings) | * * * Migration Steps[](https://docs.tomba.io/migration/email-finder/findymail#migration-steps) ------------------------------------------------------------------------------------------ ### Step 1: Get Tomba Credentials[](https://docs.tomba.io/migration/email-finder/findymail#step-1-get-tomba-credentials) 1. Sign up at [app.tomba.io](https://app.tomba.io/) 2. Get your **API Key** and **Secret Key** ### Step 2: Update API Endpoints[](https://docs.tomba.io/migration/email-finder/findymail#step-2-update-api-endpoints) **Findymail:** Code `POST https://api.findymail.com/v1/search/name` **Tomba:** Code `GET https://api.tomba.io/v1/email-finder` ### Step 3: Update Authentication[](https://docs.tomba.io/migration/email-finder/findymail#step-3-update-authentication) **Findymail:** Code ``{ headers: { 'Authorization': `Bearer ${FINDYMAIL_KEY}` } }`` **Tomba:** Code `{ headers: { 'X-Tomba-Key': TOMBA_KEY, 'X-Tomba-Secret': TOMBA_SECRET } }` * * * Code Examples[](https://docs.tomba.io/migration/email-finder/findymail#code-examples) -------------------------------------------------------------------------------------- ### Node.js[](https://docs.tomba.io/migration/email-finder/findymail#nodejs) **Before (Findymail):** Code ``const axios = require("axios"); async function findEmail(domain, firstName, lastName) { const response = await axios.post( "https://api.findymail.com/v1/search/name", { domain: domain, first_name: firstName, last_name: lastName, }, { headers: { Authorization: `Bearer ${process.env.FINDYMAIL_KEY}` }, }, ); return response.data; }`` **After (Tomba):** Code ``const axios = require("axios"); async function findEmail(domain, firstName, lastName) { const response = await axios.get("https://api.tomba.io/v1/email-finder", { params: { domain: domain, first_name: firstName, last_name: lastName, }, headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }); const data = response.data.data; console.log(`Email: ${data.email}`); console.log(`Verified: ${data.verification.status}`); console.log(`Score: ${data.score}`); console.log(`Phone: ${data.phone_number}`); console.log(`LinkedIn: ${data.linkedin}`); console.log(`Company Size: ${data.company.size}`); return data; }`` **Using Tomba SDK:** Code `const Tomba = require("tomba"); const client = new Tomba.Client() .setKey(process.env.TOMBA_KEY) .setSecret(process.env.TOMBA_SECRET); const finder = new Tomba.Finder(client); async function findEmail(domain, firstName, lastName) { const result = await finder.emailFinder({ domain: domain, first_name: firstName, last_name: lastName, }); return result.data; }` ### Python[](https://docs.tomba.io/migration/email-finder/findymail#python) **Before (Findymail):** Code `import requests def find_email(domain, first_name, last_name): response = requests.post( 'https://api.findymail.com/v1/search/name', json={ 'domain': domain, 'first_name': first_name, 'last_name': last_name }, headers={'Authorization': f'Bearer {os.environ["FINDYMAIL_KEY"]}'} ) return response.json()` **After (Tomba):** Code `import requests def find_email(domain, first_name, last_name): response = requests.get( 'https://api.tomba.io/v1/email-finder', params={ 'domain': domain, 'first_name': first_name, 'last_name': last_name }, headers={ 'X-Tomba-Key': os.environ['TOMBA_KEY'], 'X-Tomba-Secret': os.environ['TOMBA_SECRET'] } ) data = response.json()['data'] print(f"Email: {data['email']}") print(f"Verified: {data['verification']['status']}") print(f"Phone: {data.get('phone_number', 'N/A')}") return data` **Using Tomba SDK:** Code `from tomba import Client, Finder client = Client() client.set_key(os.environ['TOMBA_KEY']) client.set_secret(os.environ['TOMBA_SECRET']) finder = Finder(client) def find_email(domain, first_name, last_name): result = finder.email_finder( domain=domain, first_name=first_name, last_name=last_name ) return result['data']` * * * Waterfall Enrichment Alternative[](https://docs.tomba.io/migration/email-finder/findymail#waterfall-enrichment-alternative) ---------------------------------------------------------------------------------------------------------------------------- Findymail's waterfall enrichment can be replicated with Tomba's API: Code `const axios = require("axios"); async function waterfallEnrichment(domain, firstName, lastName, linkedinUrl) { const headers = { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }; // Try 1: Email Finder try { const emailResult = await axios.get( "https://api.tomba.io/v1/email-finder", { params: { domain, first_name: firstName, last_name: lastName }, headers, }, ); if (emailResult.data.data.email) { return enrichData(emailResult.data.data); } } catch (e) {} // Try 2: LinkedIn Finder if (linkedinUrl) { try { const linkedinResult = await axios.get( "https://api.tomba.io/v1/linkedin", { params: { url: linkedinUrl }, headers, }, ); if (linkedinResult.data.data.email) { return enrichData(linkedinResult.data.data); } } catch (e) {} } // Try 3: Domain Search (find similar contacts) try { const domainResult = await axios.get( "https://api.tomba.io/v1/domain-search", { params: { domain }, headers, }, ); // Find best match const match = findBestMatch( domainResult.data.data.emails, firstName, lastName, ); if (match) { return enrichData(match); } } catch (e) {} return null; } function enrichData(data) { return { email: data.email, verified: data.verification?.status === "valid", phone: data.phone_number, linkedin: data.linkedin, position: data.position, company: data.company, score: data.score, }; }` * * * Cost Comparison[](https://docs.tomba.io/migration/email-finder/findymail#cost-comparison) ------------------------------------------------------------------------------------------ ### 10,000 Emails/Month[](https://docs.tomba.io/migration/email-finder/findymail#10000-emailsmonth) **Findymail:** * Growth Plan: $199/month (10,000 credits) * Verification: Included * **Total: $199/month** **Tomba:** * Growth Plan: $119/month (10,000 searches) * Verification: FREE included * **Total: $119/month** **💰 Savings: $80/month = $960/year (40% cheaper!)** ### 50,000 Emails/Month[](https://docs.tomba.io/migration/email-finder/findymail#50000-emailsmonth) **Findymail:** * Scale Plan: $999/month (50,000 credits) * **Total: $999/month** **Tomba:** * Enterprise Plan: $599/month (50,000 searches) * **Total: $599/month** **💰 Savings: $400/month = $4,800/year (40% cheaper!)** * * * Unique Tomba Features[](https://docs.tomba.io/migration/email-finder/findymail#unique-tomba-features) ------------------------------------------------------------------------------------------------------ ### Author Finder[](https://docs.tomba.io/migration/email-finder/findymail#author-finder) Code ``// Find email from article URL const author = await axios.get("https://api.tomba.io/v1/author-finder", { params: { url: "https://example.com/blog/article" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); console.log(`Author: ${author.data.data.email}`);`` ### Technology Detection[](https://docs.tomba.io/migration/email-finder/findymail#technology-detection) Code ``// Detect tech stack for targeting const tech = await axios.get("https://api.tomba.io/v1/technology", { params: { domain: "stripe.com" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); console.log(`Technologies: ${tech.data.data.technologies.length}`); // Returns: React, Node.js, AWS, etc.`` ### Similar Companies[](https://docs.tomba.io/migration/email-finder/findymail#similar-companies) Code ``// Find lookalike companies const similar = await axios.get("https://api.tomba.io/v1/similar", { params: { domain: "stripe.com" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); console.log(`Similar companies: ${similar.data.data.companies.length}`);`` ### Enhanced Phone Finder[](https://docs.tomba.io/migration/email-finder/findymail#enhanced-phone-finder) Code ``// Find verified phone numbers const phone = await axios.get("https://api.tomba.io/v1/phone-finder", { params: { full_name: "John Doe", domain: "stripe.com", }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); console.log(`Phone: ${phone.data.data.phone_number}`);`` * * * Bulk Operations[](https://docs.tomba.io/migration/email-finder/findymail#bulk-operations) ------------------------------------------------------------------------------------------ Code `// Bulk email finding const axios = require("axios"); async function bulkFind(contacts) { const response = await axios.post( "https://api.tomba.io/v1/bulk/email-finder", { contacts: contacts }, { headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }, ); const taskId = response.data.task_id; // Poll for results or use webhook return taskId; } // Process thousands const contacts = [ { domain: "stripe.com", first_name: "John", last_name: "Doe" }, { domain: "shopify.com", first_name: "Jane", last_name: "Smith" }, // ... more ]; const taskId = await bulkFind(contacts);` * * * Migration Checklist[](https://docs.tomba.io/migration/email-finder/findymail#migration-checklist) -------------------------------------------------------------------------------------------------- * [ ] Sign up for Tomba * [ ] Get API credentials * [ ] Update API endpoints * [ ] Update authentication * [ ] Test email finding * [ ] Migrate waterfall logic * [ ] Update bulk operations * [ ] Install Chrome extension * [ ] Setup Google Sheets/Excel * [ ] Train team * [ ] Cancel Findymail subscription * * * Support[](https://docs.tomba.io/migration/email-finder/findymail#support) -------------------------------------------------------------------------- * [API Documentation](https://docs.tomba.io/) * [Email Finder API](https://docs.tomba.io/api#tag/Email-Finder) * [Bulk Operations](https://docs.tomba.io/bulks/email-finder) * [Support Portal](https://help.tomba.io/) Need help? [Contact us](https://app.tomba.io/contact) for migration assistance. * * * FAQ[](https://docs.tomba.io/migration/email-finder/findymail#faq) ------------------------------------------------------------------ **Q: What about waterfall enrichment?** A: Replicate it using Tomba's Email Finder → LinkedIn Finder → Domain Search cascade (see code example above). **Q: Will I save money?** A: Yes! Tomba is 40% cheaper than Findymail at all volume tiers. **Q: Is accuracy comparable?** A: Tomba's accuracy is higher (98%+ vs 90-95%) thanks to our larger database and built-in verification. **Q: Can I test before migrating?** A: Yes! Sign up for a free account with 25 searches to compare results. **Q: How long does migration take?** A: Most teams complete migration in 1-2 days with our code examples and SDK support. Last modified on April 28, 2026 [Migrate from Prospeo to Tomba Email Finder](https://docs.tomba.io/migration/email-finder/prospeo) Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript --- # Clearbit Person API Replacement | Tomba Documentation Menu This guide provides step-by-step instructions for migrating from Clearbit's Person API to Tomba's `/people/find` endpoint. * * * API Comparison[](https://docs.tomba.io/migration/clearbit/person-api#api-comparison) ------------------------------------------------------------------------------------- | Feature | Clearbit Person API | Tomba Person API | | --- | --- | --- | | **Endpoint** | `person.clearbit.com/v2/people/find` | `api.tomba.io/v1/people/find` | | **Input** | Email | Email | | **Authentication** | Bearer token | API Key + Secret headers | | **Rate Limit** | 600 req/min | 300 req/min | | **Person Data** | ✅ | ✅ Enhanced | | **Social Profiles** | ✅ | ✅ More networks | | **Employment** | ✅ | ✅ | | **Email Verification** | ❌ | ✅ FREE | | **Phone Numbers** | Limited | ✅ Validated | | **LinkedIn Data** | Basic | ✅ Enhanced | | **Company Data** | Basic | ✅ Full company info | | **Free Trial** | 50 calls | 50 searches + 500 verifications | * * * Endpoint Migration[](https://docs.tomba.io/migration/clearbit/person-api#endpoint-migration) --------------------------------------------------------------------------------------------- ### Clearbit Person API[](https://docs.tomba.io/migration/clearbit/person-api#clearbit-person-api) Code `GET https://person.clearbit.com/v2/people/find?email=john@stripe.com Authorization: Bearer sk_clearbit_xxx` ### Tomba Person API[](https://docs.tomba.io/migration/clearbit/person-api#tomba-person-api) Code `GET https://api.tomba.io/v1/people/find?email=john@stripe.com X-Tomba-Key: your-api-key X-Tomba-Secret: your-secret-key` * * * Response Format Comparison[](https://docs.tomba.io/migration/clearbit/person-api#response-format-comparison) ------------------------------------------------------------------------------------------------------------- ### Clearbit Response[](https://docs.tomba.io/migration/clearbit/person-api#clearbit-response) Code `{ "id": "d54c54ad-40be-4305-8a34-0ab44710b90d", "name": { "fullName": "John Doe", "givenName": "John", "familyName": "Doe" }, "email": "john@stripe.com", "gender": null, "location": "San Francisco, CA, US", "timeZone": "America/Los_Angeles", "utcOffset": -8, "geo": { "city": "San Francisco", "state": "California", "stateCode": "CA", "country": "United States", "countryCode": "US", "lat": 37.7749, "lng": -122.4194 }, "bio": "Software Engineer passionate about building great products", "site": "https://johndoe.com", "avatar": "https://d1ts43dypk8bqh.cloudfront.net/v1/avatars/d54c54ad-40be-4305-8a34-0ab44710b90d", "employment": { "domain": "stripe.com", "name": "Stripe", "title": "Senior Software Engineer", "role": "engineering", "subRole": "engineering_manager", "seniority": "senior" }, "facebook": { "handle": "johndoe" }, "github": { "handle": "johndoe", "id": "123456", "avatar": "https://avatars.githubusercontent.com/u/123456", "company": "Stripe", "blog": "https://johndoe.com", "followers": 500, "following": 100 }, "twitter": { "handle": "johndoe", "id": "123456789", "bio": "Software Engineer @Stripe", "followers": 1000, "following": 300, "location": "San Francisco, CA", "site": "https://johndoe.com", "avatar": "https://pbs.twimg.com/profile_images/123456789/avatar.jpg" }, "linkedin": { "handle": "in/johndoe" }, "googleplus": { "handle": null }, "gravatar": { "handle": "johndoe", "urls": [], "avatar": "https://secure.gravatar.com/avatar/123456", "avatars": [] }, "fuzzy": false, "emailProvider": false, "indexedAt": "2024-01-15T10:30:00.000Z" }` ### Tomba Response[](https://docs.tomba.io/migration/clearbit/person-api#tomba-response) Code `{ "data": { "email": "john@stripe.com", "first_name": "John", "last_name": "Doe", "full_name": "John Doe", "gender": null, "phone_number": "+1-415-555-0123", "position": "Senior Software Engineer", "department": "Engineering", "seniority": "senior", "twitter": "johndoe", "linkedin": "https://www.linkedin.com/in/johndoe", "github": "johndoe", "facebook": "johndoe", "website": "https://johndoe.com", "bio": "Software Engineer passionate about building great products", "location": { "city": "San Francisco", "state": "California", "country": "United States", "country_code": "US" }, "company": { "organization": "Stripe", "domain": "stripe.com", "website": "https://stripe.com", "industry": "Financial Services", "employees": "1001-5000", "revenue": "$100M-$500M", "logo": "https://d12h6n0d1mbsct.cloudfront.net/logos/stripe-com.jpg" }, "verification": { "status": "valid", "result": "deliverable", "score": 98, "accept_all": false, "smtp_check": true, "mx_records": true, "disposable": false, "free_email": false }, "sources": [ { "uri": "https://stripe.com/about", "website_piece": "team", "extracted_on": "2024-01-15", "last_seen_on": "2024-01-15" } ] } }` * * * Field Mapping[](https://docs.tomba.io/migration/clearbit/person-api#field-mapping) ----------------------------------------------------------------------------------- | Clearbit Field | Tomba Field | Notes | | --- | --- | --- | | `name.fullName` | `full_name` | Full name | | `name.givenName` | `first_name` | First name | | `name.familyName` | `last_name` | Last name | | `email` | `email` | Email address | | `gender` | `gender` | Gender | | `bio` | `bio` | Biography | | `site` | `website` | Personal website | | `employment.title` | `position` | Job title | | `employment.role` | `department` | Department | | `employment.seniority` | `seniority` | Seniority level | | `employment.name` | `company.organization` | Company name | | `employment.domain` | `company.domain` | Company domain | | `geo.city` | `location.city` | City | | `geo.state` | `location.state` | State | | `geo.country` | `location.country` | Country | | `geo.countryCode` | `location.country_code` | Country code | | `twitter.handle` | `twitter` | Twitter handle | | `linkedin.handle` | `linkedin` | LinkedIn URL | | `github.handle` | `github` | GitHub username | | `facebook.handle` | `facebook` | Facebook username | | N/A | `phone_number` | **New: Validated phone** | | N/A | `verification` | **New: Email verification** | | N/A | `company.*` | **New: Full company data** | | N/A | `sources` | **New: Data sources** | * * * Code Examples[](https://docs.tomba.io/migration/clearbit/person-api#code-examples) ----------------------------------------------------------------------------------- ### Node.js / JavaScript[](https://docs.tomba.io/migration/clearbit/person-api#nodejs--javascript) **Before (Clearbit):** Code ``const clearbit = require("clearbit")("sk_clearbit_xxx"); async function getPerson(email) { try { const person = await clearbit.Person.find({ email }); return { name: person.name?.fullName, position: person.employment?.title, company: person.employment?.name, location: `${person.geo?.city}, ${person.geo?.countryCode}`, linkedin: person.linkedin?.handle, }; } catch (error) { console.error("Clearbit error:", error); throw error; } }`` **After (Tomba):** Code ``const axios = require("axios"); async function getPerson(email) { try { const response = await axios.get( "https://api.tomba.io/v1/people/find", { params: { email }, headers: { "X-Tomba-Key": process.env.TOMBA_API_KEY, "X-Tomba-Secret": process.env.TOMBA_API_SECRET, }, }, ); const person = response.data.data; return { name: person.full_name, position: person.position, company: person.company?.organization, location: `${person.location?.city}, ${person.location?.country_code}`, linkedin: person.linkedin, // Bonus fields not in Clearbit phone: person.phone_number, emailValid: person.verification?.status === "valid", emailScore: person.verification?.score, companyRevenue: person.company?.revenue, companyEmployees: person.company?.employees, }; } catch (error) { console.error("Tomba error:", error); throw error; } } // Usage getPerson("john@stripe.com").then(console.log);`` ### Python[](https://docs.tomba.io/migration/clearbit/person-api#python) **Before (Clearbit):** Code `import clearbit clearbit.key = 'sk_clearbit_xxx' def get_person(email): try: person = clearbit.Person.find(email=email) return { 'name': person.get('name', {}).get('fullName'), 'position': person.get('employment', {}).get('title'), 'company': person.get('employment', {}).get('name'), 'location': f"{person.get('geo', {}).get('city')}, {person.get('geo', {}).get('countryCode')}", 'linkedin': person.get('linkedin', {}).get('handle') } except clearbit.errors.NotFoundError: return None` **After (Tomba):** Code `import requests import os def get_person(email): try: response = requests.get( 'https://api.tomba.io/v1/people/find', params={'email': email}, headers={ 'X-Tomba-Key': os.getenv('TOMBA_API_KEY'), 'X-Tomba-Secret': os.getenv('TOMBA_API_SECRET') } ) response.raise_for_status() person = response.json()['data'] return { 'name': person.get('full_name'), 'position': person.get('position'), 'company': person.get('company', {}).get('organization'), 'location': f"{person.get('location', {}).get('city')}, {person.get('location', {}).get('country_code')}", 'linkedin': person.get('linkedin'), # Bonus fields 'phone': person.get('phone_number'), 'email_valid': person.get('verification', {}).get('status') == 'valid', 'email_score': person.get('verification', {}).get('score'), 'company_revenue': person.get('company', {}).get('revenue'), 'company_employees': person.get('company', {}).get('employees') } except requests.exceptions.HTTPError as e: if e.response.status_code == 404: return None raise # Usage person = get_person('john@stripe.com') print(person)` ### PHP[](https://docs.tomba.io/migration/clearbit/person-api#php) **Before (Clearbit):** Code `find(['email' => $email]); return [ 'name' => $person->name->fullName ?? null, 'position' => $person->employment->title ?? null, 'company' => $person->employment->name ?? null, 'location' => "{$person->geo->city}, {$person->geo->countryCode}", 'linkedin' => $person->linkedin->handle ?? null ]; } catch (\Clearbit\Errors\NotFoundError $e) { return null; } }` **After (Tomba):** Code `get('https://api.tomba.io/v1/people/find', [ 'query' => ['email' => $email], 'headers' => [ 'X-Tomba-Key' => getenv('TOMBA_API_KEY'), 'X-Tomba-Secret' => getenv('TOMBA_API_SECRET') ] ]); $person = json_decode($response->getBody())->data; return [ 'name' => $person->full_name ?? null, 'position' => $person->position ?? null, 'company' => $person->company->organization ?? null, 'location' => "{$person->location->city}, {$person->location->country_code}", 'linkedin' => $person->linkedin ?? null, // Bonus fields 'phone' => $person->phone_number ?? null, 'email_valid' => ($person->verification->status ?? '') === 'valid', 'email_score' => $person->verification->score ?? 0, 'company_revenue' => $person->company->revenue ?? null, 'company_employees' => $person->company->employees ?? null ]; } catch (\GuzzleHttp\Exception\ClientException $e) { if ($e->getResponse()->getStatusCode() === 404) { return null; } throw $e; } } // Usage $person = getPerson('john@stripe.com'); print_r($person);` ### Ruby[](https://docs.tomba.io/migration/clearbit/person-api#ruby) **Before (Clearbit):** Code `require 'clearbit' Clearbit.key = 'sk_clearbit_xxx' def get_person(email) person = Clearbit::Enrichment::Person.find(email: email) { name: person.name&.fullName, position: person.employment&.title, company: person.employment&.name, location: "#{person.geo&.city}, #{person.geo&.countryCode}", linkedin: person.linkedin&.handle } rescue Clearbit::NotFoundError nil end` **After (Tomba):** Code `require 'httparty' def get_person(email) response = HTTParty.get( 'https://api.tomba.io/v1/people/find', query: { email: email }, headers: { 'X-Tomba-Key' => ENV['TOMBA_API_KEY'], 'X-Tomba-Secret' => ENV['TOMBA_API_SECRET'] } ) return nil if response.code == 404 raise "API Error: #{response.code}" unless response.success? person = response.parsed_response['data'] { name: person['full_name'], position: person['position'], company: person.dig('company', 'organization'), location: "#{person.dig('location', 'city')}, #{person.dig('location', 'country_code')}", linkedin: person['linkedin'], # Bonus fields phone: person['phone_number'], email_valid: person.dig('verification', 'status') == 'valid', email_score: person.dig('verification', 'score'), company_revenue: person.dig('company', 'revenue'), company_employees: person.dig('company', 'employees') } end # Usage person = get_person('john@stripe.com') puts person` * * * Enhanced Features[](https://docs.tomba.io/migration/clearbit/person-api#enhanced-features) ------------------------------------------------------------------------------------------- ### Free Email Verification[](https://docs.tomba.io/migration/clearbit/person-api#free-email-verification) Every person lookup includes FREE email verification: Code `const person = response.data.data; console.log("Email Status:", person.verification.status); // valid/invalid/unknown console.log("Deliverable:", person.verification.result); // deliverable/undeliverable console.log("Score:", person.verification.score); // 0-100 console.log("SMTP Check:", person.verification.smtp_check); // true/false console.log("Disposable:", person.verification.disposable); // false console.log("Free Email:", person.verification.free_email); // false (Gmail, etc.)` **Value:** Clearbit charges $0.01 per verification. With Tomba, it's FREE! ### Phone Numbers[](https://docs.tomba.io/migration/clearbit/person-api#phone-numbers) Get validated phone numbers: Code `const person = response.data.data; if (person.phone_number) { console.log("Phone:", person.phone_number); // +1-415-555-0123 // You can also use phone validator endpoint for more details const phoneDetails = await axios.get( "https://api.tomba.io/v1/phone-validator", { params: { phone: person.phone_number }, headers: { /* auth headers */ }, }, ); console.log("Carrier:", phoneDetails.data.data.carrier); console.log("Location:", phoneDetails.data.data.location); console.log("Type:", phoneDetails.data.data.line_type); // mobile/landline }` ### Enhanced Company Data[](https://docs.tomba.io/migration/clearbit/person-api#enhanced-company-data) Get full company information with person data: Code `const person = response.data.data; console.log("Company Info:"); console.log("- Name:", person.company.organization); console.log("- Revenue:", person.company.revenue); console.log("- Employees:", person.company.employees); console.log("- Industry:", person.company.industry); console.log("- Website:", person.company.website); console.log("- Logo:", person.company.logo);` ### Data Sources[](https://docs.tomba.io/migration/clearbit/person-api#data-sources) See where the data came from: Code ``const person = response.data.data; console.log("Data Sources:"); person.sources.forEach((source) => { console.log(`- ${source.uri}`); console.log(` Found on: ${source.website_piece}`); console.log(` Last seen: ${source.last_seen_on}`); });`` * * * Error Handling[](https://docs.tomba.io/migration/clearbit/person-api#error-handling) ------------------------------------------------------------------------------------- ### Clearbit Errors[](https://docs.tomba.io/migration/clearbit/person-api#clearbit-errors) Code `try { const person = await clearbit.Person.find({ email }); } catch (error) { if (error.type === "not_found") { // Person not found } else if (error.type === "rate_limit") { // Rate limited } else if (error.type === "invalid_request") { // Bad request } }` ### Tomba Errors[](https://docs.tomba.io/migration/clearbit/person-api#tomba-errors) Code `try { const response = await axios.get("https://api.tomba.io/v1/people/find", { params: { email }, headers: { "X-Tomba-Key": process.env.TOMBA_API_KEY, "X-Tomba-Secret": process.env.TOMBA_API_SECRET, }, }); } catch (error) { if (error.response?.status === 404) { // Person not found console.log("Person not found in database"); } else if (error.response?.status === 429) { // Rate limited console.log("Rate limit exceeded"); } else if (error.response?.status === 400) { // Bad request console.log("Invalid email format"); } else if (error.response?.status === 401) { // Authentication failed console.log("Invalid API credentials"); } }` * * * Testing[](https://docs.tomba.io/migration/clearbit/person-api#testing) ----------------------------------------------------------------------- ### Sample Test Cases[](https://docs.tomba.io/migration/clearbit/person-api#sample-test-cases) Code `const assert = require("assert"); describe("Person API Migration", () => { it("should return person data for valid email", async () => { const person = await getPerson("john@stripe.com"); assert(person.name); assert(person.position); assert(person.company); assert(person.emailValid !== undefined); // New field }); it("should return null for non-existent email", async () => { const person = await getPerson("notexist@example12345.com"); assert.strictEqual(person, null); }); it("should include email verification", async () => { const person = await getPerson("valid@stripe.com"); assert(person.emailValid === true); assert(person.emailScore > 0); }); it("should include phone number when available", async () => { const person = await getPerson("john@stripe.com"); // Phone may or may not be available if (person.phone) { assert(person.phone.startsWith("+")); } }); it("should include enhanced company data", async () => { const person = await getPerson("john@stripe.com"); assert(person.companyRevenue); assert(person.companyEmployees); }); });` * * * Migration Checklist[](https://docs.tomba.io/migration/clearbit/person-api#migration-checklist) ----------------------------------------------------------------------------------------------- * [ ] Update authentication to use API Key + Secret headers * [ ] Change base URL to `api.tomba.io/v1` * [ ] Update field mappings in your code * [ ] Add handling for new fields (verification, phone\_number, company.\*) * [ ] Update error handling for Tomba response codes * [ ] Test with sample emails * [ ] Update type definitions/interfaces * [ ] Test edge cases (invalid emails, rate limits) * [ ] Deploy to staging environment * [ ] Monitor API responses * [ ] Deploy to production * * * Next Steps[](https://docs.tomba.io/migration/clearbit/person-api#next-steps) ----------------------------------------------------------------------------- * [Company API Migration](https://docs.tomba.io/migration/clearbit/company-api) - Enrich company data * [Combined API Migration](https://docs.tomba.io/migration/clearbit/combined-api) - Get person + company data * [Full API Documentation](https://docs.tomba.io/) * * * **Need help with migration?** Contact our support team at [support@tomba.io](mailto:support@tomba.io) for personalized migration assistance. Last modified on November 16, 2025 [Clearbit Company API Replacement](https://docs.tomba.io/migration/clearbit/company-api) [Clearbit Combined API Replacement](https://docs.tomba.io/migration/clearbit/combined-api) JSON JSON Javascript Javascript PHP PHP Ruby Ruby Javascript Javascript Javascript Javascript Javascript Javascript Javascript --- # Tomba Local MCP LLM Integration | Tomba Documentation Menu LLM Integration Guide[](https://docs.tomba.io/llm/local-mcp/integration#llm-integration-guide) ----------------------------------------------------------------------------------------------- This guide shows how to integrate the Tomba MCP Server with popular Large Language Models and AI applications. The server works with any MCP-compatible client through standardized JSON-RPC communication. Supported LLM Applications[](https://docs.tomba.io/llm/local-mcp/integration#supported-llm-applications) --------------------------------------------------------------------------------------------------------- ### Primary Support[](https://docs.tomba.io/llm/local-mcp/integration#primary-support) * **Claude Desktop** - Native MCP support * **Claude API** - Via MCP SDK integration * **Custom LLM Applications** - Using MCP SDK * **Anthropic Workbench** - Direct integration ### Community Integrations[](https://docs.tomba.io/llm/local-mcp/integration#community-integrations) * **OpenAI GPT** - Via MCP bridge implementations * **Local LLMs** - Through MCP-compatible frameworks * **AI Agents** - LangChain, CrewAI, AutoGPT integrations Integration Architecture[](https://docs.tomba.io/llm/local-mcp/integration#integration-architecture) ----------------------------------------------------------------------------------------------------- Code `graph TB A[LLM Application] --> B[MCP Client SDK] B --> C[JSON-RPC over stdio] C --> D[Tomba MCP Server] D --> E[Tomba.io API] subgraph "Your Application" A B end subgraph "MCP Server" D F[Tool Registry] G[Type Validation] H[Error Handling] end subgraph "External API" E end` Client Configuration Files[](https://docs.tomba.io/llm/local-mcp/integration#client-configuration-files) --------------------------------------------------------------------------------------------------------- ### Claude Desktop Configuration[](https://docs.tomba.io/llm/local-mcp/integration#claude-desktop-configuration) **File Location**: * **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` * **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` **Configuration**: Code `{ "mcpServers": { "tomba": { "command": "npx", "args": ["-y", "tomba-mcp-server"], "env": { "TOMBA_API_KEY": "your_api_key_here", "TOMBA_SECRET_KEY": "your_secret_key_here" } } } }` ### Claude Desktop Integration[](https://docs.tomba.io/llm/local-mcp/integration#claude-desktop-integration) How to Install Tomba MCP in Claude Desktop: 1. **Open Claude Desktop Settings** Click on **Settings** in Claude Desktop application. 2. **Browse Extensions** Click to browse the **Extensions** section. 3. **Go to Desktop Extensions** Click on the **Desktop extensions** tab. 4. **Search for Tomba** Search for "Tomba" in the extensions search bar. 5. **Install and Configure** Install the Tomba extension and configure it with your API key and API secret from your [Tomba dashboard](https://app.tomba.io/api) . ### Claude API Integration[](https://docs.tomba.io/llm/local-mcp/integration#claude-api-integration) **Installation**: TerminalCode `npm install @modelcontextprotocol/sdk` **Client Code**: Code `import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; const client = new Client( { name: "tomba-client", version: "1.0.0", }, { capabilities: { tools: {}, }, }, ); const transport = new StdioClientTransport({ command: "node", args: ["./dist/index.js"], env: { TOMBA_API_KEY: process.env.TOMBA_API_KEY, TOMBA_SECRET_KEY: process.env.TOMBA_SECRET_KEY, }, }); await client.connect(transport); // Use the tools const result = await client.callTool({ name: "domain_search", arguments: { domain: "github.com", limit: 10, }, });` Configuration Templates[](https://docs.tomba.io/llm/local-mcp/integration#configuration-templates) --------------------------------------------------------------------------------------------------- ### Basic Configuration[](https://docs.tomba.io/llm/local-mcp/integration#basic-configuration) Create `mcp-config.json`: Code `{ "servers": { "tomba": { "command": "npx", "args": ["-y", "tomba-mcp-server"], "environment": { "TOMBA_API_KEY": "${TOMBA_API_KEY}", "TOMBA_SECRET_KEY": "${TOMBA_SECRET_KEY}" } } } }` ### Development Configuration[](https://docs.tomba.io/llm/local-mcp/integration#development-configuration) Create `mcp-dev-config.json`: Code `{ "servers": { "tomba-dev": { "command": "npm", "args": ["run", "dev"], "cwd": "./tomba-mcp-server", "environment": { "TOMBA_API_KEY": "test_key_123", "TOMBA_SECRET_KEY": "test_secret_456", "NODE_ENV": "development", "DEBUG": "tomba:*" } } } }` ### Production Configuration[](https://docs.tomba.io/llm/local-mcp/integration#production-configuration) Create `mcp-prod-config.json`: Code `{ "servers": { "tomba-prod": { "command": "node", "args": ["./tomba-mcp-server/dist/index.js"], "environment": { "TOMBA_API_KEY": "${TOMBA_API_KEY}", "TOMBA_SECRET_KEY": "${TOMBA_SECRET_KEY}", "NODE_ENV": "production" }, "restart": true, "timeout": 30000 } } }` Usage Examples by LLM[](https://docs.tomba.io/llm/local-mcp/integration#usage-examples-by-llm) ----------------------------------------------------------------------------------------------- ### Claude Desktop Usage[](https://docs.tomba.io/llm/local-mcp/integration#claude-desktop-usage) Once configured, you can use natural language: **Email Discovery**: Code `"Find all email addresses for github.com and show me the top 10 results"` **Contact Verification**: Code `"Verify if the email satya.nadella@microsoft.com is deliverable and show me the confidence score"` **Lead Generation**: Code `"Search for the email of John Doe at Apple Inc and enrich it with social profiles"` ### Claude API Integration[](https://docs.tomba.io/llm/local-mcp/integration#claude-api-integration-1) Code `import json import subprocess from typing import Dict, Any class TombaMCPClient: def __init__(self, api_key: str, secret_key: str): self.env = { 'TOMBA_API_KEY': api_key, 'TOMBA_SECRET_KEY': secret_key } def call_tool(self, tool_name: str, arguments: Dict[str, Any]) -> Dict: request = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": tool_name, "arguments": arguments } } process = subprocess.Popen( ['node', './dist/index.js'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, env=self.env, text=True ) stdout, _ = process.communicate(json.dumps(request)) return json.loads(stdout) def find_domain_emails(self, domain: str, limit: int = 10): return self.call_tool('domain_search', { 'domain': domain, 'limit': limit }) def verify_email(self, email: str): return self.call_tool('email_verifier', { 'email': email }) # Usage client = TombaMCPClient('your_api_key', 'your_secret_key') emails = client.find_domain_emails('github.com', 5) print(json.dumps(emails, indent=2))` ### Custom LLM Integration[](https://docs.tomba.io/llm/local-mcp/integration#custom-llm-integration) Code `// For custom LLM applications class TombaIntegration { constructor(mcpServerPath, apiKey, secretKey) { this.serverPath = mcpServerPath; this.env = { TOMBA_API_KEY: apiKey, TOMBA_SECRET_KEY: secretKey, }; } async initializeConnection() { const { spawn } = require("child_process"); this.serverProcess = spawn("node", [this.serverPath], { env: this.env, stdio: ["pipe", "pipe", "pipe"], }); // Initialize MCP protocol await this.sendRequest({ jsonrpc: "2.0", id: 1, method: "initialize", params: { protocolVersion: "2024-11-05", capabilities: {}, clientInfo: { name: "custom-llm-client", version: "1.0.0", }, }, }); } async sendRequest(request) { return new Promise((resolve) => { this.serverProcess.stdin.write(JSON.stringify(request) + "\n"); this.serverProcess.stdout.once("data", (data) => { resolve(JSON.parse(data.toString())); }); }); } async searchDomain(domain, limit = 10) { return this.sendRequest({ jsonrpc: "2.0", id: Date.now(), method: "tools/call", params: { name: "domain_search", arguments: { domain, limit }, }, }); } } // Usage with your LLM const tomba = new TombaIntegration("./dist/index.js", "api_key", "secret_key"); await tomba.initializeConnection(); // In your LLM tool handling code if (toolCall.name === "search_emails") { const result = await tomba.searchDomain(toolCall.arguments.domain); return result.content[0].text; }` Framework Integrations[](https://docs.tomba.io/llm/local-mcp/integration#framework-integrations) ------------------------------------------------------------------------------------------------- ### LangChain Integration[](https://docs.tomba.io/llm/local-mcp/integration#langchain-integration) Code `from langchain.tools import BaseTool from langchain.pydantic_v1 import BaseModel, Field import subprocess import json class DomainSearchInput(BaseModel): domain: str = Field(description="Domain name to search") limit: int = Field(default=10, description="Maximum results") class TombaDomainSearchTool(BaseTool): name = "domain_search" description = "Search for email addresses in a domain" args_schema = DomainSearchInput def _run(self, domain: str, limit: int = 10) -> str: request = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "domain_search", "arguments": {"domain": domain, "limit": limit} } } process = subprocess.Popen( ['node', './tomba-mcp-server/dist/index.js'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, env={'TOMBA_API_KEY': 'your_key', 'TOMBA_SECRET_KEY': 'your_secret'}, text=True ) stdout, _ = process.communicate(json.dumps(request)) result = json.loads(stdout) return result['content'][0]['text'] # Usage in LangChain from langchain.agents import initialize_agent, AgentType from langchain.llms import OpenAI llm = OpenAI() tools = [TombaDomainSearchTool()] agent = initialize_agent( tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION ) result = agent.run("Find email addresses for github.com")` ### CrewAI Integration[](https://docs.tomba.io/llm/local-mcp/integration#crewai-integration) Code `from crewai import Agent, Task, Crew from crewai_tools import tool import subprocess import json @tool("Domain Email Search") def search_domain_emails(domain: str) -> str: """Search for email addresses in a domain using Tomba.io""" request = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "domain_search", "arguments": {"domain": domain, "limit": 10} } } process = subprocess.run( ['node', './tomba-mcp-server/dist/index.js'], input=json.dumps(request), capture_output=True, text=True, env={'TOMBA_API_KEY': 'your_key', 'TOMBA_SECRET_KEY': 'your_secret'} ) result = json.loads(process.stdout) return result['content'][0]['text'] # Create agents researcher = Agent( role='Email Researcher', goal='Find contact information for target companies', tools=[search_domain_emails], backstory="Expert at finding business contacts" ) # Create tasks research_task = Task( description="Find email addresses for github.com and microsoft.com", agent=researcher ) # Create crew crew = Crew( agents=[researcher], tasks=[research_task] ) result = crew.kickoff()` Template Files[](https://docs.tomba.io/llm/local-mcp/integration#template-files) --------------------------------------------------------------------------------- ### Complete Claude Desktop Config[](https://docs.tomba.io/llm/local-mcp/integration#complete-claude-desktop-config) Save as `claude_desktop_config.json`: Code `{ "mcpServers": { "tomba": { "command": "node", "args": ["/absolute/path/to/tomba-mcp-server/dist/index.js"], "env": { "TOMBA_API_KEY": "ta_xxxxxxxxxx", "TOMBA_SECRET_KEY": "ts_xxxxxxxxxx" } } }, "globalShortcuts": { "toggleClaudeDesktop": "Cmd+Shift+C" }, "appearance": { "theme": "auto" } }` ### Docker Compose Configuration[](https://docs.tomba.io/llm/local-mcp/integration#docker-compose-configuration) Save as `docker-compose.yml`: Code `version: "3.8" services: tomba-mcp-server: build: . environment: - TOMBA_API_KEY=${TOMBA_API_KEY} - TOMBA_SECRET_KEY=${TOMBA_SECRET_KEY} volumes: - ./dist:/app/dist:ro stdin_open: true tty: true` ### Systemd Service File[](https://docs.tomba.io/llm/local-mcp/integration#systemd-service-file) Save as `/etc/systemd/system/tomba-mcp.service`: Code `[Unit] Description=Tomba MCP Server After=network.target [Service] Type=simple User=mcpuser WorkingDirectory=/opt/tomba-mcp-server ExecStart=/usr/bin/node dist/index.js Environment=TOMBA_API_KEY=your_api_key Environment=TOMBA_SECRET_KEY=your_secret_key Restart=always RestartSec=5 [Install] WantedBy=multi-user.target` Security Configuration[](https://docs.tomba.io/llm/local-mcp/integration#security-configuration) ------------------------------------------------------------------------------------------------- ### Environment Variables[](https://docs.tomba.io/llm/local-mcp/integration#environment-variables) **Secure .env setup**: TerminalCode `# Create secure .env file umask 077 echo "TOMBA_API_KEY=your_key" > .env echo "TOMBA_SECRET_KEY=your_secret" >> .env chmod 600 .env` ### API Key Management[](https://docs.tomba.io/llm/local-mcp/integration#api-key-management) **Using environment variables**: TerminalCode `export TOMBA_API_KEY="ta_your_api_key" export TOMBA_SECRET_KEY="ts_your_secret_key"` **Using keychain (macOS)**: TerminalCode `security add-generic-password -a "tomba-mcp" -s "api-key" -w "your_api_key" security add-generic-password -a "tomba-mcp" -s "secret-key" -w "your_secret"` **Reading from keychain**: TerminalCode `export TOMBA_API_KEY=$(security find-generic-password -a "tomba-mcp" -s "api-key" -w) export TOMBA_SECRET_KEY=$(security find-generic-password -a "tomba-mcp" -s "secret-key" -w)` Monitoring & Logging[](https://docs.tomba.io/llm/local-mcp/integration#monitoring--logging) -------------------------------------------------------------------------------------------- ### Log Configuration[](https://docs.tomba.io/llm/local-mcp/integration#log-configuration) Code `{ "logging": { "level": "info", "format": "json", "outputs": [ { "type": "file", "path": "/var/log/tomba-mcp.log", "rotation": "daily" }, { "type": "console", "format": "pretty" } ] } }` ### Health Check Endpoint[](https://docs.tomba.io/llm/local-mcp/integration#health-check-endpoint) Code `// Add to your client application async function healthCheck() { try { const result = await client.listTools(); return result.tools.length > 0; } catch (error) { console.error("Health check failed:", error); return false; } }` Error Handling[](https://docs.tomba.io/llm/local-mcp/integration#error-handling) --------------------------------------------------------------------------------- ### Retry Logic[](https://docs.tomba.io/llm/local-mcp/integration#retry-logic) Code `async function callToolWithRetry(toolName, arguments, maxRetries = 3) { for (let attempt = 1; attempt <= maxRetries; attempt++) { try { return await client.callTool({ name: toolName, arguments }); } catch (error) { if (attempt === maxRetries) throw error; const delay = Math.pow(2, attempt) * 1000; // Exponential backoff await new Promise((resolve) => setTimeout(resolve, delay)); } } }` ### Rate Limit Handling[](https://docs.tomba.io/llm/local-mcp/integration#rate-limit-handling) Code ``async function handleRateLimit(error) { if (error.code === 429) { const retryAfter = error.headers?.["retry-after"] || 60; console.log(`Rate limited. Waiting ${retryAfter} seconds...`); await new Promise((resolve) => setTimeout(resolve, retryAfter * 1000)); return true; // Indicate retry should be attempted } return false; }`` Testing LLM Integration[](https://docs.tomba.io/llm/local-mcp/integration#testing-llm-integration) --------------------------------------------------------------------------------------------------- ### Integration Test Script[](https://docs.tomba.io/llm/local-mcp/integration#integration-test-script) Code `// test-llm-integration.js const { spawn } = require("child_process"); async function testLLMIntegration() { console.log("🧪 Testing LLM Integration..."); // Start MCP server const serverProcess = spawn("node", ["dist/index.js"], { env: { TOMBA_API_KEY: process.env.TOMBA_API_KEY, TOMBA_SECRET_KEY: process.env.TOMBA_SECRET_KEY, }, stdio: ["pipe", "pipe", "pipe"], }); // Test tool listing const listRequest = { jsonrpc: "2.0", id: 1, method: "tools/list", }; serverProcess.stdin.write(JSON.stringify(listRequest) + "\n"); return new Promise((resolve) => { serverProcess.stdout.on("data", (data) => { const response = JSON.parse(data.toString()); console.log("Tools available:", response.result?.tools?.length); serverProcess.kill(); resolve(response); }); }); } testLLMIntegration();` Deployment[](https://docs.tomba.io/llm/local-mcp/integration#deployment) ------------------------------------------------------------------------- ### Production Deployment[](https://docs.tomba.io/llm/local-mcp/integration#production-deployment) 1. **Build the server**: TerminalCode `npm run build` 2. **Configure environment**: TerminalCode `export TOMBA_API_KEY="production_key" export TOMBA_SECRET_KEY="production_secret" export NODE_ENV="production"` 3. **Start with process manager**: TerminalCode `pm2 start dist/index.js --name tomba-mcp-server` ### Scaling Considerations[](https://docs.tomba.io/llm/local-mcp/integration#scaling-considerations) * **Multiple Instances**: Run multiple server instances for load distribution * **Load Balancing**: Use nginx or similar for request distribution * **Monitoring**: Implement health checks and performance monitoring * **Logging**: Centralized logging for debugging and analysis * * * Your Tomba MCP Server is now ready for LLM integration! Choose the configuration that matches your setup and start leveraging powerful email intelligence in your AI applications. Last modified on February 11, 2026 [Tomba Local MCP Tools](https://docs.tomba.io/llm/local-mcp/tools) [Remote MCP Server - Introduction](https://docs.tomba.io/llm/remote-mcp/introduction) JSON Javascript JSON JSON JSON Javascript JSON YAML JSON Javascript Javascript Javascript Javascript --- # Migrate from NeverBounce to Tomba | Tomba Documentation Menu This guide will help you seamlessly transition from NeverBounce to Tomba's email verification service, offering better accuracy, more data attributes, and competitive pricing. * * * Why Choose Tomba Over NeverBounce?[](https://docs.tomba.io/migration/email-verifier/neverbounce#why-choose-tomba-over-neverbounce) ----------------------------------------------------------------------------------------------------------------------------------- | Feature | NeverBounce | Tomba | | --- | --- | --- | | **Accuracy** | 95-98% | 99%+ | | **Pricing** | $0.008 per email | More competitive rates | | **Catchall Detection** | Basic | Advanced with confidence scoring | | **Speed** | Fast | Ultra-fast with optimized infrastructure | | **Bulk Verification** | Yes | Yes, with better batch processing | | **API Access** | REST API | REST API + MCP integration | | **Data Attributes** | Basic verification data | Rich attributes including SMTP provider, MX records, risk scoring | | **Real-time Verification** | Yes | Yes, with 3-month smart caching | | **Webmail Detection** | Limited | Advanced with provider identification | * * * Key Advantages of Tomba[](https://docs.tomba.io/migration/email-verifier/neverbounce#key-advantages-of-tomba) -------------------------------------------------------------------------------------------------------------- ### 1\. Superior Accuracy[](https://docs.tomba.io/migration/email-verifier/neverbounce#1-superior-accuracy) Tomba achieves 99%+ accuracy through: * Multi-layered verification process * Real-time SMTP checks * Advanced pattern recognition * Machine learning algorithms ### 2\. Better Pricing[](https://docs.tomba.io/migration/email-verifier/neverbounce#2-better-pricing) * More cost-effective per verification * No hidden fees * Flexible credit-based system * Credits roll over monthly ### 3\. Advanced Catchall Detection[](https://docs.tomba.io/migration/email-verifier/neverbounce#3-advanced-catchall-detection) * Confidence scoring for catch-all domains * Risk assessment for accept-all addresses * Better decision-making data ### 4\. Faster Processing[](https://docs.tomba.io/migration/email-verifier/neverbounce#4-faster-processing) * Optimized infrastructure for speed * Parallel processing for bulk operations * Smart caching for instant results ### 5\. Richer Data Attributes[](https://docs.tomba.io/migration/email-verifier/neverbounce#5-richer-data-attributes) Tomba returns comprehensive verification data including 15+ attributes: * `status`: valid, invalid, accept\_all, webmail, disposable, unknown * `result`: deliverable, undeliverable, risky * `score`: Confidence score (0-100) * `smtp_provider`: Email service provider identification (e.g., "Google Workspace") * `mx`: Complete MX records array * `mx_check`: MX record validation * `smtp_server`: SMTP server availability * `smtp_check`: SMTP validation status * `accept_all`: Catch-all domain detection * `disposable`: Temporary email detection * `webmail`: Public email provider detection * `block`: Blacklist status * `gibberish`: Random pattern detection * `greylisted`: Greylisting detection * `regex`: Email format validation * `whois`: Domain registration details (registrar, creation date, referral URL) * `sources`: Array of sources where email was found (URI, website, dates, availability) **Example comprehensive response:** Code `{ "data": { "email": { "email": "dayna.winter@shopify.com", "result": "deliverable", "status": "valid", "score": 99, "smtp_provider": "Google Workspace", "mx": { "records": [ "aspmx.l.google.com", "alt1.aspmx.l.google.com", "alt2.aspmx.l.google.com", "alt4.aspmx.l.google.com", "alt3.aspmx.l.google.com" ] }, "mx_check": true, "smtp_server": true, "smtp_check": true, "accept_all": true, "greylisted": false, "block": false, "gibberish": false, "disposable": false, "webmail": false, "regex": true, "whois": { "registrar_name": "markmonitor inc.", "referral_url": "http://www.markmonitor.com", "created_date": "2005-03-11T06:18:03+01:00" } }, "sources": [ { "uri": "https://www.shopify.com/blog/black-friday-cyber-monday-shopify-apps", "website_url": "www.shopify.com", "extracted_on": "2022-11-07T13:16:42+01:00", "last_seen_on": "2022-11-07T13:16:42+01:00", "still_on_page": true } ] } }` * * * Migration Steps[](https://docs.tomba.io/migration/email-verifier/neverbounce#migration-steps) ---------------------------------------------------------------------------------------------- ### Step 1: Get Your Tomba API Credentials[](https://docs.tomba.io/migration/email-verifier/neverbounce#step-1-get-your-tomba-api-credentials) 1. Sign up at [app.tomba.io](https://app.tomba.io/) 2. Navigate to **API** → **API Keys** 3. Copy your **API Key** and **Secret Key** ### Step 2: Update API Endpoints[](https://docs.tomba.io/migration/email-verifier/neverbounce#step-2-update-api-endpoints) **NeverBounce endpoint:** Code `POST https://api.neverbounce.com/v4/single/check` **Tomba endpoint:** Code `GET https://api.tomba.io/v1/email-verifier?email={email}` ### Step 3: Update Authentication[](https://docs.tomba.io/migration/email-verifier/neverbounce#step-3-update-authentication) **NeverBounce authentication:** Code `{ "key": "your_neverbounce_key", "email": "test@example.com" }` **Tomba authentication:** Code `// Headers { "X-Tomba-Key": "your_api_key", "X-Tomba-Secret": "your_secret_key" }` ### Step 4: Update Response Mapping[](https://docs.tomba.io/migration/email-verifier/neverbounce#step-4-update-response-mapping) **NeverBounce response:** Code `{ "status": "success", "result": "valid", "flags": ["has_dns", "has_known_bounces"], "suggested_correction": "", "execution_time": 208 }` **Tomba response:** Code `{ "data": { "email": "test@example.com", "status": "valid", "result": "deliverable", "score": 100, "regex": true, "mx_records": true, "smtp_server": true, "smtp_check": true, "smtp_provider": "Google Workspace", "accept_all": false, "block": false, "disposable": false, "webmail": false } }` * * * Code Migration Examples[](https://docs.tomba.io/migration/email-verifier/neverbounce#code-migration-examples) -------------------------------------------------------------------------------------------------------------- ### Node.js[](https://docs.tomba.io/migration/email-verifier/neverbounce#nodejs) **Before (NeverBounce):** Code `const axios = require("axios"); async function verifyEmail(email) { const response = await axios.post( "https://api.neverbounce.com/v4/single/check", { key: process.env.NEVERBOUNCE_KEY, email: email, }, ); return response.data.result; }` **After (Tomba):** Code ``const axios = require("axios"); async function verifyEmail(email) { const response = await axios.get(`https://api.tomba.io/v1/email-verifier`, { params: { email: email }, headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }); return response.data.data; }`` ### Python[](https://docs.tomba.io/migration/email-verifier/neverbounce#python) **Before (NeverBounce):** Code `import requests def verify_email(email): response = requests.post( 'https://api.neverbounce.com/v4/single/check', json={ 'key': os.environ['NEVERBOUNCE_KEY'], 'email': email } ) return response.json()['result']` **After (Tomba):** Code `import requests def verify_email(email): response = requests.get( 'https://api.tomba.io/v1/email-verifier', params={'email': email}, headers={ 'X-Tomba-Key': os.environ['TOMBA_KEY'], 'X-Tomba-Secret': os.environ['TOMBA_SECRET'] } ) return response.json()['data']` ### PHP[](https://docs.tomba.io/migration/email-verifier/neverbounce#php) **Before (NeverBounce):** Code ` $_ENV['NEVERBOUNCE_KEY'], 'email' => $email ]; $ch = curl_init('https://api.neverbounce.com/v4/single/check'); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); return json_decode($response)->result; }` **After (Tomba):** Code `data; }` * * * Status Mapping[](https://docs.tomba.io/migration/email-verifier/neverbounce#status-mapping) -------------------------------------------------------------------------------------------- | NeverBounce Status | Tomba Status | Tomba Result | | --- | --- | --- | | `valid` | `valid` | `deliverable` | | `invalid` | `invalid` | `undeliverable` | | `disposable` | `disposable` | `undeliverable` | | `catchall` | `accept_all` | `risky` | | `unknown` | `unknown` | `risky` | * * * Bulk Verification Migration[](https://docs.tomba.io/migration/email-verifier/neverbounce#bulk-verification-migration) ---------------------------------------------------------------------------------------------------------------------- **NeverBounce bulk process:** 1. Upload CSV file 2. Wait for processing 3. Download results **Tomba bulk process:** 1. Use bulk verification API endpoint 2. Real-time or batch processing Code `// Tomba Bulk Verification const bulkVerify = async (emails) => { const response = await axios.post( "https://api.tomba.io/v1/bulk/email-verifier", { emails: emails }, { headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }, ); return response.data; };` * * * Testing Your Migration[](https://docs.tomba.io/migration/email-verifier/neverbounce#testing-your-migration) ------------------------------------------------------------------------------------------------------------ 1. **Run parallel tests**: Verify the same emails with both services 2. **Compare results**: Check accuracy and data completeness 3. **Performance testing**: Measure response times 4. **Cost analysis**: Calculate actual costs per verification 5. **Gradual rollout**: Start with a small percentage of traffic * * * Support and Resources[](https://docs.tomba.io/migration/email-verifier/neverbounce#support-and-resources) ---------------------------------------------------------------------------------------------------------- * [Tomba API Documentation](https://docs.tomba.io/) * [Email Verifier Attributes](https://docs.tomba.io/attributes/verifier) * [Bulk Verification Guide](https://docs.tomba.io/bulks/email-verifier) * [Support Portal](https://help.tomba.io/) Need help with migration? Contact our support team for personalized assistance. * * * FAQ[](https://docs.tomba.io/migration/email-verifier/neverbounce#faq) ---------------------------------------------------------------------- **Q: Will I lose any features by switching?** A: No, Tomba provides all NeverBounce features plus additional data attributes and insights. **Q: How long does migration take?** A: Most migrations can be completed in under an hour with our straightforward API. **Q: Can I test before fully migrating?** A: Yes! Sign up for a free account with 25 verifications to test the service. **Q: What about my existing credits?** A: Plan your transition timing to use remaining NeverBounce credits before switching. **Q: Do you offer migration support?** A: Yes, our team can help with code review and migration assistance for enterprise customers. Last modified on November 16, 2025 [Migrate to Tomba Email Verifier](https://docs.tomba.io/migration/email-verifier/introduction) [Migrate from MillionVerifier to Tomba](https://docs.tomba.io/migration/email-verifier/millionverifier) JSON Javascript Javascript JSON JSON Javascript Javascript PHP PHP Javascript --- # Editor Setup | Tomba Documentation Menu Use code editors, LLMs (large language models), and MCP (Model Context Protocol) servers to generate API calls and examples for the Tomba platform. Pick Your Tool[](https://docs.tomba.io/llm/editor/setup#pick-your-tool) ------------------------------------------------------------------------ Set up your editor and model so they can generate accurate Tomba API code from your prompt. The `docs.tomba.io/llms.txt` file is a compact, text version of Tomba API docs to help AI generate accurate Tomba API code based on your prompt. Code `Use https://docs.tomba.io/llms.txt as the primary reference. Generate a Node.js example that verifies an email with headers X-Tomba-Key and X-Tomba-Secret. Return complete, runnable code with error handling.` [![VSCode](https://docs.tomba.io/images/logos/vscode.webp)\ \ VSCode\ \ Setup VSCode and GitHub Copilot with Tomba API documentation](https://docs.tomba.io/llm/editor/vscode) [![Cursor](https://docs.tomba.io/images/logos/cursor.webp)\ \ Cursor\ \ Setup Cursor AI with Tomba API integration](https://docs.tomba.io/llm/editor/cursor) [![Zed](https://docs.tomba.io/images/logos/zed.webp)\ \ Zed\ \ Setup Zed editor with AI assistance for Tomba API](https://docs.tomba.io/llm/editor/zed) [![Windsurf](https://docs.tomba.io/images/logos/windsurf.webp)\ \ Windsurf\ \ Setup Windsurf IDE with Tomba API capabilities](https://docs.tomba.io/llm/editor/windsurf) [![Claude Desktop](https://docs.tomba.io/images/logos/claude.webp)\ \ Claude Desktop\ \ Setup Claude Desktop with Tomba API documentation](https://docs.tomba.io/llm/editor/claude-desktop) [![Claude Code](https://docs.tomba.io/images/logos/claude.webp)\ \ Claude Code\ \ Setup Claude Code extension for VS Code](https://docs.tomba.io/llm/editor/claude-code) [![ChatGPT](https://docs.tomba.io/images/logos/chatgpt.webp)\ \ ChatGPT\ \ Use ChatGPT with Tomba API documentation](https://docs.tomba.io/llm/editor/chatgpt) [![Gemini](https://docs.tomba.io/images/logos/gemini.webp)\ \ Gemini\ \ Setup Google Gemini with Tomba API](https://docs.tomba.io/llm/editor/gemini) [![Grok](https://docs.tomba.io/images/logos/grok.webp)\ \ Grok\ \ Setup xAI Grok with Tomba API integration](https://docs.tomba.io/llm/editor/grok) [![Cline - VSCode](https://docs.tomba.io/images/logos/cline.webp)\ \ Cline - VSCode\ \ Setup Cline extension for VS Code with Tomba API](https://docs.tomba.io/llm/editor/cline) Last modified on April 28, 2026 [Setting Up Apify MCP Integration](https://docs.tomba.io/llm/apify/integration) [VSCode Setup](https://docs.tomba.io/llm/editor/vscode) --- # Error Handling | Tomba Documentation Menu When an API call fails, the API returns one of the following status codes: * `401`: Invalid API key * `429`: Rate limit exceeded * `400`: Other error * `404`: Invalid request Code `{ "errors": { "type": "unknown_route", "message": "Invalid request, please make sure you follow the documentation for proper syntax", "code": 404 } }` Error Codes[](https://docs.tomba.io/error-handling#error-codes) ---------------------------------------------------------------- Tomba API uses the following error codes: | Error Code | Meaning | | --- | --- | | 400 | Bad Request – Your request is invalid. | | 401 | Unauthorized – Your API key is wrong. | | 402 | The Email Verification failed due to an unexpected response from the remote SMTP server. This failure is outside our control; we advise you to retry later. | | 403 | Forbidden – The resource requested is hidden for administrators only. | | 404 | Not Found – The specified resource could not be found. | | 405 | Method Not Allowed – You tried to access a resource with an invalid method. | | 406 | Not Acceptable – You requested a format that isn’t JSON. | | 410 | Gone – The resource requested has been removed from our servers. | | 418 | I’m a teapot. | | 429 | Too Many Requests – You're requesting too many resources! Slow down! | | 500 | Internal Server Error – We encountered a problem with our server. Try again later. | | 503 | Service Unavailable – We’re temporarily offline for maintenance. Please try again later. | Example: Inspect Error Responses[](https://docs.tomba.io/error-handling#example-inspect-error-responses) --------------------------------------------------------------------------------------------------------- Use `-i` to inspect both status code and headers: TerminalCode `curl -i -X GET "https://api.tomba.io/v1/domain-search?domain=" \ -H "X-Tomba-Key: your_api_key" \ -H "X-Tomba-Secret: your_secret_key"` Handle API errors in JavaScript: Code `const res = await fetch("https://api.tomba.io/v1/domain-search?domain=", { headers: { "X-Tomba-Key": "your_api_key", "X-Tomba-Secret": "your_secret_key", }, }); if (!res.ok) { const err = await res.json(); console.error(res.status, err.errors?.message); }` Last modified on April 28, 2026 [API Key and Authentication](https://docs.tomba.io/authentication) [Usage Limits and Quotas](https://docs.tomba.io/usage-and-quotas) JSON Javascript --- # Rust Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/rust-email-finder#installation) ------------------------------------------------------------------------------- Add this to your package's `Cargo.toml` file: TOMLCode `[dependencies] tomba = "0.1"` Usage[](https://docs.tomba.io/libraries/rust-email-finder#usage) ----------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/rust-email-finder#domain-search) Get email addresses found on the internet. Code `use tomba::{Tomba, TombaConfig}; let config = TombaConfig { key: "ta_xxxx".to_string(), secret: "ts_xxxx".to_string(), }; let mut tomba = Tomba::init(config).expect("should construct"); let res = tomba.domain_search("tomba.io".to_string()).expect("should do domain_search "); println!("website country {:?}", res.data.organization.location.country);` ### Email Finder[](https://docs.tomba.io/libraries/rust-email-finder#email-finder) Find the verified email address of any professional. Code `use tomba::{Tomba, TombaConfig}; let config = TombaConfig { key: "ta_xxxx".to_string(), secret: "ts_xxxx".to_string(), }; let mut tomba = Tomba::init(config).expect("should construct"); let res = tomba.email_finder("zapier.com".to_string(), "F_NAME".to_string(), "L_NAME".to_string()).expect("should do email finder"); println!("Email Finder email {}", res.data.email)` ### Email Verifier[](https://docs.tomba.io/libraries/rust-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `use tomba::{Tomba, TombaConfig}; let config = TombaConfig { key: "ta_xxxx".to_string(), secret: "ts_xxxx".to_string(), }; let mut tomba = Tomba::init(config).expect("should construct"); let res = tomba.email_verifier("m@wordpress.org".to_string()).expect("should do verify"); println!("Email status {}", res.data.email.status)` Last modified on April 28, 2026 [R Client Library](https://docs.tomba.io/libraries/r-email-finder) [Ruby Client Library](https://docs.tomba.io/libraries/ruby-email-finder) Rust Rust Rust --- # Email Enrichment Bulk | Tomba Documentation Menu Overview[](https://docs.tomba.io/bulks/email-enrichment#overview) ------------------------------------------------------------------ [Bulk Email Enrichment](https://tomba.io/bulks/email-enrichment) transforms basic email addresses into comprehensive contact profiles. Enhance your existing email lists with detailed personal and professional information about each contact. ### Key Features[](https://docs.tomba.io/bulks/email-enrichment#key-features) * **Contact Profiling**: Add detailed information to existing email addresses * **Professional Data**: Gather job titles, company information, and career details * **Social Profiles**: Discover associated social media profiles * **Bulk Processing**: Enrich up to 10,000 emails simultaneously * **Data Accuracy**: High-quality, verified contact information * **Export Options**: Multiple format options for enriched data ### How Email Enrichment Bulk Works[](https://docs.tomba.io/bulks/email-enrichment#how-email-enrichment-bulk-works) 1. **Upload Email List**: Provide a list of email addresses to enrich 2. **Select Enrichment Fields**: Choose what additional data to gather 3. **Process Enrichment**: Launch the bulk enrichment operation 4. **Review Enhanced Profiles**: Examine the enriched contact data 5. **Export Results**: Download comprehensive contact profiles ### Limitations[](https://docs.tomba.io/bulks/email-enrichment#limitations) * Each Bulk is limited to 10,000 email addresses * Additional rows will be skipped * Some special or unexpected characters may be deleted in the file * Invalid email addresses won't be imported * Duplicate email addresses won't be imported Go SDK Integration[](https://docs.tomba.io/bulks/email-enrichment#go-sdk-integration) -------------------------------------------------------------------------------------- ### Installation[](https://docs.tomba.io/bulks/email-enrichment#installation) TerminalCode `go get github.com/tomba-io/go` ### Basic Setup[](https://docs.tomba.io/bulks/email-enrichment#basic-setup) Code `package main import ( "fmt" "log" "github.com/tomba-io/go/tomba" "github.com/tomba-io/go/tomba/models" ) func main() { // Initialize Tomba client client := tomba.NewTomba("your-api-key", "your-secret-key") // Your enrichment code here }` ### Creating an Enrichment Bulk Operation[](https://docs.tomba.io/bulks/email-enrichment#creating-an-enrichment-bulk-operation) Code `// Create enrichment bulk with email list params := &models.BulkCreateParams{ Name: "Customer Email Enrichment - Q1 2024", List: "john.doe@example.com\njane.smith@company.com\nuser@startup.io", Sources: true, // Include data sources Verify: false, // Skip email verification Notifie: true, // Send completion notification } // Create the bulk operation response, err := client.CreateBulk(models.BulkTypeEnrich, params) if err != nil { log.Fatal("Failed to create enrichment bulk:", err) } fmt.Printf("Created enrichment bulk with ID: %d\n", *response.Data.ID)` ### Creating Enrichment Bulk with CSV File[](https://docs.tomba.io/bulks/email-enrichment#creating-enrichment-bulk-with-csv-file) Code `// Create enrichment bulk from CSV file params := &models.BulkCreateParams{ Name: "Email List Enrichment - Marketing Database", Delimiter: ",", Column: 1, // Email column (1-based index) Sources: true, Verify: false, } // Upload file and create bulk response, err := client.CreateBulkWithFile( models.BulkTypeEnrich, params, "/path/to/email-list.csv", ) if err != nil { log.Fatal("Failed to create bulk with file:", err) } bulkID := *response.Data.ID fmt.Printf("Created bulk operation: %d\n", bulkID)` ### Launching and Monitoring Enrichment[](https://docs.tomba.io/bulks/email-enrichment#launching-and-monitoring-enrichment) Code `// Launch the enrichment process launchResponse, err := client.LaunchBulk(models.BulkTypeEnrich, bulkID) if err != nil { log.Fatal("Failed to launch bulk:", err) } fmt.Println("Enrichment process started!") // Monitor progress for { progress, err := client.GetBulkProgress(models.BulkTypeEnrich, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) break } fmt.Printf("Progress: %d%% (%d/%d processed)\n", progress.Progress, progress.Processed, progress.ProcessedEmail, ) if progress.Status { fmt.Println("Enrichment completed!") break } // Wait 30 seconds before checking again time.Sleep(30 * time.Second) }` ### Retrieving and Exporting Results[](https://docs.tomba.io/bulks/email-enrichment#retrieving-and-exporting-results) Code `// Get bulk details bulk, err := client.GetBulk(models.BulkTypeEnrich, bulkID) if err != nil { log.Fatal("Failed to get bulk details:", err) } fmt.Printf("Bulk Status: %v\n", bulk.Data[0].Status) fmt.Printf("Total Processed: %d\n", bulk.Data[0].Processed) // Download enriched results err = client.SaveBulkResults( models.BulkTypeEnrich, bulkID, "enriched-contacts.csv", "full", // Download type: "full", "valid", "not_found" ) if err != nil { log.Fatal("Failed to download results:", err) } fmt.Println("Results saved to enriched-contacts.csv")` ### Managing Enrichment Bulks[](https://docs.tomba.io/bulks/email-enrichment#managing-enrichment-bulks) Code `// List all enrichment bulks params := &models.BulkGetParams{ Page: 1, Limit: 20, Direction: "desc", Filter: "all", // "all", "archived" } bulks, err := client.GetAllEnrichBulks(params) if err != nil { log.Fatal("Failed to get bulks:", err) } fmt.Printf("Found %d enrichment bulks\n", len(bulks.Data)) // Rename a bulk renameParams := &models.BulkRenameParams{ Name: "Updated Enrichment Name", } _, err = client.RenameBulk(models.BulkTypeEnrich, bulkID, renameParams) if err != nil { log.Fatal("Failed to rename bulk:", err) } // Archive completed bulk _, err = client.ArchiveBulk(models.BulkTypeEnrich, bulkID) if err != nil { log.Fatal("Failed to archive bulk:", err) }` ### Advanced Example: Complete Enrichment Workflow[](https://docs.tomba.io/bulks/email-enrichment#advanced-example-complete-enrichment-workflow) Code `func performEmailEnrichment(client *tomba.Tomba, csvFilePath string) error { // Step 1: Create bulk operation params := &models.BulkCreateParams{ Name: fmt.Sprintf("Email Enrichment - %s", time.Now().Format("2006-01-02")), Delimiter: ",", Column: 1, Sources: true, Verify: false, Notifie: true, } response, err := client.CreateBulkWithFile(models.BulkTypeEnrich, params, csvFilePath) if err != nil { return fmt.Errorf("failed to create bulk: %w", err) } bulkID := *response.Data.ID log.Printf("Created enrichment bulk: %d", bulkID) // Step 2: Launch processing _, err = client.LaunchBulk(models.BulkTypeEnrich, bulkID) if err != nil { return fmt.Errorf("failed to launch bulk: %w", err) } // Step 3: Monitor progress with timeout timeout := time.After(30 * time.Minute) ticker := time.NewTicker(30 * time.Second) defer ticker.Stop() for { select { case <-timeout: return fmt.Errorf("enrichment timed out after 30 minutes") case <-ticker.C: progress, err := client.GetBulkProgress(models.BulkTypeEnrich, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) continue } log.Printf("Enrichment progress: %d%%", progress.Progress) if progress.Status { // Step 4: Download results outputPath := fmt.Sprintf("enriched-%d.csv", bulkID) err = client.SaveBulkResults(models.BulkTypeEnrich, bulkID, outputPath, "full") if err != nil { return fmt.Errorf("failed to save results: %w", err) } log.Printf("Enrichment completed! Results saved to: %s", outputPath) return nil } } } }` Best Practices[](https://docs.tomba.io/bulks/email-enrichment#best-practices) ------------------------------------------------------------------------------ * **Valid Email Input**: Ensure all input emails are properly formatted * **Data Privacy**: Comply with privacy regulations when enriching contact data * **Regular Updates**: Refresh enriched data as contacts change roles * **Segmentation**: Organize enriched contacts by relevant criteria * **Quality Control**: Validate enriched data before using for outreach * **Rate Limiting**: Monitor your API usage to avoid hitting limits * **Error Handling**: Implement robust error handling for production applications * **Progress Monitoring**: Use progress tracking for long-running enrichment operations Last modified on September 24, 2025 [Domain Search Bulk](https://docs.tomba.io/bulks/domain-search) [Email Finder Bulk](https://docs.tomba.io/bulks/email-finder) Go Go Go Go Go Go Go --- # Integrate Tomba Finder with Maltego | Tomba Documentation Menu A comprehensive Maltego integration for Tomba.io using the official Python SDK, providing 11 specialized transforms for email discovery, verification, and enrichment. Features[](https://docs.tomba.io/integrations/maltego#features) ---------------------------------------------------------------- ### Core Email Discovery[](https://docs.tomba.io/integrations/maltego#core-email-discovery) * **Domain Search**: Find all emails associated with a domain ### Email Analysis & Verification[](https://docs.tomba.io/integrations/maltego#email-analysis--verification) * **Email Verifier**: Verify email deliverability and validity * **Email Enrichment**: Enrich emails with professional/personal data ### Content & Social Intelligence[](https://docs.tomba.io/integrations/maltego#content--social-intelligence) * **Author Finder**: Extract author emails from article URLs * **LinkedIn Finder**: Find emails from LinkedIn profiles ### Utility Transforms[](https://docs.tomba.io/integrations/maltego#utility-transforms) * **Account Info**: Check API usage and account status * **Phone Finder**: Discover phone numbers associated with emails/domains * **Phone Validator**: Validate phone numbers for correctness * **Similar Domains**: Find domains related to a given domain * **Technology Checker**: Identify technologies used by a website Prerequisites[](https://docs.tomba.io/integrations/maltego#prerequisites) -------------------------------------------------------------------------- * Python 3.8 or later * Maltego CE/Classic/XL * Tomba.io API account ([Sign up here](https://app.tomba.io/auth/register) ) Installation[](https://docs.tomba.io/integrations/maltego#installation) ------------------------------------------------------------------------ Clone this repo locally. TerminalCode `git clone https://github.com/tomba-io/tomba-maltego.git cd tomba-maltego # Install dependencies pip install -r requirements.txt` **Configure API credentials**: TerminalCode `cp settings.py.template settings.py # Edit settings.py with your Tomba.io API keys` Open Maltego and using Import Config, import the `tomba_transforms.mtz` file from the repository API Configuration[](https://docs.tomba.io/integrations/maltego#api-configuration) ---------------------------------------------------------------------------------- Get your API credentials from [Tomba.io API Dashboard](https://app.tomba.io/api) : Code `# In settings.py TOMBA_API_KEY = "ta_xxxxxxxxxxxxxxxxxxxx" # Your API Key TOMBA_SECRET_KEY = "ts_xxxxxxxxxxxxxxxxxxxx" # Your Secret Key` Transform Reference[](https://docs.tomba.io/integrations/maltego#transform-reference) -------------------------------------------------------------------------------------- | Transform | Input | Output | Description | | --- | --- | --- | --- | | Domain Search | Website | Emails, People, Company | Find all emails for domain | | Email Verifier | Email | Verified Email | Check email deliverability | | Email Enrichment | Email | Enhanced Email, Person | Enrich with additional data | | Author Finder | URL | Author Emails, People | Find article authors | | LinkedIn Finder | LinkedIn URL | Email, Person | Find email from profile | | Company Enrichment | Domain | Enhanced Company | Get company details | | Phone Finder | Email, Domain | Phone Numbers | Discover associated phones | | Phone Validator | Phone Number | Validated Phone | Validate phone number | | Similar Domains | Domain | Related Domains | Find similar domains | | Technology Checker | Domain | Technologies | Identify tech stack | | Account Info | None | Account Details | Check API usage | Usage Examples[](https://docs.tomba.io/integrations/maltego#usage-examples) ---------------------------------------------------------------------------- ### Basic Domain Search[](https://docs.tomba.io/integrations/maltego#basic-domain-search) 1. Add Website entity: `example.com` 2. Run **Domain Search \[Tomba\]** 3. Explore discovered emails and people ### Email Verification[](https://docs.tomba.io/integrations/maltego#email-verification) 1. Add Email entity: `user@domain.com` 2. Run **Email Verifier \[Tomba\]** 3. Check verification status and deliverability Configuration Options[](https://docs.tomba.io/integrations/maltego#configuration-options) ------------------------------------------------------------------------------------------ ### Common Issues[](https://docs.tomba.io/integrations/maltego#common-issues) * "Please configure API credentials"\*\* * Add API keys in Transform Hub → Server Settings * Verify credentials in Tomba.io dashboard **"Rate limit exceeded"** * Wait before making more requests * Upgrade Tomba.io plan for higher limits **"No results found"** * Try different domains/emails * Check if data exists publicly * Verify domain has discoverable emails Security & Privacy[](https://docs.tomba.io/integrations/maltego#security--privacy) ----------------------------------------------------------------------------------- * API keys are never logged or exposed * All requests use HTTPS * Input validation prevents injection attacks * Respects rate limits and terms of service * GDPR and privacy-compliant data handling Support[](https://docs.tomba.io/integrations/maltego#support) -------------------------------------------------------------- * **Issues**: Create an issue on GitHub * **Support**: [Tomba.io Support](https://help.tomba.io/en/) * **Maltego Help**: [Maltego Documentation](https://docs.maltego.com/) Acknowledgments[](https://docs.tomba.io/integrations/maltego#acknowledgments) ------------------------------------------------------------------------------ * [Maltego](https://maltego.com/) for the Maltego platform * [maltego-trx](https://github.com/MaltegoTech/maltego-trx) maltego-trx library Last modified on September 26, 2025 [Integrate Tomba Finder with MyBB](https://docs.tomba.io/integrations/mybb) [Integrate Tomba Finder with LiteCart](https://docs.tomba.io/integrations/litecart) --- # Migrate to Tomba Email Verifier | Tomba Documentation Menu Switch to Tomba's advanced email verification service and experience better accuracy, richer data attributes, and superior value. * * * Why Choose Tomba?[](https://docs.tomba.io/migration/email-verifier/introduction#why-choose-tomba) -------------------------------------------------------------------------------------------------- ### **Superior Accuracy**[](https://docs.tomba.io/migration/email-verifier/introduction#superior-accuracy) Tomba consistently achieves **99%+ accuracy** through advanced SMTP validation, multi-source verification, and machine learning algorithms. ### **Better Pricing**[](https://docs.tomba.io/migration/email-verifier/introduction#better-pricing) Competitive rates with flexible plans, credit rollover, and no hidden fees. Save 15-25% compared to competitors. ### **Advanced Catchall Detection**[](https://docs.tomba.io/migration/email-verifier/introduction#advanced-catchall-detection) Sophisticated algorithms with confidence scoring help you make better decisions about catch-all domains. ### ⚡ **Lightning Fast**[](https://docs.tomba.io/migration/email-verifier/introduction#-lightning-fast) Ultra-fast verification with smart 3-month caching system. Cached results are instant and free. ### **Rich Data Attributes**[](https://docs.tomba.io/migration/email-verifier/introduction#rich-data-attributes) Get **15+ comprehensive attributes** including: * SMTP provider identification * MX record details * Confidence scoring (0-100) * Greylisting detection * Gibberish pattern analysis * Risk assessment ### **Better Integration**[](https://docs.tomba.io/migration/email-verifier/introduction#better-integration) * REST API with comprehensive documentation * Official SDKs for 10+ languages * Model Context Protocol (MCP) support * 50+ native integrations * Google Sheets & Excel add-ons * Chrome extension * * * Migration Guides[](https://docs.tomba.io/migration/email-verifier/introduction#migration-guides) ------------------------------------------------------------------------------------------------- Choose your current provider to get started: ### [NeverBounce →](https://docs.tomba.io/migration/email-verifier/neverbounce) [](https://docs.tomba.io/migration/email-verifier/introduction#neverbounce-) Popular choice with good accuracy. Migrate to Tomba for better data attributes and competitive pricing. ### [MillionVerifier →](https://docs.tomba.io/migration/email-verifier/millionverifier) [](https://docs.tomba.io/migration/email-verifier/introduction#millionverifier-) Affordable bulk verification. Switch to Tomba for higher accuracy and richer insights. ### [Bounceban →](https://docs.tomba.io/migration/email-verifier/bounceban) [](https://docs.tomba.io/migration/email-verifier/introduction#bounceban-) Simple API-based verification. Upgrade to Tomba for advanced features and better developer experience. ### [Bouncer →](https://docs.tomba.io/migration/email-verifier/bouncer) [](https://docs.tomba.io/migration/email-verifier/introduction#bouncer-) European-focused verification. Join Tomba for global coverage and comprehensive data. ### [Kickbox →](https://docs.tomba.io/migration/email-verifier/kickbox) [](https://docs.tomba.io/migration/email-verifier/introduction#kickbox-) Enterprise-grade verification. Move to Tomba for better pricing and more attributes. ### [Hunter.io →](https://docs.tomba.io/migration/email-verifier/hunter) [](https://docs.tomba.io/migration/email-verifier/introduction#hunterio-) Email finder with verification. Get Tomba's specialized verification with deeper insights. * * * Feature Comparison[](https://docs.tomba.io/migration/email-verifier/introduction#feature-comparison) ----------------------------------------------------------------------------------------------------- | Feature | Competitors | Tomba | | --- | --- | --- | | **Accuracy** | 95-98% | **99%+** | | **Data Attributes** | 6-10 attributes | **15+ attributes** | | **SMTP Provider Detection** | ❌ Most don't have it | ✅ **Detailed provider info** | | **Smart Caching** | ❌ Limited or none | ✅ **3-month automatic caching** | | **Greylisting Detection** | ❌ Rare | ✅ **Built-in** | | **Confidence Scoring** | ⚠️ Basic | ✅ **Advanced 0-100 scoring** | | **MX Record Details** | ⚠️ Limited | ✅ **Full record list** | | **API Documentation** | ⚠️ Varies | ✅ **Comprehensive + OpenAPI** | | **Official SDKs** | ⚠️ Few languages | ✅ **10+ languages** | | **MCP Integration** | ❌ Not available | ✅ **Full MCP support** | | **Bulk Processing** | ✅ Most have it | ✅ **Advanced API** | | **Free Trial** | ⚠️ Varies | ✅ **25 free verifications** | * * * What You Get with Tomba[](https://docs.tomba.io/migration/email-verifier/introduction#what-you-get-with-tomba) --------------------------------------------------------------------------------------------------------------- ### Comprehensive Verification Data[](https://docs.tomba.io/migration/email-verifier/introduction#comprehensive-verification-data) Code `{ "data": { "email": "contact@example.com", "status": "valid", "result": "deliverable", "score": 100, "regex": true, "mx_records": ["mail.example.com"], "mx_check": true, "smtp_server": true, "smtp_check": true, "smtp_provider": "Google Workspace", "accept_all": false, "block": false, "gibberish": false, "disposable": false, "webmail": false, "greylisted": false } }` ### Smart Caching System[](https://docs.tomba.io/migration/email-verifier/introduction#smart-caching-system) Tomba automatically caches verification results for **3 months**: * **Save credits**: No charge for cached results * **Instant results**: Cached verifications return immediately * **Always fresh**: Verification dates tracked automatically * **Automatic management**: No configuration needed ### Advanced Detection[](https://docs.tomba.io/migration/email-verifier/introduction#advanced-detection) * **Catch-all domains**: Sophisticated detection with risk scoring * **Disposable emails**: Comprehensive database of temporary services * **Webmail providers**: Identify Gmail, Outlook, Yahoo, etc. * **Role addresses**: Detect generic addresses (info@, support@, etc.) * **Gibberish patterns**: Identify randomly generated addresses * **SMTP provider**: Know exactly which email service is used * * * Migration Process[](https://docs.tomba.io/migration/email-verifier/introduction#migration-process) --------------------------------------------------------------------------------------------------- ### 1\. **Sign Up & Get Credentials**[](https://docs.tomba.io/migration/email-verifier/introduction#1-sign-up--get-credentials) Create your free Tomba account and get your API keys. ### 2\. **Choose Your Guide**[](https://docs.tomba.io/migration/email-verifier/introduction#2-choose-your-guide) Select your current provider from the list above for specific migration instructions. ### 3\. **Update Your Code**[](https://docs.tomba.io/migration/email-verifier/introduction#3-update-your-code) Follow the code examples to update API calls and response handling. ### 4\. **Test in Parallel**[](https://docs.tomba.io/migration/email-verifier/introduction#4-test-in-parallel) Run both services simultaneously to verify accuracy and performance. ### 5\. **Complete Migration**[](https://docs.tomba.io/migration/email-verifier/introduction#5-complete-migration) Switch over completely and cancel your old subscription. ### 6\. **Optimize**[](https://docs.tomba.io/migration/email-verifier/introduction#6-optimize) Take advantage of Tomba's advanced features and integrations. * * * Quick Start Example[](https://docs.tomba.io/migration/email-verifier/introduction#quick-start-example) ------------------------------------------------------------------------------------------------------- Code ``import { TombaClient, Verifier } from "tomba"; // Init Tomba let client = new TombaClient(); let verifier = new Verifier(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret async function verifyEmail(email) { try { const result = await verifier.emailVerifier(email); console.log(`Email: ${result.email}`); console.log(`Status: ${result.status}`); console.log(`Result: ${result.result}`); console.log(`Score: ${result.score}`); console.log(`Provider: ${result.smtp_provider}`); return result; } catch (error) { console.error("Verification error:", error); } } verifyEmail("test@example.com");`` Code `# Python from tomba import Client, Verifier client = Client('YOUR_API_KEY', 'YOUR_SECRET') verifier = Verifier(client) def verify_email(email): try: result = verifier.email_verifier(email) print(f"Email: {result['email']}") print(f"Status: {result['status']}") print(f"Result: {result['result']}") print(f"Score: {result['score']}") print(f"Provider: {result['smtp_provider']}") return result except Exception as error: print(f"Verification error: {error}") verify_email('test@example.com')` * * * Support & Resources[](https://docs.tomba.io/migration/email-verifier/introduction#support--resources) ------------------------------------------------------------------------------------------------------ ### Documentation[](https://docs.tomba.io/migration/email-verifier/introduction#documentation) * [API Reference](https://docs.tomba.io/api) * [Email Verifier Attributes](https://docs.tomba.io/attributes/verifier) * [Bulk Verification](https://docs.tomba.io/bulks/email-verifier) * [SDKs & Libraries](https://docs.tomba.io/libraries) ### Help & Support[](https://docs.tomba.io/migration/email-verifier/introduction#help--support) * [Support Portal](https://help.tomba.io/) * [API Status](https://status.tomba.io/) * Email: [support@tomba.io](mailto:support@tomba.io) * Migration assistance available for enterprise customers ### Try It Free[](https://docs.tomba.io/migration/email-verifier/introduction#try-it-free) Start with **25 free verifications** - no credit card required! [Sign up now →](https://app.tomba.io/auth/register) * * * FAQ[](https://docs.tomba.io/migration/email-verifier/introduction#faq) ----------------------------------------------------------------------- **Q: How long does migration typically take?** A: Most migrations are completed in 1-2 hours, including testing. **Q: Will I experience any downtime?** A: No! You can run both services in parallel during migration. **Q: Can I test before fully migrating?** A: Yes! Use our free tier (25 verifications) to test the service thoroughly. **Q: Do you offer migration support?** A: Yes, especially for enterprise customers. Contact our support team. **Q: What happens to my existing data?** A: You can export your data from your current provider and re-verify with Tomba at discounted bulk rates. **Q: Is the API compatible with my current setup?** A: Tomba's RESTful API follows standard conventions and includes SDKs for easy integration. **Q: How much will I save?** A: Most customers save 15-25% on costs while getting better accuracy and more data. * * * Ready to Migrate?[](https://docs.tomba.io/migration/email-verifier/introduction#ready-to-migrate) -------------------------------------------------------------------------------------------------- Choose your current provider above and follow the step-by-step migration guide. Our team is here to help if you need assistance! [Get Started →](https://app.tomba.io/auth/register) Last modified on February 11, 2026 [Clearbit Combined API Replacement](https://docs.tomba.io/migration/clearbit/combined-api) [Migrate from NeverBounce to Tomba](https://docs.tomba.io/migration/email-verifier/neverbounce) JSON Javascript --- # R Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/r-email-finder#installation) ---------------------------------------------------------------------------- To install TerminalCode `install.packages("tomba")` or via devtools [devtools](https://devtools.r-lib.org/) : TerminalCode `devtools::install_github("tomba-io/r")` Usage[](https://docs.tomba.io/libraries/r-email-finder#usage) -------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/r-email-finder#domain-search) Get email addresses found on the internet. Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") data <- domain_search(client, domain="tomba.io")` ### Email Finder[](https://docs.tomba.io/libraries/r-email-finder#email-finder) Find the verified email address of any professional. Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") data <- email_finder(client, domain="tomba.io",fname="FNAME",lname="LNAME")` ### Email Verifier[](https://docs.tomba.io/libraries/r-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") data <- email_verifier(client, email="m@wordpress.org")` Examples[](https://docs.tomba.io/libraries/r-email-finder#examples) -------------------------------------------------------------------- ### Get Account Information[](https://docs.tomba.io/libraries/r-email-finder#get-account-information) Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") data <- account(client) data` ### Email Count[](https://docs.tomba.io/libraries/r-email-finder#email-count) Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") data <- count(client, domain="tomba.io") data` ### Finder Services[](https://docs.tomba.io/libraries/r-email-finder#finder-services) #### Author Finder[](https://docs.tomba.io/libraries/r-email-finder#author-finder) Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") result <- author_finder(client,url="https://clearbit.com/blog/company-name-to-domain-api")` #### LinkedIn Finder[](https://docs.tomba.io/libraries/r-email-finder#linkedin-finder) Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") result <- linkedin_finder(client,url="https://www.linkedin.com/in/alex-maccaw-ab592978")` #### Phone Finder[](https://docs.tomba.io/libraries/r-email-finder#phone-finder) Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") result <- phone_finder(client,email="******@zapier.com")` ### Email Sources[](https://docs.tomba.io/libraries/r-email-finder#email-sources) Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") data <- email_sources(client, email="b.mohamed@tomba.io") data` ### Domain and Company Status[](https://docs.tomba.io/libraries/r-email-finder#domain-and-company-status) #### Domain Status[](https://docs.tomba.io/libraries/r-email-finder#domain-status) Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") data <- status(client, domain="gmail.com") data` ### Activity Logs[](https://docs.tomba.io/libraries/r-email-finder#activity-logs) Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") data <- logs(client) data` ### Usage Statistics[](https://docs.tomba.io/libraries/r-email-finder#usage-statistics) Code `client <- Tomba(key="ta_xxxx",secret="ts_xxxx") data <- usage(client) data` For more sample codes, check the [**examples/**](https://github.com/tomba-io/r/tree/master/examples) folder. Last modified on April 28, 2026 [Python Client Library](https://docs.tomba.io/libraries/python-email-finder) [Rust Client Library](https://docs.tomba.io/libraries/rust-email-finder) --- # Company Enrichment Bulk | Tomba Documentation Menu Overview[](https://docs.tomba.io/bulks/company-enrichment#overview) -------------------------------------------------------------------- [Bulks Company Enrichment](https://tomba.io/bulks/company-enrichment) provides comprehensive business intelligence for thousands of companies simultaneously. Gather detailed company information, contact data, and organizational insights to enhance your prospect research and targeting efforts. ### Key Features[](https://docs.tomba.io/bulks/company-enrichment#key-features) * **Company Intelligence**: Gather detailed information about target companies * **Contact Discovery**: Find key personnel and their contact information * **Data Enrichment**: Enhance existing company records with additional details * **Bulk Processing**: Process up to 15,000 companies in one operation * **Comprehensive Profiles**: Access company size, industry, location, and more * **Integration Ready**: Export enriched data for CRM integration ### How Company Enrichment Bulk Works[](https://docs.tomba.io/bulks/company-enrichment#how-company-enrichment-bulk-works) 1. **Provide Company List**: Input company domains or names 2. **Select Data Fields**: Choose what information to enrich (contacts, company details, etc.) 3. **Process Enrichment**: Launch the bulk enrichment operation 4. **Review Enhanced Data**: Examine the enriched company profiles 5. **Export Results**: Download comprehensive company intelligence ### Limitations[](https://docs.tomba.io/bulks/company-enrichment#limitations) * Each Bulk is limited to 15,000 domains * Additional rows will be skipped * Some special or unexpected characters may be deleted in the file * Invalid websites won't be imported * Duplicate URLs won't be imported * For better results, we use the domain name instead of the company name Go SDK Integration[](https://docs.tomba.io/bulks/company-enrichment#go-sdk-integration) ---------------------------------------------------------------------------------------- ### Installation[](https://docs.tomba.io/bulks/company-enrichment#installation) TerminalCode `go get github.com/tomba-io/go` ### Basic Company Enrichment[](https://docs.tomba.io/bulks/company-enrichment#basic-company-enrichment) Code `package main import ( "fmt" "log" "strings" "time" "github.com/tomba-io/go/tomba" "github.com/tomba-io/go/tomba/models" ) func main() { // Initialize Tomba client client := tomba.NewClient("YOUR_TOMBA_KEY", "YOUR_TOMBA_SECRET") // Create Company Enrichment Bulk params := &models.BulkCreateParams{ Name: "Enterprise Prospects Q1 2024", List: "stripe.com\nshopify.com\nzoom.us\nslack.com\ndropbox.com\nnotion.so", Sources: true, // Include data sources Verify: true, // Verify found emails } // Create the bulk operation response, err := client.CreateBulk(models.BulkTypeCompany, params) if err != nil { log.Fatal("Error creating company enrichment bulk:", err) } bulkID := *response.Data.ID fmt.Printf("Company Enrichment Bulk created with ID: %d\n", bulkID) // Launch the bulk operation launchResp, err := client.LaunchBulk(models.BulkTypeCompany, bulkID) if err != nil { log.Fatal("Error launching bulk:", err) } fmt.Printf("Bulk launched: %s\n", launchResp.Data.Message) // Monitor progress fmt.Println("Monitoring enrichment progress...") for { progress, err := client.GetBulkProgress(models.BulkTypeCompany, bulkID) if err != nil { log.Printf("Error getting progress: %v", err) break } fmt.Printf("Progress: %d%% (%d companies processed)\n", progress.Progress, progress.Processed) if progress.Progress >= 100 { fmt.Println("Company enrichment completed!") break } time.Sleep(10 * time.Second) } // Download enriched results err = client.SaveBulkResults(models.BulkTypeCompany, bulkID, "./enriched_companies.csv", "full") if err != nil { log.Printf("Error downloading results: %v", err) } else { fmt.Println("Enriched company data saved to ./enriched_companies.csv") } }` ### Advanced Company Enrichment with File Upload[](https://docs.tomba.io/bulks/company-enrichment#advanced-company-enrichment-with-file-upload) Code `func enrichFromCSV(client *tomba.Tomba, filePath string) error { // For large lists, you might want to use CSV upload params := &models.BulkCreateParams{ Name: "CSV Company Enrichment", Sources: true, Verify: true, Delimiter: ",", Column: 1, // Domain column in CSV } // Create with file upload response, err := client.CreateBulkWithFile(models.BulkTypeCompany, params, filePath) if err != nil { return fmt.Errorf("failed to create bulk with file: %w", err) } bulkID := *response.Data.ID fmt.Printf("Company enrichment bulk created from CSV with ID: %d\n", bulkID) // Launch and monitor _, err = client.LaunchBulk(models.BulkTypeCompany, bulkID) if err != nil { return fmt.Errorf("failed to launch bulk: %w", err) } return monitorAndDownload(client, models.BulkTypeCompany, bulkID, "./csv_enriched_results.csv") } func monitorAndDownload(client *tomba.Tomba, bulkType models.BulkType, bulkID int64, outputPath string) error { // Monitor with timeout timeout := time.After(45 * time.Minute) ticker := time.NewTicker(30 * time.Second) defer ticker.Stop() for { select { case <-timeout: return fmt.Errorf("enrichment operation timed out after 45 minutes") case <-ticker.C: progress, err := client.GetBulkProgress(bulkType, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) continue } fmt.Printf("Enrichment Progress: %d%% (%d processed)\n", progress.Progress, progress.Processed) if progress.Progress >= 100 { // Download results err = client.SaveBulkResults(bulkType, bulkID, outputPath, "full") if err != nil { return fmt.Errorf("failed to download results: %w", err) } fmt.Printf("Results downloaded to: %s\n", outputPath) return nil } } } }` ### Batch Processing for Large Lists[](https://docs.tomba.io/bulks/company-enrichment#batch-processing-for-large-lists) Code `func batchEnrichCompanies(client *tomba.Tomba, domains []string, batchSize int) error { if len(domains) == 0 { return fmt.Errorf("no domains provided") } // Split into batches to stay within limits for i := 0; i < len(domains); i += batchSize { end := i + batchSize if end > len(domains) { end = len(domains) } if end-i > 15000 { end = i + 15000 // Respect API limit } batch := domains[i:end] batchNum := (i / batchSize) + 1 fmt.Printf("Processing batch %d (%d domains)...\n", batchNum, len(batch)) params := &models.BulkCreateParams{ Name: fmt.Sprintf("Company Batch %d - %s", batchNum, time.Now().Format("2006-01-02")), List: strings.Join(batch, "\n"), Sources: true, Verify: true, } response, err := client.CreateBulk(models.BulkTypeCompany, params) if err != nil { log.Printf("Error creating batch %d: %v", batchNum, err) continue } bulkID := *response.Data.ID // Launch batch _, err = client.LaunchBulk(models.BulkTypeCompany, bulkID) if err != nil { log.Printf("Error launching batch %d: %v", batchNum, err) continue } fmt.Printf("Batch %d launched with ID: %d\n", batchNum, bulkID) // Small delay between batches time.Sleep(5 * time.Second) } return nil }` ### Company Enrichment Management[](https://docs.tomba.io/bulks/company-enrichment#company-enrichment-management) Code `func manageCompanyBulks(client *tomba.Tomba) { // Get all company enrichment bulks allBulks, err := client.GetAllCompanyBulks(&models.BulkGetParams{ Page: 1, Limit: 20, Direction: "desc", Filter: "all", }) if err != nil { log.Printf("Error getting company bulks: %v", err) return } fmt.Printf("Total company enrichment bulks: %d\n", allBulks.Meta.Total) // Process each bulk for _, bulk := range allBulks.Data { fmt.Printf("Bulk: %s (ID: %d)\n", bulk.Name, bulk.BulkID) fmt.Printf(" Progress: %d%%, Status: %t, Expired: %t\n", bulk.Progress, bulk.Status, bulk.Expired) if bulk.TotalEmails != nil { fmt.Printf(" Total Emails Found: %d\n", *bulk.TotalEmails) } // Download completed and unused bulks if bulk.Progress >= 100 && !bulk.Used && !bulk.Expired { filename := fmt.Sprintf("./company_enrichment_%d.csv", bulk.BulkID) err := client.SaveBulkResults( models.BulkTypeCompany, bulk.BulkID, filename, "full", ) if err == nil { fmt.Printf(" ✓ Downloaded results to %s\n", filename) } else { fmt.Printf(" ✗ Failed to download: %v\n", err) } } } // Clean up old bulks cleanupOldBulks(client, allBulks.Data) } func cleanupOldBulks(client *tomba.Tomba, bulks []models.BulkItem) { cutoffDate := time.Now().AddDate(0, -3, 0) // 3 months ago for _, bulk := range bulks { // Archive bulks older than 3 months if bulk.CreatedAt.Before(cutoffDate) && bulk.Progress >= 100 { _, err := client.ArchiveBulk(models.BulkTypeCompany, bulk.BulkID) if err == nil { fmt.Printf("Archived old bulk: %s (ID: %d)\n", bulk.Name, bulk.BulkID) } } } }` ### Input Format Examples[](https://docs.tomba.io/bulks/company-enrichment#input-format-examples) **Text List (recommended):** Code `stripe.com shopify.com zoom.us slack.com dropbox.com notion.so figma.com` **CSV File:** Code `Domain,Company stripe.com,Stripe Inc shopify.com,Shopify zoom.us,Zoom Video Communications slack.com,Slack Technologies` Best Practices[](https://docs.tomba.io/bulks/company-enrichment#best-practices) -------------------------------------------------------------------------------- * **Clean Domain Lists**: Ensure domains are properly formatted without protocols (http/https) * **Use Domain Names**: Prefer domain names over company names for better accuracy * **Enable Sources**: Include source information for data validation * **Verify Emails**: Enable email verification for higher-quality contact data * **Regular Updates**: Refresh company data periodically as organizations change * **Data Validation**: Cross-check enriched data with multiple sources * **Strategic Segmentation**: Organize enriched companies by relevant criteria (size, industry, location) * **Batch Processing**: For very large lists, process in manageable batches * **Monitor Progress**: Check progress regularly for large operations * **Archive Completed**: Archive old bulks to keep dashboard organized ### Common Use Cases[](https://docs.tomba.io/bulks/company-enrichment#common-use-cases) * **Lead Qualification**: Enrich prospect lists with detailed company information * **Market Research**: Gather intelligence on target markets and competitors * **Sales Preparation**: Enhance CRM data before sales outreach * **Partnership Identification**: Find potential partners and strategic relationships * **Competitive Analysis**: Understand competitive landscape and positioning * **Account-Based Marketing**: Develop detailed target account profiles Last modified on April 27, 2026 [Author Finder Bulk](https://docs.tomba.io/bulks/author-finder) [Domain Search Bulk](https://docs.tomba.io/bulks/domain-search) Go Go Go Go --- # Perl Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/perl-email-finder#installation) ------------------------------------------------------------------------------- install from source (not necessary for use in your application), download the source and run the following commands: TerminalCode `perl Makefile.PL make make test make install` Usage[](https://docs.tomba.io/libraries/perl-email-finder#usage) ----------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/perl-email-finder#domain-search) Get email addresses found on the internet. Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->DomainSearch('wordpress.org') print $result;` ### Email Finder[](https://docs.tomba.io/libraries/perl-email-finder#email-finder) Find the verified email address of any professional. Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->emailFinder('stripe.com', 'fname', 'lname') print $result;` ### Email Verifier[](https://docs.tomba.io/libraries/perl-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->EmailVerifier('m@wordpress.org') print $result;` Examples[](https://docs.tomba.io/libraries/perl-email-finder#examples) ----------------------------------------------------------------------- ### Get Account Information[](https://docs.tomba.io/libraries/perl-email-finder#get-account-information) Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->Account(); print $result;` ### Email Count[](https://docs.tomba.io/libraries/perl-email-finder#email-count) Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->Count('tomba.io'); print $result;` ### Finder Services[](https://docs.tomba.io/libraries/perl-email-finder#finder-services) #### Author Finder[](https://docs.tomba.io/libraries/perl-email-finder#author-finder) Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->AuthorFinder('https://clearbit.com/blog/company-name-to-domain-api'); print $result;` #### LinkedIn Finder[](https://docs.tomba.io/libraries/perl-email-finder#linkedin-finder) Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->LinkedinFinder('https://www.linkedin.com/in/alex-maccaw-ab592978'); print $result;` ### Email Enrichment[](https://docs.tomba.io/libraries/perl-email-finder#email-enrichment) Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->Enrichment('b.mohamed@tomba.io'); print $result;` ### Email Sources[](https://docs.tomba.io/libraries/perl-email-finder#email-sources) Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->EmailSources('b.mohamed@tomba.io'); print $result;` ### Domain and Company Status[](https://docs.tomba.io/libraries/perl-email-finder#domain-and-company-status) #### Auto Complete[](https://docs.tomba.io/libraries/perl-email-finder#auto-complete) Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->Autocomplete('google'); print $result;` #### Domain Status[](https://docs.tomba.io/libraries/perl-email-finder#domain-status) Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->Status('gmail.com'); print $result;` ### Activity Logs[](https://docs.tomba.io/libraries/perl-email-finder#activity-logs) Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->Logs(); print $result;` ### Usage Statistics[](https://docs.tomba.io/libraries/perl-email-finder#usage-statistics) Code `use Tomba::Finder; $tomba = Tomba::Finder->new("ta_xxxxx", "ts_xxxxx"); $result = $tomba->Usage(); print $result;` For more sample codes, check the [**examples/**](https://github.com/tomba-io/perl/tree/master/examples) folder. Last modified on April 28, 2026 [Lua Client Library](https://docs.tomba.io/libraries/lua-email-finder) [PHP Client Library](https://docs.tomba.io/libraries/php-email-finder) --- # Integrate Tomba Finder with n8n | Tomba Documentation Menu Installation[](https://docs.tomba.io/integrations/n8n#installation) -------------------------------------------------------------------- Tomba is a verified n8n node, which means it's been reviewed and approved by n8n for security and quality. ### Install from n8n Integrations (Recommended)[](https://docs.tomba.io/integrations/n8n#install-from-n8n-integrations-recommended) The easiest way to install Tomba is directly from the [n8n Tomba integration page](https://n8n.io/integrations/tomba/) : 1. **Sign in to n8n** [Sign in to n8n](https://app.n8n.cloud/register) , open the editor, and click **+** in the top right to open the Nodes panel. 2. **Search for Tomba** Type "Tomba" in the search field to find the node. 3. **Add to Workflow** Click on the Tomba node to add it to your workflow. Learn more about [using verified nodes in n8n](https://docs.n8n.io/integrations/community-nodes/installation/verified-install/) . ### Install via Community Nodes[](https://docs.tomba.io/integrations/n8n#install-via-community-nodes) Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation. ### Installation Steps:[](https://docs.tomba.io/integrations/n8n#installation-steps) 1. Go to **Settings** 2. Click on **"Community Nodes"** 3. Enter `n8n-nodes-tomba` into the text box 4. Click on **"I understand the risk..."** 5. Click on **"Install"** Alternatively, you can it via npm in your n8n installation: install TerminalCode `npm install n8n-nodes-tomba` Operations[](https://docs.tomba.io/integrations/n8n#operations) ---------------------------------------------------------------- The Tomba node supports the following operations: ### [Author Finder](https://docs.tomba.io/api/finder#author-finder) [](https://docs.tomba.io/integrations/n8n#author-finder) Generate or retrieve the most likely email address from a blog post URL ### [Autocomplete](https://docs.tomba.io/api/domain-suggestions#get-domain-suggestions) [](https://docs.tomba.io/integrations/n8n#autocomplete) Find company names and retrieve logo and domain information ### [Domain Search](https://docs.tomba.io/api/finder#domain-search) [](https://docs.tomba.io/integrations/n8n#domain-search) Get every email address found on the internet using a given domain name, with sources ### [Domain Status](https://docs.tomba.io/api/~endpoints#domain-status) [](https://docs.tomba.io/integrations/n8n#domain-status) Find domain status if is webmail or disposable ### [Email Count](https://docs.tomba.io/api/finder#email-count) [](https://docs.tomba.io/integrations/n8n#email-count) Find total email addresses we have for one domain ### [Email Enrichment](https://docs.tomba.io/api/finder#email-enrichment) [](https://docs.tomba.io/integrations/n8n#email-enrichment) Look up person and company data based on an email ### [Email Finder](https://docs.tomba.io/api/finder#email-finder) [](https://docs.tomba.io/integrations/n8n#email-finder) Generate or retrieve the most likely email address from a domain name, a first name and a last name ### [Email Format](https://docs.tomba.io/api/finder#email-format) [](https://docs.tomba.io/integrations/n8n#email-format) Retrieve the email format patterns used by a specific domain ### [Email Sources](https://docs.tomba.io/api/~endpoints#email-sources) [](https://docs.tomba.io/integrations/n8n#email-sources) Find email address source somewhere on the web ### [Email Verifier](https://docs.tomba.io/api/verifier#email-verifier) [](https://docs.tomba.io/integrations/n8n#email-verifier) Verify the deliverability of an email address ### [LinkedIn Finder](https://docs.tomba.io/api/finder#linkedin-finder) [](https://docs.tomba.io/integrations/n8n#linkedin-finder) Generate or retrieve the most likely email address from a LinkedIn URL ### [Location](https://docs.tomba.io/api/finder#location) [](https://docs.tomba.io/integrations/n8n#location) Get employees location based on the domain name ### [Phone Finder](https://docs.tomba.io/api/phone#phone-finder) [](https://docs.tomba.io/integrations/n8n#phone-finder) Search for phone numbers based on an email, domain, or LinkedIn URL ### [Phone Validator](https://docs.tomba.io/api/phone#phone-validator) [](https://docs.tomba.io/integrations/n8n#phone-validator) Validate a phone number and retrieve its associated information ### [Similar](https://docs.tomba.io/api/~endpoints#similar) [](https://docs.tomba.io/integrations/n8n#similar) Retrieve similar domains based on a specific domain ### [Technology](https://docs.tomba.io/api/~endpoints#technology) [](https://docs.tomba.io/integrations/n8n#technology) Retrieve the technologies used by a specific domain and improve description Credentials[](https://docs.tomba.io/integrations/n8n#credentials) ------------------------------------------------------------------ To use this node, you need to configure your Tomba API credentials: 1. Sign up for a [Tomba.io account](https://tomba.io/register) 2. Get your API key from the [Tomba dashboard](https://app.tomba.io/api) 3. In n8n, create new credentials for "Tomba API" 4. Enter your API key and secret key ### Required Credential Fields:[](https://docs.tomba.io/integrations/n8n#required-credential-fields) * **API Key**: Your Tomba API key * **API Secret**: Your Tomba API secret Compatibility[](https://docs.tomba.io/integrations/n8n#compatibility) ---------------------------------------------------------------------- This node is compatible with n8n version **1.113.3** and above. Usage[](https://docs.tomba.io/integrations/n8n#usage) ------------------------------------------------------ ### Basic Examples[](https://docs.tomba.io/integrations/n8n#basic-examples) #### Example 1: Email Verification[](https://docs.tomba.io/integrations/n8n#example-1-email-verification) This workflow verifies the deliverability of an email address using Tomba: 1. **Start Node**: Triggers the workflow 2. **Tomba Node**: * Operation: `Email Verifier` * Email: `example@domain.com` #### Example 2: Domain Email Search[](https://docs.tomba.io/integrations/n8n#example-2-domain-email-search) Find all email addresses for a domain: 1. **Start Node**: Triggers the workflow 2. **Tomba Node**: * Operation: `Domain Search` * Domain: `company.com` ### Workflow Examples[](https://docs.tomba.io/integrations/n8n#workflow-examples) #### Lead Generation Workflow[](https://docs.tomba.io/integrations/n8n#lead-generation-workflow) Code `[Webhook] → [Tomba Domain Search] → [Filter Valid Emails] → [CRM Integration]` #### Email Validation Pipeline[](https://docs.tomba.io/integrations/n8n#email-validation-pipeline) Code `[CSV Import] → [Tomba Email Verifier] → [Sort Results] → [Export Valid Emails]` #### Company Research Automation[](https://docs.tomba.io/integrations/n8n#company-research-automation) Code `[Company List] → [Tomba Company Finder] → [Email Search] → [Contact Database]` Contributing[](https://docs.tomba.io/integrations/n8n#contributing) -------------------------------------------------------------------- Contributions are welcome! Please feel free to submit a Pull Request. ### How to Contribute[](https://docs.tomba.io/integrations/n8n#how-to-contribute) 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add some amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ### Development Guidelines[](https://docs.tomba.io/integrations/n8n#development-guidelines) * Follow the existing code style * Add tests for new features * Update documentation as needed * Ensure all tests pass before submitting Version History[](https://docs.tomba.io/integrations/n8n#version-history) -------------------------------------------------------------------------- Refer to the [releases page](https://github.com/tomba-io/n8n-nodes-tomba/releases) for detailed version history and changelog. * * * Support[](https://docs.tomba.io/integrations/n8n#support) ---------------------------------------------------------- For support with this community node: 1. Check the [Issues](https://github.com/tomba-io/n8n-nodes-tomba/issues) page 2. Create a new issue if your problem isn't already reported 3. For Tomba API-related issues, contact [Tomba Support](https://app.tomba.io/contact) Last modified on February 11, 2026 [Pipedream Integration](https://docs.tomba.io/integrations/pipedream) [Integrate Tomba Finder with Steampipe](https://docs.tomba.io/integrations/steampipe) --- # Blivz Integration | Tomba Documentation Menu Overview[](https://docs.tomba.io/integrations/blivz#overview) -------------------------------------------------------------- Blivz is a GTM data and prospecting platform built around spreadsheet-style lists. Its **column enrichment system** lets you add new columns powered by external APIs and Tomba ships as a native integration with three actions: **Find Email**, **Domain Search**, and **Verify Email**. Enrich any Blivz GTM list with professional email addresses, verification status, and contact data directly inside the table, without leaving the platform. Prerequisites[](https://docs.tomba.io/integrations/blivz#prerequisites) ------------------------------------------------------------------------ | Requirement | Details | | --- | --- | | **Blivz account** | Sign up at [lists.blivz.com](https://lists.blivz.com/sign-up)
supports Google and GitHub OAuth | | **A Blivz list with data** | Your list needs at least a **full name** column and a **domain** column to use Find Email | | **Tomba API key** | Obtain from [app.tomba.io/api](https://app.tomba.io/api)
format: `ta_xxxxxxxxxxxxxxxxxxxxxx` | Quick Setup[](https://docs.tomba.io/integrations/blivz#quick-setup) -------------------------------------------------------------------- 1. **Open your list in Blivz** Navigate to **Lists → your list**. Your list should contain columns for Company, Website, Domain, and contact full names. 2. **Click "+ Add Column" → Integrations** The column type dropdown appears at the top-right of the table header. Select **Integrations** to open the integration picker. 3. **Select a Tomba action** In the "Add Integration" modal, search or scroll to find the Tomba actions. Choose from **Find Email**, **Domain Search**, or **Verify Email**. 4. **Create a connection with your API key** Click **\+ New Connection**, enter a connection name (e.g. "My Tomba API"), paste your API key, and click **Save**. A "Connection created" toast confirms success. 5. **Map inputs and run** Set the required input fields to your list columns. Click **Run on N rows**. Results stream into the new column. Available Actions[](https://docs.tomba.io/integrations/blivz#available-actions) -------------------------------------------------------------------------------- ### Find Email[](https://docs.tomba.io/integrations/blivz#find-email) Find a professional email address using a full name and company domain. **Inputs:** | Input | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | **Full Name** | string | Required | Full name of the person | `Arjun Lalwani` | | **Company Domain** | string | Required | The company domain (not full URL) | `getapproval.ai` | **Output:** Returns a JSON object with the following fields: | Field | Type | Description | | --- | --- | --- | | `email` | string | The found professional email address | | `first_name` | string / null | First name extracted from the profile | | `last_name` | string / null | Last name extracted from the profile | | `full_name` | string / null | Full name | | `website_url` | string / null | Company website URL | | `company` | string / null | Company name | | `position` | string / null | Job title / position | | `country` | string / null | Country (ISO code) | | `score` | number | Confidence score 0–100. A score of 100 means very high confidence | | `verification` | object | Object with `date` and `status` properties | | `sources` | array | Web sources where the email was found | ### Domain Search[](https://docs.tomba.io/integrations/blivz#domain-search) Find all email addresses associated with a company domain, including company metadata, email patterns, technologies, and social profiles. **Inputs:** | Input | Type | Required | Description | | --- | --- | --- | --- | | **Company Domain** | string | Required | The domain to search (e.g., `stripe.com`) | | **Limit** | number | Optional | Max emails to return. Default: 10. Max: 100. | **Output:** Code `{ "organization": "Stripe", "website_url": "https://stripe.com", "country": "US", "description": "...", "industry": "Fintech", "twitter": "https://twitter.com/stripe", "linkedin": "https://linkedin.com/company/stripe", "technologies": ["React", "Go", "AWS"], "pattern": "{first}@{domain}", "emails": [ { "email": "john@stripe.com", "first_name": "John", "last_name": "Collison", "full_name": "John Collison", "position": "Co-Founder", "score": 99 } ] }` ### Verify Email[](https://docs.tomba.io/integrations/blivz#verify-email) Verify if an email address is valid and deliverable, with detailed SMTP check results. **Inputs:** | Input | Type | Required | Description | | --- | --- | --- | --- | | **Email Address** | string | Required | The email to verify | **Output:** Code `{ "email": "john@stripe.com", "status": "valid", "result": "deliverable", "score": 98, "regexp": true, "gibberish": false, "disposable": false, "webmail": false, "mx_records": true, "smtp_server": true, "smtp_check": true, "accept_all": false, "block": false }` **Status Values:** | Status | Meaning | | --- | --- | | `valid` | Email is deliverable. Safe to send. | | `invalid` | Email does not exist or will bounce. | | `accept_all` | Domain accepts all email. Cannot confirm individual deliverability. | | `unknown` | Could not determine status (e.g., SMTP timeout). | Creating a Connection[](https://docs.tomba.io/integrations/blivz#creating-a-connection) ---------------------------------------------------------------------------------------- When adding a Tomba action for the first time, you'll need to create a connection: 1. Click **\+ New Connection** in the action panel 2. Enter a **Connection Name** (e.g., "My Tomba API") 3. Paste your **API Key** from [app.tomba.io/api](https://app.tomba.io/api) 4. Click **Save** Your connection is stored securely and can be reused across all lists and actions. Mapping Columns[](https://docs.tomba.io/integrations/blivz#mapping-columns) ---------------------------------------------------------------------------- The column pickers for inputs show a searchable dropdown of all existing columns in your list, with a live preview of the values in the selected column. This lets you verify you're mapping to the correct data before running. Domain format Tomba accepts all domain formats plain domains (`getapproval.ai`), with protocols (`http://`, `https://`), with `www.` prefix, or subdomains. The integration automatically normalizes the input. Running on Rows[](https://docs.tomba.io/integrations/blivz#running-on-rows) ---------------------------------------------------------------------------- | Button | Behavior | | --- | --- | | **Test (1 row)** | Runs only on the first row. Use this to validate your mapping before running on all rows. | | **Run on N rows** | Runs on all rows in the list. Results stream in row by row as they are returned from the Tomba API. | During execution, the new column is added immediately and results fill in progressively. After completion, a toast confirms the operation. Tips & Best Practices[](https://docs.tomba.io/integrations/blivz#tips--best-practices) --------------------------------------------------------------------------------------- ### Chaining Actions[](https://docs.tomba.io/integrations/blivz#chaining-actions) Run **Find Email** first, then add a second **Verify Email** column that maps to the email output of the first column. This gives you both the found email and its verified deliverability status in the same list. ### Using "Only run if"[](https://docs.tomba.io/integrations/blivz#using-only-run-if) Enable the **Only run if** checkbox to add a filter condition. For example, only run Find Email if the `full name` column is not empty. This avoids wasting API credits on rows you don't need enriched. ### Handling undefined results[](https://docs.tomba.io/integrations/blivz#handling-undefined-results) If many rows return `undefined`, check that your **Domain** column contains clean domain values (e.g., `stripe.com` rather than `https://www.stripe.com/payments`). ### Exporting enriched data[](https://docs.tomba.io/integrations/blivz#exporting-enriched-data) Once enrichment is complete, click **Export CSV** to download the full table including all enriched columns. Resources[](https://docs.tomba.io/integrations/blivz#resources) ---------------------------------------------------------------- * [Blivz Platform](https://www.blivz.com/) * [Tomba API Documentation](https://docs.tomba.io/api) * [Get your API Key](https://app.tomba.io/api) Last modified on April 19, 2026 [Integrate Tomba Finder with Steampipe](https://docs.tomba.io/integrations/steampipe) [Orthogonal Integration](https://docs.tomba.io/integrations/orthogonal) JSON JSON --- # VSCode Setup | Tomba Documentation Menu Learn how to setup Visual Studio Code and GitHub Copilot to generate accurate Tomba API code using our `llms.txt` documentation file. Quick Use[](https://docs.tomba.io/llm/editor/vscode#quick-use) --------------------------------------------------------------- For immediate access to Tomba API documentation in any chat window: ### GitHub Copilot Chat[](https://docs.tomba.io/llm/editor/vscode#github-copilot-chat) In the GitHub Copilot chat window, type this command and VSCode will use Tomba API's `llms.txt` file to generate code: Code `#web https://docs.tomba.io/llms.txt` ### Example Prompt[](https://docs.tomba.io/llm/editor/vscode#example-prompt) Code `#web https://docs.tomba.io/llms.txt Generate a Node.js function to find email addresses for employees at a company domain using the Tomba API. Include error handling and authentication.` This will fetch our complete API documentation and generate accurate code based on the latest information. Project-level Permanent Setup[](https://docs.tomba.io/llm/editor/vscode#project-level-permanent-setup) ------------------------------------------------------------------------------------------------------- For a more permanent solution, you can setup Tomba API's `llms.txt` file in your workspace so GitHub Copilot can use it by default. ### Method 1: Using .github/instructions (Recommended)[](https://docs.tomba.io/llm/editor/vscode#method-1-using-githubinstructions-recommended) GitHub Copilot automatically reads instruction files from the `.github/instructions/` directory. Run this command in your project root: TerminalCode `curl -L https://docs.tomba.io/llms.txt --create-dirs -o .github/instructions/tomba.instructions.md` This creates a permanent reference that GitHub Copilot will automatically use when generating Tomba API code. ### Method 2: Workspace Instructions[](https://docs.tomba.io/llm/editor/vscode#method-2-workspace-instructions) You can also create a workspace-specific instructions file: TerminalCode `# Create docs directory if it doesn't exist mkdir -p docs # Download the Tomba API documentation curl -L https://docs.tomba.io/llms.txt -o docs/tomba-api.md` Then reference it in your prompts: Code `@workspace /docs/tomba-api.md Create a Python script to verify email addresses using Tomba API` Configuration Tips[](https://docs.tomba.io/llm/editor/vscode#configuration-tips) --------------------------------------------------------------------------------- ### 1\. Enable GitHub Copilot Chat[](https://docs.tomba.io/llm/editor/vscode#1-enable-github-copilot-chat) Make sure you have the GitHub Copilot Chat extension installed: * Open VS Code * Go to Extensions (Ctrl+Shift+X) * Search for "GitHub Copilot Chat" * Install the extension ### 2\. Authentication[](https://docs.tomba.io/llm/editor/vscode#2-authentication) Ensure you're signed in to GitHub Copilot: * Open Command Palette (Ctrl+Shift+P) * Type "GitHub Copilot: Sign In" * Follow the authentication process ### 3\. Workspace Settings[](https://docs.tomba.io/llm/editor/vscode#3-workspace-settings) Add these settings to your workspace `settings.json` for better AI assistance: Code `{ "github.copilot.enable": { "*": true, "yaml": true, "plaintext": true, "markdown": true }, "github.copilot.chat.welcomeMessage": "always" }` Example Usage[](https://docs.tomba.io/llm/editor/vscode#example-usage) ----------------------------------------------------------------------- ### Finding Email Addresses[](https://docs.tomba.io/llm/editor/vscode#finding-email-addresses) **Prompt:** Code `Using the Tomba API, create a JavaScript function that finds all email addresses for a given domain. Use the domain search endpoint and include proper error handling.` **Generated Code:** Code ``const axios = require("axios"); async function findEmailsByDomain(domain) { try { const response = await axios.get( `https://api.tomba.io/v1/domain-search`, { params: { domain: domain, }, headers: { "X-Tomba-Key": process.env.TOMBA_API_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET_KEY, }, }, ); return response.data; } catch (error) { if (error.response) { console.error("API Error:", error.response.data); } else { console.error("Network Error:", error.message); } throw error; } }`` ### Email Verification[](https://docs.tomba.io/llm/editor/vscode#email-verification) **Prompt:** Code `Create a Python function to verify if an email address is valid using Tomba's email verifier API.` **Generated Code:** Code `import requests import os def verify_email(email): """ Verify an email address using Tomba API Args: email (str): Email address to verify Returns: dict: Verification result """ url = "https://api.tomba.io/v1/email-verifier" headers = { "X-Tomba-Key": os.getenv("TOMBA_API_KEY"), "X-Tomba-Secret": os.getenv("TOMBA_SECRET_KEY") } params = {"email": email} try: response = requests.get(url, headers=headers, params=params) response.raise_for_status() return response.json() except requests.exceptions.RequestException as e: print(f"Error verifying email: {e}") return None` Best Practices[](https://docs.tomba.io/llm/editor/vscode#best-practices) ------------------------------------------------------------------------- ### 1\. Be Specific in Prompts[](https://docs.tomba.io/llm/editor/vscode#1-be-specific-in-prompts) Instead of: Code `Generate Tomba API code` Use: Code `Create a Node.js function using Tomba API to find the CEO's email address for a company domain, with rate limiting and error handling` ### 2\. Include Context[](https://docs.tomba.io/llm/editor/vscode#2-include-context) Reference specific endpoints or features: Code `Using Tomba's LinkedIn finder endpoint, create a function that finds email addresses from LinkedIn profiles` ### 3\. Specify Programming Language[](https://docs.tomba.io/llm/editor/vscode#3-specify-programming-language) Always specify your preferred language: Code `Generate a PHP class for Tomba email verification with proper exception handling` Troubleshooting[](https://docs.tomba.io/llm/editor/vscode#troubleshooting) --------------------------------------------------------------------------- ### GitHub Copilot Not Using Instructions[](https://docs.tomba.io/llm/editor/vscode#github-copilot-not-using-instructions) 1. Ensure the `.github/instructions/` directory is in your project root 2. Restart VS Code after adding instruction files 3. Try referencing the file explicitly: `@workspace #file:tomba.instructions.md` ### API Key Issues[](https://docs.tomba.io/llm/editor/vscode#api-key-issues) Make sure your prompts include environment variable usage: Code `Generate code that uses TOMBA_API_KEY and TOMBA_SECRET_KEY environment variables for authentication` ### Rate Limiting[](https://docs.tomba.io/llm/editor/vscode#rate-limiting) Include rate limiting in your prompts: Code `Create a Tomba API client that respects rate limits and includes retry logic` Additional Resources[](https://docs.tomba.io/llm/editor/vscode#additional-resources) ------------------------------------------------------------------------------------- * [GitHub Copilot Documentation](https://docs.github.com/en/copilot) * [VS Code GitHub Copilot Extension](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) * [Tomba API Documentation](https://docs.tomba.io/api) * [Authentication Guide](https://docs.tomba.io/authentication) Last modified on October 3, 2025 [Editor Setup](https://docs.tomba.io/llm/editor/setup) [Cursor Setup](https://docs.tomba.io/llm/editor/cursor) JSON Javascript --- # Author Finder Bulk | Tomba Documentation Menu Overview[](https://docs.tomba.io/bulks/author-finder#overview) --------------------------------------------------------------- [Bulk Author Finder](https://tomba.io/bulks/author-finder) helps you discover contact information for content creators, blog authors, and website contributors. Perfect for blogger outreach, content partnerships, and influencer marketing campaigns. ### Key Features[](https://docs.tomba.io/bulks/author-finder#key-features) * **Content Author Discovery**: Find contact details for website authors and contributors * **Blogger Outreach**: Build lists for content marketing and partnership campaigns * **Influencer Identification**: Discover key voices in your industry * **Bulk Processing**: Process up to 5,000 URLs in a single operation * **Contact Enrichment**: Gather comprehensive author profiles and contact methods ### How Author Finder Bulk Works[](https://docs.tomba.io/bulks/author-finder#how-author-finder-bulk-works) 1. **Identify Target Websites**: Compile URLs of websites, blogs, or content platforms 2. **Upload URL List**: Provide website URLs for author discovery 3. **Process Content**: Analyze websites to identify authors and contributors 4. **Extract Contacts**: Discover contact information for identified authors 5. **Export Results**: Download author contact lists for outreach campaigns ### Limitations[](https://docs.tomba.io/bulks/author-finder#limitations) * Each Bulk is limited to 5,000 URLs * Additional rows will be skipped * Some special or unexpected characters may be deleted in the file * Invalid websites won't be imported * Duplicate URLs won't be imported Go SDK Integration[](https://docs.tomba.io/bulks/author-finder#go-sdk-integration) ----------------------------------------------------------------------------------- ### Installation[](https://docs.tomba.io/bulks/author-finder#installation) TerminalCode `go get github.com/tomba-io/go` ### Basic Usage[](https://docs.tomba.io/bulks/author-finder#basic-usage) Code `package main import ( "fmt" "log" "strings" "time" "github.com/tomba-io/go/tomba" "github.com/tomba-io/go/tomba/models" ) func main() { // Initialize Tomba client client := tomba.NewClient("YOUR_TOMBA_KEY", "YOUR_TOMBA_SECRET") // Create Author Finder Bulk params := &models.BulkCreateParams{ Name: "Tech Blog Authors Q1 2024", List: "https://blog.stripe.com\nhttps://blog.shopify.com\nhttps://blog.zoom.us\nhttps://slack.com/blog", Sources: true, // Include source information Verify: true, // Verify found emails } // Create the bulk operation response, err := client.CreateBulk(models.BulkTypeAuthor, params) if err != nil { log.Fatal("Error creating bulk:", err) } bulkID := *response.Data.ID fmt.Printf("Author Finder Bulk created with ID: %d\n", bulkID) // Launch the bulk operation launchResp, err := client.LaunchBulk(models.BulkTypeAuthor, bulkID) if err != nil { log.Fatal("Error launching bulk:", err) } fmt.Printf("Bulk launched: %s\n", launchResp.Data.Message) // Monitor progress for { progress, err := client.GetBulkProgress(models.BulkTypeAuthor, bulkID) if err != nil { log.Printf("Error getting progress: %v", err) break } fmt.Printf("Progress: %d%% (%d processed)\n", progress.Progress, progress.Processed) if progress.Progress >= 100 { fmt.Println("Author search completed!") break } time.Sleep(5 * time.Second) } // Download results err = client.SaveBulkResults(models.BulkTypeAuthor, bulkID, "./authors.csv", "full") if err != nil { log.Printf("Error downloading results: %v", err) } else { fmt.Println("Results saved to ./authors.csv") } }` ### Advanced Management[](https://docs.tomba.io/bulks/author-finder#advanced-management) Code `func manageAuthorBulks(client *tomba.Tomba) { // Get all author finder bulks with pagination allBulks, err := client.GetAllAuthorBulks(&models.BulkGetParams{ Page: 1, Limit: 10, Direction: "desc", Filter: "all", }) if err != nil { log.Printf("Error getting bulks: %v", err) return } fmt.Printf("Total author bulks: %d\n", allBulks.Meta.Total) // Process each bulk for _, bulk := range allBulks.Data { fmt.Printf("Bulk: %s (ID: %d) - Progress: %d%%\n", bulk.Name, bulk.BulkID, bulk.Progress) // Download completed bulks if bulk.Progress >= 100 && !bulk.Used { err := client.SaveBulkResults( models.BulkTypeAuthor, bulk.BulkID, fmt.Sprintf("./author_results_%d.csv", bulk.BulkID), "full", ) if err == nil { fmt.Printf("Downloaded results for bulk %d\n", bulk.BulkID) } } } // Rename a bulk bulkID := int64(12345) // Replace with actual ID renameParams := &models.BulkRenameParams{ Name: "Updated Author Campaign 2024", } _, err = client.RenameBulk(models.BulkTypeAuthor, bulkID, renameParams) if err == nil { fmt.Println("Bulk renamed successfully") } // Archive old bulks _, err = client.ArchiveBulk(models.BulkTypeAuthor, bulkID) if err == nil { fmt.Println("Bulk archived successfully") } }` ### Error Handling and Best Practices[](https://docs.tomba.io/bulks/author-finder#error-handling-and-best-practices) Code `func robustAuthorSearch(client *tomba.Tomba, urls []string) error { // Validate input if len(urls) == 0 { return fmt.Errorf("no URLs provided") } if len(urls) > 5000 { return fmt.Errorf("too many URLs: %d (max: 5000)", len(urls)) } // Create URL list urlList := strings.Join(urls, "\n") params := &models.BulkCreateParams{ Name: fmt.Sprintf("Author Search %s", time.Now().Format("2006-01-02")), List: urlList, Sources: true, Verify: true, } // Create with retry logic var response *models.BulkCreateResponse var err error for i := 0; i < 3; i++ { response, err = client.CreateBulk(models.BulkTypeAuthor, params) if err == nil { break } log.Printf("Attempt %d failed: %v", i+1, err) time.Sleep(time.Duration(i+1) * time.Second) } if err != nil { return fmt.Errorf("failed to create bulk after retries: %w", err) } // Launch and monitor bulkID := *response.Data.ID _, err = client.LaunchBulk(models.BulkTypeAuthor, bulkID) if err != nil { return fmt.Errorf("failed to launch bulk: %w", err) } // Wait for completion with timeout timeout := time.After(30 * time.Minute) ticker := time.NewTicker(30 * time.Second) defer ticker.Stop() for { select { case <-timeout: return fmt.Errorf("bulk operation timed out") case <-ticker.C: progress, err := client.GetBulkProgress(models.BulkTypeAuthor, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) continue } fmt.Printf("Progress: %d%%\n", progress.Progress) if progress.Progress >= 100 { fmt.Println("Author search completed successfully!") return nil } } } }` ### Input Format Examples[](https://docs.tomba.io/bulks/author-finder#input-format-examples) **Text List (most common):** Code `https://blog.stripe.com https://blog.shopify.com https://blog.zoom.us https://slack.com/blog https://blog.dropbox.com` **CSV File Upload:** Code `URL https://blog.stripe.com https://blog.shopify.com https://blog.zoom.us https://slack.com/blog` ### Best Practices[](https://docs.tomba.io/bulks/author-finder#best-practices) * **Quality URLs**: Use complete, accessible blog and website URLs * **Verify Results**: Enable email verification for higher quality contacts * **Descriptive Names**: Use clear, descriptive names for easy identification * **Monitor Progress**: Check progress regularly for large operations * **Clean Results**: Review and clean results before outreach campaigns * **Respect Limits**: Stay within the 5,000 URL limit per bulk * **Regular Maintenance**: Archive completed bulks to keep dashboard organized ### Common Use Cases[](https://docs.tomba.io/bulks/author-finder#common-use-cases) * **Blogger Outreach**: Find authors for guest posting opportunities * **Influencer Marketing**: Identify key content creators in your niche * **Partnership Development**: Connect with thought leaders and industry experts * **Content Collaboration**: Build relationships with complementary brands * **Media Relations**: Find journalists and bloggers covering your industry Last modified on April 27, 2026 [Frequently Asked Questions](https://docs.tomba.io/faqs) [Company Enrichment Bulk](https://docs.tomba.io/bulks/company-enrichment) Go Go Go --- # Email Finder Bulk | Tomba Documentation Menu Overview[](https://docs.tomba.io/bulks/email-finder#overview) -------------------------------------------------------------- [Bulk Email Finder](https://tomba.io/bulks/email-finder) enables you to discover email addresses by combining names with company domains. Upload a CSV file containing first names, last names, and company domains to generate accurate email addresses for your prospects. ### Key Features[](https://docs.tomba.io/bulks/email-finder#key-features) * **Name-to-Email Matching**: Convert names and domains into valid email addresses * **CSV Upload Support**: Process large lists via file upload * **Pattern Recognition**: Use advanced algorithms to determine email patterns * **Flexible Input**: Support for various name and domain combinations * **High Accuracy**: Leverage domain-specific email patterns for precision * **Verification Options**: Optional email verification for deliverability ### How Email Finder Bulk Works[](https://docs.tomba.io/bulks/email-finder#how-email-finder-bulk-works) 1. **Prepare CSV File**: Create a file with columns for first name, last name, and domain 2. **Map Columns**: Specify which columns contain the required data 3. **Upload and Configure**: Upload your file and set processing parameters 4. **Process Emails**: Launch the email finding algorithm 5. **Download Results**: Export discovered email addresses ### Limitations[](https://docs.tomba.io/bulks/email-finder#limitations) * You can find up to 10,000 email addresses per file * Additional rows will be skipped * Duplicate rows will be skipped * Some special or unexpected characters may be deleted in the file * Invalid websites won't be imported Go SDK Integration[](https://docs.tomba.io/bulks/email-finder#go-sdk-integration) ---------------------------------------------------------------------------------- ### Installation[](https://docs.tomba.io/bulks/email-finder#installation) TerminalCode `go get github.com/tomba-io/go` #### Basic Setup[](https://docs.tomba.io/bulks/email-finder#basic-setup) Code `package main import ( "fmt" "log" "time" "github.com/tomba-io/go/tomba" "github.com/tomba-io/go/tomba/models" ) func main() { // Initialize Tomba client client := tomba.NewTomba("your-api-key", "your-secret-key") // Your email finder code here }` ### Creating Email Finder Bulk from CSV[](https://docs.tomba.io/bulks/email-finder#creating-email-finder-bulk-from-csv) Code `// Create finder bulk with CSV file containing names and domains params := &models.BulkFinderCreateParams{ BulkCreateParams: models.BulkCreateParams{ Name: "Lead Generation - Tech Companies Q1", Delimiter: ",", Verify: true, // Enable email verification }, BulkFinderParams: models.BulkFinderParams{ ColumnFirst: 1, // First name column (1-based) ColumnLast: 2, // Last name column ColumnDomain: 3, // Company domain column Skip: false, }, } // Upload CSV and create bulk finder operation response, err := client.CreateFinderBulk(params, "/path/to/prospects.csv") if err != nil { log.Fatal("Failed to create finder bulk:", err) } bulkID := *response.Data.ID fmt.Printf("Created finder bulk with ID: %d\n", bulkID)` #### Alternative Column Mapping (Full Name + Domain)[](https://docs.tomba.io/bulks/email-finder#alternative-column-mapping-full-name--domain) Code `// When you have full name in single column params := &models.BulkFinderCreateParams{ BulkCreateParams: models.BulkCreateParams{ Name: "Sales Prospects - SaaS Companies", Delimiter: ",", Verify: true, }, BulkFinderParams: models.BulkFinderParams{ ColumnName: 1, // Full name column ColumnDomain: 2, // Domain column Skip: false, }, } response, err := client.CreateFinderBulk(params, "prospects-with-fullnames.csv") if err != nil { log.Fatal("Failed to create finder bulk:", err) }` ### Launching and Monitoring Email Finding[](https://docs.tomba.io/bulks/email-finder#launching-and-monitoring-email-finding) Code `// Launch the email finding process launchResponse, err := client.LaunchBulk(models.BulkTypeFinder, bulkID) if err != nil { log.Fatal("Failed to launch finder bulk:", err) } fmt.Println("Email finding process started!") // Monitor progress with detailed status for { progress, err := client.GetBulkProgress(models.BulkTypeFinder, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) time.Sleep(30 * time.Second) continue } fmt.Printf("Finding emails: %d%% complete (%d processed)\n", progress.Progress, progress.Processed, ) if progress.Status { fmt.Println("Email finding completed successfully!") break } // Check every 30 seconds time.Sleep(30 * time.Second) }` ### Retrieving Found Emails[](https://docs.tomba.io/bulks/email-finder#retrieving-found-emails) Code `// Get detailed bulk information bulk, err := client.GetBulk(models.BulkTypeFinder, bulkID) if err != nil { log.Fatal("Failed to get bulk details:", err) } bulkInfo := bulk.Data[0] fmt.Printf("Bulk: %s\n", bulkInfo.Name) fmt.Printf("Status: %v\n", bulkInfo.Status) fmt.Printf("Total Processed: %d\n", bulkInfo.Processed) fmt.Printf("Emails Found: %d\n", *bulkInfo.TotalEmails) // Download all found emails err = client.SaveBulkResults( models.BulkTypeFinder, bulkID, "found-emails.csv", "full", ) if err != nil { log.Fatal("Failed to download results:", err) } fmt.Println("Found emails saved to found-emails.csv")` ### Downloading Different Result Types[](https://docs.tomba.io/bulks/email-finder#downloading-different-result-types) Code `// Download only valid emails err = client.SaveBulkResults( models.BulkTypeFinder, bulkID, "valid-emails.csv", "valid", ) if err != nil { log.Printf("Error downloading valid emails: %v", err) } // Download records where no emails were found err = client.SaveBulkResults( models.BulkTypeFinder, bulkID, "not-found.csv", "not_found", ) if err != nil { log.Printf("Error downloading not found records: %v", err) } fmt.Println("Results downloaded in separate files")` ### Managing Finder Bulk Operations[](https://docs.tomba.io/bulks/email-finder#managing-finder-bulk-operations) Code `// List all finder bulks with filtering params := &models.BulkGetParams{ Page: 1, Limit: 10, Direction: "desc", Filter: "all", // or "archived" } bulks, err := client.GetAllFinderBulks(params) if err != nil { log.Fatal("Failed to get finder bulks:", err) } fmt.Printf("Found %d finder bulk operations:\n", len(bulks.Data)) for _, bulk := range bulks.Data { fmt.Printf("- ID: %d, Name: %s, Progress: %d%%\n", bulk.BulkID, bulk.Name, bulk.Progress) } // Rename a bulk operation renameParams := &models.BulkRenameParams{ Name: "Updated Lead Generation Campaign", } _, err = client.RenameBulk(models.BulkTypeFinder, bulkID, renameParams) if err != nil { log.Fatal("Failed to rename bulk:", err) } // Archive completed bulk _, err = client.ArchiveBulk(models.BulkTypeFinder, bulkID) if err != nil { log.Fatal("Failed to archive bulk:", err) }` ### Advanced Example: Complete Email Finding Workflow[](https://docs.tomba.io/bulks/email-finder#advanced-example-complete-email-finding-workflow) Code `func findEmailsFromProspects(client *tomba.Tomba, csvPath string) error { // Step 1: Create finder bulk with verification params := &models.BulkFinderCreateParams{ BulkCreateParams: models.BulkCreateParams{ Name: fmt.Sprintf("Email Discovery - %s", time.Now().Format("2006-01-02")), Delimiter: ",", Verify: true, // Verify found emails }, BulkFinderParams: models.BulkFinderParams{ ColumnFirst: 1, // First name in column 1 ColumnLast: 2, // Last name in column 2 ColumnDomain: 3, // Domain in column 3 Skip: false, }, } response, err := client.CreateFinderBulk(params, csvPath) if err != nil { return fmt.Errorf("failed to create finder bulk: %w", err) } bulkID := *response.Data.ID log.Printf("Created finder bulk: %d", bulkID) // Step 2: Launch the finding process _, err = client.LaunchBulk(models.BulkTypeFinder, bulkID) if err != nil { return fmt.Errorf("failed to launch bulk: %w", err) } log.Println("Email finding started...") // Step 3: Monitor with progress reporting startTime := time.Now() timeout := time.After(45 * time.Minute) // Longer timeout for finding ticker := time.NewTicker(30 * time.Second) defer ticker.Stop() var lastProgress int for { select { case <-timeout: return fmt.Errorf("email finding timed out after 45 minutes") case <-ticker.C: progress, err := client.GetBulkProgress(models.BulkTypeFinder, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) continue } // Only log if progress changed significantly if progress.Progress != lastProgress { elapsed := time.Since(startTime).Round(time.Second) log.Printf("Finding progress: %d%% (%d processed) - Elapsed: %v", progress.Progress, progress.Processed, elapsed) lastProgress = progress.Progress } if progress.Status { // Step 4: Get final results and download bulk, err := client.GetBulk(models.BulkTypeFinder, bulkID) if err != nil { return fmt.Errorf("failed to get final bulk details: %w", err) } info := bulk.Data[0] log.Printf("Email finding completed!") log.Printf("Total processed: %d", info.Processed) if info.TotalEmails != nil { log.Printf("Emails found: %d", *info.TotalEmails) } // Download results outputFile := fmt.Sprintf("found-emails-%d.csv", bulkID) err = client.SaveBulkResults(models.BulkTypeFinder, bulkID, outputFile, "valid") if err != nil { return fmt.Errorf("failed to save results: %w", err) } log.Printf("Valid emails saved to: %s", outputFile) return nil } } } } // Usage example func main() { client := tomba.NewTomba("your-api-key", "your-secret-key") err := findEmailsFromProspects(client, "prospects.csv") if err != nil { log.Fatal("Email finding failed:", err) } }` ### CSV File Format Examples[](https://docs.tomba.io/bulks/email-finder#csv-file-format-examples) **Example 1: Separate Name Columns** Code `first_name,last_name,company_domain John,Doe,example.com Jane,Smith,techcorp.com Michael,Johnson,startup.io` **Example 2: Full Name Column** Code `full_name,company_domain John Doe,example.com Jane Smith,techcorp.com Michael Johnson,startup.io` **Example 3: With Additional Data** Code `first_name,last_name,company_domain,title,company_name John,Doe,example.com,CEO,Example Corp Jane,Smith,techcorp.com,CTO,TechCorp Inc Michael,Johnson,startup.io,Founder,Startup IO` Best Practices[](https://docs.tomba.io/bulks/email-finder#best-practices) -------------------------------------------------------------------------- * **Accurate Name Data**: Ensure names are properly formatted and spelled correctly * **Domain Verification**: Verify company domains before processing * **Column Mapping**: Carefully map CSV columns to the correct data fields * **File Organization**: Use clear column headers and consistent formatting * **Result Validation**: Verify a sample of results before using for outreach * **Batch Processing**: Process large lists in manageable batches * **Verification**: Enable email verification to ensure deliverability * **Progress Monitoring**: Monitor long-running operations for completion * **Error Handling**: Implement robust error handling for production use * **Data Quality**: Clean and validate input data for better results Last modified on April 27, 2026 [Email Enrichment Bulk](https://docs.tomba.io/bulks/email-enrichment) [Email Verifier Bulk](https://docs.tomba.io/bulks/email-verifier) Go Go Go Go Go Go Go Go --- # Migrate from MillionVerifier to Tomba | Tomba Documentation Menu This guide will help you seamlessly transition from MillionVerifier to Tomba's email verification service, offering superior accuracy, richer data attributes, and better value. * * * Why Choose Tomba Over MillionVerifier?[](https://docs.tomba.io/migration/email-verifier/millionverifier#why-choose-tomba-over-millionverifier) ----------------------------------------------------------------------------------------------------------------------------------------------- | Feature | MillionVerifier | Tomba | | --- | --- | --- | | **Accuracy** | 96-98% | 99%+ | | **Pricing** | $4 per 1,000 emails | More competitive with flexible plans | | **Catchall Detection** | Basic | Advanced with risk scoring | | **Speed** | Standard | Ultra-fast with smart caching | | **Bulk Verification** | Yes | Yes, with better API integration | | **API Access** | REST API | REST API + MCP + Multiple SDKs | | **Data Attributes** | 8 attributes | 15+ comprehensive attributes | | **Real-time Caching** | No | Yes, 3-month smart caching | | **SMTP Provider Detection** | No | Yes, detailed provider info | | **Integration Options** | Limited | Extensive (50+ integrations) | * * * Key Advantages of Tomba[](https://docs.tomba.io/migration/email-verifier/millionverifier#key-advantages-of-tomba) ------------------------------------------------------------------------------------------------------------------ ### 1\. Higher Accuracy Rate[](https://docs.tomba.io/migration/email-verifier/millionverifier#1-higher-accuracy-rate) Tomba achieves 99%+ accuracy through: * Advanced SMTP validation * Real-time mailbox verification * Multi-source cross-referencing * AI-powered pattern detection ### 2\. More Comprehensive Data (15+ Attributes)[](https://docs.tomba.io/migration/email-verifier/millionverifier#2-more-comprehensive-data-15-attributes) Beyond basic verification, Tomba provides rich data attributes: * **Verification Results**: `status`, `result`, `score` (0-100) * **SMTP Details**: `smtp_provider` (Google Workspace, Microsoft 365, etc.), `smtp_server`, `smtp_check` * **MX Records**: Complete `mx.records` array with all mail servers * **Email Quality**: `mx_check`, `regex`, `accept_all`, `greylisted`, `block`, `gibberish` * **Email Type Detection**: `disposable`, `webmail` * **Domain Information**: `whois` data (registrar, creation date, referral URL) * **Data Sources**: `sources` array showing where email was found with timestamps **Example comprehensive response:** Code `{ "data": { "email": { "email": "dayna.winter@shopify.com", "result": "deliverable", "status": "valid", "score": 99, "smtp_provider": "Google Workspace", "mx": { "records": [ "aspmx.l.google.com", "alt1.aspmx.l.google.com", "alt2.aspmx.l.google.com", "alt4.aspmx.l.google.com", "alt3.aspmx.l.google.com" ] }, "mx_check": true, "smtp_server": true, "smtp_check": true, "accept_all": true, "greylisted": false, "block": false, "gibberish": false, "disposable": false, "webmail": false, "regex": true, "whois": { "registrar_name": "markmonitor inc.", "referral_url": "http://www.markmonitor.com", "created_date": "2005-03-11T06:18:03+01:00" } }, "sources": [ { "uri": "https://www.shopify.com/blog/black-friday-cyber-monday-shopify-apps", "website_url": "www.shopify.com", "extracted_on": "2022-11-07T13:16:42+01:00", "last_seen_on": "2022-11-07T13:16:42+01:00", "still_on_page": true } ] } }` ### 3\. Better Developer Experience[](https://docs.tomba.io/migration/email-verifier/millionverifier#3-better-developer-experience) * Multiple official SDKs (Node.js, Python, PHP, Ruby, Go, etc.) * Model Context Protocol (MCP) support for AI integrations * Comprehensive API documentation * OpenAPI specification ### 4\. Smart Caching System[](https://docs.tomba.io/migration/email-verifier/millionverifier#4-smart-caching-system) * 3-month verification caching * Saves credits on repeat verifications * Instant results for cached emails * Automatic freshness management ### 5\. Flexible Integration[](https://docs.tomba.io/migration/email-verifier/millionverifier#5-flexible-integration) * Direct API access * Bulk CSV upload * Google Sheets add-on * Excel add-in * Chrome extension * * * Migration Steps[](https://docs.tomba.io/migration/email-verifier/millionverifier#migration-steps) -------------------------------------------------------------------------------------------------- ### Step 1: Get Your Tomba API Credentials[](https://docs.tomba.io/migration/email-verifier/millionverifier#step-1-get-your-tomba-api-credentials) 1. Sign up at [app.tomba.io](https://app.tomba.io/) 2. Navigate to **API** → **API Keys** 3. Copy your **API Key** and **Secret Key** ### Step 2: Update API Endpoints[](https://docs.tomba.io/migration/email-verifier/millionverifier#step-2-update-api-endpoints) **MillionVerifier endpoint:** Code `https://api.millionverifier.com/api/v3/?api={api_key}&email={email}` **Tomba endpoint:** Code `GET https://api.tomba.io/v1/email-verifier?email={email}` ### Step 3: Update Authentication[](https://docs.tomba.io/migration/email-verifier/millionverifier#step-3-update-authentication) **MillionVerifier authentication:** Code ``// API key in URL parameter const url = `https://api.millionverifier.com/api/v3/?api=${API_KEY}&email=${email}`;`` **Tomba authentication:** Code `// API key in headers (more secure) const headers = { "X-Tomba-Key": API_KEY, "X-Tomba-Secret": SECRET_KEY, };` ### Step 4: Update Response Handling[](https://docs.tomba.io/migration/email-verifier/millionverifier#step-4-update-response-handling) **MillionVerifier response:** Code `{ "email": "test@example.com", "quality": "good", "result": "ok", "resultcode": 1, "subresult": "none", "free": false, "role": false, "didyoumean": "" }` **Tomba response:** Code `{ "data": { "email": "test@example.com", "status": "valid", "result": "deliverable", "score": 100, "regex": true, "mx_records": ["mail.example.com"], "mx_check": true, "smtp_server": true, "smtp_check": true, "smtp_provider": "Google Workspace", "accept_all": false, "block": false, "gibberish": false, "disposable": false, "webmail": false, "greylisted": false } }` * * * Code Migration Examples[](https://docs.tomba.io/migration/email-verifier/millionverifier#code-migration-examples) ------------------------------------------------------------------------------------------------------------------ ### Node.js[](https://docs.tomba.io/migration/email-verifier/millionverifier#nodejs) **Before (MillionVerifier):** Code ``const axios = require("axios"); async function verifyEmail(email) { const response = await axios.get( `https://api.millionverifier.com/api/v3/?api=${process.env.MV_API_KEY}&email=${email}`, ); return response.data; }`` **After (Tomba):** Code `const axios = require("axios"); async function verifyEmail(email) { const response = await axios.get("https://api.tomba.io/v1/email-verifier", { params: { email }, headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }); return response.data.data; } // Or use the official SDK import { TombaClient, Verifier } from "tomba"; // Init Tomba let client = new TombaClient(); let verifier = new Verifier(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret async function verifyEmail(email) { const verifier = new Tomba.Verifier(client); return await verifier.emailVerifier(email); }` ### Python[](https://docs.tomba.io/migration/email-verifier/millionverifier#python) **Before (MillionVerifier):** Code `import requests def verify_email(email): url = f"https://api.millionverifier.com/api/v3/" params = { 'api': os.environ['MV_API_KEY'], 'email': email } response = requests.get(url, params=params) return response.json()` **After (Tomba):** Code `import requests def verify_email(email): response = requests.get( 'https://api.tomba.io/v1/email-verifier', params={'email': email}, headers={ 'X-Tomba-Key': os.environ['TOMBA_KEY'], 'X-Tomba-Secret': os.environ['TOMBA_SECRET'] } ) return response.json()['data'] # Or use the official SDK from tomba import Client, Verifier client = Client(os.environ['TOMBA_KEY'], os.environ['TOMBA_SECRET']) verifier = Verifier(client) def verify_email(email): return verifier.email_verifier(email)` ### PHP[](https://docs.tomba.io/migration/email-verifier/millionverifier#php) **Before (MillionVerifier):** Code `data; } // Or use the official SDK require 'vendor/autoload.php'; use Tomba\Client; use Tomba\Services\Verifier; $client = new Client($_ENV['TOMBA_KEY'], $_ENV['TOMBA_SECRET']); $verifier = new Verifier($client); function verifyEmail($email) { return $verifier->emailVerifier($email); }` * * * Result Code Mapping[](https://docs.tomba.io/migration/email-verifier/millionverifier#result-code-mapping) ---------------------------------------------------------------------------------------------------------- | MillionVerifier Result | MillionVerifier Code | Tomba Status | Tomba Result | | --- | --- | --- | --- | | `ok` | 1 | `valid` | `deliverable` | | `catch_all` | 2 | `accept_all` | `risky` | | `unknown` | 3 | `unknown` | `risky` | | `invalid` | 4 | `invalid` | `undeliverable` | | `disposable` | 5 | `disposable` | `undeliverable` | * * * Bulk Verification Migration[](https://docs.tomba.io/migration/email-verifier/millionverifier#bulk-verification-migration) -------------------------------------------------------------------------------------------------------------------------- **MillionVerifier bulk process:** TerminalCode `# Upload file curl -X POST https://bulkapi.millionverifier.com/api/v2/upload \ -F "file=@emails.csv" \ -F "api=YOUR_API_KEY" # Check status and download` **Tomba bulk process:** Code `import { TombaClient, Verifier } from "tomba"; // Init Tomba let client = new TombaClient(); let verifier = new Verifier(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret // Bulk verification with array const bulkVerify = async (emails) => { const response = await axios.post( "https://api.tomba.io/v1/bulk/email-verifier", { emails }, { headers: { "X-Tomba-Key": API_KEY, "X-Tomba-Secret": SECRET_KEY, }, }, ); return response.data; }; // Or upload CSV directly through dashboard` * * * Advanced Features Comparison[](https://docs.tomba.io/migration/email-verifier/millionverifier#advanced-features-comparison) ---------------------------------------------------------------------------------------------------------------------------- ### Tomba Exclusive Features[](https://docs.tomba.io/migration/email-verifier/millionverifier#tomba-exclusive-features) 1. **SMTP Provider Detection** Code `{ "smtp_provider": "Google Workspace" }` 2. **Greylisting Detection** Code `{ "greylisted": false }` 3. **Confidence Scoring** Code `{ "score": 95 }` 4. **MX Record Details** Code `{ "mx_records": ["aspmx.l.google.com", "alt1.aspmx.l.google.com"] }` 5. **Smart Caching** * Automatic 3-month caching * No extra charges for cached results * Always up-to-date verification dates * * * Testing Your Migration[](https://docs.tomba.io/migration/email-verifier/millionverifier#testing-your-migration) ---------------------------------------------------------------------------------------------------------------- ### Comparison Test Script[](https://docs.tomba.io/migration/email-verifier/millionverifier#comparison-test-script) Code `const testEmails = [ "valid@example.com", "invalid@example.com", "catchall@example.com", ]; async function compareServices(email) { // Test with MillionVerifier const mvResult = await millionVerifierCheck(email); // Test with Tomba const tombaResult = await tombaCheck(email); console.log({ email, millionverifier: mvResult.result, tomba: tombaResult.result, tomba_extras: { score: tombaResult.score, smtp_provider: tombaResult.smtp_provider, accept_all: tombaResult.accept_all, }, }); } // Run comparison for (const email of testEmails) { await compareServices(email); }` * * * Pricing Comparison[](https://docs.tomba.io/migration/email-verifier/millionverifier#pricing-comparison) -------------------------------------------------------------------------------------------------------- | Volume | MillionVerifier | Tomba | Savings | | --- | --- | --- | --- | | 1,000 | $4.00 | $3.50 | 12.5% | | 10,000 | $30.00 | $25.00 | 16.7% | | 100,000 | $200.00 | $150.00 | 25% | | Enterprise | Custom | Custom | Contact for quote | _Prices are approximate and subject to change. Check current pricing on respective websites._ * * * Support and Resources[](https://docs.tomba.io/migration/email-verifier/millionverifier#support-and-resources) -------------------------------------------------------------------------------------------------------------- * [Tomba API Documentation](https://docs.tomba.io/) * [Email Verifier Attributes](https://docs.tomba.io/attributes/verifier) * [Bulk Verification Guide](https://docs.tomba.io/bulks/email-verifier) * [SDK Libraries](https://docs.tomba.io/libraries) * [Support Portal](https://help.tomba.io/) Need help with migration? Contact our support team for personalized assistance. * * * FAQ[](https://docs.tomba.io/migration/email-verifier/millionverifier#faq) -------------------------------------------------------------------------- **Q: Is the accuracy really better?** A: Yes, Tomba consistently achieves 99%+ accuracy with advanced SMTP validation and multi-source verification. **Q: Will I get more data per verification?** A: Absolutely! Tomba returns 15+ attributes compared to MillionVerifier's 8, including SMTP provider, MX records, and more. **Q: How does the smart caching work?** A: Verifications are cached for 3 months. Re-verifying the same email within this period returns instant results at no charge. **Q: Can I import my email list from MillionVerifier?** A: Yes, simply export your list from MillionVerifier and upload to Tomba's bulk verification interface. **Q: Do you offer a trial?** A: Yes! Start with our free plan that includes 25 verifications to test the service. Last modified on February 11, 2026 [Migrate from NeverBounce to Tomba](https://docs.tomba.io/migration/email-verifier/neverbounce) [Migrate from Bounceban to Tomba](https://docs.tomba.io/migration/email-verifier/bounceban) JSON Javascript Javascript JSON JSON Javascript Javascript PHP PHP Javascript JSON JSON JSON JSON Javascript --- # Local MCP Server - Introduction | Tomba Documentation Menu What is the Tomba MCP Server?[](https://docs.tomba.io/llm/local-mcp/introduction#what-is-the-tomba-mcp-server) --------------------------------------------------------------------------------------------------------------- The Tomba MCP Server is a **Model Context Protocol (MCP)** server that provides seamless integration with [Tomba.io](https://tomba.io/) 's powerful email discovery and verification APIs. It allows Large Language Models (LLMs) and AI applications to access comprehensive email intelligence capabilities through a standardized protocol. Purpose & Benefits[](https://docs.tomba.io/llm/local-mcp/introduction#purpose--benefits) ----------------------------------------------------------------------------------------- ### For AI Applications[](https://docs.tomba.io/llm/local-mcp/introduction#for-ai-applications) * **Structured Access**: Provides LLMs with reliable, structured access to email data * **Real-time Intelligence**: Get up-to-date email verification and discovery results * **Scalable Integration**: Handle multiple concurrent requests with proper error handling * **Protocol Standardization**: Uses MCP for consistent tool interfaces across different AI systems ### For Developers[](https://docs.tomba.io/llm/local-mcp/introduction#for-developers) * **Easy Integration**: Simple JSON-RPC interface for any MCP-compatible client * **Type Safety**: Full TypeScript implementation with comprehensive type definitions * **Comprehensive Testing**: Extensive test suite and debugging tools * **Professional Grade**: Production-ready with proper error handling and logging Architecture Overview[](https://docs.tomba.io/llm/local-mcp/introduction#architecture-overview) ------------------------------------------------------------------------------------------------ Code `graph TD A[AI Assistant/LLM] --> B[MCP Client] B --> C[Tomba MCP Server] C --> D[Tomba.io API] C --> E[Domain Search] C --> F[Email Verification] C --> G[Contact Enrichment] C --> H[Phone Discovery] subgraph "MCP Server Tools" E F G H end` ### Components[](https://docs.tomba.io/llm/local-mcp/introduction#components) 1. **MCP Server Core**: Handles protocol communication and request routing 2. **Tomba Client Wrapper**: Abstracts Tomba.io SDK with error handling 3. **Tool Registry**: Nine specialized tools for different email intelligence tasks 4. **Type System**: Complete TypeScript definitions for all data structures Core Capabilities[](https://docs.tomba.io/llm/local-mcp/introduction#core-capabilities) ---------------------------------------------------------------------------------------- ### Email Discovery[](https://docs.tomba.io/llm/local-mcp/introduction#email-discovery) * **Domain Search**: Find all emails associated with any domain * **Email Finder**: Generate likely email addresses from names + domain * **Author Finder**: Extract author emails from article URLs * **LinkedIn Finder**: Discover emails from LinkedIn profile URLs ### Email Intelligence[](https://docs.tomba.io/llm/local-mcp/introduction#email-intelligence) * **Email Verifier**: Check deliverability and validate email addresses * **Email Enrichment**: Get comprehensive contact information * **Company Discovery**: Find relevant companies and their contact data ### Phone Intelligence[](https://docs.tomba.io/llm/local-mcp/introduction#phone-intelligence) * **Phone Finder**: Search phone numbers by email, domain, or LinkedIn * **Phone Validator**: Validate phone numbers and get carrier information Model Context Protocol (MCP)[](https://docs.tomba.io/llm/local-mcp/introduction#model-context-protocol-mcp) ------------------------------------------------------------------------------------------------------------ ### What is MCP?[](https://docs.tomba.io/llm/local-mcp/introduction#what-is-mcp) The Model Context Protocol is an open standard that enables secure connections between AI applications and external data sources. It provides: * **Standardized Communication**: Consistent JSON-RPC based protocol * **Security**: Controlled access to external APIs and data * **Flexibility**: Works with any MCP-compatible LLM or AI application * **Extensibility**: Easy to add new tools and capabilities ### Why MCP for Email Intelligence?[](https://docs.tomba.io/llm/local-mcp/introduction#why-mcp-for-email-intelligence) * **Real-time Data**: Access live email verification and discovery data * **Structured Responses**: Consistent data formats for reliable AI processing * **Error Handling**: Graceful handling of API limits and errors * **Scalability**: Handle multiple concurrent requests efficiently Use Cases[](https://docs.tomba.io/llm/local-mcp/introduction#use-cases) ------------------------------------------------------------------------ ### For Sales & Marketing[](https://docs.tomba.io/llm/local-mcp/introduction#for-sales--marketing) * **Lead Generation**: Find contact information for prospects * **Email Validation**: Verify email lists before campaigns * **Contact Enrichment**: Enhance existing contact databases * **Competitive Intelligence**: Research competitor contact information ### For Recruitment[](https://docs.tomba.io/llm/local-mcp/introduction#for-recruitment) * **Candidate Research**: Find contact information for potential hires * **Company Intelligence**: Research target organizations * **Contact Verification**: Validate candidate-provided information ### For Research & Journalism[](https://docs.tomba.io/llm/local-mcp/introduction#for-research--journalism) * **Source Discovery**: Find expert contacts in specific industries * **Fact Checking**: Verify contact information and company details * **Interview Sourcing**: Locate article authors and subject matter experts ### For Data Quality[](https://docs.tomba.io/llm/local-mcp/introduction#for-data-quality) * **Database Cleaning**: Validate and enrich existing contact data * **Duplicate Detection**: Identify and merge duplicate contact records * **Information Verification**: Cross-reference contact details across sources 🔧 Technical Specifications[](https://docs.tomba.io/llm/local-mcp/introduction#-technical-specifications) ---------------------------------------------------------------------------------------------------------- ### Supported Protocols[](https://docs.tomba.io/llm/local-mcp/introduction#supported-protocols) * **MCP Version**: 2024-11-05 * **Transport**: stdio (standard input/output) * **Message Format**: JSON-RPC 2.0 * **Authentication**: API key + secret key ### System Requirements[](https://docs.tomba.io/llm/local-mcp/introduction#system-requirements) * **Node.js**: 16.0.0 or higher * **TypeScript**: 5.2+ (for development) * **Memory**: Minimum 512MB RAM * **Network**: Internet connection for Tomba.io API access ### API Rate Limits[](https://docs.tomba.io/llm/local-mcp/introduction#api-rate-limits) * Respects Tomba.io rate limiting * Handles 429 responses gracefully * Implements exponential backoff for retries * Provides clear error messages for limit exceeded Quick Start Example[](https://docs.tomba.io/llm/local-mcp/introduction#quick-start-example) -------------------------------------------------------------------------------------------- Here's how the MCP server integrates with an AI application: Code `// AI requests available tools { "jsonrpc": "2.0", "id": 1, "method": "tools/list" } // Server responds with tool definitions { "jsonrpc": "2.0", "id": 1, "result": { "tools": [ { "name": "domain_search", "description": "Search emails based on domain name", "inputSchema": { "type": "object", "properties": { "domain": {"type": "string"}, "limit": {"type": "number"} } } } ] } } // AI calls a tool { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "domain_search", "arguments": { "domain": "github.com", "limit": 10 } } } // Server returns results { "jsonrpc": "2.0", "id": 2, "result": { "content": [{ "type": "text", "text": "{\n \"emails\": [...],\n \"total\": 25\n}" }] } }` Data Quality & Reliability[](https://docs.tomba.io/llm/local-mcp/introduction#data-quality--reliability) --------------------------------------------------------------------------------------------------------- ### Data Sources[](https://docs.tomba.io/llm/local-mcp/introduction#data-sources) * **Tomba.io Database**: 400+ million email addresses * **Real-time Verification**: Live deliverability checking * **Multiple Sources**: Web crawling, social networks, public databases * **Regular Updates**: Continuously updated data sources ### Accuracy Metrics[](https://docs.tomba.io/llm/local-mcp/introduction#accuracy-metrics) * **Email Discovery**: 95%+ accuracy for common domains * **Verification Results**: Real-time SMTP validation * **Confidence Scores**: Numerical confidence ratings for results * **Source Attribution**: Full source tracking for discovered emails ### Privacy & Compliance[](https://docs.tomba.io/llm/local-mcp/introduction#privacy--compliance) * **GDPR Compliant**: Respects data protection regulations * **Opt-out Respect**: Honors email opt-out requests * **No Storage**: Server doesn't store or cache personal data * **Secure Transport**: All communications over secure channels Future Roadmap[](https://docs.tomba.io/llm/local-mcp/introduction#future-roadmap) ---------------------------------------------------------------------------------- ### Planned Features[](https://docs.tomba.io/llm/local-mcp/introduction#planned-features) * **Bulk Operations**: Batch processing for large datasets * **Custom Filtering**: Advanced search and filtering capabilities * **Integration Templates**: Pre-built integrations for popular platforms ### Enhanced Intelligence[](https://docs.tomba.io/llm/local-mcp/introduction#enhanced-intelligence) * **AI-Powered Matching**: Improved email pattern recognition * **Social Media Integration**: Extended social profile discovery * **Company Insights**: Enhanced company intelligence and metrics * **Predictive Scoring**: ML-powered deliverability predictions Next Steps[](https://docs.tomba.io/llm/local-mcp/introduction#next-steps) -------------------------------------------------------------------------- 1. **[Tools Reference](https://docs.tomba.io/tools) **: Detailed documentation for each tool 2. **[LLM Integration](https://docs.tomba.io/llm) **: Connect with popular AI applications Support & Resources[](https://docs.tomba.io/llm/local-mcp/introduction#support--resources) ------------------------------------------------------------------------------------------- * **GitHub Repository**: [tomba-mcp-server](https://github.com/tomba-io/tomba-mcp-server) * **Tomba.io Documentation**: [docs.tomba.io](https://docs.tomba.io/) * **MCP Specification**: [modelcontextprotocol.io](https://modelcontextprotocol.io/) * **Issue Tracker**: Report bugs and request features on GitHub * * * _The Tomba MCP Server bridges the gap between AI applications and professional email intelligence, enabling smarter, data-driven decisions in sales, marketing, recruitment, and research workflows._ Last modified on April 27, 2026 [Tomba Local MCP Tools](https://docs.tomba.io/llm/local-mcp/tools) JSON --- # Dashboard Overview | Tomba Documentation Menu The Tomba.io Dashboard is your central workspace for account activity, usage statistics, and tools that support email discovery and outreach. Key Features[](https://docs.tomba.io/dashboard#key-features) ------------------------------------------------------------- ### Usage & Activity Monitoring[](https://docs.tomba.io/dashboard#usage--activity-monitoring) * **[API Call Monitoring](https://app.tomba.io/usage) :** Keep track of your API calls in real time, view your remaining quota, and analyze historical usage. * **Task History & Activity Log:** Monitor the progress of your bulk tasks and review past operations to optimize future strategies. * **Notifications & Alerts:** Receive real-time alerts on task completions, quota updates, and critical system notifications. ### Navigation & Tools[](https://docs.tomba.io/dashboard#navigation--tools) * **Quick Access Menu:** Effortlessly navigate between essential features such as [Email Finder](https://app.tomba.io/) , [Domain Search](https://tomba.io/domain-search) , [Enrichment](https://tomba.io/enrichment) , and Phone Discovery & Validation. * **Quick Access Menu:** Quickly move between core features such as [Email Finder](https://app.tomba.io/) , [Domain Search](https://tomba.io/domain-search) , [Enrichment](https://tomba.io/enrichment) , and phone discovery and validation. * **Custom Reports:** Generate and export detailed reports to analyze your performance metrics and campaign success. ### Integrations & Add-Ons[](https://docs.tomba.io/dashboard#integrations--add-ons) * **Seamless Integrations:** Connect with your favorite tools including Google Sheets, Excel add-ons, and browser extensions (Chrome, Firefox, Edge, Opera) to enhance your workflow. * **Enrichment Tools:** Utilize advanced email and domain enrichment features to gain deeper insights and improve data quality. ### Account Management[](https://docs.tomba.io/dashboard#account-management) * **[Profile Settings](https://app.tomba.io/settings/) :** Update your personal information, manage security settings, and customize your dashboard preferences. * **[Subscription & Upgrade Options](https://app.tomba.io/settings/subscription) :** View your current plan details and easily upgrade to access higher limits and additional features. * **[Connected Apps](https://app.tomba.io/integrations) :** Manage third-party integrations and connected platforms. ### Bulk Task Management[](https://docs.tomba.io/dashboard#bulk-task-management) * **Efficient Bulk Operations:** Initiate and manage large-scale tasks with ease, from email validation to data enrichment, ensuring you save time and resources. * **Task Scheduling:** Plan and schedule tasks to run automatically, allowing you to focus on strategic activities. Getting Started with Your Dashboard[](https://docs.tomba.io/dashboard#getting-started-with-your-dashboard) ----------------------------------------------------------------------------------------------------------- 1. **[Log In](https://app.tomba.io/auth/signin) :** Use your preferred authentication method (Google, LinkedIn, GitHub, or Email) to access your account. 2. **Explore:** Familiarize yourself with the layout and available tools by navigating through the quick access menu. 3. **Monitor & Manage:** Use the dashboard’s monitoring tools to keep an eye on your [API usage](https://app.tomba.io/usage) , task progress, and account notifications. 4. **Integrate:** Connect external tools and add-ons through the [Connected Apps](https://app.tomba.io/integrations) section to streamline your workflow. * * * ### Developer Access[](https://docs.tomba.io/dashboard#developer-access) Want to automate or integrate? Head to the **[API Console](https://app.tomba.io/api) ** to generate your keys and start building with Tomba.io today. The dashboard gives you a clear, effective view of operations so you can improve productivity and make faster decisions. Last modified on April 28, 2026 [Creating a Free Account](https://docs.tomba.io/free-account) [API Key and Authentication](https://docs.tomba.io/authentication) --- # API Key and Authentication | Tomba Documentation Menu To access the Tomba.io API, you must authenticate every request using a unique **API key** and **secret**. These credentials are required for all endpoints and ensure that your usage is tracked correctly. > **Important:** Your API key and secret identify your account. Keep them safe. Do not share them publicly or embed them in frontend code. You can generate, regenerate, or revoke your API keys at any time from your [API Keys 🔑](https://app.tomba.io/api) . Required Authentication Headers[](https://docs.tomba.io/authentication#required-authentication-headers) -------------------------------------------------------------------------------------------------------- Include the following headers in every request: | Field | Header Name | Location | | --- | --- | --- | | API Key | `X-Tomba-Key` | `header` | | Secret | `X-Tomba-Secret` | `header` | Example usage in `curl`: TerminalCode `curl -X GET "https://api.tomba.io/v1/domain-search?domain=example.com" \ -H "X-Tomba-Key: your_api_key" \ -H "X-Tomba-Secret: your_secret_key"` Example usage in JavaScript: Code `const response = await fetch("https://api.tomba.io/v1/domain-search?domain=example.com", { headers: { "X-Tomba-Key": "your_api_key", "X-Tomba-Secret": "your_secret_key", }, }); const data = await response.json(); console.log(data);` Example usage in Python: Code `import requests response = requests.get( "https://api.tomba.io/v1/domain-search", params={"domain": "example.com"}, headers={ "X-Tomba-Key": "your_api_key", "X-Tomba-Secret": "your_secret_key", }, ) print(response.json())` Last modified on April 28, 2026 [Dashboard Overview](https://docs.tomba.io/dashboard) [Error Handling](https://docs.tomba.io/error-handling) Javascript --- # Lua Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/lua-email-finder#installation) ------------------------------------------------------------------------------ install via [luarocks](https://luarocks.org/modules/benemohamed/tomba) TerminalCode `luarocks install tomba` Usage[](https://docs.tomba.io/libraries/lua-email-finder#usage) ---------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/lua-email-finder#domain-search) Get email addresses found on the internet. Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:domain_search('wordpress.org') print(result.data)` ### Email Finder[](https://docs.tomba.io/libraries/lua-email-finder#email-finder) Find the verified email address of any professional. Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:email_finder('stripe.com', 'fname', 'lname') print(result)` ### Email Verifier[](https://docs.tomba.io/libraries/lua-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:email_verifier('m@wordpress.org') print(result)` Examples[](https://docs.tomba.io/libraries/lua-email-finder#examples) ---------------------------------------------------------------------- ### Get Account Information[](https://docs.tomba.io/libraries/lua-email-finder#get-account-information) Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:account() print(result.data.email)` ### Email Count[](https://docs.tomba.io/libraries/lua-email-finder#email-count) Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:count('tomba.io') print(result)` ### Finder Services[](https://docs.tomba.io/libraries/lua-email-finder#finder-services) #### Author Finder[](https://docs.tomba.io/libraries/lua-email-finder#author-finder) Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:author_finder('https://clearbit.com/blog/company-name-to-domain-api') print(result)` #### LinkedIn Finder[](https://docs.tomba.io/libraries/lua-email-finder#linkedin-finder) Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:linkedin_finder('https://www.linkedin.com/in/alex-maccaw-ab592978') print(result)` ### Email Enrichment[](https://docs.tomba.io/libraries/lua-email-finder#email-enrichment) Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:enrichment('b.mohamed@tomba.io') print(result)` ### Email Sources[](https://docs.tomba.io/libraries/lua-email-finder#email-sources) Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:email_sources('b.mohamed@tomba.io') print(result)` ### Domain and Company Status[](https://docs.tomba.io/libraries/lua-email-finder#domain-and-company-status) #### Auto Complete[](https://docs.tomba.io/libraries/lua-email-finder#auto-complete) Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:autocomplete('google') print(result)` #### Domain Status[](https://docs.tomba.io/libraries/lua-email-finder#domain-status) Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:status('gmail.com') print(result)` ### Activity Logs[](https://docs.tomba.io/libraries/lua-email-finder#activity-logs) Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:logs() print(result)` ### Usage Statistics[](https://docs.tomba.io/libraries/lua-email-finder#usage-statistics) Code `local tomba = require('tomba') local client = tomba:init("ta_xxxx", "ts_xxxx") local result = client:usage() print(result)` For more sample codes, check the [**examples/**](https://github.com/tomba-io/lua/tree/master/examples) folder. Last modified on April 28, 2026 [Node Client Library](https://docs.tomba.io/libraries/node-email-finder) [Perl Client Library](https://docs.tomba.io/libraries/perl-email-finder) --- # elixir Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/elixir-email-finder#installation) --------------------------------------------------------------------------------- the package can be installed by adding `tomba` to your list of dependencies in `mix.exs`: ElixirCode `def deps do [ {:tomba, "~> 0.1.0"} ] end` And fetch your project's dependencies: TerminalCode `mix deps.get` Usage[](https://docs.tomba.io/libraries/elixir-email-finder#usage) ------------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/elixir-email-finder#domain-search) Get email addresses found on the internet. ElixirCode `conf = Tomba.new("ta_xxxx", "ts_xxxx") {:ok, result} = Tomba.domain_search(Tomba,"tomba.io")` ### Email Finder[](https://docs.tomba.io/libraries/elixir-email-finder#email-finder) Find the verified email address of any professional. ElixirCode `conf = Tomba.new("ta_xxxx", "ts_xxxx") {:ok, result} = Tomba.email_finder(Tomba,"stripe.com", "fname", "lname")` ### Email Verifier[](https://docs.tomba.io/libraries/elixir-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. ElixirCode `conf = Tomba.new("ta_xxxx", "ts_xxxx") {:ok, result} = Tomba.email_verifier(Tomba,"m@wordpress.org")` Examples[](https://docs.tomba.io/libraries/elixir-email-finder#examples) ------------------------------------------------------------------------- Sample codes under [**examples/**](https://github.com/tomba-io/elixir/tree/master/examples) folder. Last modified on April 28, 2026 [Deno Client Library](https://docs.tomba.io/libraries/deno-email-finder) [Go Client Library](https://docs.tomba.io/libraries/go-email-finder) --- # Make (Integromat) Integration | Tomba Documentation Menu Overview[](https://docs.tomba.io/integrations/make#overview) ------------------------------------------------------------- Custom Tomba.io integration for Make.com (formerly Integromat) enables you to automate email finding, verification, and enrichment workflows without code. Prerequisites[](https://docs.tomba.io/integrations/make#prerequisites) ----------------------------------------------------------------------- * Active Tomba.io account with API credentials * Make.com account (free or paid) Creating a Connection[](https://docs.tomba.io/integrations/make#creating-a-connection) --------------------------------------------------------------------------------------- 1. Add your Tomba.io app module to a scenario 2. Click **Create a connection** 3. Enter your Tomba.io API Key and Secret Key (available in your [Tomba.io dashboard](https://app.tomba.io/api) ) 4. Click **Save** - the connection will be tested automatically Available Modules[](https://docs.tomba.io/integrations/make#available-modules) ------------------------------------------------------------------------------- ### Module 1: Find Email Address[](https://docs.tomba.io/integrations/make#module-1-find-email-address) Find a professional email address using a person's name and company domain. **Configuration:** * **Name:** `findEmail` * **Label:** `Find Email Address` * **Description:** Find a professional email address using a person's name and company domain **Parameters:** * `domain` (text, required) - Company domain (e.g., `tomba.io`) * `firstName` (text, required) - Person's first name * `lastName` (text, required) - Person's last name **Example Use Case:** Code `Trigger: New row in Google Sheets ↓ Tomba.io: Find Email Address ↓ Action: Send email via Gmail` ### Module 2: Verify Email Address[](https://docs.tomba.io/integrations/make#module-2-verify-email-address) Verify if an email address is valid and deliverable. **Configuration:** * **Name:** `verifyEmail` * **Label:** `Verify Email Address` * **Description:** Verify if an email address is valid and deliverable **Parameters:** * `email` (email, required) - Email address to verify **Returns:** * Email deliverability status * SMTP check results * Risk score * Accept-all detection ### Module 3: Search Domain Emails[](https://docs.tomba.io/integrations/make#module-3-search-domain-emails) Search for all email addresses associated with a domain. **Configuration:** * **Name:** `domainSearch` * **Label:** `Search Domain Emails` * **Description:** Search for all email addresses associated with a domain **Parameters:** * `domain` (text, required) - Company domain * `page` (number, optional, default: 1) - Page number for pagination * `limit` (number, optional, default: 10) - Results per page (max: 100) * `department` (text, optional) - Filter by department (e.g., "engineering", "sales") ### Module 4: Get Email Count[](https://docs.tomba.io/integrations/make#module-4-get-email-count) Get the total number of email addresses associated with a domain. **Configuration:** * **Name:** `countEmail` * **Label:** `Get Email Count` * **Description:** Get the total number of email addresses associated with a domain **Parameters:** * `domain` (text, required) - Company domain ### Module 5: Find Email from LinkedIn[](https://docs.tomba.io/integrations/make#module-5-find-email-from-linkedin) Find email addresses using LinkedIn profile URLs. **Configuration:** * **Name:** `findEmailLinkedIn` * **Label:** `Find Email from LinkedIn` * **Description:** Find email addresses using LinkedIn profile URLs **Parameters:** * `url` (text, required) - LinkedIn profile URL (e.g., `https://linkedin.com/in/username`) ### Module 6: Author Finder[](https://docs.tomba.io/integrations/make#module-6-author-finder) Find the author of a webpage by URL. **Configuration:** * **Name:** `authorFinder` * **Label:** `Author Finder` * **Description:** Find the author of a webpage by URL **Parameters:** * `url` (text, required) - Webpage URL ### Module 7: Enrich Data[](https://docs.tomba.io/integrations/make#module-7-enrich-data) Enrich company or contact data using email or domain. **Configuration:** * **Name:** `enrich` * **Label:** `Enrich Data` * **Description:** Enrich company or contact data **Parameters:** * `email` (email, optional) - Email address to enrich * `domain` (text, optional) - Domain to enrich ### Module 8: Phone Finder[](https://docs.tomba.io/integrations/make#module-8-phone-finder) Find phone numbers associated with a domain, email, or LinkedIn URL. **Configuration:** * **Name:** `phoneFinder` * **Label:** `Phone Finder` * **Description:** Find phone numbers associated with a domain, email, or LinkedIn URL **Parameters:** * `domain` (text, optional) - Company domain * `email` (email, optional) - Email address * `linkedin` (text, optional) - LinkedIn profile URL ### Module 9: Phone Validator[](https://docs.tomba.io/integrations/make#module-9-phone-validator) Validate phone numbers for format and deliverability. **Configuration:** * **Name:** `phoneValidator` * **Label:** `Phone Validator` * **Description:** Validate phone numbers for format and deliverability **Parameters:** * `phone` (text, required) - Phone number to validate * `country_code` (text, optional) - Country code (e.g., `US`, `FR`, `GB`) ### Module 10: Similar Domains[](https://docs.tomba.io/integrations/make#module-10-similar-domains) Find domains similar to a given domain. **Configuration:** * **Name:** `similarDomains` * **Label:** `Similar Domains` * **Description:** Find domains similar to a given domain **Parameters:** * `domain` (text, required) - Company domain ### Module 11: Create Lead[](https://docs.tomba.io/integrations/make#module-11-create-lead) Create a new lead in Tomba.io. **Configuration:** * **Name:** `createLead` * **Label:** `Create Lead` * **Description:** Create a new lead in Tomba.io **Parameters:** * `email` (email, required) - Lead's email address * `firstName` (text, optional) - Lead's first name * `lastName` (text, optional) - Lead's last name Example Workflows[](https://docs.tomba.io/integrations/make#example-workflows) ------------------------------------------------------------------------------- ### Lead Generation Automation[](https://docs.tomba.io/integrations/make#lead-generation-automation) Code `1. Google Sheets: Watch for new rows ↓ 2. Tomba.io: Find Email Address (using name + domain) ↓ 3. Tomba.io: Verify Email Address ↓ 4. Router: Check if email is valid ↓ 5a. Valid → Add to CRM (HubSpot/Salesforce) 5b. Invalid → Log to error sheet` ### Domain Research[](https://docs.tomba.io/integrations/make#domain-research) Code `1. Webhook: Receive company domain ↓ 2. Tomba.io: Search Domain Emails ↓ 3. Tomba.io: Get Email Count ↓ 4. Tomba.io: Find Similar Domains ↓ 5. Google Sheets: Create comprehensive report` Advanced Features[](https://docs.tomba.io/integrations/make#advanced-features) ------------------------------------------------------------------------------- ### Error Handling[](https://docs.tomba.io/integrations/make#error-handling) Each module includes error handling that returns meaningful error messages. Add error handler routes in your scenarios to catch and handle these errors. **Example:** Code `Tomba.io: Find Email ↓ Error Handler: Email Not Found ↓ Alternative Action: Log to database` ### Pagination[](https://docs.tomba.io/integrations/make#pagination) For the Domain Search module, you can implement loops to fetch all pages: Code `Tomba.io: Domain Search (Page 1) ↓ Iterator: Repeat while more pages exist ↓ Tomba.io: Domain Search (Page N) ↓ Aggregator: Combine all results` ### Data Filtering[](https://docs.tomba.io/integrations/make#data-filtering) Use Make.com's built-in filters between modules: Code `Tomba.io: Domain Search ↓ Filter: Only emails with @company.com ↓ Tomba.io: Verify Each Email` Troubleshooting[](https://docs.tomba.io/integrations/make#troubleshooting) --------------------------------------------------------------------------- ### Connection Test Fails[](https://docs.tomba.io/integrations/make#connection-test-fails) * Verify your API credentials are correct in [Tomba.io dashboard](https://app.tomba.io/api) * Check that your Tomba.io account is active * Ensure you have API access enabled in your plan ### Module Returns No Data[](https://docs.tomba.io/integrations/make#module-returns-no-data) * Check the request URL and parameters * Use Make.com's "Run Once" feature to see the actual API response * Verify the output mapping matches the response structure * Check your [API usage limits](https://app.tomba.io/usage) ### Rate Limiting[](https://docs.tomba.io/integrations/make#rate-limiting) * Tomba.io API has rate limits based on your plan * Use Make.com's scheduling features to space out requests * Implement error handling for 429 (Too Many Requests) responses Best Practices[](https://docs.tomba.io/integrations/make#best-practices) ------------------------------------------------------------------------- 1. **Batch Operations**: Use pagination and iterators for large datasets 2. **Error Handling**: Always add error handlers to gracefully handle API failures 3. **Data Validation**: Verify inputs before sending to Tomba.io 4. **Monitoring**: Use Make.com's execution history to monitor your workflows 5. **Testing**: Test scenarios with "Run Once" before activating Resources[](https://docs.tomba.io/integrations/make#resources) --------------------------------------------------------------- * [Tomba.io API Documentation](https://docs.tomba.io/) * [Make.com Documentation](https://www.make.com/en/help) * [Tomba.io API Status](https://status.tomba.io/) * [Make.com Community](https://community.make.com/) Support[](https://docs.tomba.io/integrations/make#support) ----------------------------------------------------------- For issues with: * **Tomba.io API**: Contact [Tomba.io support](mailto:support@tomba.io) * **Make.com Platform**: Contact Make.com support * **Authentication**: Verify credentials in both platforms Version History[](https://docs.tomba.io/integrations/make#version-history) --------------------------------------------------------------------------- **v1.0.0** - Initial release * 11 core modules covering all major Tomba.io API endpoints * API Key authentication * Full error handling * Comprehensive output mapping Last modified on February 11, 2026 [Zapier Integration](https://docs.tomba.io/integrations/zapier) [Pipedream Integration](https://docs.tomba.io/integrations/pipedream) --- # Email Verifier Bulk | Tomba Documentation Menu Overview[](https://docs.tomba.io/bulks/email-verifier#overview) ---------------------------------------------------------------- [Bulk Email Verifier](https://tomba.io/bulks/email-verifier) ensures your email lists maintain high deliverability rates by validating email addresses at scale. Reduce bounce rates, protect your sender reputation, and improve campaign performance with comprehensive email verification. ### Key Features[](https://docs.tomba.io/bulks/email-verifier#key-features) * **Deliverability Validation**: Verify email addresses for deliverability and validity * **Bulk Processing**: Verify up to 10,000 emails per operation * **Detailed Results**: Get comprehensive verification status for each email * **Bounce Reduction**: Eliminate invalid emails before sending campaigns * **Sender Protection**: Maintain good sender reputation and domain health * **Export Options**: Download verified, invalid, and risky email lists separately ### How Email Verifier Bulk Works[](https://docs.tomba.io/bulks/email-verifier#how-email-verifier-bulk-works) 1. **Upload Email List**: Provide email addresses for verification 2. **Configure Verification**: Set verification parameters and quality thresholds 3. **Process Verification**: Launch comprehensive email validation 4. **Review Results**: Examine verification status for each email 5. **Export Clean Lists**: Download verified emails ready for campaigns ### Limitations[](https://docs.tomba.io/bulks/email-verifier#limitations) * You can only verify up to 50 email addresses per domain name every 24 hours and 10,000 email addresses per bulk * Webmail email addresses like Gmail or Outlook and disposable email addresses are skipped * Some special or unexpected characters may be deleted in the file * Duplicate and invalid lines won't be imported Go SDK Integration[](https://docs.tomba.io/bulks/email-verifier#go-sdk-integration) ------------------------------------------------------------------------------------ ### Installation[](https://docs.tomba.io/bulks/email-verifier#installation) TerminalCode `go get github.com/tomba-io/go` ### Basic Setup[](https://docs.tomba.io/bulks/email-verifier#basic-setup) Code `package main import ( "fmt" "log" "time" "github.com/tomba-io/go/tomba" "github.com/tomba-io/go/tomba/models" ) func main() { // Initialize Tomba client client := tomba.NewTomba("your-api-key", "your-secret-key") // Your email verification code here }` ### Creating Email Verifier Bulk with List[](https://docs.tomba.io/bulks/email-verifier#creating-email-verifier-bulk-with-list) Code ``// Create verifier bulk with email list emailList := `john.doe@example.com jane.smith@company.com user@startup.io contact@business.net info@organization.org` params := &models.BulkCreateParams{ Name: "Email List Verification - Marketing Campaign", List: emailList, Sources: false, // Don't include sources for verification Verify: true, // This is verification, so set to true Notifie: true, // Send notification when complete } // Create the verification bulk response, err := client.CreateBulk(models.BulkTypeVerifier, params) if err != nil { log.Fatal("Failed to create verifier bulk:", err) } bulkID := *response.Data.ID fmt.Printf("Created verifier bulk with ID: %d\n", bulkID)`` ### Creating Verifier Bulk from CSV File[](https://docs.tomba.io/bulks/email-verifier#creating-verifier-bulk-from-csv-file) Code `// Create verifier bulk from CSV file params := &models.BulkCreateParams{ Name: "Customer Database Verification", Delimiter: ",", Column: 2, // Email column (1-based index) Sources: false, Notifie: true, } // Upload CSV and create verification bulk response, err := client.CreateBulkWithFile( models.BulkTypeVerifier, params, "/path/to/email-list.csv", ) if err != nil { log.Fatal("Failed to create bulk with file:", err) } bulkID := *response.Data.ID fmt.Printf("Created verification bulk: %d\n", bulkID)` ### Launching and Monitoring Verification[](https://docs.tomba.io/bulks/email-verifier#launching-and-monitoring-verification) Code `// Launch the verification process launchResponse, err := client.LaunchBulk(models.BulkTypeVerifier, bulkID) if err != nil { log.Fatal("Failed to launch verification:", err) } fmt.Println("Email verification started!") // Monitor verification progress startTime := time.Now() for { progress, err := client.GetBulkProgress(models.BulkTypeVerifier, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) time.Sleep(30 * time.Second) continue } elapsed := time.Since(startTime).Round(time.Second) fmt.Printf("Verification: %d%% complete (%d processed) - %v elapsed\n", progress.Progress, progress.Processed, elapsed, ) if progress.Status { fmt.Println("Email verification completed!") break } // Check every 20 seconds for verification (faster than other operations) time.Sleep(20 * time.Second) }` ### Retrieving Verification Results[](https://docs.tomba.io/bulks/email-verifier#retrieving-verification-results) Code `// Get detailed verification results bulk, err := client.GetBulk(models.BulkTypeVerifier, bulkID) if err != nil { log.Fatal("Failed to get bulk details:", err) } bulkInfo := bulk.Data[0] fmt.Printf("Verification Summary:\n") fmt.Printf("- Bulk Name: %s\n", bulkInfo.Name) fmt.Printf("- Status: %v\n", bulkInfo.Status) fmt.Printf("- Total Processed: %d\n", bulkInfo.Processed) if bulkInfo.VerifyCost != nil { fmt.Printf("- Verification Cost: %d credits\n", *bulkInfo.VerifyCost) } // Download all verification results err = client.SaveBulkResults( models.BulkTypeVerifier, bulkID, "verification-results.csv", "full", ) if err != nil { log.Fatal("Failed to download results:", err) } fmt.Println("Verification results saved to verification-results.csv")` ### Downloading Segmented Results[](https://docs.tomba.io/bulks/email-verifier#downloading-segmented-results) Code `// Download only valid/deliverable emails err = client.SaveBulkResults( models.BulkTypeVerifier, bulkID, "valid-emails.csv", "valid", ) if err != nil { log.Printf("Error downloading valid emails: %v", err) } else { fmt.Println("Valid emails saved to valid-emails.csv") } // Download emails that couldn't be verified or are risky err = client.SaveBulkResults( models.BulkTypeVerifier, bulkID, "unverifiable-emails.csv", "not_found", ) if err != nil { log.Printf("Error downloading unverifiable emails: %v", err) } else { fmt.Println("Unverifiable emails saved to unverifiable-emails.csv") }` ### Single Email Verification (for comparison)[](https://docs.tomba.io/bulks/email-verifier#single-email-verification-for-comparison) Code `// Verify a single email address email := "test@example.com" verifyResult, err := client.EmailVerifier(email) if err != nil { log.Printf("Failed to verify %s: %v", email, err) } else { fmt.Printf("Single verification result for %s:\n", email) fmt.Printf("- Status: %s\n", verifyResult.Data.Result) fmt.Printf("- Score: %d\n", verifyResult.Data.Score) fmt.Printf("- SMTP Check: %v\n", verifyResult.Data.SMTPCheck) fmt.Printf("- MX Found: %v\n", verifyResult.Data.MXFound) }` ### Managing Verifier Bulk Operations[](https://docs.tomba.io/bulks/email-verifier#managing-verifier-bulk-operations) Code `// List all verifier bulks params := &models.BulkGetParams{ Page: 1, Limit: 15, Direction: "desc", Filter: "all", } bulks, err := client.GetAllVerifierBulks(params) if err != nil { log.Fatal("Failed to get verifier bulks:", err) } fmt.Printf("Verifier Operations (%d found):\n", len(bulks.Data)) for _, bulk := range bulks.Data { status := "In Progress" if bulk.Status { status = "Completed" } fmt.Printf("- %s (ID: %d) - %s - %d%% complete\n", bulk.Name, bulk.BulkID, status, bulk.Progress) } // Cleanup: Archive old verifications for _, bulk := range bulks.Data { if bulk.Status && bulk.Expired { _, err := client.ArchiveBulk(models.BulkTypeVerifier, bulk.BulkID) if err != nil { log.Printf("Failed to archive bulk %d: %v", bulk.BulkID, err) } else { fmt.Printf("Archived expired bulk: %s\n", bulk.Name) } } }` ### Advanced Example: Complete Verification Workflow[](https://docs.tomba.io/bulks/email-verifier#advanced-example-complete-verification-workflow) Code ``func verifyEmailList(client *tomba.Tomba, csvPath string, emailColumn int) (*VerificationSummary, error) { // Step 1: Create verification bulk params := &models.BulkCreateParams{ Name: fmt.Sprintf("Email Verification - %s", time.Now().Format("2006-01-02 15:04")), Delimiter: ",", Column: emailColumn, Sources: false, Notifie: true, } response, err := client.CreateBulkWithFile(models.BulkTypeVerifier, params, csvPath) if err != nil { return nil, fmt.Errorf("failed to create verification bulk: %w", err) } bulkID := *response.Data.ID log.Printf("Created verification bulk: %d", bulkID) // Step 2: Launch verification _, err = client.LaunchBulk(models.BulkTypeVerifier, bulkID) if err != nil { return nil, fmt.Errorf("failed to launch verification: %w", err) } log.Println("Email verification in progress...") // Step 3: Monitor with detailed progress timeout := time.After(20 * time.Minute) // Verification is usually faster ticker := time.NewTicker(15 * time.Second) defer ticker.Stop() startTime := time.Now() for { select { case <-timeout: return nil, fmt.Errorf("verification timed out after 20 minutes") case <-ticker.C: progress, err := client.GetBulkProgress(models.BulkTypeVerifier, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) continue } if progress.Progress%20 == 0 || progress.Status { // Log every 20% elapsed := time.Since(startTime).Round(time.Second) log.Printf("Verification: %d%% (%d processed) - %v", progress.Progress, progress.Processed, elapsed) } if progress.Status { // Step 4: Get final results bulk, err := client.GetBulk(models.BulkTypeVerifier, bulkID) if err != nil { return nil, fmt.Errorf("failed to get final results: %w", err) } info := bulk.Data[0] // Step 5: Download results timestamp := time.Now().Format("20060102-150405") validFile := fmt.Sprintf("valid-emails-%s.csv", timestamp) invalidFile := fmt.Sprintf("invalid-emails-%s.csv", timestamp) // Download valid emails err = client.SaveBulkResults(models.BulkTypeVerifier, bulkID, validFile, "valid") if err != nil { log.Printf("Warning: Failed to save valid emails: %v", err) } // Download invalid/unverifiable emails err = client.SaveBulkResults(models.BulkTypeVerifier, bulkID, invalidFile, "not_found") if err != nil { log.Printf("Warning: Failed to save invalid emails: %v", err) } // Build summary summary := &VerificationSummary{ BulkID: bulkID, Name: info.Name, TotalEmails: info.Processed, Duration: time.Since(startTime), ValidFile: validFile, InvalidFile: invalidFile, } if info.VerifyCost != nil { summary.CreditsCost = *info.VerifyCost } log.Printf("Verification completed! Processed %d emails in %v", summary.TotalEmails, summary.Duration.Round(time.Second)) return summary, nil } } } } // Summary structure for verification results type VerificationSummary struct { BulkID int64 Name string TotalEmails int CreditsCost int Duration time.Duration ValidFile string InvalidFile string } func (s *VerificationSummary) String() string { return fmt.Sprintf(` Verification Summary: - Bulk ID: %d - Name: %s - Total Emails: %d - Credits Used: %d - Duration: %v - Valid Emails: %s - Invalid Emails: %s`, s.BulkID, s.Name, s.TotalEmails, s.CreditsCost, s.Duration.Round(time.Second), s.ValidFile, s.InvalidFile) } // Usage example func main() { client := tomba.NewTomba("your-api-key", "your-secret-key") summary, err := verifyEmailList(client, "email-list.csv", 1) if err != nil { log.Fatal("Verification failed:", err) } fmt.Println(summary) }`` ### CSV File Format Examples[](https://docs.tomba.io/bulks/email-verifier#csv-file-format-examples) **Simple Email List** Code `email john.doe@example.com jane@company.com invalid-email@ user@nonexistent-domain.xyz contact@business.net` **With Additional Data** Code `name,email,company John Doe,john.doe@example.com,Example Corp Jane Smith,jane@company.com,Tech Company Invalid User,invalid-email@,Unknown Test User,user@nonexistent.xyz,Fake Company` Best Practices[](https://docs.tomba.io/bulks/email-verifier#best-practices) ---------------------------------------------------------------------------- * **Regular Verification**: Verify email lists regularly, especially before major campaigns * **List Hygiene**: Remove invalid and risky emails from your marketing lists * **Domain Limits**: Respect per-domain verification limits to maintain service quality * **Quality Thresholds**: Set appropriate quality standards for your use case * **Campaign Integration**: Integrate verification into your email marketing workflow * **Batch Processing**: Process large lists in smaller batches for better management * **Result Segmentation**: Separate valid, invalid, and risky emails for targeted action * **Cost Monitoring**: Track verification costs and optimize for budget efficiency * **Sender Reputation**: Use verification to maintain good sender reputation scores * **Compliance**: Ensure verification practices comply with email marketing regulations Last modified on April 27, 2026 [Email Finder Bulk](https://docs.tomba.io/bulks/email-finder) [LinkedIn Finder Bulk](https://docs.tomba.io/bulks/linkedin-finder) Go Go Go Go Go Go Go Go Go --- # Migrate from Bounceban to Tomba | Tomba Documentation Menu This guide will help you seamlessly transition from Bounceban to Tomba's email verification service, offering superior accuracy, more data attributes, and better integration options. * * * Why Choose Tomba Over Bounceban?[](https://docs.tomba.io/migration/email-verifier/bounceban#why-choose-tomba-over-bounceban) ----------------------------------------------------------------------------------------------------------------------------- | Feature | Bounceban | Tomba | | --- | --- | --- | | **Accuracy** | 95-97% | 99%+ | | **Pricing** | Pay-as-you-go | Flexible plans with better rates | | **Catchall Detection** | Basic | Advanced with confidence scoring | | **Speed** | Standard | Ultra-fast with caching | | **Bulk Verification** | Yes | Yes, with advanced API | | **API Access** | REST API | REST API + MCP + SDKs | | **Data Attributes** | Limited | 15+ comprehensive attributes | | **Real-time Verification** | Yes | Yes, with smart caching | | **SMTP Provider Info** | No | Yes, detailed provider detection | | **Integration Options** | Basic | Extensive (50+ integrations) | * * * Key Advantages of Tomba[](https://docs.tomba.io/migration/email-verifier/bounceban#key-advantages-of-tomba) ------------------------------------------------------------------------------------------------------------ ### 1\. Superior Accuracy[](https://docs.tomba.io/migration/email-verifier/bounceban#1-superior-accuracy) * 99%+ accuracy rate with advanced verification * Multi-layered SMTP validation * Real-time mailbox checking * Machine learning-enhanced detection ### 2\. Richer Data Attributes[](https://docs.tomba.io/migration/email-verifier/bounceban#2-richer-data-attributes) ### 2\. Rich Data Attributes (15+ Fields)[](https://docs.tomba.io/migration/email-verifier/bounceban#2-rich-data-attributes-15-fields) Tomba provides comprehensive verification data with 15+ attributes: * **Verification Results**: `status` (valid/invalid/accept\_all/etc.), `result` (deliverable/undeliverable/risky), `score` (0-100) * **SMTP Intelligence**: `smtp_provider` (e.g., "Google Workspace"), `smtp_server`, `smtp_check` * **MX Infrastructure**: Complete `mx.records` array, `mx_check` validation * **Email Quality Signals**: `accept_all`, `greylisted`, `block`, `gibberish`, `regex` * **Email Type Detection**: `disposable`, `webmail` * **Domain Insights**: `whois` data including registrar, creation date, referral URL * **Data Provenance**: `sources` array with URIs, extraction dates, and page status **Example comprehensive response:** Code `{ "data": { "email": { "email": "dayna.winter@shopify.com", "result": "deliverable", "status": "valid", "score": 99, "smtp_provider": "Google Workspace", "mx": { "records": [ "aspmx.l.google.com", "alt1.aspmx.l.google.com", "alt2.aspmx.l.google.com", "alt4.aspmx.l.google.com", "alt3.aspmx.l.google.com" ] }, "mx_check": true, "smtp_server": true, "smtp_check": true, "accept_all": true, "greylisted": false, "block": false, "gibberish": false, "disposable": false, "webmail": false, "regex": true, "whois": { "registrar_name": "markmonitor inc.", "referral_url": "http://www.markmonitor.com", "created_date": "2005-03-11T06:18:03+01:00" } }, "sources": [ { "uri": "https://www.shopify.com/blog/black-friday-cyber-monday-shopify-apps", "website_url": "www.shopify.com", "extracted_on": "2022-11-07T13:16:42+01:00", "last_seen_on": "2022-11-07T13:16:42+01:00", "still_on_page": true } ] } }` ### 3\. Better Developer Experience[](https://docs.tomba.io/migration/email-verifier/bounceban#3-better-developer-experience) * Official SDKs for 10+ languages * Model Context Protocol (MCP) support * Comprehensive API documentation * OpenAPI/Swagger specification ### 4\. Smart Verification Caching[](https://docs.tomba.io/migration/email-verifier/bounceban#4-smart-verification-caching) * 3-month automatic caching * Free cached results * Instant response times * Automatic freshness management ### 5\. More Integration Options[](https://docs.tomba.io/migration/email-verifier/bounceban#5-more-integration-options) * Google Sheets add-on * Microsoft Excel add-in * Chrome extension * Zapier/n8n workflows * Direct CRM integrations * * * Migration Steps[](https://docs.tomba.io/migration/email-verifier/bounceban#migration-steps) -------------------------------------------------------------------------------------------- ### Step 1: Get Your Tomba API Credentials[](https://docs.tomba.io/migration/email-verifier/bounceban#step-1-get-your-tomba-api-credentials) 1. Sign up at [app.tomba.io](https://app.tomba.io/) 2. Navigate to **API** → **API Keys** 3. Copy your **API Key** and **Secret Key** ### Step 2: Update API Endpoints[](https://docs.tomba.io/migration/email-verifier/bounceban#step-2-update-api-endpoints) **Bounceban endpoint:** Code `POST https://api.bounceban.com/v1/verify` **Tomba endpoint:** Code `GET https://api.tomba.io/v1/email-verifier?email={email}` ### Step 3: Update Authentication[](https://docs.tomba.io/migration/email-verifier/bounceban#step-3-update-authentication) **Bounceban authentication:** Code `{ "api_key": "your_bounceban_key" }` **Tomba authentication:** Code `// Headers (more secure) { "X-Tomba-Key": "your_api_key", "X-Tomba-Secret": "your_secret_key" }` ### Step 4: Update Response Handling[](https://docs.tomba.io/migration/email-verifier/bounceban#step-4-update-response-handling) **Bounceban response:** Code `{ "email": "test@example.com", "status": "valid", "free_email": false, "disposable": false, "role_account": false }` **Tomba response:** Code `{ "data": { "email": "test@example.com", "status": "valid", "result": "deliverable", "score": 100, "regex": true, "mx_records": ["mail.example.com"], "mx_check": true, "smtp_server": true, "smtp_check": true, "smtp_provider": "Google Workspace", "accept_all": false, "block": false, "gibberish": false, "disposable": false, "webmail": false, "greylisted": false } }` * * * Code Migration Examples[](https://docs.tomba.io/migration/email-verifier/bounceban#code-migration-examples) ------------------------------------------------------------------------------------------------------------ ### Node.js[](https://docs.tomba.io/migration/email-verifier/bounceban#nodejs) **Before (Bounceban):** Code `const axios = require("axios"); async function verifyEmail(email) { const response = await axios.post("https://api.bounceban.com/v1/verify", { api_key: process.env.BOUNCEBAN_KEY, email: email, }); return response.data; }` **After (Tomba):** Code `const axios = require("axios"); async function verifyEmail(email) { const response = await axios.get("https://api.tomba.io/v1/email-verifier", { params: { email }, headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }); return response.data.data; } // Or use the official Tomba SDK import { TombaClient, Domain } from "tomba"; // Init Tomba const client = new TombaClient(); const domain = new Domain(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret let result = verifier.emailVerifier("b.mohamed@tomba.io"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Python[](https://docs.tomba.io/migration/email-verifier/bounceban#python) **Before (Bounceban):** Code `import requests def verify_email(email): response = requests.post( 'https://api.bounceban.com/v1/verify', json={ 'api_key': os.environ['BOUNCEBAN_KEY'], 'email': email } ) return response.json()` **After (Tomba):** Code `import requests def verify_email(email): response = requests.get( 'https://api.tomba.io/v1/email-verifier', params={'email': email}, headers={ 'X-Tomba-Key': os.environ['TOMBA_KEY'], 'X-Tomba-Secret': os.environ['TOMBA_SECRET'] } ) return response.json()['data'] # Or use the official SDK from tomba import Client, Verifier client = Client(os.environ['TOMBA_KEY'], os.environ['TOMBA_SECRET']) verifier = Verifier(client) def verify_email(email): return verifier.email_verifier(email)` ### PHP[](https://docs.tomba.io/migration/email-verifier/bounceban#php) **Before (Bounceban):** Code ` $_ENV['BOUNCEBAN_KEY'], 'email' => $email ]; $ch = curl_init('https://api.bounceban.com/v1/verify'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); return json_decode($response); }` **After (Tomba):** Code `data; } // Or use the official SDK require 'vendor/autoload.php'; use Tomba\Client; use Tomba\Services\Verifier; $client = new Client($_ENV['TOMBA_KEY'], $_ENV['TOMBA_SECRET']); $verifier = new Verifier($client); function verifyEmail($email) { return $verifier->emailVerifier($email); }` * * * Status Mapping[](https://docs.tomba.io/migration/email-verifier/bounceban#status-mapping) ------------------------------------------------------------------------------------------ | Bounceban Status | Tomba Status | Tomba Result | Description | | --- | --- | --- | --- | | `valid` | `valid` | `deliverable` | Email is valid and deliverable | | `invalid` | `invalid` | `undeliverable` | Email is invalid | | `catch_all` | `accept_all` | `risky` | Domain accepts all emails | | `unknown` | `unknown` | `risky` | Could not verify | | `disposable` | `disposable` | `undeliverable` | Temporary email service | * * * Bulk Verification Migration[](https://docs.tomba.io/migration/email-verifier/bounceban#bulk-verification-migration) -------------------------------------------------------------------------------------------------------------------- **Bounceban bulk approach:** Code `// Sequential verification for (const email of emails) { await verifyEmail(email); }` **Tomba bulk approach:** Code `// Efficient bulk API const bulkVerify = async (emails) => { const response = await axios.post( "https://api.tomba.io/v1/bulk/email-verifier", { emails }, { headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }, ); return response.data; };` * * * Advanced Features in Tomba[](https://docs.tomba.io/migration/email-verifier/bounceban#advanced-features-in-tomba) ------------------------------------------------------------------------------------------------------------------ ### 1\. SMTP Provider Detection[](https://docs.tomba.io/migration/email-verifier/bounceban#1-smtp-provider-detection) Know exactly which email service is being used: Code `{ "smtp_provider": "Google Workspace", "smtp_check": true }` ### 2\. Confidence Scoring[](https://docs.tomba.io/migration/email-verifier/bounceban#2-confidence-scoring) Get a clear confidence score (0-100): Code `{ "score": 95, "result": "deliverable" }` ### 3\. MX Record Details[](https://docs.tomba.io/migration/email-verifier/bounceban#3-mx-record-details) See the actual mail servers: Code `{ "mx_records": ["aspmx.l.google.com", "alt1.aspmx.l.google.com"] }` ### 4\. Greylisting Detection[](https://docs.tomba.io/migration/email-verifier/bounceban#4-greylisting-detection) Identify temporary deferrals: Code `{ "greylisted": false }` ### 5\. Gibberish Detection[](https://docs.tomba.io/migration/email-verifier/bounceban#5-gibberish-detection) Identify randomly generated addresses: Code `{ "gibberish": false }` * * * Testing Your Migration[](https://docs.tomba.io/migration/email-verifier/bounceban#testing-your-migration) ---------------------------------------------------------------------------------------------------------- ### Side-by-Side Comparison[](https://docs.tomba.io/migration/email-verifier/bounceban#side-by-side-comparison) Code `const testEmails = [ "valid@example.com", "invalid@example.com", "catchall@example.com", "disposable@temp-mail.org", ]; async function compareServices() { for (const email of testEmails) { const bouncebanResult = await bouncebanVerify(email); const tombaResult = await tombaVerify(email); console.log({ email, bounceban: bouncebanResult.status, tomba: { status: tombaResult.status, result: tombaResult.result, score: tombaResult.score, smtp_provider: tombaResult.smtp_provider, extras: { accept_all: tombaResult.accept_all, webmail: tombaResult.webmail, disposable: tombaResult.disposable, }, }, }); } }` * * * Migration Checklist[](https://docs.tomba.io/migration/email-verifier/bounceban#migration-checklist) ---------------------------------------------------------------------------------------------------- * [ ] Sign up for Tomba account * [ ] Get API credentials * [ ] Update authentication in codebase * [ ] Update API endpoints * [ ] Map response fields to new structure * [ ] Update error handling * [ ] Test with sample emails * [ ] Run parallel comparison tests * [ ] Update bulk verification logic * [ ] Update documentation * [ ] Train team on new API * [ ] Monitor initial rollout * [ ] Cancel Bounceban subscription * * * Support and Resources[](https://docs.tomba.io/migration/email-verifier/bounceban#support-and-resources) -------------------------------------------------------------------------------------------------------- * [Tomba API Documentation](https://docs.tomba.io/) * [Email Verifier Attributes](https://docs.tomba.io/attributes/verifier) * [Bulk Verification Guide](https://docs.tomba.io/bulks/email-verifier) * [SDK Libraries](https://docs.tomba.io/libraries) * [Support Portal](https://help.tomba.io/) Need help with migration? Contact our support team for personalized assistance. * * * FAQ[](https://docs.tomba.io/migration/email-verifier/bounceban#faq) -------------------------------------------------------------------- **Q: Will migration affect my application uptime?** A: No, you can run both services in parallel during migration to ensure zero downtime. **Q: How long does a typical migration take?** A: Most teams complete migration in 1-2 hours, including testing. **Q: Can I get help with the migration?** A: Yes! Our support team offers migration assistance, especially for enterprise customers. **Q: What about my existing verification credits?** A: Use your remaining Bounceban credits while testing Tomba in parallel. **Q: Is there a free trial?** A: Yes, start with 25 free verifications to test the service before committing. Last modified on February 11, 2026 [Migrate from MillionVerifier to Tomba](https://docs.tomba.io/migration/email-verifier/millionverifier) [Migrate from Bouncer to Tomba](https://docs.tomba.io/migration/email-verifier/bouncer) JSON Javascript Javascript JSON JSON Javascript Javascript PHP PHP Javascript Javascript JSON JSON JSON JSON JSON Javascript --- # Zapier Integration | Tomba Documentation Menu Overview[](https://docs.tomba.io/integrations/zapier#overview) --------------------------------------------------------------- Connect Tomba.io with 5,000+ apps through Zapier to automate your email finding, verification, and enrichment workflows. No coding required. Prerequisites[](https://docs.tomba.io/integrations/zapier#prerequisites) ------------------------------------------------------------------------- * Active Tomba.io account with API credentials * Zapier account (free or paid) Setup & Authentication[](https://docs.tomba.io/integrations/zapier#setup--authentication) ------------------------------------------------------------------------------------------ ### Connecting Tomba.io to Zapier[](https://docs.tomba.io/integrations/zapier#connecting-tombaio-to-zapier) 1. In your Zap, search for **Tomba.io** 2. Select a trigger or action 3. Click **Sign in to Tomba.io** 4. Enter your credentials: * **API Key**: Your Tomba.io API key * **Secret Key**: Your Tomba.io secret key 5. Click **Yes, Continue** **Getting Your API Credentials:** 1. Log in to your [Tomba.io dashboard](https://app.tomba.io/) 2. Navigate to [API Keys](https://app.tomba.io/api) 3. Copy your API Key and Secret Key Available Actions[](https://docs.tomba.io/integrations/zapier#available-actions) --------------------------------------------------------------------------------- ### Find Email Address[](https://docs.tomba.io/integrations/zapier#find-email-address) Find a professional email address using a person's name and company domain. **Input Fields:** * **Domain** (required) - Company domain (e.g., `tomba.io`) * **First Name** (required) - Person's first name * **Last Name** (required) - Person's last name **Output:** * Email address * Score (accuracy confidence) * Position * Department * Sources * Verification status **Example Zap:** Code `Trigger: New Lead in Salesforce ↓ Action: Tomba.io - Find Email Address ↓ Action: Send Email via Gmail` ### Verify Email Address[](https://docs.tomba.io/integrations/zapier#verify-email-address) Verify if an email address is valid and deliverable. **Input Fields:** * **Email** (required) - Email address to verify **Output:** * Email status (valid/invalid) * Result (deliverable/undeliverable/risky/unknown) * Score (0-100) * SMTP check results * Accept-all detection * Free email provider detection * Disposable email detection **Example Zap:** Code `Trigger: New Contact in HubSpot ↓ Action: Tomba.io - Verify Email Address ↓ Filter: Only if deliverable ↓ Action: Add to email campaign` ### Domain Search[](https://docs.tomba.io/integrations/zapier#domain-search) Search for all email addresses associated with a domain. **Input Fields:** * **Domain** (required) - Company domain * **Page** (optional) - Page number for pagination (default: 1) * **Limit** (optional) - Number of results per page (default: 10, max: 100) * **Department** (optional) - Filter by department **Output:** * Array of email addresses * Full names * Positions * Departments * Social profiles * Verification status **Example Zap:** Code `Trigger: Webhook receives company domain ↓ Action: Tomba.io - Domain Search ↓ Action: Create rows in Google Sheets` ### Email Count[](https://docs.tomba.io/integrations/zapier#email-count) Get the total number of email addresses for a domain. **Input Fields:** * **Domain** (required) - Company domain **Output:** * Total email count * Personal emails count * Generic emails count ### LinkedIn Email Finder[](https://docs.tomba.io/integrations/zapier#linkedin-email-finder) Find email addresses from LinkedIn profile URLs. **Input Fields:** * **LinkedIn URL** (required) - LinkedIn profile URL **Output:** * Email address * Full name * Position * Company * Verification status **Example Zap:** Code `Trigger: New LinkedIn connection ↓ Action: Tomba.io - LinkedIn Email Finder ↓ Action: Add to CRM` ### Author Finder[](https://docs.tomba.io/integrations/zapier#author-finder) Find the author of a webpage by URL. **Input Fields:** * **URL** (required) - Webpage URL **Output:** * Author name * Email address * Social profiles * Position ### Enrichment[](https://docs.tomba.io/integrations/zapier#enrichment) Enrich company or contact data using email or domain. **Input Fields:** * **Email** (optional) - Email address to enrich * **Domain** (optional) - Domain to enrich **Output:** * Full profile data * Company information * Social profiles * Technologies used * Employee count * Industry ### Phone Finder[](https://docs.tomba.io/integrations/zapier#phone-finder) Find phone numbers associated with a domain, email, or LinkedIn URL. **Input Fields:** * **Domain** (optional) - Company domain * **Email** (optional) - Email address * **LinkedIn URL** (optional) - LinkedIn profile URL **Output:** * Phone number(s) * Phone type (mobile/work) * Country code * Verified status ### Phone Validator[](https://docs.tomba.io/integrations/zapier#phone-validator) Validate phone numbers for format and deliverability. **Input Fields:** * **Phone Number** (required) - Phone number to validate * **Country Code** (optional) - ISO country code (e.g., US, FR) **Output:** * Valid/invalid status * Phone type (mobile/landline/voip) * Carrier information * Location * Format (international/national) ### Similar Domains[](https://docs.tomba.io/integrations/zapier#similar-domains) Find domains similar to a given domain. **Input Fields:** * **Domain** (required) - Company domain **Output:** * Array of similar domains * Match scores * Company names ### Create Lead[](https://docs.tomba.io/integrations/zapier#create-lead) Create a new lead in Tomba.io. **Input Fields:** * **Email** (required) - Lead's email address * **First Name** (optional) - Lead's first name * **Last Name** (optional) - Lead's last name **Output:** * Lead ID * Created timestamp * Full lead details Example Zaps[](https://docs.tomba.io/integrations/zapier#example-zaps) ----------------------------------------------------------------------- ### Lead Generation Workflow[](https://docs.tomba.io/integrations/zapier#lead-generation-workflow) **Trigger:** New row in Google Sheets 1. **Tomba.io - Find Email Address** (using name + domain from sheet) 2. **Tomba.io - Verify Email Address** 3. **Filter by Zapier:** Only continue if email is deliverable 4. **HubSpot - Create Contact** 5. **Gmail - Send Email** ### Email Validation Workflow[](https://docs.tomba.io/integrations/zapier#email-validation-workflow) **Trigger:** New signup in your app 1. **Tomba.io - Verify Email Address** 2. **Paths by Zapier:** * Path A (Deliverable) → Send welcome email * Path B (Risky/Invalid) → Send to manual review queue ### LinkedIn Prospecting[](https://docs.tomba.io/integrations/zapier#linkedin-prospecting) **Trigger:** New LinkedIn connection 1. **LinkedIn - Get Profile Details** 2. **Tomba.io - LinkedIn Email Finder** 3. **Tomba.io - Verify Email Address** 4. **Salesforce - Create Lead** 5. **Slack - Send Notification** ### Domain Research Workflow[](https://docs.tomba.io/integrations/zapier#domain-research-workflow) **Trigger:** Webhook receives company domain 1. **Tomba.io - Domain Search** 2. **Tomba.io - Email Count** 3. **Tomba.io - Similar Domains** 4. **Tomba.io - Enrichment** 5. **Airtable - Create Records** (comprehensive company report) Advanced Features[](https://docs.tomba.io/integrations/zapier#advanced-features) --------------------------------------------------------------------------------- ### Multi-Step Zaps[](https://docs.tomba.io/integrations/zapier#multi-step-zaps) Combine multiple Tomba.io actions in a single Zap: Code `Trigger: New Lead ↓ Tomba.io: Find Email ↓ Tomba.io: Verify Email ↓ Tomba.io: Enrich Data ↓ Tomba.io: Phone Finder ↓ CRM: Create Full Profile` ### Filtering & Paths[](https://docs.tomba.io/integrations/zapier#filtering--paths) Use Zapier's Filter and Paths features to create conditional workflows: Code `Tomba.io: Verify Email ↓ Paths: Path 1: Score > 90 → Add to Hot Leads Path 2: Score 70-90 → Add to Warm Leads Path 3: Score < 70 → Discard` ### Looping with Zapier Tables[](https://docs.tomba.io/integrations/zapier#looping-with-zapier-tables) Process multiple records: Code `Zapier Tables: New/Updated Records ↓ Tomba.io: Find Email (for each record) ↓ Zapier Tables: Update Record` ### Error Handling[](https://docs.tomba.io/integrations/zapier#error-handling) Configure error notifications: 1. Enable **Error Notifications** in Zap settings 2. Use **Error Handler** step (Zapier Teams plan) 3. Log errors to Google Sheets or Slack Troubleshooting[](https://docs.tomba.io/integrations/zapier#troubleshooting) ----------------------------------------------------------------------------- ### Authentication Issues[](https://docs.tomba.io/integrations/zapier#authentication-issues) **Problem:** "Authentication failed" **Solutions:** * Verify API credentials in [Tomba.io dashboard](https://app.tomba.io/api) * Ensure API keys have not been regenerated * Check that your Tomba.io account is active * Reconnect the Tomba.io account in Zapier ### No Data Returned[](https://docs.tomba.io/integrations/zapier#no-data-returned) **Problem:** Action completes but returns empty data **Solutions:** * Check that the input domain/email format is correct * Verify the email/domain exists in Tomba.io database * Review [API usage limits](https://app.tomba.io/usage) * Check Zap execution history for detailed error messages ### Rate Limiting[](https://docs.tomba.io/integrations/zapier#rate-limiting) **Problem:** "429 Too Many Requests" error **Solutions:** * Review your [Tomba.io plan limits](https://tomba.io/pricing) * Add delays between actions using **Delay by Zapier** * Upgrade your Tomba.io plan for higher limits * Batch process requests during off-peak hours ### Zap Doesn't Trigger[](https://docs.tomba.io/integrations/zapier#zap-doesnt-trigger) **Problem:** Zap doesn't run when expected **Solutions:** * Tomba.io doesn't provide triggers - use other apps as triggers * Check that the trigger app is properly configured * Verify Zap is turned ON * Review Zap History for skipped or filtered executions Best Practices[](https://docs.tomba.io/integrations/zapier#best-practices) --------------------------------------------------------------------------- 1. **Verify Before Sending**: Always verify emails before adding to campaigns 2. **Use Filters**: Filter out invalid or risky emails early in your Zap 3. **Batch Processing**: For large datasets, process in batches to avoid rate limits 4. **Error Handling**: Set up error notifications and logging 5. **Test Thoroughly**: Use Zapier's testing feature before activating 6. **Monitor Usage**: Check your Tomba.io API usage regularly 7. **Data Quality**: Clean input data (remove spaces, validate formats) before Tomba.io actions 8. **Paths for Logic**: Use Paths instead of multiple Zaps for conditional logic API Limits[](https://docs.tomba.io/integrations/zapier#api-limits) ------------------------------------------------------------------- Tomba.io API limits vary by plan: * **Free**: 50 requests/month * **Starter**: 1,000 requests/month * **Growth**: 5,000 requests/month * **Business**: 25,000 requests/month * **Enterprise**: Custom limits [View detailed pricing and limits](https://tomba.io/pricing) Zapier-Specific Limits[](https://docs.tomba.io/integrations/zapier#zapier-specific-limits) ------------------------------------------------------------------------------------------- * Free Zapier accounts: 100 tasks/month * Zapier Starter: 750 tasks/month * Zapier Professional: 2,000+ tasks/month Each Tomba.io action counts as one Zapier task. Resources[](https://docs.tomba.io/integrations/zapier#resources) ----------------------------------------------------------------- * [Tomba.io API Documentation](https://docs.tomba.io/) * [Zapier Help Center](https://help.zapier.com/) * [Tomba.io + Zapier Integration Page](https://zapier.com/apps/tomba/integrations) * [API Status](https://status.tomba.io/) Support[](https://docs.tomba.io/integrations/zapier#support) ------------------------------------------------------------- ### Tomba.io Support[](https://docs.tomba.io/integrations/zapier#tombaio-support) * Email: [support@tomba.io](mailto:support@tomba.io) * Dashboard: [app.tomba.io](https://app.tomba.io/) ### Zapier Support[](https://docs.tomba.io/integrations/zapier#zapier-support) * Help Center: [help.zapier.com](https://help.zapier.com/) * Community: [community.zapier.com](https://community.zapier.com/) FAQs[](https://docs.tomba.io/integrations/zapier#faqs) ------------------------------------------------------- **Q: Can I use Tomba.io as a trigger in Zapier?** A: No, Tomba.io only provides actions. Use other apps (webhooks, Google Sheets, etc.) as triggers. **Q: How many API calls does one Zap execution use?** A: Each Tomba.io action in a Zap uses one API request. Multiple actions = multiple requests. **Q: Can I verify email lists in bulk?** A: Yes, use a Zapier loop with spreadsheet rows or Zapier Tables. Each verification counts as one API request. **Q: What happens if I exceed my API limit?** A: Requests will fail with a 429 error. Upgrade your plan or wait until your limit resets. **Q: Can I customize the data returned?** A: Use Zapier's Formatter steps to transform Tomba.io output data as needed. Version History[](https://docs.tomba.io/integrations/zapier#version-history) ----------------------------------------------------------------------------- **v1.0.0** - Initial Zapier integration release * 11 core actions covering all major endpoints * API Key + Secret Key authentication * Full error handling * Comprehensive output data mapping Last modified on February 11, 2026 [ClawHub Integration](https://docs.tomba.io/integrations/clawhub) [Make (Integromat) Integration](https://docs.tomba.io/integrations/make) --- # Cline - VSCode Setup | Tomba Documentation Menu Learn how to setup and use the Cline extension for VS Code to work effectively with Tomba API development using AI-powered coding assistance. Installation & Setup[](https://docs.tomba.io/llm/editor/cline#installation--setup) ----------------------------------------------------------------------------------- ### 1\. Install Cline Extension[](https://docs.tomba.io/llm/editor/cline#1-install-cline-extension) 1. Open VS Code 2. Go to Extensions (Ctrl+Shift+X) 3. Search for "Cline" (formerly Claude Dev) 4. Install the extension by Saoud Rizwan 5. Restart VS Code if prompted ### 2\. Configure API Access[](https://docs.tomba.io/llm/editor/cline#2-configure-api-access) 1. Open Command Palette (Ctrl+Shift+P) 2. Type "Cline: Open Settings" 3. Configure your AI provider: * **Anthropic Claude**: Add your API key * **OpenAI GPT**: Configure OpenAI settings * **Local models**: Set up Ollama or other local providers ### 3\. Project Setup[](https://docs.tomba.io/llm/editor/cline#3-project-setup) Create a Tomba API context file for Cline: TerminalCode `# Create project documentation mkdir -p .cline curl -L https://docs.tomba.io/llms.txt -o .cline/tomba-api.md` Add to your workspace settings (`.vscode/settings.json`): Code `{ "cline.contextFiles": [".cline/tomba-api.md"], "cline.instructions": "When working with email-related APIs, use Tomba API patterns from the documentation. Always include proper authentication headers (X-Tomba-Key, X-Tomba-Secret) and implement rate limiting." }` Cline Features for Tomba Integration[](https://docs.tomba.io/llm/editor/cline#cline-features-for-tomba-integration) -------------------------------------------------------------------------------------------------------------------- ### 1\. File Creation and Editing[](https://docs.tomba.io/llm/editor/cline#1-file-creation-and-editing) Cline can create and modify multiple files simultaneously: **Prompt:** Code `Using the Tomba API documentation in .cline/tomba-api.md, create a complete TypeScript email verification service with: 1. src/types/tomba.ts - TypeScript interfaces 2. src/services/tomba-client.ts - Main API client 3. src/utils/rate-limiter.ts - Rate limiting utility 4. src/middleware/email-validation.ts - Express middleware 5. tests/tomba-client.test.ts - Unit tests 6. examples/usage.ts - Usage examples Include proper error handling, authentication, and rate limiting throughout.` ### 2\. Terminal Integration[](https://docs.tomba.io/llm/editor/cline#2-terminal-integration) Cline can run commands and install dependencies: **Prompt:** Code `Set up a new Node.js project for Tomba API integration: 1. Initialize npm project with proper package.json 2. Install required dependencies (axios, express, jest, typescript) 3. Set up TypeScript configuration 4. Create folder structure 5. Install and configure ESLint and Prettier 6. Set up testing framework 7. Create environment file template Run all necessary commands and create the initial project structure.` ### 3\. Real-time Code Analysis[](https://docs.tomba.io/llm/editor/cline#3-real-time-code-analysis) Cline can analyze your existing code and suggest improvements: **Prompt:** Code `Analyze the current Tomba API integration in this workspace and: 1. Identify potential security issues 2. Suggest performance optimizations 3. Review error handling completeness 4. Check TypeScript type safety 5. Recommend testing improvements 6. Suggest code organization improvements Make specific code changes where needed.` Development Workflows[](https://docs.tomba.io/llm/editor/cline#development-workflows) -------------------------------------------------------------------------------------- ### 1\. Complete Feature Development[](https://docs.tomba.io/llm/editor/cline#1-complete-feature-development) **Email Verification Component:** Code `Create a complete email verification feature using Tomba API: Feature Requirements: - React component with real-time validation - TypeScript throughout - Proper error handling and loading states - Debounced API calls to respect rate limits - Caching for recent verifications - Unit tests with React Testing Library - Storybook stories - CSS modules for styling Files to create: 1. components/EmailVerification/EmailVerification.tsx 2. components/EmailVerification/EmailVerification.module.css 3. components/EmailVerification/EmailVerification.test.tsx 4. components/EmailVerification/EmailVerification.stories.tsx 5. hooks/useEmailVerification.ts 6. services/tomba-api.ts 7. types/email-verification.ts Use the Tomba API documentation for accurate implementation.` ### 2\. Bug Fixing and Optimization[](https://docs.tomba.io/llm/editor/cline#2-bug-fixing-and-optimization) **Performance Issue Resolution:** Code `I'm experiencing performance issues with my Tomba API integration: Issues: - High memory usage during bulk operations - Slow response times (>2 seconds) - Occasional rate limit errors - Memory leaks in production Please: 1. Analyze the existing code for bottlenecks 2. Implement connection pooling 3. Add request queuing for bulk operations 4. Optimize memory usage 5. Improve error handling for rate limits 6. Add monitoring and logging 7. Create performance tests Fix the identified issues and optimize the implementation.` ### 3\. Testing Implementation[](https://docs.tomba.io/llm/editor/cline#3-testing-implementation) **Comprehensive Testing Setup:** Code `Create a comprehensive testing suite for the Tomba API integration: Testing Requirements: - Unit tests for all service methods - Integration tests with mock API responses - Error scenario testing - Rate limiting tests - Performance benchmarks - End-to-end tests for user flows Files to create: 1. tests/unit/tomba-client.test.ts 2. tests/integration/api-integration.test.ts 3. tests/mocks/tomba-api-responses.ts 4. tests/performance/load-tests.ts 5. tests/e2e/email-verification.spec.ts 6. tests/helpers/test-utils.ts Set up Jest configuration and testing utilities.` Advanced Use Cases[](https://docs.tomba.io/llm/editor/cline#advanced-use-cases) -------------------------------------------------------------------------------- ### 1\. Microservice Architecture[](https://docs.tomba.io/llm/editor/cline#1-microservice-architecture) **Complete Microservice Creation:** Code `Create a complete microservice for email verification using Tomba API: Architecture: - Node.js with Express and TypeScript - Clean architecture pattern - Docker containerization - Health checks and monitoring - API documentation with Swagger - Logging and error tracking - Rate limiting and caching - Authentication and authorization Services to implement: 1. Email verification service 2. Bulk processing service 3. Cache service (Redis) 4. Queue service (Bull) 5. Notification service Create all necessary files including: - API routes and controllers - Service layer implementations - Database models and repositories - Docker and Docker Compose files - CI/CD pipeline configuration - Documentation and README Use Tomba API documentation for accurate integration.` ### 2\. React Application Integration[](https://docs.tomba.io/llm/editor/cline#2-react-application-integration) **Full Stack React App:** Code `Build a complete React application for email management using Tomba API: Frontend Features: - Email verification dashboard - Bulk email upload and processing - Real-time validation feedback - Export functionality - User authentication - Responsive design Technical Stack: - React 18 with TypeScript - Tailwind CSS for styling - React Query for data fetching - React Router for navigation - React Hook Form for forms - Recharts for analytics - Jest and React Testing Library Backend Features: - Express API with TypeScript - JWT authentication - File upload handling - Background job processing - Rate limiting and caching - API documentation Create the complete application with proper project structure.` ### 3\. CLI Tool Development[](https://docs.tomba.io/llm/editor/cline#3-cli-tool-development) **Command Line Interface:** Code `Create a CLI tool for Tomba API operations: CLI Features: - Email verification commands - Bulk processing from files - Export results to various formats - Configuration management - Progress reporting - Interactive prompts Commands to implement: - verify - Verify single email - bulk - Process emails from file - export - Export results - config - Manage API credentials - status - Check API status and quotas Technical Requirements: - Node.js with TypeScript - Commander.js for CLI framework - Inquirer.js for interactive prompts - Progress bars for bulk operations - Colorized output - Configuration file management - Error handling and logging Create the complete CLI tool with proper packaging.` Code Examples[](https://docs.tomba.io/llm/editor/cline#code-examples) ---------------------------------------------------------------------- ### 1\. TypeScript Client Implementation[](https://docs.tomba.io/llm/editor/cline#1-typescript-client-implementation) **Prompt:** Code `Create a production-ready TypeScript client for Tomba API with: - Singleton pattern for client instance - Configuration management - Request/response interceptors - Automatic retry with exponential backoff - Rate limiting with queue management - Comprehensive error handling - Event emitters for monitoring - TypeScript interfaces for all endpoints - JSDoc documentation - Unit tests Implement all major endpoints from the Tomba API documentation.` ### 2\. Express Middleware[](https://docs.tomba.io/llm/editor/cline#2-express-middleware) **Prompt:** Code `Create Express middleware for email validation using Tomba API: Middleware features: - Configurable validation rules - Request caching - Rate limiting per IP - Error handling with proper HTTP status codes - Logging and monitoring - Support for both sync and async validation - TypeScript types Create middleware for: 1. Single email validation 2. Bulk email validation 3. Domain validation 4. Rate limiting enforcement 5. Authentication handling` ### 3\. React Hooks[](https://docs.tomba.io/llm/editor/cline#3-react-hooks) **Prompt:** Code `Create React hooks for Tomba API integration: Hooks to implement: 1. useEmailVerification - Single email verification 2. useBulkEmailVerification - Bulk processing 3. useTombaConfig - Configuration management 4. useEmailValidation - Real-time form validation 5. useTombaStatus - API status monitoring Features: - TypeScript throughout - Error boundary integration - Loading states management - Caching with React Query - Optimistic updates - Retry logic - Unit tests` Best Practices with Cline[](https://docs.tomba.io/llm/editor/cline#best-practices-with-cline) ---------------------------------------------------------------------------------------------- ### 1\. Detailed Requirements[](https://docs.tomba.io/llm/editor/cline#1-detailed-requirements) Provide comprehensive requirements: Code `Context: Building email verification for e-commerce platform Scale: 10k users, 50k emails/day Tech Stack: Next.js 14, TypeScript, Tailwind, Prisma, PostgreSQL Team: 3 frontend, 2 backend developers Timeline: 4 weeks Requirements: - Real-time email validation during checkout - Admin dashboard for bulk verification - API for mobile app integration - 99.9% uptime requirement - GDPR compliance - Multi-language support Based on Tomba API documentation, implement the complete solution.` ### 2\. Iterative Development[](https://docs.tomba.io/llm/editor/cline#2-iterative-development) Build features incrementally: Code `Phase 1: Core email verification functionality - Basic API client implementation - Single email verification - Error handling Let's start with Phase 1. Create the foundation for Tomba API integration.` After completion: Code `Phase 2: Enhanced features - Bulk email processing - Caching implementation - Rate limiting Build on the previous implementation to add bulk processing capabilities.` ### 3\. Code Review and Optimization[](https://docs.tomba.io/llm/editor/cline#3-code-review-and-optimization) Code `Review the current Tomba API integration and optimize for: 1. Performance - identify bottlenecks and optimize 2. Security - ensure API keys are properly handled 3. Reliability - improve error handling and retry logic 4. Maintainability - refactor for better code organization 5. Testing - add missing test coverage 6. Documentation - improve code comments and README Make specific improvements with explanations.` Integration with VS Code Features[](https://docs.tomba.io/llm/editor/cline#integration-with-vs-code-features) -------------------------------------------------------------------------------------------------------------- ### 1\. Debugging Support[](https://docs.tomba.io/llm/editor/cline#1-debugging-support) Cline can help set up debugging: Code `Set up debugging configuration for the Tomba API integration: 1. VS Code launch configurations for Node.js 2. Debug configurations for tests 3. Environment variable setup 4. Debugging utilities and helpers 5. Error monitoring integration 6. Logging configuration Create .vscode/launch.json and debugging utilities.` ### 2\. Task Automation[](https://docs.tomba.io/llm/editor/cline#2-task-automation) Code `Create VS Code tasks for common development workflows: Tasks to create: 1. Build and compile TypeScript 2. Run tests with watch mode 3. Start development server 4. Run linting and formatting 5. Deploy to staging 6. Generate API documentation Configure tasks.json and keyboard shortcuts.` ### 3\. Extension Integration[](https://docs.tomba.io/llm/editor/cline#3-extension-integration) Code `Configure VS Code extensions for optimal Tomba API development: 1. Recommend essential extensions 2. Configure ESLint and Prettier 3. Set up TypeScript strict mode 4. Configure Jest extension 5. Set up REST Client for API testing 6. Configure Git hooks Update .vscode/extensions.json and settings.` Troubleshooting[](https://docs.tomba.io/llm/editor/cline#troubleshooting) -------------------------------------------------------------------------- ### Common Cline Issues[](https://docs.tomba.io/llm/editor/cline#common-cline-issues) 1. **API Rate Limits**: Cline might hit API limits during extensive code generation 2. **Context Size**: Large projects may exceed context window 3. **File Permissions**: Ensure Cline has write permissions 4. **Extension Conflicts**: Disable conflicting AI extensions ### Optimization Tips[](https://docs.tomba.io/llm/editor/cline#optimization-tips) 1. **Be Specific**: Provide detailed requirements and constraints 2. **Use Incremental Approach**: Build features step by step 3. **Reference Documentation**: Always point to the Tomba API docs 4. **Test Early**: Ask Cline to create tests alongside implementation Additional Resources[](https://docs.tomba.io/llm/editor/cline#additional-resources) ------------------------------------------------------------------------------------ * [Cline Extension on VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev) * [Cline GitHub Repository](https://github.com/saoudrizwan/claude-dev) * [VS Code Extension Development](https://code.visualstudio.com/api) * [Tomba API Reference](https://docs.tomba.io/api) * [Authentication Guide](https://docs.tomba.io/authentication) Last modified on October 3, 2025 [xAI Grok Setup](https://docs.tomba.io/llm/editor/grok) JSON --- # WHOIS Domain Attributes | Tomba Documentation Menu These attributes provide WHOIS metadata for the domain associated with an email. | Attribute | Description | Example | | --- | --- | --- | | `registrar_name` | Name of the domain registrar | NameCheap, Inc. | | `created_date` | Date the domain was registered | 2020-07-07 20:54:07 | | `referral_url` | Referral or homepage URL of the registrar | [https://www.namecheap.com/](https://www.namecheap.com/) | Last modified on April 28, 2026 [Phone Attributes](https://docs.tomba.io/attributes/phone) [Email Sources Attributes](https://docs.tomba.io/attributes/sources) --- # Email Sources Attributes | Tomba Documentation Menu Tomba tracks where email addresses are found across the web, associating each one with metadata about its origin and timing. These fields describe where and when an email address was observed on the internet. | Attribute | Description | Example | | --- | --- | --- | | `uri` | Source file or document URL | [https://github.com/tomba-io/generic-emails/blob/...](https://github.com/tomba-io/generic-emails/blob/084fc1a63d3cdaf9a34f255bedc2baea49a8e8b9/src/lib/validation/hash.ts) | | `website_url` | Base website where email was found | github.com | | `extracted_on` | Timestamp when email was extracted | 2021-02-08T20:09:54+01:00 | | `last_seen_on` | Timestamp of the last time the email was seen | 2021-02-08T22:43:40+01:00 | | `still_on_page` | Whether the email still exists on the page | true | Source Limit[](https://docs.tomba.io/attributes/sources#source-limit) ---------------------------------------------------------------------- Tomba limits the number of sources returned per email address to a maximum of **20**. This ensures performance while still providing reliable discovery data. Timestamps Explained[](https://docs.tomba.io/attributes/sources#timestamps-explained) -------------------------------------------------------------------------------------- * `extracted_on`: The **first time** this email address was detected on the source. * `last_seen_on`: The **most recent time** it was found on the same page. These fields help track how long an email has been publicly available. Last modified on April 28, 2026 [WHOIS Domain Attributes](https://docs.tomba.io/attributes/whois) [Similar Company Attributes](https://docs.tomba.io/attributes/similar) --- # Phone Attributes | Tomba Documentation Menu Tomba’s Phone Finder provides detailed metadata about a phone number, including its validity, formatting, and geographical data. | Attribute | Description | Example | | --- | --- | --- | | `email` | The email address associated with the phone lookup (if provided). | **\*\***@zapier.com | | `valid` | Whether the phone number is valid. | true | | `local_format` | Phone number in national format (based on country). | (877) 381-8743 | | `intl_format` | Phone number in international readable format. | +1 877-381-8743 | | `e164_format` | E.164 format, a standardized international format. | +18773818743 | | `rfc3966_format` | RFC3966 URI-formatted version of the phone number. | tel:+1-877-381-8743 | | `country_code` | ISO 2-letter country code where the number is registered. | US | | `line_type` | Type of phone line: mobile, landline, VoIP, toll-free, and more. | TOLL\_FREE | | `carrier` | The telecom carrier associated with the phone number, if available. | null | | `timezones` | Time zone(s) where the number is located. | America/Adak | * * * Use this data to enrich leads, validate contact information, and filter by phone type (for example, toll-free or mobile). Last modified on April 28, 2026 [Employees location Attributes](https://docs.tomba.io/attributes/location) [WHOIS Domain Attributes](https://docs.tomba.io/attributes/whois) --- # Orthogonal Integration | Tomba Documentation Menu Overview[](https://docs.tomba.io/integrations/orthogonal#overview) ------------------------------------------------------------------- [Orthogonal](https://orthogonal.com/) is a unified API gateway designed for AI agents. It provides instant access to hundreds of APIs through a single SDK, with built-in payment handling and no individual API key management. Tomba is available as a verified integration on Orthogonal, giving you access to 19 endpoints for email finding, verification, enrichment, and company intelligence all through a simple, consistent interface. Prerequisites[](https://docs.tomba.io/integrations/orthogonal#prerequisites) ----------------------------------------------------------------------------- | Requirement | Details | | --- | --- | | **Orthogonal account** | Sign up at [orthogonal.com/sign-up](https://orthogonal.com/sign-up)
get $10 free credits | | **Orthogonal API key** | Available in your Orthogonal dashboard | Installation[](https://docs.tomba.io/integrations/orthogonal#installation) --------------------------------------------------------------------------- Install the Orthogonal SDK: TerminalCode `npm install @orth/sdk` Initialize the client: Code `import Orthogonal from "@orth/sdk"; const orthogonal = new Orthogonal({ apiKey: process.env.ORTHOGONAL_API_KEY, });` Available Endpoints[](https://docs.tomba.io/integrations/orthogonal#available-endpoints) ----------------------------------------------------------------------------------------- | Endpoint | Method | Description | Cost | | --- | --- | --- | --- | | `/v1/domain-search` | GET | Find all emails at a company domain | $0.01 | | `/v1/email-finder` | GET | Find email from name + domain | $0.01 | | `/v1/email-verifier` | GET | Validate email deliverability | $0.01 | | `/v1/author-finder` | GET | Find email from article URL | $0.01 | | `/v1/linkedin` | GET | Find email from LinkedIn URL | $0.01 | | `/v1/phone-finder` | GET | Find phone number from email | $0.01 | | `/v1/email-count` | GET | Count emails for a domain | $0.01 | | `/v1/email-sources` | GET | Get sources where email was found | $0.01 | | `/v1/enrich` | GET | Enrich data from an email address | $0.01 | | `/v1/email-format` | GET | Get email format patterns for a domain | $0.01 | | `/v1/people/find` | GET | Get person info from email | $0.01 | | `/v1/companies/find` | GET | Get company info from domain | $0.01 | | `/v1/technology` | GET | Discover technologies used by a website | $0.01 | | `/v1/location` | GET | Get employee location distribution | $0.01 | | `/v1/similar` | GET | Find similar domains | $0.01 | | `/v1/domain-suggestions` | GET | Domain suggestions for a company name | $0.01 | | `/v1/domain-status` | GET | Check domain status and availability | $0.01 | | `/v1/phone-validator` | GET | Validate phone number and carrier info | $0.01 | | `/v1/combined/find` | GET | Combined person + company info from email | $0.01 | | `/v1/reveal/search` | POST | Natural language company search | $0.01 | Usage Examples[](https://docs.tomba.io/integrations/orthogonal#usage-examples) ------------------------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/integrations/orthogonal#domain-search) Find all emails at a company: Code `const result = await orthogonal.run({ api: "tomba", path: "/v1/domain-search", query: { domain: "stripe.com", }, }); console.log(result); // Returns: { // data: { // organization: { organization: "Stripe", location: { country: "US", city: "San Francisco" }, ... }, // emails: [ // { email: "matthew.yalowitz@stripe.com", first_name: "Matthew", position: "...", score: 55, ... }, // ... // ] // }, // meta: { total: 2079 } // }` ### Email Finder[](https://docs.tomba.io/integrations/orthogonal#email-finder) Find a specific person's email: Code `const result = await orthogonal.run({ api: "tomba", path: "/v1/email-finder", query: { domain: "asana.com", first_name: "Dustin", last_name: "Moskovitz", }, }); console.log(result); // Returns: { // data: { // email: "dmoskovitz@asana.com", // full_name: "Dustin Moskovitz", // position: "founder", // score: 100, // verification: { status: "valid" }, // sources: [...] // } // }` ### Email Verifier[](https://docs.tomba.io/integrations/orthogonal#email-verifier) Verify an email before sending: Code `const result = await orthogonal.run({ api: "tomba", path: "/v1/email-verifier", query: { email: "ceo@example.com", }, }); console.log(result); // Returns: { // data: { // email: { // email: "ceo@example.com", // result: "deliverable", // status: "valid", // score: 99, // smtp_provider: "Google Workspace", // accept_all: false, // disposable: false // }, // sources: [...] // } // }` ### LinkedIn Finder[](https://docs.tomba.io/integrations/orthogonal#linkedin-finder) Get email from a LinkedIn profile: Code `const result = await orthogonal.run({ api: "tomba", path: "/v1/linkedin", query: { url: "https://www.linkedin.com/in/williamhgates", }, }); console.log(result); // Returns: { // data: { // email: "bill.gates@microsoft.com", // full_name: "Bill Gates", // company: "Microsoft", // position: "Co-chair", // score: 100, // verification: { status: "valid" } // } // }` ### Author Finder[](https://docs.tomba.io/integrations/orthogonal#author-finder) Find the author's email from a blog post: Code `const result = await orthogonal.run({ api: "tomba", path: "/v1/author-finder", query: { url: "https://blog.hubspot.com/marketing/email-marketing-guide", }, }); // Returns author name, email, and confidence score` ### Email Count[](https://docs.tomba.io/integrations/orthogonal#email-count) Check how many emails exist for a domain: Code `const result = await orthogonal.run({ api: "tomba", path: "/v1/email-count", query: { domain: "google.com", }, }); console.log(result); // Returns: { // data: { // total: 111705, // personal_emails: 110828, // generic_emails: 877, // department: { engineering: 5375, sales: 2547, marketing: 1356, ... } // } // }` ### Phone Finder[](https://docs.tomba.io/integrations/orthogonal#phone-finder) Find phone number from an email: Code `const result = await orthogonal.run({ api: "tomba", path: "/v1/phone-finder", query: { email: "contact@company.com", }, }); console.log(result); // Returns: { // data: { // email: "contact@company.com", // local_format: "...", // intl_format: "+1 ...", // carrier: "...", // line_type: "MOBILE" // } // }` x402 Protocol (Stablecoin Payments)[](https://docs.tomba.io/integrations/orthogonal#x402-protocol-stablecoin-payments) ----------------------------------------------------------------------------------------------------------------------- Tomba on Orthogonal supports [x402](https://www.x402.org/) , an open protocol that enables native payments in HTTP. With x402, your agents can pay for API calls directly using USDC stablecoins no API keys required. Code ``// Install: npm install x402-fetch viem import { wrapFetchWithPayment } from "x402-fetch"; import { privateKeyToAccount } from "viem/accounts"; const privateKey = process.env.PRIVATE_KEY; if (!privateKey) { throw new Error("PRIVATE_KEY environment variable is required"); } const account = privateKeyToAccount( privateKey.startsWith("0x") ? privateKey : `0x${privateKey}`, ); const fetchWithPayment = wrapFetchWithPayment(fetch, account); // Find emails at a domain with automatic USDC payment const url = "https://x402.orth.sh/tomba/v1/domain-search?domain=stripe.com"; const response = await fetchWithPayment(url, { method: "GET", headers: { "Content-Type": "application/json" }, }); const data = await response.json(); console.log(data);`` x402 enables a new paradigm where AI agents can autonomously pay for services using stablecoins. No subscriptions, no API key management just seamless agent-to-agent payments. Use Cases[](https://docs.tomba.io/integrations/orthogonal#use-cases) --------------------------------------------------------------------- ### Sales Prospecting[](https://docs.tomba.io/integrations/orthogonal#sales-prospecting) Build targeted lead lists by domain. Find every email at a company, filter by department (engineering, sales, executive), and verify before outreach. ### Automated Outreach[](https://docs.tomba.io/integrations/orthogonal#automated-outreach) Agents can autonomously find decision-makers, verify their emails, and queue personalized outreach. No human bottleneck in the prospecting pipeline. ### Recruiting[](https://docs.tomba.io/integrations/orthogonal#recruiting) Find hiring managers and candidates at target companies. Author Finder is perfect for reaching out to people who write about topics relevant to your role. ### PR & Content Marketing[](https://docs.tomba.io/integrations/orthogonal#pr--content-marketing) Found a journalist who covers your space? Author Finder gets their email from any article they've written. Reach the actual person, not a generic inbox. ### CRM Enrichment[](https://docs.tomba.io/integrations/orthogonal#crm-enrichment) Bulk enrich your existing contacts with verified emails, phone numbers, and company data. Keep your database fresh and deliverable. ### Due Diligence[](https://docs.tomba.io/integrations/orthogonal#due-diligence) Researching a company? Domain Search reveals organizational structure, departments, and key personnel through their email patterns. Why Use Orthogonal for Tomba?[](https://docs.tomba.io/integrations/orthogonal#why-use-orthogonal-for-tomba) ------------------------------------------------------------------------------------------------------------ 1. **No Tomba API key needed**: Orthogonal handles authentication 2. **Unified SDK**: Same interface for Tomba and hundreds of other APIs 3. **x402 support**: Enable autonomous agent payments with stablecoins 4. **Free credits**: Get $10 free to start Resources[](https://docs.tomba.io/integrations/orthogonal#resources) --------------------------------------------------------------------- * [Tomba on Orthogonal](https://orthogonal.com/discover/tomba) * [Orthogonal Blog: Tomba Integration](https://www.orthogonal.com/blog/tomba-email-finder-api) * [Sign up for Orthogonal](https://orthogonal.com/sign-up) * [x402 Protocol](https://www.x402.org/) * [Tomba API Documentation](https://docs.tomba.io/api) Last modified on April 19, 2026 [Blivz Integration](https://docs.tomba.io/integrations/blivz) [Integrate Tomba Finder with MyBB](https://docs.tomba.io/integrations/mybb) Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript --- # Migrate from Hunter Email Finder to Tomba | Tomba Documentation Menu This guide will help you seamlessly transition from Hunter's email finder to Tomba, offering better accuracy, free verification, more data points, and 40% cost savings. * * * Why Switch from Hunter to Tomba?[](https://docs.tomba.io/migration/email-finder/hunter#why-switch-from-hunter-to-tomba) ------------------------------------------------------------------------------------------------------------------------ | Feature | Hunter | Tomba | | --- | --- | --- | | **Database Size** | 200M emails | 450M+ emails | | **Accuracy** | 85-90% | 98%+ with built-in verification | | **Email Verification** | $0.01 extra per email | FREE with every search | | **Data Attributes** | 5-6 fields | 20+ comprehensive fields | | **Domain Search** | Yes | Yes, with advanced filters | | **Author Finder** | No | Extract emails from article URLs | | **LinkedIn Finder** | No | Direct LinkedIn profile to email | | **Phone Numbers** | No | Phone Finder & Phone Validator included | | **Technology Detection** | No | Detect tech stack (6000+ technologies) | | **Similar Companies** | No | Find similar companies to expand reach | | **Bulk Operations** | Yes (limited) | Yes, with real-time tracking | | **Chrome Extension** | ✅ | ✅ More features | | **Google Sheets** | ✅ | ✅ Enhanced add-on | | **Excel Integration** | ❌ | ✅ Native add-in | | **Airtable Extension** | ❌ | ✅ Native extension | | **MCP/AI Integration** | ❌ | ✅ Works with Claude, ChatGPT, etc. | | **API Rate Limits** | 100 req/min | 300 req/min (3x faster) | | **Pricing (1000 searches)** | ~$99/month | ~$59/month (40% savings) | * * * Key Advantages of Tomba[](https://docs.tomba.io/migration/email-finder/hunter#key-advantages-of-tomba) ------------------------------------------------------------------------------------------------------- ### 1\. Free Email Verification (Save $10-20/month per 1000 emails)[](https://docs.tomba.io/migration/email-finder/hunter#1-free-email-verification-save-10-20month-per-1000-emails) **Hunter:** Charges separately for verification ($0.01 per email) * Find email: $0.05 * Verify email: $0.01 * **Total: $0.06 per verified email** **Tomba:** Verification included FREE * Find email: $0.03 (includes verification) * **Total: $0.03 per verified email** **Savings: 50% per email!** Every email found with Tomba is automatically verified: * SMTP validation * MX record check * Deliverability status * Accept-all detection * Disposable email detection * Confidence score (0-100) ### 2\. Larger Database (450M+ vs 200M emails)[](https://docs.tomba.io/migration/email-finder/hunter#2-larger-database-450m-vs-200m-emails) Tomba's database is 2.5x larger than Hunter's: * More companies covered * Better international coverage * More recent data * Higher find rates for niche industries ### 3\. Rich Data Attributes (20+ vs 5-6 fields)[](https://docs.tomba.io/migration/email-finder/hunter#3-rich-data-attributes-20-vs-5-6-fields) **Hunter provides:** * Email, First name, Last name, Position, Domain, Confidence **Tomba provides all of that PLUS:** * Phone numbers * LinkedIn profile * Twitter handle * Department * Seniority level * Company size * Company industry * Company location * Founded year * Company revenue * Technology stack * Sources (URLs where found) * Verification details * Last verified date * Email type (generic/personal) ### 4\. Unique Features Not in Hunter[](https://docs.tomba.io/migration/email-finder/hunter#4-unique-features-not-in-hunter) **Author Finder** Code `// Find email from article URL (Tomba only!) const author = await tomba.authorFinder({ url: "https://stripe.com/blog/article-title", }); // Returns: author email, name, position, social profiles` **LinkedIn Finder** Code `// Find email from LinkedIn profile (Tomba only!) const contact = await tomba.linkedinFinder({ url: "https://linkedin.com/in/john-doe", }); // Returns: email, phone, full profile data` **Technology Detection** Code `// Detect tech stack (Tomba only!) const tech = await tomba.technologyFinder({ domain: "stripe.com", }); // Returns: 50+ technologies used by the company` **Similar Companies** Code `// Find similar companies (Tomba only!) const similar = await tomba.similarFinder({ domain: "stripe.com", }); // Returns: 25 similar companies to expand your target list` **Phone Finder** Code `// Find phone numbers (Tomba only!) const phone = await tomba.phoneFinder({ full_name: "John Doe", domain: "stripe.com", }); // Returns: verified phone numbers` * * * Migration Steps[](https://docs.tomba.io/migration/email-finder/hunter#migration-steps) --------------------------------------------------------------------------------------- ### Step 1: Get Your Tomba API Credentials[](https://docs.tomba.io/migration/email-finder/hunter#step-1-get-your-tomba-api-credentials) 1. Sign up at [app.tomba.io](https://app.tomba.io/) 2. Navigate to **API** → **API Keys** 3. Copy your **API Key** and **Secret Key** ### Step 2: Update API Endpoints[](https://docs.tomba.io/migration/email-finder/hunter#step-2-update-api-endpoints) **Hunter endpoint:** Code `GET https://api.hunter.io/v2/email-finder` **Tomba endpoint:** Code `GET https://api.tomba.io/v1/email-finder` ### Step 3: Update Authentication[](https://docs.tomba.io/migration/email-finder/hunter#step-3-update-authentication) **Hunter authentication (query parameter):** Code `{ params: { api_key: "your_hunter_key"; } }` **Tomba authentication (headers):** Code `{ headers: { 'X-Tomba-Key': 'your_api_key', 'X-Tomba-Secret': 'your_secret_key' } }` ### Step 4: Update Response Mapping[](https://docs.tomba.io/migration/email-finder/hunter#step-4-update-response-mapping) **Hunter response:** Code `{ "data": { "first_name": "John", "last_name": "Doe", "email": "john.doe@stripe.com", "score": 92, "position": "CTO", "twitter": null, "linkedin_url": null, "phone_number": null, "company": "Stripe", "sources": [] } }` **Tomba response (more data!):** Code `{ "data": { "email": "john.doe@stripe.com", "first_name": "John", "last_name": "Doe", "full_name": "John Doe", "position": "Chief Technology Officer", "department": "Engineering", "seniority": "executive", "phone_number": "+1-415-XXX-XXXX", "linkedin": "https://linkedin.com/in/johndoe", "twitter": "@johndoe", "score": 95, "verification": { "status": "valid", "result": "deliverable", "mx_check": true, "smtp_check": true, "accept_all": false, "disposable": false, "webmail": false, "last_verified": "2024-11-13T10:30:00Z" }, "company": { "name": "Stripe", "domain": "stripe.com", "industry": "Financial Services", "size": "5000-10000", "location": "San Francisco, CA", "founded": 2010 }, "sources": [ { "uri": "https://stripe.com/about", "extracted_on": "2024-10-15", "still_on_page": true } ] } }` * * * Code Migration Examples[](https://docs.tomba.io/migration/email-finder/hunter#code-migration-examples) ------------------------------------------------------------------------------------------------------- ### Node.js[](https://docs.tomba.io/migration/email-finder/hunter#nodejs) **Before (Hunter):** Code `const axios = require("axios"); async function findEmail(domain, firstName, lastName) { const response = await axios.get("https://api.hunter.io/v2/email-finder", { params: { domain: domain, first_name: firstName, last_name: lastName, api_key: process.env.HUNTER_KEY, }, }); return response.data.data; } // Need separate call for verification async function verifyEmail(email) { const response = await axios.get( "https://api.hunter.io/v2/email-verifier", { params: { email: email, api_key: process.env.HUNTER_KEY, }, }, ); return response.data.data; } // Usage: 2 API calls = 2x cost const found = await findEmail("stripe.com", "John", "Doe"); const verified = await verifyEmail(found.email); // Extra cost!` **After (Tomba):** Code ``const axios = require("axios"); async function findEmail(domain, firstName, lastName) { const response = await axios.get("https://api.tomba.io/v1/email-finder", { params: { domain: domain, first_name: firstName, last_name: lastName, }, headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }); // Verification included for FREE! const data = response.data.data; console.log(`Email: ${data.email}`); console.log(`Verified: ${data.verification.status}`); console.log(`Score: ${data.score}`); return data; } // Usage: 1 API call with FREE verification! const result = await findEmail("stripe.com", "John", "Doe"); // result.verification.status = "valid" // result.verification.mx_check = true // result.verification.smtp_check = true`` **Using Tomba SDK (Recommended):** Code `const Tomba = require("tomba"); const client = new Tomba.Client() .setKey(process.env.TOMBA_KEY) .setSecret(process.env.TOMBA_SECRET); const finder = new Tomba.Finder(client); async function findEmail(domain, firstName, lastName) { const result = await finder.emailFinder({ domain: domain, first_name: firstName, last_name: lastName, }); return result.data; } // Bonus: Access unique Tomba features const search = new Tomba.Search(client); const emails = await search.domainSearch({ domain: "stripe.com" }); const author = new Tomba.Finder(client); const authorEmail = await author.authorFinder({ url: "https://stripe.com/blog/article", });` ### Python[](https://docs.tomba.io/migration/email-finder/hunter#python) **Before (Hunter):** Code `import requests def find_email(domain, first_name, last_name): response = requests.get( 'https://api.hunter.io/v2/email-finder', params={ 'domain': domain, 'first_name': first_name, 'last_name': last_name, 'api_key': os.environ['HUNTER_KEY'] } ) return response.json()['data'] def verify_email(email): # Extra API call = extra cost response = requests.get( 'https://api.hunter.io/v2/email-verifier', params={ 'email': email, 'api_key': os.environ['HUNTER_KEY'] } ) return response.json()['data'] # Usage: 2 calls, double cost found = find_email('stripe.com', 'John', 'Doe') verified = verify_email(found['email'])` **After (Tomba):** Code `import requests def find_email(domain, first_name, last_name): response = requests.get( 'https://api.tomba.io/v1/email-finder', params={ 'domain': domain, 'first_name': first_name, 'last_name': last_name }, headers={ 'X-Tomba-Key': os.environ['TOMBA_KEY'], 'X-Tomba-Secret': os.environ['TOMBA_SECRET'] } ) data = response.json()['data'] # Verification included FREE! print(f"Email: {data['email']}") print(f"Verified: {data['verification']['status']}") print(f"Score: {data['score']}") print(f"Phone: {data.get('phone_number', 'N/A')}") return data # Usage: 1 call with FREE verification result = find_email('stripe.com', 'John', 'Doe')` **Using Tomba SDK (Recommended):** Code `from tomba import Client, Finder, Search client = Client() client.set_key(os.environ['TOMBA_KEY']) client.set_secret(os.environ['TOMBA_SECRET']) finder = Finder(client) def find_email(domain, first_name, last_name): result = finder.email_finder( domain=domain, first_name=first_name, last_name=last_name ) return result['data'] # Bonus: Unique Tomba features search = Search(client) all_emails = search.domain_search(domain='stripe.com') author_email = finder.author_finder( url='https://stripe.com/blog/article' ) linkedin_email = finder.linkedin_finder( url='https://linkedin.com/in/johndoe' )` ### PHP[](https://docs.tomba.io/migration/email-finder/hunter#php) **Before (Hunter):** Code ` $domain, 'first_name' => $firstName, 'last_name' => $lastName, 'api_key' => $_ENV['HUNTER_KEY'] ]); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); return json_decode($response)->data; } function verifyEmail($email) { // Extra cost for verification $url = 'https://api.hunter.io/v2/email-verifier?' . http_build_query([ 'email' => $email, 'api_key' => $_ENV['HUNTER_KEY'] ]); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); return json_decode($response)->data; } // 2 API calls needed $found = findEmail('stripe.com', 'John', 'Doe'); $verified = verifyEmail($found->email);` **After (Tomba):** Code ` $domain, 'first_name' => $firstName, 'last_name' => $lastName ]); $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'X-Tomba-Key: ' . $_ENV['TOMBA_KEY'], 'X-Tomba-Secret: ' . $_ENV['TOMBA_SECRET'] ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response)->data; // Verification included FREE! echo "Email: " . $data->email . "\n"; echo "Verified: " . $data->verification->status . "\n"; echo "Score: " . $data->score . "\n"; echo "Phone: " . ($data->phone_number ?? 'N/A') . "\n"; return $data; } // 1 API call with FREE verification $result = findEmail('stripe.com', 'John', 'Doe');` **Using Tomba SDK (Recommended):** Code `setKey($_ENV['TOMBA_KEY']) ->setSecret($_ENV['TOMBA_SECRET']); $finder = new Finder($client); function findEmail($domain, $firstName, $lastName) { global $finder; $result = $finder->emailFinder([ 'domain' => $domain, 'first_name' => $firstName, 'last_name' => $lastName ]); return $result['data']; } // Bonus features $search = new Search($client); $allEmails = $search->domainSearch(['domain' => 'stripe.com']); $authorEmail = $finder->authorFinder([ 'url' => 'https://stripe.com/blog/article' ]); $linkedinEmail = $finder->linkedinFinder([ 'url' => 'https://linkedin.com/in/johndoe' ]);` * * * Domain Search Migration[](https://docs.tomba.io/migration/email-finder/hunter#domain-search-migration) ------------------------------------------------------------------------------------------------------- ### Hunter Domain Search[](https://docs.tomba.io/migration/email-finder/hunter#hunter-domain-search) **Before (Hunter):** Code `const response = await axios.get("https://api.hunter.io/v2/domain-search", { params: { domain: "stripe.com", limit: 50, api_key: process.env.HUNTER_KEY, }, }); const emails = response.data.data.emails; // Returns basic email list` **After (Tomba with more filters):** Code `const response = await axios.get("https://api.tomba.io/v1/domain-search", { params: { domain: "stripe.com", limit: 50, // Additional filters not in Hunter: department: "engineering", seniority: "executive", position: "CTO", }, headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }); const data = response.data.data; // Returns MORE data per email: // - Verification status (FREE!) // - Phone numbers // - LinkedIn profiles // - Department // - Seniority // - Sources` * * * Bulk Operations Migration[](https://docs.tomba.io/migration/email-finder/hunter#bulk-operations-migration) ----------------------------------------------------------------------------------------------------------- ### Hunter Bulk Finder[](https://docs.tomba.io/migration/email-finder/hunter#hunter-bulk-finder) **Hunter:** Limited bulk API, often requires CSV upload **Tomba:** Direct API with real-time tracking Code `const axios = require("axios"); async function bulkFind(contacts) { // contacts = [{domain: 'stripe.com', first_name: 'John', last_name: 'Doe'}, ...] const response = await axios.post( "https://api.tomba.io/v1/bulk/email-finder", { contacts: contacts }, { headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }, ); const taskId = response.data.task_id; // Set up webhook or poll for results return taskId; } // Process 1000s of contacts const contacts = [ { domain: "stripe.com", first_name: "John", last_name: "Doe" }, { domain: "shopify.com", first_name: "Jane", last_name: "Smith" }, // ... thousands more ]; const taskId = await bulkFind(contacts);` * * * Cost Comparison[](https://docs.tomba.io/migration/email-finder/hunter#cost-comparison) --------------------------------------------------------------------------------------- ### Scenario: Finding 1000 emails/month[](https://docs.tomba.io/migration/email-finder/hunter#scenario-finding-1000-emailsmonth) **Hunter:** * Base plan: $49/month (1,000 searches) * Email verification: $10/month (1,000 verifications @ $0.01) * **Total: $59/month** **Tomba:** * Base plan: $49/month (2,500 searches) * Email verification: (2,500 searches) * **Total: $49/month** **💰 Savings: $30/month = $360/year (51% cheaper!)** ### Scenario: Finding 5000 emails/month[](https://docs.tomba.io/migration/email-finder/hunter#scenario-finding-5000-emailsmonth) **Hunter:** * Business plan: $199/month (5,000 searches) * Email verification: $50/month (5,000 verifications @ $0.01) * **Total: $249/month** **Tomba:** * Growth plan: $149/month (5,000 searches) * Email verification: FREE * **Total: $149/month** **💰 Savings: $100/month = $1,200/year (40% cheaper!)** * * * Advanced Features Only in Tomba[](https://docs.tomba.io/migration/email-finder/hunter#advanced-features-only-in-tomba) ----------------------------------------------------------------------------------------------------------------------- ### 1\. Author Finder[](https://docs.tomba.io/migration/email-finder/hunter#1-author-finder) Code `// Find email from blog post or article URL const result = await axios.get("https://api.tomba.io/v1/author-finder", { params: { url: "https://stripe.com/blog/engineering-culture" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); // Returns: author email, name, position, social profiles` ### 2\. LinkedIn Finder[](https://docs.tomba.io/migration/email-finder/hunter#2-linkedin-finder) Code `// Find email from LinkedIn profile const result = await axios.get("https://api.tomba.io/v1/linkedin", { params: { url: "https://linkedin.com/in/john-doe-stripe" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); // Returns: email, phone, full profile enrichment` ### 3\. Technology Detection[](https://docs.tomba.io/migration/email-finder/hunter#3-technology-detection) Code `// Detect tech stack for better targeting const result = await axios.get("https://api.tomba.io/v1/technology", { params: { domain: "stripe.com" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); // Returns: React, Node.js, AWS, Kubernetes, etc. (1000+ techs) // Use for: tech-specific outreach, competitive intelligence` ### 4\. Similar Companies[](https://docs.tomba.io/migration/email-finder/hunter#4-similar-companies) Code `// Find similar companies to expand TAM const result = await axios.get("https://api.tomba.io/v1/similar", { params: { domain: "stripe.com" }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); // Returns: 25 similar companies // Use for: lookalike targeting, market expansion` ### 5\. Phone Finder[](https://docs.tomba.io/migration/email-finder/hunter#5-phone-finder) Code `// Find phone numbers (not available in Hunter) const result = await axios.get("https://api.tomba.io/v1/phone-finder", { params: { full_name: "John Doe", domain: "stripe.com", }, headers: { "X-Tomba-Key": KEY, "X-Tomba-Secret": SECRET }, }); // Returns: verified phone numbers` * * * Migration Checklist[](https://docs.tomba.io/migration/email-finder/hunter#migration-checklist) ----------------------------------------------------------------------------------------------- * [ ] Sign up for Tomba account at app.tomba.io * [ ] Generate API credentials (Key + Secret) * [ ] Install Tomba SDK for your language (optional) * [ ] Update API endpoints (hunter.io → tomba.io) * [ ] Update authentication (query param → headers) * [ ] Update response parsing for new data structure * [ ] Remove separate verification calls (now FREE!) * [ ] Test email finder with sample data * [ ] Test domain search with filters * [ ] Migrate bulk operations * [ ] Set up webhooks (optional) * [ ] Explore unique features (Author, LinkedIn, Tech, etc.) * [ ] Update Chrome extension/integrations * [ ] Train team on new features * [ ] Calculate actual cost savings * [ ] Monitor performance and accuracy * [ ] Cancel Hunter subscription * * * Support and Resources[](https://docs.tomba.io/migration/email-finder/hunter#support-and-resources) --------------------------------------------------------------------------------------------------- * [Tomba API Documentation](https://docs.tomba.io/) * [Email Finder API Reference](https://docs.tomba.io/api#tag/Email-Finder) * [Domain Search API Reference](https://docs.tomba.io/api#tag/Domain-Search) * [Author Finder Guide](https://docs.tomba.io/bulks/author-finder) * [LinkedIn Finder Guide](https://docs.tomba.io/bulks/linkedin-finder) * [SDKs and Libraries](https://docs.tomba.io/libraries) * [Chrome Extension](https://chrome.google.com/webstore/detail/tomba-email-finder/icmjegjggphchjckknoooajmklibccjb) * [Support Portal](https://help.tomba.io/) Need help with migration? [Contact our team](https://app.tomba.io/contact) for dedicated support and migration assistance. * * * FAQ[](https://docs.tomba.io/migration/email-finder/hunter#faq) --------------------------------------------------------------- **Q: Will I lose any features switching from Hunter?** A: No! Tomba has all Hunter features PLUS verification (free), phone finder, author finder, LinkedIn finder, technology detection, and more. **Q: Is verification really free?** A: Yes! Every email found is automatically verified at no extra cost. This alone saves $10-50/month depending on volume. **Q: How much can I save?** A: Most customers save 40-50% by switching to Tomba. For 5,000 monthly searches, that's $1,200/year in savings. **Q: How accurate is Tomba compared to Hunter?** A: Tomba achieves 98%+ accuracy vs Hunter's 85-90%, thanks to our larger database and built-in verification. **Q: Can I migrate my saved searches?** A: Yes! Export from Hunter and import to Tomba via CSV or API. We provide migration assistance for large datasets. **Q: What about API rate limits?** A: Tomba allows 300 requests/minute vs Hunter's 100 req/min - 3x faster! **Q: Do you have a Chrome extension?** A: Yes! Our Chrome extension works on LinkedIn, company websites, and has more features than Hunter's. **Q: Can I try before migrating?** A: Absolutely! Sign up for a free account with 25 searches to test accuracy and features side-by-side with Hunter. **Q: How long does migration take?** A: Most teams complete migration in 1-2 days. API changes are minimal, and we provide code examples for all major languages. **Q: Do you offer enterprise support?** A: Yes! Enterprise customers get dedicated support, custom integrations, higher rate limits, and white-glove migration assistance. Last modified on April 28, 2026 [Migrate to Tomba Email Finder](https://docs.tomba.io/migration/email-finder/introduction) [Migrate from Snov.io to Tomba Email Finder](https://docs.tomba.io/migration/email-finder/snov) Javascript Javascript Javascript Javascript Javascript Javascript Javascript JSON JSON Javascript Javascript Javascript PHP PHP PHP Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript --- # Integrate Tomba Finder with Joomla | Tomba Documentation Menu Overview[](https://docs.tomba.io/integrations/joomla#overview) --------------------------------------------------------------- The **Joomla Disposable Email Blocker** is an indispensable security tool designed to detect and prevent the use of disposable email services for user registrations and form submissions. This extension provides a superior line of defense for your Joomla website, enhancing security, reducing spam, and maintaining data integrity. ### 🚫 Why Block Disposable Emails?[](https://docs.tomba.io/integrations/joomla#-why-block-disposable-emails) Disposable email services pose significant risks to websites: * **Spam Registrations**: Fake accounts that clutter your user database * **Security Threats**: Potential malicious activities from anonymous users * **Communication Failures**: Unable to reach users for important notifications * **Marketing Ineffectiveness**: Invalid emails in your mailing lists * **Resource Waste**: Server resources consumed by fake accounts * **Data Pollution**: Poor quality user data affecting analytics ### 🛡️ Protection Benefits[](https://docs.tomba.io/integrations/joomla#%EF%B8%8F-protection-benefits) * **Enhanced Security**: Prevents anonymous and potentially malicious registrations * **Improved Data Quality**: Ensures legitimate, reachable email addresses * **Reduced Spam**: Significantly decreases spam registrations and form submissions * **Better User Experience**: Guides users toward valid email addresses * **Marketing Effectiveness**: Clean email lists for better campaign results * **Resource Optimization**: Saves server resources from processing fake accounts Features[](https://docs.tomba.io/integrations/joomla#features) --------------------------------------------------------------- ### Core Protection Features[](https://docs.tomba.io/integrations/joomla#core-protection-features) * **🛡️ Universal Form Protection**: Protects all HTML forms across your Joomla site * **📧 Invalid Email Detection**: Identifies malformed email addresses using RFC validation * **🌐 Domain Validation**: Verifies domain existence through DNS lookup * **🗑️ Disposable Email Blocking**: Blocks temporary and throwaway email services * **📮 Webmail Control**: Configurable handling of free webmail providers * **⚡ Real-time Validation**: Instant feedback during form filling * **🎨 Custom Error Messages**: Personalized validation messages for your brand ### 🔄 Advanced Features[](https://docs.tomba.io/integrations/joomla#-advanced-features) * **📊 Daily Database Updates**: Automatically updated disposable email domain list * **Smart Detection**: Advanced algorithms for pattern recognition * **🔧 Flexible Configuration**: Extensive customization options * **🌍 Multi-language Support**: Translatable error messages * **📱 Mobile Responsive**: Full mobile device compatibility * **⚙️ Plugin System Integration**: Works seamlessly with Joomla's plugin architecture ### 📋 Comprehensive Coverage[](https://docs.tomba.io/integrations/joomla#-comprehensive-coverage) | Validation Type | Description | Impact | | --- | --- | --- | | **Email Format** | RFC-compliant syntax validation | Prevents basic input errors | | **Domain Existence** | DNS MX/A record verification | Ensures deliverable addresses | | **Disposable Services** | Temporary email detection | Blocks fake registrations | | **Webmail Providers** | Free service identification | Configurable policy enforcement | | **Spam Domains** | Known abuse domain blocking | Prevents malicious activities | ### 🏗️ Joomla Integration[](https://docs.tomba.io/integrations/joomla#%EF%B8%8F-joomla-integration) * **System Plugin**: Integrates deeply with Joomla's core systems * **Form Compatibility**: Works with all standard and custom forms * **Component Support**: Protects registration, contact, and subscription forms * **Template Agnostic**: Compatible with all Joomla templates and themes * **Performance Optimized**: Minimal impact on site performance * **Multi-site Ready**: Supports Joomla multisite configurations Installation[](https://docs.tomba.io/integrations/joomla#installation) ----------------------------------------------------------------------- ### Prerequisites[](https://docs.tomba.io/integrations/joomla#prerequisites) * **Joomla Version**: 3.x, 4.x, or 5.x * **PHP Version**: 7.4 or higher (8.0+ recommended) * **JavaScript**: Enabled in user browsers * **Admin Access**: Super Administrator privileges required * **Internet Connection**: Required for API validation and updates ### Method 1: Install via Joomla Extension Manager (Recommended)[](https://docs.tomba.io/integrations/joomla#method-1-install-via-joomla-extension-manager-recommended) #### Step 1: Download the Extension[](https://docs.tomba.io/integrations/joomla#step-1-download-the-extension) 1. **Download** the latest release from [GitHub](https://github.com/tomba-io/joomla-disposable-email-blocker) 2. **Save** the ZIP file to your computer (do not extract) #### Step 2: Install via Admin Panel[](https://docs.tomba.io/integrations/joomla#step-2-install-via-admin-panel) 1. **Log in** to your Joomla Administrator panel 2. **Navigate** to `Extensions` → `Manage` → `Install` 3. **Click** "Upload Package File" tab 4. **Select** the downloaded ZIP file 5. **Click** "Upload & Install" 6. **Wait** for the success confirmation message #### Step 3: Enable the Plugin[](https://docs.tomba.io/integrations/joomla#step-3-enable-the-plugin) 1. **Go to** `Extensions` → `Plugins` 2. **Search** for "Disposable Email Blocker" 3. **Click** the status icon to enable the plugin (should turn green) 4. **Verify** the plugin appears as "Published" ### Method 2: Manual Installation (Advanced Users)[](https://docs.tomba.io/integrations/joomla#method-2-manual-installation-advanced-users) #### Step 1: Extract and Upload Files[](https://docs.tomba.io/integrations/joomla#step-1-extract-and-upload-files) TerminalCode `# Extract the ZIP file unzip joomla-disposable-email-blocker.zip # Upload via FTP/SFTP scp -r plg_system_disposable_email_blocker/ user@yoursite.com:/path/to/joomla/plugins/system/` ### Method 2: Install from Joomla Extensions Directory[](https://docs.tomba.io/integrations/joomla#method-2-install-from-joomla-extensions-directory) 1. **Visit** the [Joomla Extensions Directory](https://extensions.joomla.org/extension/disposable-email-blocker/) 2. **Click** "Install" (if available) 3. **Follow** the automated installation process 4. **Enable** the plugin in your Joomla admin panel Configuration[](https://docs.tomba.io/integrations/joomla#configuration) ------------------------------------------------------------------------- ### Access Plugin Configuration[](https://docs.tomba.io/integrations/joomla#access-plugin-configuration) 1. **Navigate** to `Extensions` → `Plugins` 2. **Search** for "Disposable Email Blocker" 3. **Click** on the plugin name to open settings 4. **Configure** options according to your needs 5. **Click** "Save & Close" ### Configuration Options[](https://docs.tomba.io/integrations/joomla#configuration-options) #### General Settings[](https://docs.tomba.io/integrations/joomla#general-settings) | Setting | Description | Default | Options | | --- | --- | --- | --- | | **Plugin Enabled** | Master on/off switch | Yes | Yes/No | | **Load JavaScript** | Include validation scripts | Yes | Yes/No | | **Debug Mode** | Show debug information | No | Yes/No | | **API Timeout** | Validation timeout (seconds) | 5 | 1-30 | #### Disposable Email Settings[](https://docs.tomba.io/integrations/joomla#disposable-email-settings) | Setting | Description | Default Value | | --- | --- | --- | | **Block Disposable Emails** | Enable disposable email blocking | Yes | | **Disposable Error Message** | Error message for blocked emails | "Disposable email addresses are not allowed. Please use a permanent email address." | | **Custom Blocked Domains** | Additional domains to block (comma-separated) | (empty) | | **Update Frequency** | How often to refresh domain database | Daily | #### Webmail Configuration[](https://docs.tomba.io/integrations/joomla#webmail-configuration) | Setting | Description | Options | | --- | --- | --- | | **Block Webmail** | Block free webmail providers | No, Warn, Yes | | **Webmail Error Message** | Message for webmail addresses | "Consider using a professional email address for better security." | | **Allowed Webmail Domains** | Whitelist specific webmail providers | gmail.com, outlook.com, yahoo.com | | **Webmail Strictness** | Validation strictness level | Normal, Strict | #### Form Integration Settings[](https://docs.tomba.io/integrations/joomla#form-integration-settings) | Setting | Description | Impact | | --- | --- | --- | | **Protect User Registration** | Apply to user registration forms | User account creation | | **Protect Contact Forms** | Apply to contact forms | Contact submissions | | **Protect Newsletter Signup** | Apply to newsletter subscriptions | Email list quality | | **Protect Custom Forms** | Apply to all email inputs | Universal protection | Usage[](https://docs.tomba.io/integrations/joomla#usage) --------------------------------------------------------- ### For Site Administrators[](https://docs.tomba.io/integrations/joomla#for-site-administrators) #### Basic Setup[](https://docs.tomba.io/integrations/joomla#basic-setup) 1. **Install and enable** the plugin 2. **Configure settings** in the plugin parameters 3. **Test registration forms** with various email types 4. **Monitor** user feedback and registration success rates 5. **Adjust settings** based on your site's needs #### Testing the Plugin[](https://docs.tomba.io/integrations/joomla#testing-the-plugin) Test with these email addresses to verify functionality: Code `Valid emails (should pass): - user@company.com - contact@business.org - admin@university.edu ❌ Disposable emails (should be blocked): - test@10minutemail.com - user@tempmail.org - fake@guerrillamail.com ⚠️ Webmail (configurable): - user@gmail.com (depends on webmail policy) - contact@yahoo.com (depends on webmail policy) - person@outlook.com (depends on webmail policy)` ### For Website Users[](https://docs.tomba.io/integrations/joomla#for-website-users) #### Registration Experience[](https://docs.tomba.io/integrations/joomla#registration-experience) ##### Valid Email Registration[](https://docs.tomba.io/integrations/joomla#valid-email-registration) Code `User enters: john.doe@company.com Format validation: Passed Domain check: Valid domain Service check: Not disposable Result: Registration proceeds` ##### Disposable Email Attempt[](https://docs.tomba.io/integrations/joomla#disposable-email-attempt) Code `User enters: temp123@10minutemail.com ❌ Validation result: Disposable service detected ❌ Error displayed: "Disposable email addresses are not allowed" Action required: Enter permanent email address` ##### Webmail Handling (Configurable)[](https://docs.tomba.io/integrations/joomla#webmail-handling-configurable) Code `User enters: user@gmail.com ⚠️ Policy check: Webmail detected 📋 Action: Based on configuration (Allow/Warn/Block) Message: Custom webmail message displayed` Troubleshooting[](https://docs.tomba.io/integrations/joomla#troubleshooting) ----------------------------------------------------------------------------- ### Common Issues[](https://docs.tomba.io/integrations/joomla#common-issues) #### Issue: Plugin Not Working After Installation[](https://docs.tomba.io/integrations/joomla#issue-plugin-not-working-after-installation) **Symptoms:** * No validation occurring on forms * JavaScript errors in browser console * Plugin appears unpublished **Solutions:** 1. **Check plugin status**: Code `Extensions → Plugins → Search "Disposable Email Blocker" Ensure status shows "Published" (green checkmark)` 2. **Verify JavaScript loading**: Code `View page source and look for: ` 3. **Check browser console** for JavaScript errors 4. **Clear Joomla cache**: Code `System → Clear Cache → Select All → Delete` #### Issue: False Positives (Valid Emails Blocked)[](https://docs.tomba.io/integrations/joomla#issue-false-positives-valid-emails-blocked) **Symptoms:** * Legitimate business emails rejected * Users complaining about registration issues * Specific domains incorrectly flagged **Solutions:** 1. **Add to whitelist** in plugin parameters: Code `Plugin Settings → Custom Allowed Domains Add: company.com, university.edu` 2. **Adjust webmail policy**: Code `Change from "Block" to "Warn" or "Allow"` 3. **Check custom blocked domains**: Code `Remove any incorrectly added domains` 4. **Test with debug mode**: Code `Enable Debug Mode in plugin settings Check browser console for detailed validation info` #### Issue: JavaScript Conflicts[](https://docs.tomba.io/integrations/joomla#issue-javascript-conflicts) **Symptoms:** * Form validation not working * Console errors mentioning conflicts * Other form scripts not functioning **Solutions:** 1. **Check jQuery conflicts**: Code `// Ensure jQuery is loaded JHtml::_('jquery.framework');` 2. **Load plugin after other scripts**: Code `// In plugin parameters, increase loading priority` 3. **Check template JavaScript**: Code `Look for conflicting form validation scripts Disable temporarily to isolate the issue` Support[](https://docs.tomba.io/integrations/joomla#support) ------------------------------------------------------------- ### Documentation & Resources[](https://docs.tomba.io/integrations/joomla#documentation--resources) * 📚 **Extension Documentation**: [GitHub Wiki](https://github.com/tomba-io/joomla-disposable-email-blocker/wiki) * 🏛️ **Joomla Extensions Directory**: [Official Listing](https://extensions.joomla.org/extension/disposable-email-blocker/) * 🔧 **Joomla Developer Resources**: [Joomla Documentation](https://docs.joomla.org/Plugin_Development) * 🌐 **Tomba.io API**: [Developer Documentation](https://docs.tomba.io/) ### Support Channels[](https://docs.tomba.io/integrations/joomla#support-channels) * 🐛 **Bug Reports**: [GitHub Issues](https://github.com/tomba-io/joomla-disposable-email-blocker/issues) * 💬 **Feature Requests**: [GitHub Discussions](https://github.com/tomba-io/joomla-disposable-email-blocker/discussions) * 📧 **Direct Support**: [support@tomba.io](mailto:support@tomba.io) * 🏛️ **Joomla Community**: [Joomla Forums](https://forum.joomla.org/) ### Frequently Asked Questions[](https://docs.tomba.io/integrations/joomla#frequently-asked-questions) #### Q: Is this extension free to use?[](https://docs.tomba.io/integrations/joomla#q-is-this-extension-free-to-use) **A:** Yes, the Disposable Email Blocker extension is completely free for all Joomla websites. #### Q: Does it work with all Joomla versions?[](https://docs.tomba.io/integrations/joomla#q-does-it-work-with-all-joomla-versions) **A:** The extension supports Joomla 3.x, 4.x, and 5.x. Check the specific version requirements before installation. #### Q: Will it slow down my website?[](https://docs.tomba.io/integrations/joomla#q-will-it-slow-down-my-website) **A:** No, the extension uses client-side JavaScript validation with minimal server impact. API responses are cached to optimize performance. #### Q: Can I customize the error messages?[](https://docs.tomba.io/integrations/joomla#q-can-i-customize-the-error-messages) **A:** Yes, all error messages are fully customizable through the plugin parameters in your Joomla admin panel. #### Q: Does it work with third-party forms?[](https://docs.tomba.io/integrations/joomla#q-does-it-work-with-third-party-forms) **A:** Yes, the extension automatically detects and validates email inputs in any HTML form on your site, including third-party components. #### Q: Can I whitelist specific domains?[](https://docs.tomba.io/integrations/joomla#q-can-i-whitelist-specific-domains) **A:** Yes, you can configure custom allowed domains and create exceptions for specific email providers. Last modified on April 27, 2026 [Integrate Tomba Finder with LiteCart](https://docs.tomba.io/integrations/litecart) PHP PHP --- # Domain Search Bulk | Tomba Documentation Menu Overview[](https://docs.tomba.io/bulks/domain-search#overview) --------------------------------------------------------------- [Bulks Domain Search](https://tomba.io/bulks/domain-search) allows you to process thousands of domains simultaneously to discover email addresses, gather domain intelligence, and build comprehensive prospect lists. This powerful feature enables sales and marketing teams to scale their outreach efforts efficiently. ### Key Features[](https://docs.tomba.io/bulks/domain-search#key-features) * **Mass Domain Processing**: Search up to 15,000 domains in a single bulk operation * **Email Discovery**: Find email addresses associated with each domain * **Email Type Filtering**: Filter results by personal, generic, or department-specific emails * **Department Targeting**: Focus on specific departments (sales, marketing, engineering, etc.) * **Result Limits**: Configure maximum emails per domain (1-100) * **Verification Integration**: Optional email verification for higher deliverability * **Export Options**: Download results in CSV format with multiple file types * **Progress Tracking**: Real-time monitoring of bulk processing status ### How Domain Search Bulk Works[](https://docs.tomba.io/bulks/domain-search#how-domain-search-bulk-works) 1. **Upload Domain List**: Provide domains via text input or CSV file upload 2. **Configure Parameters**: Set email type filters, department preferences, and result limits 3. **Launch Processing**: Initiate the bulk search operation 4. **Monitor Progress**: Track completion status in real-time 5. **Download Results**: Export discovered emails in various formats (full, valid only, not found) ### Limitations[](https://docs.tomba.io/bulks/domain-search#limitations) * Each Bulk is limited to 15,000 domains * Additional rows will be skipped * Some special or unexpected characters may be deleted in the file * Invalid websites won't be imported * Duplicate URLs won't be imported * For better results, we use the domain name instead of the company name Go SDK Integration[](https://docs.tomba.io/bulks/domain-search#go-sdk-integration) ----------------------------------------------------------------------------------- ### Installation[](https://docs.tomba.io/bulks/domain-search#installation) TerminalCode `go get github.com/tomba-io/go` ### Basic Domain Search[](https://docs.tomba.io/bulks/domain-search#basic-domain-search) Code `package main import ( "fmt" "log" "strings" "time" "github.com/tomba-io/go/tomba" "github.com/tomba-io/go/tomba/models" ) func main() { // Initialize Tomba client client := tomba.NewClient("YOUR_TOMBA_KEY", "YOUR_TOMBA_SECRET") // Basic domain search params := &models.BulkSearchCreateParams{ BulkCreateParams: models.BulkCreateParams{ Name: "SaaS Companies Email Search", List: "stripe.com\nshopify.com\nzoom.us\nslack.com\ndropbox.com", Sources: true, Verify: true, }, BulkSearchParams: models.BulkSearchParams{ Maximum: "20", // Find up to 20 emails per domain }, } // Create the bulk search response, err := client.CreateSearchBulk(params) if err != nil { log.Fatal("Error creating domain search bulk:", err) } bulkID := *response.Data.ID fmt.Printf("Domain Search Bulk created with ID: %d\n", bulkID) // Launch the operation launchResp, err := client.LaunchBulk(models.BulkTypeSearch, bulkID) if err != nil { log.Fatal("Error launching bulk:", err) } fmt.Printf("Bulk launched: %s\n", launchResp.Data.Message) // Monitor progress monitorBulkProgress(client, models.BulkTypeSearch, bulkID) // Download results err = client.SaveBulkResults(models.BulkTypeSearch, bulkID, "./domain_search_results.csv", "full") if err != nil { log.Printf("Error downloading results: %v", err) } else { fmt.Println("Results saved to ./domain_search_results.csv") } }` ### Advanced Domain Search with Filtering[](https://docs.tomba.io/bulks/domain-search#advanced-domain-search-with-filtering) Code `func advancedDomainSearch(client *tomba.Tomba) { // Advanced search with department and email type filtering searchParams := &models.BulkSearchCreateParams{ BulkCreateParams: models.BulkCreateParams{ Name: "Engineering Contacts - Tech Companies", List: "github.com\natlassian.com\njira.com\nconfluence.com\nbitbucket.com", Sources: true, Verify: true, }, BulkSearchParams: models.BulkSearchParams{ Maximum: "50", // Up to 50 emails per domain EmailType: models.BulkSearchParamsType{ Type: "personal", // Focus on personal emails PriorityType: "priority", // Prioritize personal over generic }, Department: models.BulkSearchParamsDepartment{ Name: []string{"engineering", "software", "security"}, // Target departments PriorityType: "only", // Only these departments }, }, } response, err := client.CreateSearchBulk(searchParams) if err != nil { log.Printf("Error creating advanced search: %v", err) return } bulkID := *response.Data.ID fmt.Printf("Advanced Domain Search created with ID: %d\n", bulkID) // Launch and monitor client.LaunchBulk(models.BulkTypeSearch, bulkID) monitorBulkProgress(client, models.BulkTypeSearch, bulkID) // Download different result types downloadTypes := []string{"full", "valid", "not_found"} for _, downloadType := range downloadTypes { filename := fmt.Sprintf("./advanced_search_%s.csv", downloadType) err := client.SaveBulkResults(models.BulkTypeSearch, bulkID, filename, downloadType) if err == nil { fmt.Printf("Downloaded %s results to %s\n", downloadType, filename) } } }` ### Marketing Team Search[](https://docs.tomba.io/bulks/domain-search#marketing-team-search) Code `func marketingTeamSearch(client *tomba.Tomba) { // Search specifically for marketing contacts marketingParams := &models.BulkSearchCreateParams{ BulkCreateParams: models.BulkCreateParams{ Name: "Marketing Contacts - B2B SaaS", List: "hubspot.com\nmailchimp.com\nintercom.com\nzendesk.com\nsalesforce.com", Sources: true, Verify: true, }, BulkSearchParams: models.BulkSearchParams{ Maximum: "30", EmailType: models.BulkSearchParamsType{ Type: "all", // Include all email types PriorityType: "priority", }, Department: models.BulkSearchParamsDepartment{ Name: []string{"marketing", "sales", "communication", "pr"}, PriorityType: "priority", // Prioritize these departments }, }, } response, err := client.CreateSearchBulk(marketingParams) if err != nil { log.Printf("Error creating marketing search: %v", err) return } bulkID := *response.Data.ID fmt.Printf("Marketing Team Search created with ID: %d\n", bulkID) // Launch with progress monitoring client.LaunchBulk(models.BulkTypeSearch, bulkID) // Enhanced monitoring with email count tracking monitorWithEmailCounts(client, models.BulkTypeSearch, bulkID) }` ### Batch Domain Processing[](https://docs.tomba.io/bulks/domain-search#batch-domain-processing) Code `func batchDomainSearch(client *tomba.Tomba, domains []string, batchSize int) error { if len(domains) > 15000 { return fmt.Errorf("too many domains: %d (max: 15000)", len(domains)) } // Process in batches for better management for i := 0; i < len(domains); i += batchSize { end := i + batchSize if end > len(domains) { end = len(domains) } batch := domains[i:end] batchNum := (i / batchSize) + 1 fmt.Printf("Processing batch %d (%d domains)...\n", batchNum, len(batch)) params := &models.BulkSearchCreateParams{ BulkCreateParams: models.BulkCreateParams{ Name: fmt.Sprintf("Domain Batch %d - %s", batchNum, time.Now().Format("Jan 02")), List: strings.Join(batch, "\n"), Sources: true, Verify: true, }, BulkSearchParams: models.BulkSearchParams{ Maximum: "25", EmailType: models.BulkSearchParamsType{ Type: "all", PriorityType: "priority", }, }, } response, err := client.CreateSearchBulk(params) if err != nil { log.Printf("Error creating batch %d: %v", batchNum, err) continue } bulkID := *response.Data.ID // Launch batch _, err = client.LaunchBulk(models.BulkTypeSearch, bulkID) if err != nil { log.Printf("Error launching batch %d: %v", batchNum, err) continue } fmt.Printf("Batch %d launched with ID: %d\n", batchNum, bulkID) // Small delay between batches time.Sleep(3 * time.Second) } return nil }` ### Domain Search Management[](https://docs.tomba.io/bulks/domain-search#domain-search-management) Code `func manageDomainSearchBulks(client *tomba.Tomba) { // Get all domain search bulks allBulks, err := client.GetAllSearchBulks(&models.BulkGetParams{ Page: 1, Limit: 15, Direction: "desc", Filter: "all", }) if err != nil { log.Printf("Error getting search bulks: %v", err) return } fmt.Printf("Total domain search bulks: %d\n", allBulks.Meta.Total) // Analyze and manage bulks for _, bulk := range allBulks.Data { fmt.Printf("\nBulk: %s (ID: %d)\n", bulk.Name, bulk.BulkID) fmt.Printf(" Progress: %d%%, Created: %s\n", bulk.Progress, bulk.CreatedAt.Format("2006-01-02 15:04")) if bulk.TotalEmails != nil { fmt.Printf(" Emails Found: %d\n", *bulk.TotalEmails) } if bulk.VerifyCost != nil { fmt.Printf(" Verification Cost: %d credits\n", *bulk.VerifyCost) } // Handle completed bulks if bulk.Progress >= 100 && !bulk.Used { handleCompletedBulk(client, bulk) } // Handle stuck or failed bulks if bulk.Progress < 100 && time.Since(bulk.CreatedAt) > 2*time.Hour { fmt.Printf(" ⚠️ Bulk may be stuck (created %v ago)\n", time.Since(bulk.CreatedAt)) } } } func handleCompletedBulk(client *tomba.Tomba, bulk models.BulkItem) { bulkID := bulk.BulkID // Download all result types resultTypes := map[string]string{ "full": "complete results", "valid": "verified emails only", "not_found": "domains without results", } for resultType, description := range resultTypes { filename := fmt.Sprintf("./domain_search_%d_%s.csv", bulkID, resultType) err := client.SaveBulkResults(models.BulkTypeSearch, bulkID, filename, resultType) if err == nil { fmt.Printf(" ✓ Downloaded %s to %s\n", description, filename) } else { fmt.Printf(" ✗ Failed to download %s: %v\n", description, err) } } // Mark as used by renaming newName := fmt.Sprintf("[PROCESSED] %s", bulk.Name) renameParams := &models.BulkRenameParams{Name: newName} client.RenameBulk(models.BulkTypeSearch, bulkID, renameParams) }` ### Helper Functions[](https://docs.tomba.io/bulks/domain-search#helper-functions) Code `func monitorBulkProgress(client *tomba.Tomba, bulkType models.BulkType, bulkID int64) { fmt.Printf("Monitoring progress for bulk ID: %d...\n", bulkID) startTime := time.Now() for { progress, err := client.GetBulkProgress(bulkType, bulkID) if err != nil { log.Printf("Error getting progress: %v", err) time.Sleep(10 * time.Second) continue } elapsed := time.Since(startTime) fmt.Printf("Progress: %d%% (%d processed) - Elapsed: %v\n", progress.Progress, progress.Processed, elapsed.Round(time.Second)) if progress.Progress >= 100 { fmt.Printf("✓ Domain search completed in %v!\n", elapsed.Round(time.Second)) break } time.Sleep(15 * time.Second) } } func monitorWithEmailCounts(client *tomba.Tomba, bulkType models.BulkType, bulkID int64) { fmt.Printf("Monitoring bulk %d with email count tracking...\n", bulkID) for { progress, err := client.GetBulkProgress(bulkType, bulkID) if err != nil { log.Printf("Error getting progress: %v", err) time.Sleep(15 * time.Second) continue } fmt.Printf("Progress: %d%% | Domains: %d | Emails: %d\n", progress.Progress, progress.Processed, progress.ProcessedEmail) if progress.Progress >= 100 { fmt.Printf("✓ Search completed! Found %d emails from %d domains\n", progress.ProcessedEmail, progress.Processed) break } time.Sleep(20 * time.Second) } }` ### Configuration Options[](https://docs.tomba.io/bulks/domain-search#configuration-options) #### Email Type Filtering[](https://docs.tomba.io/bulks/domain-search#email-type-filtering) Code `// Personal emails only EmailType: models.BulkSearchParamsType{ Type: "personal", PriorityType: "only", } // Generic emails only EmailType: models.BulkSearchParamsType{ Type: "generic", PriorityType: "only", } // All types with personal priority EmailType: models.BulkSearchParamsType{ Type: "all", PriorityType: "priority", }` #### Department Targeting[](https://docs.tomba.io/bulks/domain-search#department-targeting) Code `// Engineering teams only Department: models.BulkSearchParamsDepartment{ Name: []string{"engineering", "software", "security"}, PriorityType: "only", } // Exclude specific departments Department: models.BulkSearchParamsDepartment{ Name: []string{"hr", "accounting", "legal"}, PriorityType: "exclude", } // Prioritize business teams Department: models.BulkSearchParamsDepartment{ Name: []string{"sales", "marketing", "business"}, PriorityType: "priority", }` Best Practices[](https://docs.tomba.io/bulks/domain-search#best-practices) --------------------------------------------------------------------------- * **Clean Domain Lists**: Ensure domains are properly formatted without protocols * **Set Reasonable Limits**: Balance between comprehensive results and processing time * **Use Verification**: Enable email verification for higher-quality prospect lists * **Target Smartly**: Use department and email type filters to focus on relevant contacts * **Monitor Regularly**: Check progress for large bulk operations * **Download Multiple Types**: Get full, valid, and not\_found results for complete analysis * **Batch Large Lists**: Process very large domain lists in manageable batches * **Archive Completed**: Keep dashboard organized by archiving old bulks * **Track Costs**: Monitor verification costs for budget planning * **Regular Cleanup**: Archive or delete old bulks to maintain performance ### Common Use Cases[](https://docs.tomba.io/bulks/domain-search#common-use-cases) * **Lead Generation**: Build prospect lists for sales outreach * **Competitor Research**: Analyze competitor contact structures * **Market Expansion**: Find contacts in new market segments * **Partnership Development**: Identify potential integration partners * **Content Marketing**: Build blogger and influencer contact lists * **Account-Based Marketing**: Deep-dive into target account contacts * **Industry Analysis**: Study contact patterns across industries ### Result Analysis[](https://docs.tomba.io/bulks/domain-search#result-analysis) The domain search results typically include: * **Email Address**: Discovered email addresses * **Name**: Associated contact names when available * **Department**: Inferred or detected department * **Job Title**: Contact roles and positions * **Verification Status**: Email deliverability status * **Source**: Where the email was discovered * **Domain**: Source company domain * **Social Profiles**: Associated social media profiles Last modified on September 24, 2025 [Company Enrichment Bulk](https://docs.tomba.io/bulks/company-enrichment) [Email Enrichment Bulk](https://docs.tomba.io/bulks/email-enrichment) Go Go Go Go Go Go Go Go --- # Anti-Spam Policy | Tomba Documentation Menu At Tomba.io, we are committed to maintaining the highest standards of email integrity and combating spam. Our anti-spam policy ensures that all users utilize our services responsibly and in compliance with applicable laws and regulations. * * * Our Commitment to Anti-Spam[](https://docs.tomba.io/anti-spam-policy#our-commitment-to-anti-spam) -------------------------------------------------------------------------------------------------- We take a zero-tolerance approach to spam and have implemented comprehensive measures to ensure our platform is used only for legitimate business purposes. ### Key Principles[](https://docs.tomba.io/anti-spam-policy#key-principles) * **No Spam Generation**: Our services are designed to help find and verify legitimate business emails, not to facilitate spam * **Compliance First**: We adhere to all major anti-spam regulations including CAN-SPAM, GDPR, and CASL * **Quality Over Quantity**: We prioritize email quality and deliverability over volume * * * Prohibited Uses[](https://docs.tomba.io/anti-spam-policy#prohibited-uses) -------------------------------------------------------------------------- Users are strictly prohibited from using Tomba.io services for: ### Spam Activities[](https://docs.tomba.io/anti-spam-policy#spam-activities) * Sending unsolicited bulk emails or mass marketing campaigns * Creating email lists for spam purposes * Harvesting emails for unauthorized marketing * Cold outreach without proper opt-in mechanisms ### Malicious Activities[](https://docs.tomba.io/anti-spam-policy#malicious-activities) * Phishing attempts or fraudulent communications * Distributing malware or harmful content * Identity theft or impersonation * Any illegal or unethical email practices ### Violations of Third-Party Rights[](https://docs.tomba.io/anti-spam-policy#violations-of-third-party-rights) * Scraping emails from protected sources * Violating website terms of service * Infringing on privacy rights * Unauthorized data collection * * * Compliance Requirements[](https://docs.tomba.io/anti-spam-policy#compliance-requirements) ------------------------------------------------------------------------------------------ ### For Email Marketing[](https://docs.tomba.io/anti-spam-policy#for-email-marketing) If you plan to use discovered emails for marketing purposes, you must: 1. **Obtain Proper Consent**: Ensure you have legitimate interest or explicit consent 2. **Provide Clear Opt-Out**: Include unsubscribe mechanisms in all emails 3. **Honor Opt-Out Requests**: Process unsubscribe requests promptly 4. **Include Identification**: Clearly identify yourself and your organization 5. **Follow Local Laws**: Comply with applicable regulations in your jurisdiction ### For Cold Outreach[](https://docs.tomba.io/anti-spam-policy#for-cold-outreach) When using our services for business development: 1. **Legitimate Business Purpose**: Ensure your outreach serves a genuine business purpose 2. **Personalized Communication**: Avoid generic, mass-produced messages 3. **Respect Boundaries**: Honor requests to stop communication 4. **Professional Standards**: Maintain high standards of professionalism * * * Technical Safeguards[](https://docs.tomba.io/anti-spam-policy#technical-safeguards) ------------------------------------------------------------------------------------ ### Built-in Protection[](https://docs.tomba.io/anti-spam-policy#built-in-protection) * **Rate Limiting**: Prevents bulk scraping and automated abuse * **Quality Filters**: Our algorithms filter out low-quality and suspicious emails * **Source Verification**: We verify the legitimacy of email sources * **Pattern Recognition**: Advanced detection of spam-like usage patterns ### Monitoring Systems[](https://docs.tomba.io/anti-spam-policy#monitoring-systems) * **Usage Analytics**: Continuous monitoring of user behavior patterns * **Abuse Detection**: Automated systems to identify potential misuse * **Manual Reviews**: Human oversight for suspicious activities * **Compliance Audits**: Regular reviews of user practices * * * User Responsibilities[](https://docs.tomba.io/anti-spam-policy#user-responsibilities) -------------------------------------------------------------------------------------- ### Before Using Our Services[](https://docs.tomba.io/anti-spam-policy#before-using-our-services) * Review and understand our Terms of Service * Ensure compliance with applicable laws in your jurisdiction * Implement proper consent mechanisms for your use case * Establish clear data protection policies ### During Usage[](https://docs.tomba.io/anti-spam-policy#during-usage) * Use emails only for their intended legitimate purposes * Maintain accurate records of consent and opt-outs * Monitor your email delivery rates and reputation * Report any suspicious or problematic contacts ### Data Protection[](https://docs.tomba.io/anti-spam-policy#data-protection) * Implement appropriate security measures for stored emails * Limit access to email data on a need-to-know basis * Regularly audit and clean your email lists * Respect data retention limits and deletion requests * * * Enforcement Actions[](https://docs.tomba.io/anti-spam-policy#enforcement-actions) ---------------------------------------------------------------------------------- Violation of this anti-spam policy may result in: ### Immediate Actions[](https://docs.tomba.io/anti-spam-policy#immediate-actions) * Temporary suspension of account access * Rate limiting or API throttling * Mandatory compliance review * Required training or certification ### Severe Violations[](https://docs.tomba.io/anti-spam-policy#severe-violations) * Permanent account termination * Legal action if warranted * Reporting to relevant authorities * Cooperation with law enforcement * * * Reporting Spam or Abuse[](https://docs.tomba.io/anti-spam-policy#reporting-spam-or-abuse) ------------------------------------------------------------------------------------------ We encourage users to report suspected spam or policy violations: ### How to Report[](https://docs.tomba.io/anti-spam-policy#how-to-report) * **Email**: Send details to [abuse@tomba.io](mailto:abuse@tomba.io) * **Support Portal**: Submit a ticket through our help center * **Emergency**: For urgent matters, contact our security team ### Information to Include[](https://docs.tomba.io/anti-spam-policy#information-to-include) * Account details of the suspected violator * Evidence of policy violation * Impact on your organization or users * Any relevant documentation * * * Best Practices for Legitimate Use[](https://docs.tomba.io/anti-spam-policy#best-practices-for-legitimate-use) -------------------------------------------------------------------------------------------------------------- ### Email Discovery[](https://docs.tomba.io/anti-spam-policy#email-discovery) * Use our services to find publicly available business contacts * Verify the relevance of contacts to your business needs * Cross-reference with existing CRM data to avoid duplicates * Focus on quality over quantity in your contact lists ### Email Verification[](https://docs.tomba.io/anti-spam-policy#email-verification) * Verify emails before adding them to your campaigns * Use our verification scores to prioritize high-quality contacts * Regularly clean and update your email lists * Monitor bounce rates and engagement metrics ### Outreach Strategy[](https://docs.tomba.io/anti-spam-policy#outreach-strategy) * Develop personalized, value-driven messaging * Implement proper email authentication (SPF, DKIM, DMARC) * Monitor your sender reputation * Maintain consistent, professional communication * * * Legal Compliance[](https://docs.tomba.io/anti-spam-policy#legal-compliance) ---------------------------------------------------------------------------- ### Applicable Regulations[](https://docs.tomba.io/anti-spam-policy#applicable-regulations) We help you comply with major anti-spam laws including: * **CAN-SPAM Act** (United States) * **GDPR** (European Union) * **CASL** (Canada) * **SPAM Act** (Australia) * **DPA** (United Kingdom) ### Regional Considerations[](https://docs.tomba.io/anti-spam-policy#regional-considerations) * Different jurisdictions have varying requirements * Consent mechanisms may differ by region * Opt-out procedures must comply with local laws * Data retention policies vary by location * * * Updates to This Policy[](https://docs.tomba.io/anti-spam-policy#updates-to-this-policy) ---------------------------------------------------------------------------------------- This anti-spam policy may be updated periodically to reflect: * Changes in applicable laws and regulations * Evolution of spam and abuse tactics * Improvements to our technical safeguards * User feedback and industry best practices Users will be notified of significant policy changes through their registered email address and our platform notifications. * * * Contact Information[](https://docs.tomba.io/anti-spam-policy#contact-information) ---------------------------------------------------------------------------------- For questions about this anti-spam policy or to report violations: * **Email**: [support@tomba.io](mailto:support@tomba.io) * **Support**: [https://help.tomba.io](https://help.tomba.io/) By using Tomba.io services, you agree to comply with this anti-spam policy and help us maintain a responsible, spam-free environment for all users. Last modified on September 29, 2025 [Official Language Libraries](https://docs.tomba.io/libraries) [95% Delivery Guarantee - Email Finder](https://docs.tomba.io/email-finder-delivery-guarantee) --- # Similar Company Attributes | Tomba Documentation Menu These attributes represent company information returned by Tomba's Similar Finder service, which helps identify organizations with similar characteristics to your target company. * * * Company Details[](https://docs.tomba.io/attributes/similar#company-details) ---------------------------------------------------------------------------- | Attribute | Description | Example | | --- | --- | --- | | `website_url` | The company's website domain | summit.com | | `name` | The company's name | Summit | | `industries` | Industry classification or business sector | Wholesale | * * * Example Response[](https://docs.tomba.io/attributes/similar#example-response) ------------------------------------------------------------------------------ Code `{ "data": [ { "website_url": "summit.com", "name": "Summit", "industries": "Wholesale" }, { "website_url": "xx.io", "name": "xx", "industries": "Information Technology and Services" } ] }` * * * Use Cases[](https://docs.tomba.io/attributes/similar#use-cases) ---------------------------------------------------------------- * **Competitive Analysis**: Identify direct and indirect competitors in your market * **Market Research**: Discover companies in similar industries or business models * **Lead Generation**: Find prospects with similar characteristics to your best customers * **Partnership Opportunities**: Locate potential partners or collaborators * **Investment Research**: Analyze companies in the same sector for investment decisions * * * Company Industry Attribute[](https://docs.tomba.io/attributes/similar#company-industry-attribute) -------------------------------------------------------------------------------------------------- The `industries` field identifies the business sector or classification of the company. For more detailed information about company attributes, see the [Company Attributes](https://docs.tomba.io/attributes/company) documentation. Common industry values include: * Information Technology and Services * Software Development * Financial Services * E-commerce * Healthcare * Manufacturing * Wholesale * Retail * Consulting * Marketing and Advertising * Real Estate * Education * And many more... * * * Live Data Generation If you're on a paid plan and no similar companies are immediately available in our database, Tomba will work live to discover and generate similar company matches for you in real-time. This ensures you always get the most relevant and up-to-date results for your search. * * * Notes[](https://docs.tomba.io/attributes/similar#notes) -------------------------------------------------------- * Results are based on multiple factors including industry, company size, location, and business model * The similarity algorithm considers public data and business intelligence sources * More specific target companies typically yield more accurate similar matches * The number of results may vary depending on the uniqueness of the target company * **Tomba returns a maximum of 25 similar companies per request** Last modified on December 1, 2025 [Email Sources Attributes](https://docs.tomba.io/attributes/sources) [Technology Attributes](https://docs.tomba.io/attributes/technology) JSON --- # Employees location Attributes | Tomba Documentation Menu The [**Employees Location Attribute**](https://docs.tomba.io/api/finder#location) provides a breakdown of employee distribution by country based on the domain search or company analysis. This data helps you understand where a company's team is geographically located. * * * Summary[](https://docs.tomba.io/attributes/location#summary) ------------------------------------------------------------- | Field | Type | Description | | --- | --- | --- | | `name` | string | Two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
country code | | `total` | int | Number of employees detected in that country | * * * ### Example Response[](https://docs.tomba.io/attributes/location#example-response) Code `{ "data": [ { "name": "FR", "total": 2 }, { "name": "TN", "total": 24 } ] }` Last modified on July 2, 2025 [Email Format Attribute](https://docs.tomba.io/attributes/format) [Phone Attributes](https://docs.tomba.io/attributes/phone) JSON --- # Email Count Attributes | Tomba Documentation Menu Tomba provides a breakdown of emails found by department and seniority level for a given domain or company. Example Request[](https://docs.tomba.io/attributes/email-count#example-request) -------------------------------------------------------------------------------- TerminalCode `curl -X GET "https://api.tomba.io/v1/email-count?domain=example.com" \ -H "X-Tomba-Key: your_api_key" \ -H "X-Tomba-Secret: your_secret_key"` * * * Summary[](https://docs.tomba.io/attributes/email-count#summary) ---------------------------------------------------------------- | Attribute | Description | Value | | --- | --- | --- | | `total` | Total number of emails found | 20 | | `personal_emails` | Number of personal emails (e.g. john@) | 7 | | `generic_emails` | Number of generic emails (e.g. info@, hr@) | 13 | * * * Total Emails by Department (`department._key_name_`)[](https://docs.tomba.io/attributes/email-count#total-emails-by-department-department_key_name_) ----------------------------------------------------------------------------------------------------------------------------------------------------- | Department | Emails | | --- | --- | | marketing | 1 | | support | 2 | | communication | 3 | | executive | 2 | | security | 2 | | engineering | 0 | | finance | 0 | | hr | 0 | | it | 0 | | operations | 0 | | management | 0 | | sales | 0 | | legal | 0 | | accounting | 0 | | administrative | 0 | | diversity | 0 | | facilities | 0 | | pr | 0 | | software | 0 | | warehouse | 0 | * * * Total Emails by Seniority (`seniority._key_name_`)[](https://docs.tomba.io/attributes/email-count#total-emails-by-seniority-seniority_key_name_) ------------------------------------------------------------------------------------------------------------------------------------------------- | Seniority Level | Emails | | --- | --- | | senior | 2 | | junior | 0 | | executive | 0 | * * * Last modified on April 28, 2026 [Email Verifier Attributes](https://docs.tomba.io/attributes/verifier) [Enrichment Attributes](https://docs.tomba.io/attributes/enrichment) --- # Email Format Attribute | Tomba Documentation Menu The [**Email Format Attribute**](https://docs.tomba.io/api/finder#email-format) provides insights into the most commonly used email address patterns within a company or domain. This helps predict how email addresses are typically structured across the organization. * * * Summary[](https://docs.tomba.io/attributes/format#summary) ----------------------------------------------------------- | Field | Type | Description | | --- | --- | --- | | `format` | string | The detected email pattern used by the company | | `percentage` | int | The estimated percentage of people using this email format | * * * ### Example Response[](https://docs.tomba.io/attributes/format#example-response) Code `{ "data": [ { "format": "{l}.{first}", "percentage": 66 }, { "format": "{f}{l}", "percentage": 34 } ] }` * * * ### Format Legend[](https://docs.tomba.io/attributes/format#format-legend) | Symbol | Meaning | | --- | --- | | `{first}` | First name (e.g. `john`) | | `{f}` | First letter of the first name (e.g. `j`) | | `{last}` | Last name (e.g. `doe`) | | `{l}` | First letter of the last name (e.g. `d`) | | `{first}{last}` | Concatenation of first and last name (e.g. `johndoe`) | For a full list of supported patterns, refer to: [List of Patterns in Tomba Domain Search](https://help.tomba.io/en/articles/10087027-list-of-pattern-you-will-find-on-tomba-domain-search) * * * ### Use Case[](https://docs.tomba.io/attributes/format#use-case) Use this attribute to: * Predict professional email addresses for outreach * Power bulk email guessers based on common patterns * Increase success rate when using unknown email formats Last modified on July 2, 2025 [Enrichment Attributes](https://docs.tomba.io/attributes/enrichment) [Employees location Attributes](https://docs.tomba.io/attributes/location) JSON --- # Domain Suggestions | Tomba Documentation Menu Overview[](https://docs.tomba.io/attributes/domain-suggestions#overview) ------------------------------------------------------------------------- The Domain Suggestions API helps you discover companies and domains that are similar or related to your search query. This powerful feature enables you to expand your prospecting efforts by finding companies in similar industries, competitors, or businesses with related services. API Response Structure[](https://docs.tomba.io/attributes/domain-suggestions#api-response-structure) ----------------------------------------------------------------------------------------------------- The Domain Suggestions API returns a structured response containing an array of suggested domains along with metadata about the search query. ### Response Format[](https://docs.tomba.io/attributes/domain-suggestions#response-format) Code `{ "data": [ { "name": "Zapier", "domain": "zapier.com", "email_count": 455 }, ... .. . ], "meta": { "query": "zapier.com", "limit": 5 } }` Data Attributes[](https://docs.tomba.io/attributes/domain-suggestions#data-attributes) --------------------------------------------------------------------------------------- ### Root Object[](https://docs.tomba.io/attributes/domain-suggestions#root-object) | Attribute | Type | Description | | --- | --- | --- | | `data` | Array | Collection of suggested domain objects | | `meta` | Object | Metadata about the search query and parameters | ### Data Array Objects[](https://docs.tomba.io/attributes/domain-suggestions#data-array-objects) | Attribute | Description | | --- | --- | | `name` | The company or organization name associated with the domain | | `domain` | The primary domain name of the suggested company | | `email_count` | The number of email addresses available for this domain in Tomba's database | ### Example Request[](https://docs.tomba.io/attributes/domain-suggestions#example-request) TerminalCode `curl -X GET "https://api.tomba.io/v1/domain-suggestions?query=zapier.com&limit=5" \ -H "X-Tomba-Key: your_api_key" \ -H "X-Tomba-Secret: your_secret_key"` Last modified on April 28, 2026 [Company Attributes](https://docs.tomba.io/attributes/company) [Person Attributes](https://docs.tomba.io/attributes/person) JSON --- # Integrate Tomba Finder with LiteCart | Tomba Documentation Menu Overview[](https://docs.tomba.io/integrations/litecart#overview) ----------------------------------------------------------------- The **LiteCart Disposable Email Blocker** is an essential security add-on designed specifically for LiteCart e-commerce platforms. This tool provides a superior line of defense against fake registrations and spam accounts by validating email addresses in real-time during customer registration and account creation. ### Why Choose This Add-on?[](https://docs.tomba.io/integrations/litecart#why-choose-this-add-on) * 🛡️ **E-commerce Security**: Protects your store from fake customer accounts * 📧 **Email Quality Assurance**: Ensures legitimate customer email addresses * 🚫 **Spam Prevention**: Dramatically reduces spam registrations and fake orders * ⚡ **Real-time Validation**: Instant feedback during registration process * **Enhanced User Experience**: Clear guidance for valid email requirements * 📊 **Customer Data Integrity**: Maintains clean and reliable customer database ### Key Benefits for E-commerce[](https://docs.tomba.io/integrations/litecart#key-benefits-for-e-commerce) * **Fraud Prevention**: Reduces fake accounts that can lead to fraudulent orders * **Marketing Effectiveness**: Ensures email marketing reaches real customers * **Customer Support Efficiency**: Reduces support tickets from unreachable customers * **Payment Security**: Valid emails improve payment verification processes * **Analytics Accuracy**: Clean customer data provides better business insights * **Compliance Support**: Helps meet email verification requirements Features[](https://docs.tomba.io/integrations/litecart#features) ----------------------------------------------------------------- ### Core Protection Features[](https://docs.tomba.io/integrations/litecart#core-protection-features) * **Invalid Email Detection**: Identifies malformed email addresses * **Invalid Domain Verification**: Blocks emails from non-existent domains * **Disposable Email Blocking**: Prevents temporary/throwaway email services * **Webmail Control**: Configurable blocking or warnings for free webmail providers * **Real-time Validation**: Instant feedback during customer registration * **Custom Error Messages**: Personalized validation messages for your brand ### 🔄 Advanced E-commerce Features[](https://docs.tomba.io/integrations/litecart#-advanced-e-commerce-features) * **Daily Domain Updates**: Automatically updated disposable email database * **Customer Journey Protection**: Validates emails at all registration points * **Order Validation**: Ensures order confirmation emails reach customers * **Newsletter Signup Protection**: Prevents spam in email marketing lists * **Account Recovery Support**: Ensures password reset emails are deliverable * **Multi-language Support**: Customizable messages for international stores ### 📋 Validation Coverage[](https://docs.tomba.io/integrations/litecart#-validation-coverage) | Validation Type | Description | E-commerce Impact | | --- | --- | --- | | **Email Format** | Syntax validation (RFC compliance) | Prevents basic input errors | | **Domain Existence** | DNS lookup verification | Ensures deliverable addresses | | **Disposable Services** | Temporary email detection | Blocks fake accounts | | **Webmail Services** | Free provider identification | Configurable business policy | | **Spam Domains** | Known abuse domain blocking | Reduces malicious registrations | ### 🏪 LiteCart Integration[](https://docs.tomba.io/integrations/litecart#-litecart-integration) * **vMod Technology**: Built using LiteCart's native vMod system * **Admin Panel Integration**: Easy configuration through LiteCart admin * **Theme Compatibility**: Works with all LiteCart themes * **Performance Optimized**: Minimal impact on store performance * **Mobile Responsive**: Full mobile device support * **Multi-store Support**: Compatible with multiple store configurations Installation[](https://docs.tomba.io/integrations/litecart#installation) ------------------------------------------------------------------------- ### Prerequisites[](https://docs.tomba.io/integrations/litecart#prerequisites) * **LiteCart Version**: 2.5.0 or higher (vMod support required) * **PHP Version**: 7.2 or higher * **JavaScript**: Enabled in customer browsers * **Admin Access**: LiteCart administrator privileges * **Web Server**: Apache/Nginx with proper .htaccess support ### Step 1: Download the Add-on[](https://docs.tomba.io/integrations/litecart#step-1-download-the-add-on) 1. **Download** the latest release from [GitHub](https://github.com/tomba-io/litecart-disposable-email-blocker) 2. **Extract** the downloaded ZIP file to your computer 3. **Locate** the `public_html` folder in the extracted files ### Step 2: Upload Files[](https://docs.tomba.io/integrations/litecart#step-2-upload-files) #### Method A: FTP/SFTP Upload[](https://docs.tomba.io/integrations/litecart#method-a-ftpsftp-upload) TerminalCode `# Connect to your LiteCart server sftp username@your-server.com # Navigate to your LiteCart installation cd /path/to/litecart/ # Upload the files put -r local/public_html/* public_html/` #### Method B: Control Panel File Manager[](https://docs.tomba.io/integrations/litecart#method-b-control-panel-file-manager) 1. **Access** your hosting control panel (cPanel, DirectAdmin, etc.) 2. **Open** File Manager 3. **Navigate** to your LiteCart installation directory 4. **Upload** and extract the ZIP file 5. **Move** contents from `public_html` folder to your LiteCart root #### Method C: Direct Server Access[](https://docs.tomba.io/integrations/litecart#method-c-direct-server-access) TerminalCode `# Navigate to LiteCart installation cd /path/to/litecart/ # Copy uploaded files cp -r /tmp/disposable-email-blocker/public_html/* . # Set proper permissions chmod 644 vmods/disposable_email_blocker.xml` ### Step 3: Install via vMod Manager[](https://docs.tomba.io/integrations/litecart#step-3-install-via-vmod-manager) 1. **Log in** to your LiteCart Admin Panel 2. **Navigate** to `Modules` → `vMods` 3. **Locate** "Disposable Email Blocker" in the available vMods list 4. **Click** the checkbox next to the add-on 5. **Click** "Enable" button to activate 6. **Confirm** the add-on appears in the enabled list ### Step 4: Verify Installation[](https://docs.tomba.io/integrations/litecart#step-4-verify-installation) Check that the following files are properly installed: Code `public_html/ ├── vmods/ │ └── disposable_email_blocker.xml ✓` Configuration[](https://docs.tomba.io/integrations/litecart#configuration) --------------------------------------------------------------------------- ### Access Add-on Settings[](https://docs.tomba.io/integrations/litecart#access-add-on-settings) 1. **Navigate** to LiteCart Admin Panel 2. **Go to** `Settings` → `Email` or find in the right sidebar 3. **Locate** "Disposable Email Blocker" settings section 4. **Configure** options according to your store needs ### Core Settings[](https://docs.tomba.io/integrations/litecart#core-settings) #### General Configuration[](https://docs.tomba.io/integrations/litecart#general-configuration) | Setting | Description | Default | Recommended | | --- | --- | --- | --- | | **Enable Add-on** | Master on/off switch | Enabled | Enabled | | **Validation Mode** | When to validate emails | Real-time | Real-time | | **Show Debug Info** | Display debug information | Disabled | Disabled (production) | | **Cache Duration** | API response cache time (hours) | 24 | 24 | Usage[](https://docs.tomba.io/integrations/litecart#usage) ----------------------------------------------------------- ### For Store Administrators[](https://docs.tomba.io/integrations/litecart#for-store-administrators) #### Basic Setup Process[](https://docs.tomba.io/integrations/litecart#basic-setup-process) 1. **Install and activate** the add-on via vMod manager 2. **Configure settings** in the admin panel 3. **Test customer registration** with various email types 4. **Monitor customer feedback** and adjust settings as needed 5. **Review validation logs** for effectiveness ### Customer Experience[](https://docs.tomba.io/integrations/litecart#customer-experience) #### Valid Registration Flow[](https://docs.tomba.io/integrations/litecart#valid-registration-flow) Code `Customer enters: john.doe@company.com Validation: Email format valid Domain check: Domain exists and valid Service check: Not disposable/spam Result: Registration proceeds smoothly` #### Disposable Email Detection[](https://docs.tomba.io/integrations/litecart#disposable-email-detection) Code `Customer enters: temp123@10minutemail.com ❌ Validation: Disposable service detected ❌ Result: Error message displayed Message: "Disposable email addresses are not allowed" Action: Customer guided to use permanent email` #### Webmail Handling (Configurable)[](https://docs.tomba.io/integrations/litecart#webmail-handling-configurable) Code `Customer enters: customer@gmail.com ⚠️ Validation: Webmail provider detected 📋 Policy: Warn (configurable to allow/warn/block) Message: "Consider using a business email" Result: Registration allowed with warning` ### Integration Points[](https://docs.tomba.io/integrations/litecart#integration-points) The add-on validates emails at these key points: * **Customer Registration**: New account creation * **Guest Checkout**: Order placement without account * **Newsletter Signup**: Marketing list subscription * **Contact Forms**: Customer service inquiries * **Account Updates**: Email address changes * **B2B Registration**: Business account creation Troubleshooting[](https://docs.tomba.io/integrations/litecart#troubleshooting) ------------------------------------------------------------------------------- ### Common Issues[](https://docs.tomba.io/integrations/litecart#common-issues) #### Issue: Add-on Not Appearing in vMod Manager[](https://docs.tomba.io/integrations/litecart#issue-add-on-not-appearing-in-vmod-manager) **Symptoms:** * vMod not listed in available modifications * XML file present but not detected **Solutions:** 1. **Check XML syntax**: Validate vMod XML structure TerminalCode `xmllint --noout vmods/disposable_email_blocker.xml` 2. **Verify file permissions**: Ensure web server can read the file TerminalCode `chmod 644 vmods/disposable_email_blocker.xml` 3. **Clear vMod cache**: Delete cache files TerminalCode `rm -rf storage/vmods/cache/*` 4. **Check LiteCart version**: Ensure vMod support is available #### Issue: JavaScript Validation Not Working[](https://docs.tomba.io/integrations/litecart#issue-javascript-validation-not-working) **Symptoms:** * No real-time validation occurring * Disposable emails passing through * Browser console errors **Solutions:** 1. **Verify JavaScript file loading**: Code `Check: http://yourstore.com/js/disposable-email-blocker.min.js` 2. **Check browser console** for JavaScript errors 3. **Ensure jQuery compatibility** (LiteCart uses jQuery) 4. **Test with different browsers** and devices #### Issue: False Positives (Valid Emails Blocked)[](https://docs.tomba.io/integrations/litecart#issue-false-positives-valid-emails-blocked) **Symptoms:** * Legitimate business emails rejected * Customers unable to register * Specific domains incorrectly flagged **Solutions:** 1. **Add to whitelist**: Configure allowed domains in settings 2. **Adjust webmail policy**: Change from "block" to "warn" 3. **Update domain database**: Ensure latest disposable domain list 4. **Review custom blocked domains**: Remove incorrectly added domains #### Issue: Performance Impact[](https://docs.tomba.io/integrations/litecart#issue-performance-impact) **Symptoms:** * Slow page loading on registration forms * Increased server response times * Customer complaints about site speed **Solutions:** 1. **Enable caching**: Increase cache duration for API responses 2. **Optimize API timeout**: Reduce timeout to 3-5 seconds 3. **Use CDN**: Load JavaScript files from CDN 4. **Monitor server resources**: Check CPU and memory usage ### Debug Mode[](https://docs.tomba.io/integrations/litecart#debug-mode) Enable debug mode for troubleshooting: 1. **Edit vMod settings** to enable debug mode 2. **Open browser developer console** 3. **Attempt customer registration** with test emails 4. **Review detailed console output** Debug output example: Code `LiteCart Disposable Email Blocker Debug: - Store Mode: retail - Email: test@10minutemail.com - Domain: 10minutemail.com - API Response: {"disposable": true, "webmail": false} - Policy: block_disposable = true - Action: BLOCKED - Message: Disposable email addresses are not allowed` ### Log File Analysis[](https://docs.tomba.io/integrations/litecart#log-file-analysis) Check LiteCart error logs: TerminalCode `# Common log locations tail -f storage/logs/errors.log tail -f /var/log/apache2/error.log tail -f /var/log/nginx/error.log # Look for entries containing "disposable" or "email blocker" grep -i "disposable\|email.*block" storage/logs/errors.log` Support[](https://docs.tomba.io/integrations/litecart#support) --------------------------------------------------------------- ### Documentation & Resources[](https://docs.tomba.io/integrations/litecart#documentation--resources) * 📚 **Add-on Documentation**: [GitHub Wiki](https://github.com/tomba-io/litecart-disposable-email-blocker/wiki) * 🏪 **LiteCart Official**: [LiteCart Add-ons](https://litecart.net/en/addons) * 🔧 **vMod Development**: [LiteCart vMod Guide](https://litecart.net/wiki/how_to_create_a_vmod) * 🌐 **Tomba.io API**: [Developer Documentation](https://docs.tomba.io/) ### Support Channels[](https://docs.tomba.io/integrations/litecart#support-channels) * 🐛 **Bug Reports**: [GitHub Issues](https://github.com/tomba-io/litecart-disposable-email-blocker/issues) * 💬 **Feature Requests**: [GitHub Discussions](https://github.com/tomba-io/litecart-disposable-email-blocker/discussions) * 📧 **Direct Support**: [support@tomba.io](mailto:support@tomba.io) * 🏛️ **LiteCart Community**: [LiteCart Forums](https://litecart.net/forums) ### Frequently Asked Questions[](https://docs.tomba.io/integrations/litecart#frequently-asked-questions) #### Q: Is this add-on free to use?[](https://docs.tomba.io/integrations/litecart#q-is-this-add-on-free-to-use) **A:** Yes, the Disposable Email Blocker add-on is completely free for all LiteCart stores. #### Q: Does it work with custom LiteCart themes?[](https://docs.tomba.io/integrations/litecart#q-does-it-work-with-custom-litecart-themes) **A:** Yes, the add-on is designed to work with all LiteCart themes using the vMod system. #### Q: Can I customize the validation messages?[](https://docs.tomba.io/integrations/litecart#q-can-i-customize-the-validation-messages) **A:** Absolutely! All messages are fully customizable through the LiteCart admin panel settings. #### Q: Will this impact my store's performance?[](https://docs.tomba.io/integrations/litecart#q-will-this-impact-my-stores-performance) **A:** The add-on uses client-side JavaScript validation with minimal server impact. API calls are cached to reduce overhead. #### Q: Can I whitelist specific domains?[](https://docs.tomba.io/integrations/litecart#q-can-i-whitelist-specific-domains) **A:** Yes, you can configure custom allowed domains and exceptions in the admin settings. #### Q: Does it validate emails on guest checkout?[](https://docs.tomba.io/integrations/litecart#q-does-it-validate-emails-on-guest-checkout) **A:** Yes, the add-on validates emails at all registration points including guest checkout, configurable per your needs. Last modified on April 27, 2026 [Integrate Tomba Finder with Maltego](https://docs.tomba.io/integrations/maltego) [Integrate Tomba Finder with Joomla](https://docs.tomba.io/integrations/joomla) Javascript --- # Migrate from Bouncer to Tomba | Tomba Documentation Menu This guide will help you seamlessly transition from Bouncer to Tomba's email verification service, offering superior data attributes, smart caching, and competitive pricing. * * * Why Choose Tomba Over Bouncer?[](https://docs.tomba.io/migration/email-verifier/bouncer#why-choose-tomba-over-bouncer) ----------------------------------------------------------------------------------------------------------------------- | Feature | Bouncer | Tomba | | --- | --- | --- | | **Accuracy** | 95-97% | 99%+ | | **Pricing** | $0.006 per email | More competitive rates with better value | | **Data Attributes** | 8-10 fields | 15+ comprehensive attributes | | **Catchall Detection** | Basic | Advanced with confidence scoring | | **Speed** | Fast | Ultra-fast with optimized infrastructure | | **Bulk Verification** | Yes | Yes, with better batch processing | | **API Access** | REST API | REST API + MCP integration | | **Smart Caching** | No | 3-month automatic caching (saves credits) | | **SMTP Provider Detection** | Limited | Advanced provider identification | | **Data Sources** | Not provided | Source tracking with URLs and timestamps | | **Whois Data** | Basic | Comprehensive domain registration details | * * * Key Advantages of Tomba[](https://docs.tomba.io/migration/email-verifier/bouncer#key-advantages-of-tomba) ---------------------------------------------------------------------------------------------------------- ### 1\. Superior Data Intelligence[](https://docs.tomba.io/migration/email-verifier/bouncer#1-superior-data-intelligence) Tomba provides 15+ data attributes vs Bouncer's 8-10 fields, including: * SMTP provider identification (Google Workspace, Microsoft 365, etc.) * Complete MX records array * Domain whois information * Email source tracking with URLs and timestamps * Greylisting detection * Advanced risk scoring ### 2\. Smart Caching System[](https://docs.tomba.io/migration/email-verifier/bouncer#2-smart-caching-system) **Tomba's unique advantage**: Automatic 3-month verification caching * Skip verification if email was checked within the last 3 months * Free cached results (no credits charged) * Instant response times for cached emails * Automatic freshness management This feature alone can save you 40-60% on verification costs for recurring contact validation. ### 3\. Rich Data Attributes (15+ Fields)[](https://docs.tomba.io/migration/email-verifier/bouncer#3-rich-data-attributes-15-fields) Tomba provides comprehensive verification data with 15+ attributes: * **Verification Results**: `status` (valid/invalid/accept\_all/etc.), `result` (deliverable/undeliverable/risky), `score` (0-100) * **SMTP Intelligence**: `smtp_provider` (e.g., "Google Workspace"), `smtp_server`, `smtp_check` * **MX Infrastructure**: Complete `mx.records` array, `mx_check` validation * **Email Quality Signals**: `accept_all`, `greylisted`, `block`, `gibberish`, `regex` * **Email Type Detection**: `disposable`, `webmail` * **Domain Insights**: `whois` data including registrar, creation date, referral URL * **Data Provenance**: `sources` array with URIs, extraction dates, and page status **Example comprehensive response:** Code `{ "data": { "email": { "email": "dayna.winter@shopify.com", "result": "deliverable", "status": "valid", "score": 99, "smtp_provider": "Google Workspace", "mx": { "records": [ "aspmx.l.google.com", "alt1.aspmx.l.google.com", "alt2.aspmx.l.google.com", "alt4.aspmx.l.google.com", "alt3.aspmx.l.google.com" ] }, "mx_check": true, "smtp_server": true, "smtp_check": true, "accept_all": true, "greylisted": false, "block": false, "gibberish": false, "disposable": false, "webmail": false, "regex": true, "whois": { "registrar_name": "markmonitor inc.", "referral_url": "http://www.markmonitor.com", "created_date": "2005-03-11T06:18:03+01:00" } }, "sources": [ { "uri": "https://www.shopify.com/blog/black-friday-cyber-monday-shopify-apps", "website_url": "www.shopify.com", "extracted_on": "2022-11-07T13:16:42+01:00", "last_seen_on": "2022-11-07T13:16:42+01:00", "still_on_page": true } ] } }` ### 4\. Better Developer Experience[](https://docs.tomba.io/migration/email-verifier/bouncer#4-better-developer-experience) * Official SDKs for 10+ languages (Node.js, Python, PHP, Ruby, Go, C#, etc.) * Model Context Protocol (MCP) support for AI integrations * Comprehensive API documentation * OpenAPI/Swagger specification ### 5\. More Integration Options[](https://docs.tomba.io/migration/email-verifier/bouncer#5-more-integration-options) * Google Sheets add-on * Microsoft Excel add-in * Chrome/Firefox/Edge/Safari extensions * Zapier and n8n workflows * Direct CRM integrations * Apify integration * * * Migration Steps[](https://docs.tomba.io/migration/email-verifier/bouncer#migration-steps) ------------------------------------------------------------------------------------------ ### Step 1: Get Your Tomba API Credentials[](https://docs.tomba.io/migration/email-verifier/bouncer#step-1-get-your-tomba-api-credentials) 1. Sign up at [app.tomba.io](https://app.tomba.io/) 2. Navigate to **API** → **API Keys** 3. Copy your **API Key** and **Secret Key** ### Step 2: Update API Endpoints[](https://docs.tomba.io/migration/email-verifier/bouncer#step-2-update-api-endpoints) **Bouncer endpoint:** Code `POST https://api.usebouncer.com/v1/email/verify` **Tomba endpoint:** Code `GET https://api.tomba.io/v1/email-verifier?email={email}` ### Step 3: Update Authentication[](https://docs.tomba.io/migration/email-verifier/bouncer#step-3-update-authentication) **Bouncer authentication:** Code `{ "headers": { "x-api-key": "your_bouncer_key" } }` **Tomba authentication:** Code `{ "headers": { "X-Tomba-Key": "your_api_key", "X-Tomba-Secret": "your_secret_key" } }` ### Step 4: Update Response Mapping[](https://docs.tomba.io/migration/email-verifier/bouncer#step-4-update-response-mapping) **Bouncer response:** Code `{ "email": "test@example.com", "status": "deliverable", "reason": "accepted_email", "domain": { "name": "example.com", "acceptAll": false, "disposable": false }, "account": { "role": false, "disabled": false, "fullMailbox": false } }` **Tomba response (with 15+ attributes):** Code `{ "data": { "email": "test@example.com", "status": "valid", "result": "deliverable", "score": 100, "smtp_provider": "Google Workspace", "mx": { "records": ["mx1.example.com", "mx2.example.com"] }, "mx_check": true, "smtp_server": true, "smtp_check": true, "accept_all": false, "greylisted": false, "block": false, "disposable": false, "webmail": false, "gibberish": false, "regex": true, "whois": { "registrar_name": "namecheap inc.", "created_date": "2010-05-15T10:30:00+00:00" } } }` * * * Code Migration Examples[](https://docs.tomba.io/migration/email-verifier/bouncer#code-migration-examples) ---------------------------------------------------------------------------------------------------------- ### Node.js[](https://docs.tomba.io/migration/email-verifier/bouncer#nodejs) **Before (Bouncer):** Code `const axios = require("axios"); async function verifyEmail(email) { const response = await axios.post( "https://api.usebouncer.com/v1/email/verify", { email: email }, { headers: { "x-api-key": process.env.BOUNCER_KEY, }, }, ); return response.data; }` **After (Tomba):** Code ``const axios = require("axios"); async function verifyEmail(email) { const response = await axios.get(`https://api.tomba.io/v1/email-verifier`, { params: { email: email }, headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }); // Access rich data attributes const data = response.data.data; console.log(`Status: ${data.status}`); console.log(`SMTP Provider: ${data.smtp_provider}`); console.log(`Score: ${data.score}`); return data; }`` **Using Tomba SDK:** Code `const Tomba = require("tomba"); const client = new Tomba.Client() .setKey(process.env.TOMBA_KEY) .setSecret(process.env.TOMBA_SECRET); const verifier = new Tomba.Verifier(client); async function verifyEmail(email) { const result = await verifier.emailVerifier({ email: email }); return result.data; }` ### Python[](https://docs.tomba.io/migration/email-verifier/bouncer#python) **Before (Bouncer):** Code `import requests def verify_email(email): response = requests.post( 'https://api.usebouncer.com/v1/email/verify', json={'email': email}, headers={'x-api-key': os.environ['BOUNCER_KEY']} ) return response.json()` **After (Tomba):** Code `import requests def verify_email(email): response = requests.get( 'https://api.tomba.io/v1/email-verifier', params={'email': email}, headers={ 'X-Tomba-Key': os.environ['TOMBA_KEY'], 'X-Tomba-Secret': os.environ['TOMBA_SECRET'] } ) data = response.json()['data'] # Access rich attributes print(f"Status: {data['status']}") print(f"SMTP Provider: {data.get('smtp_provider', 'N/A')}") print(f"Score: {data['score']}") return data` **Using Tomba SDK:** Code `from tomba import Client, Verifier client = Client() client.set_key(os.environ['TOMBA_KEY']) client.set_secret(os.environ['TOMBA_SECRET']) verifier = Verifier(client) def verify_email(email): result = verifier.email_verifier(email=email) return result['data']` ### PHP[](https://docs.tomba.io/migration/email-verifier/bouncer#php) **Before (Bouncer):** Code ` $email])); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'x-api-key: ' . $_ENV['BOUNCER_KEY'], 'Content-Type: application/json' ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); return json_decode($response); }` **After (Tomba):** Code `data; // Access rich attributes echo "Status: " . $data->status . "\n"; echo "SMTP Provider: " . ($data->smtp_provider ?? 'N/A') . "\n"; echo "Score: " . $data->score . "\n"; return $data; }` **Using Tomba SDK:** Code `setKey($_ENV['TOMBA_KEY']) ->setSecret($_ENV['TOMBA_SECRET']); $verifier = new Verifier($client); function verifyEmail($email) { global $verifier; $result = $verifier->emailVerifier(['email' => $email]); return $result['data']; }` * * * Status Mapping[](https://docs.tomba.io/migration/email-verifier/bouncer#status-mapping) ---------------------------------------------------------------------------------------- | Bouncer Status | Tomba Status | Tomba Result | Notes | | --- | --- | --- | --- | | `deliverable` | `valid` | `deliverable` | Direct mapping | | `undeliverable` | `invalid` | `undeliverable` | Direct mapping | | `accept_all` | `accept_all` | `risky` | Catch-all domain | | `unknown` | `unknown` | `risky` | Unable to verify | | `disposable` | `disposable` | `undeliverable` | Temporary email | | `role` | `valid` | `deliverable` | Check `sources` for contact context | * * * Bulk Verification Migration[](https://docs.tomba.io/migration/email-verifier/bouncer#bulk-verification-migration) ------------------------------------------------------------------------------------------------------------------ ### Bouncer Bulk Process[](https://docs.tomba.io/migration/email-verifier/bouncer#bouncer-bulk-process) Code `// Bouncer bulk verification const verifyBulk = async (emails) => { const response = await axios.post( "https://api.usebouncer.com/v1.1/email/verify/batch", { emails: emails }, { headers: { "x-api-key": process.env.BOUNCER_KEY, }, }, ); return response.data; };` ### Tomba Bulk Process (with Smart Caching)[](https://docs.tomba.io/migration/email-verifier/bouncer#tomba-bulk-process-with-smart-caching) Code `// Tomba bulk verification const verifyBulk = async (emails) => { const response = await axios.post( "https://api.tomba.io/v1/bulk/email-verifier", { emails: emails }, { headers: { "X-Tomba-Key": process.env.TOMBA_KEY, "X-Tomba-Secret": process.env.TOMBA_SECRET, }, }, ); // Benefit: Cached emails are free and instant return response.data; };` **Key advantage**: Tomba's smart caching means repeat verifications within 3 months are free and instant! * * * Advanced Features[](https://docs.tomba.io/migration/email-verifier/bouncer#advanced-features) ---------------------------------------------------------------------------------------------- ### 1\. Model Context Protocol (MCP) Support[](https://docs.tomba.io/migration/email-verifier/bouncer#1-model-context-protocol-mcp-support) Integrate email verification directly with AI tools: Code `// MCP configuration for Claude Desktop { "mcpServers": { "tomba": { "command": "npx", "args": ["-y", "@tomba-io/mcp"] } } }` ### 3\. Source Tracking[](https://docs.tomba.io/migration/email-verifier/bouncer#3-source-tracking) Understand where emails were found: Code ``const data = await verifyEmail("test@example.com"); // Access source information data.sources.forEach((source) => { console.log(`Found on: ${source.uri}`); console.log(`Extracted: ${source.extracted_on}`); console.log(`Still active: ${source.still_on_page}`); });`` * * * Testing Your Migration[](https://docs.tomba.io/migration/email-verifier/bouncer#testing-your-migration) -------------------------------------------------------------------------------------------------------- ### Parallel Testing Script[](https://docs.tomba.io/migration/email-verifier/bouncer#parallel-testing-script) Code ``const testMigration = async (testEmails) => { for (const email of testEmails) { // Verify with Bouncer const bouncerResult = await verifyWithBouncer(email); // Verify with Tomba const tombaResult = await verifyWithTomba(email); // Compare results console.log(`Email: ${email}`); console.log(`Bouncer: ${bouncerResult.status}`); console.log( `Tomba: ${tombaResult.status} (${tombaResult.score} score)`, ); console.log(`Extra data: SMTP Provider - ${tombaResult.smtp_provider}`); console.log(`---`); } }; // Test with sample emails testMigration([ "valid@example.com", "invalid@example.com", "catchall@example.com", ]);`` ### Cost Comparison[](https://docs.tomba.io/migration/email-verifier/bouncer#cost-comparison) Code ``// Calculate cost savings with caching const calculateSavings = (monthlyVolume, repeatRate) => { const bouncerCost = monthlyVolume * 0.006; const tombaCost = monthlyVolume * (1 - repeatRate) * 0.005; // Cached = free const savings = bouncerCost - tombaCost; const savingsPercent = (savings / bouncerCost) * 100; console.log(`Monthly volume: ${monthlyVolume}`); console.log(`Repeat rate: ${repeatRate * 100}%`); console.log(`Bouncer cost: $${bouncerCost.toFixed(2)}`); console.log(`Tomba cost: $${tombaCost.toFixed(2)}`); console.log( `Savings: $${savings.toFixed(2)} (${savingsPercent.toFixed(1)}%)`, ); }; // Example: 10k monthly verifications with 40% repeat rate calculateSavings(10000, 0.4); // Save 40% on cached verifications`` * * * Migration Checklist[](https://docs.tomba.io/migration/email-verifier/bouncer#migration-checklist) -------------------------------------------------------------------------------------------------- * [ ] Sign up for Tomba account * [ ] Generate API credentials * [ ] Install Tomba SDK (optional but recommended) * [ ] Update API endpoints in your code * [ ] Update authentication headers * [ ] Update response parsing logic to leverage new attributes * [ ] Test with sample emails (parallel testing) * [ ] Update bulk verification code * [ ] Update error handling * [ ] Monitor performance and accuracy * [ ] Review cost savings from smart caching * [ ] Update documentation * [ ] Train team on new features * [ ] Complete full migration * * * Support and Resources[](https://docs.tomba.io/migration/email-verifier/bouncer#support-and-resources) ------------------------------------------------------------------------------------------------------ * [Tomba API Documentation](https://docs.tomba.io/) * [Email Verifier Attributes](https://docs.tomba.io/attributes/verifier) * [Bulk Verification Guide](https://docs.tomba.io/bulks/email-verifier) * [SDKs and Libraries](https://docs.tomba.io/libraries) * [Support Portal](https://help.tomba.io/) Need help with migration? Contact our support team for personalized assistance. * * * FAQ[](https://docs.tomba.io/migration/email-verifier/bouncer#faq) ------------------------------------------------------------------ **Q: Will I lose any features by switching from Bouncer?** A: No! Tomba provides all Bouncer features plus 15+ data attributes, smart caching, MCP integration, and source tracking. **Q: How does the 3-month caching work?** A: When you verify an email, Tomba caches the result for 3 months. If you verify the same email again within this period, you get instant results without using credits. **Q: What about emails I verify regularly (like in CRM)?** A: This is where Tomba excels! With 3-month caching, recurring verifications are free, potentially saving you 40-60% on costs. **Q: How long does migration take?** A: Most migrations can be completed in 1-2 hours. Our SDK makes it even faster with minimal code changes. **Q: Can I test before fully migrating?** A: Yes! Sign up for a free account with 25 verifications to test the service and compare results. **Q: What if I need help with bulk migration?** A: Our enterprise support team can assist with bulk data migration, code review, and optimization strategies. **Q: How do I access the SMTP provider information?** A: It's automatically included in the response as `smtp_provider`. No additional calls needed! **Q: Are the source URLs always available?** A: Sources are provided when the email was found in our database. This gives valuable context about where contacts originated. Last modified on November 16, 2025 [Migrate from Bounceban to Tomba](https://docs.tomba.io/migration/email-verifier/bounceban) [Migrate from Kickbox to Tomba](https://docs.tomba.io/migration/email-verifier/kickbox) JSON Javascript Javascript JSON JSON Javascript Javascript Javascript PHP PHP PHP Javascript Javascript Javascript Javascript Javascript Javascript --- # 98% Delivery Guarantee - Email Verifier | Tomba Documentation Menu Tomba.io provides an industry-leading **98% Delivery Guarantee** for our Email Verifier service. When you verify email addresses through our advanced verification system, we guarantee that 98% of emails marked as "deliverable" will successfully reach their intended recipients. * * * What Our 98% Delivery Guarantee Covers[](https://docs.tomba.io/email-verifier-delivery-guarantee#what-our-98-delivery-guarantee-covers) ---------------------------------------------------------------------------------------------------------------------------------------- ### Scope of Guarantee[](https://docs.tomba.io/email-verifier-delivery-guarantee#scope-of-guarantee) Our 98% delivery guarantee applies to emails verified through: * **[Email Verifier API](https://tomba.io/email-verifier) **: Real-time email verification service * **[Bulk Email Verification](https://tomba.io/bulks/email-verifier) **: Large-scale email list cleaning * **Integrated Verification**: Verification through our other services (Email Finder, Domain Search) * **Chrome Extension**: Email verification through our browser extension ### Verification Results Covered[](https://docs.tomba.io/email-verifier-delivery-guarantee#verification-results-covered) The guarantee applies to emails with verification results of: * **`deliverable`**: Email exists and can receive messages * **`valid`**: Email passes all verification checks * **`verified`**: Email confirmed through multiple validation methods * * * Advanced Verification Technology[](https://docs.tomba.io/email-verifier-delivery-guarantee#advanced-verification-technology) ----------------------------------------------------------------------------------------------------------------------------- ### Multi-Layer Verification Process[](https://docs.tomba.io/email-verifier-delivery-guarantee#multi-layer-verification-process) #### 1\. **Syntax and Format Validation**[](https://docs.tomba.io/email-verifier-delivery-guarantee#1-syntax-and-format-validation) * RFC 5322 compliance checking * Local and domain part validation * International domain support * Special character handling #### 2\. **Domain Verification**[](https://docs.tomba.io/email-verifier-delivery-guarantee#2-domain-verification) * DNS MX record validation * Domain existence confirmation * Mail server availability checking * Domain reputation analysis #### 3\. **SMTP Verification**[](https://docs.tomba.io/email-verifier-delivery-guarantee#3-smtp-verification) * Real-time SMTP handshake simulation * Mailbox existence confirmation * Catch-all detection * Greylisting identification #### 4\. **Advanced Behavioral Analysis**[](https://docs.tomba.io/email-verifier-delivery-guarantee#4-advanced-behavioral-analysis) * Email pattern recognition * Historical delivery data analysis * Spam trap detection * Disposable email identification ### Real-Time Processing[](https://docs.tomba.io/email-verifier-delivery-guarantee#real-time-processing) * **Instant Results**: Verification completed in under 2 seconds * **Live SMTP Testing**: Real-time connection to mail servers * **Dynamic Updates**: Results updated based on current server status * **Global Network**: Verification from multiple geographic locations * * * Verification Results and Confidence Levels[](https://docs.tomba.io/email-verifier-delivery-guarantee#verification-results-and-confidence-levels) ------------------------------------------------------------------------------------------------------------------------------------------------- ### Primary Results[](https://docs.tomba.io/email-verifier-delivery-guarantee#primary-results) #### Deliverable (98% Guarantee Applies)[](https://docs.tomba.io/email-verifier-delivery-guarantee#deliverable-98-guarantee-applies) * **Score Range**: 85-100 * **Meaning**: Email exists and can receive messages * **Guarantee**: 98% delivery success rate * **Recommendation**: Safe to send #### Undeliverable[](https://docs.tomba.io/email-verifier-delivery-guarantee#undeliverable) * **Score Range**: 0-25 * **Meaning**: Email doesn't exist or will bounce * **Action**: Remove from lists immediately * **Accuracy**: 99.9% bounce prediction #### Risky[](https://docs.tomba.io/email-verifier-delivery-guarantee#risky) * **Score Range**: 26-84 * **Meaning**: Email exists but may have delivery issues * **Recommendation**: Proceed with caution * **Common Issues**: Catch-all, role-based, or filtered emails #### Unknown[](https://docs.tomba.io/email-verifier-delivery-guarantee#unknown) * **Score Range**: Variable * **Meaning**: Cannot determine deliverability * **Causes**: Server timeouts, greylisting, or restrictions * **Action**: Manual review recommended ### Enhanced Result Details[](https://docs.tomba.io/email-verifier-delivery-guarantee#enhanced-result-details) #### Detailed Attributes[](https://docs.tomba.io/email-verifier-delivery-guarantee#detailed-attributes) * **Gibberish Detection**: Identifies nonsensical email addresses * **Disposable Email Detection**: Flags temporary email services * **Role-Based Detection**: Identifies generic addresses (info@, admin@) * **Webmail Detection**: Distinguishes personal vs. business emails #### Risk Indicators[](https://docs.tomba.io/email-verifier-delivery-guarantee#risk-indicators) * **Spam Trap Risk**: Probability of being a spam trap * **Catch-All Status**: Whether domain accepts all emails * **Mailbox Full**: Detection of full mailboxes * **Accept-All**: Domains that appear to accept everything * * * Guarantee Terms and Conditions[](https://docs.tomba.io/email-verifier-delivery-guarantee#guarantee-terms-and-conditions) ------------------------------------------------------------------------------------------------------------------------- ### Eligibility Requirements[](https://docs.tomba.io/email-verifier-delivery-guarantee#eligibility-requirements) #### Qualifying Verification[](https://docs.tomba.io/email-verifier-delivery-guarantee#qualifying-verification) * Emails verified through official Tomba.io services * Results marked as "deliverable" with scores 85+ * Verification completed within the last 30 days * Proper sending practices followed #### Sending Requirements[](https://docs.tomba.io/email-verifier-delivery-guarantee#sending-requirements) * Use authenticated sending domains (SPF, DKIM, DMARC) * Maintain good sender reputation * Follow email marketing best practices * Comply with anti-spam regulations ### Measurement Standards[](https://docs.tomba.io/email-verifier-delivery-guarantee#measurement-standards) #### Success Criteria[](https://docs.tomba.io/email-verifier-delivery-guarantee#success-criteria) * **Primary Metric**: Email successfully delivered to inbox * **SMTP Success**: 250 OK response from receiving server * **No Hard Bounces**: No permanent delivery failures * **Inbox Placement**: Message reaches primary inbox folder #### Exclusions from Guarantee[](https://docs.tomba.io/email-verifier-delivery-guarantee#exclusions-from-guarantee) * **Soft Bounces**: Temporary delivery issues (full mailbox, server down) * **Content Filtering**: Emails blocked due to content or sender reputation * **Recipient Filtering**: User-defined rules or personal blocking * **Rate Limiting**: ISP throttling or temporary restrictions * * * Quality Assurance Measures[](https://docs.tomba.io/email-verifier-delivery-guarantee#quality-assurance-measures) ----------------------------------------------------------------------------------------------------------------- ### Continuous Monitoring[](https://docs.tomba.io/email-verifier-delivery-guarantee#continuous-monitoring) #### Real-Time Quality Checks[](https://docs.tomba.io/email-verifier-delivery-guarantee#real-time-quality-checks) * Live SMTP server monitoring * Continuous accuracy validation * Performance metric tracking * False positive detection #### Historical Analysis[](https://docs.tomba.io/email-verifier-delivery-guarantee#historical-analysis) * Delivery outcome tracking * Accuracy improvement algorithms * Pattern recognition updates * Machine learning optimization ### Global Infrastructure[](https://docs.tomba.io/email-verifier-delivery-guarantee#global-infrastructure) #### Distributed Verification Network[](https://docs.tomba.io/email-verifier-delivery-guarantee#distributed-verification-network) * Multiple verification points worldwide * Redundant SMTP testing * Load balancing and failover * Regional optimization #### Server Partnerships[](https://docs.tomba.io/email-verifier-delivery-guarantee#server-partnerships) * Direct relationships with major ISPs * Trusted sender status * Whitelist maintenance * Delivery feedback loops * * * Claim Process for Guarantee[](https://docs.tomba.io/email-verifier-delivery-guarantee#claim-process-for-guarantee) ------------------------------------------------------------------------------------------------------------------- ### Claim Eligibility[](https://docs.tomba.io/email-verifier-delivery-guarantee#claim-eligibility) #### When to Submit a Claim[](https://docs.tomba.io/email-verifier-delivery-guarantee#when-to-submit-a-claim) * Delivery rate below 98% for verified emails * Systematic hard bounces on "deliverable" emails * Consistent verification inaccuracies * Pattern of false positives #### Required Metrics[](https://docs.tomba.io/email-verifier-delivery-guarantee#required-metrics) * Minimum of 100 verified emails for statistical significance * Verification must be completed within 30 days * Proper sending authentication required * Detailed delivery logs necessary ### Documentation Requirements[](https://docs.tomba.io/email-verifier-delivery-guarantee#documentation-requirements) #### Verification Records[](https://docs.tomba.io/email-verifier-delivery-guarantee#verification-records) * Complete list of verified emails with scores * Tomba.io verification timestamps and results * Original verification confidence scores * Batch processing records if applicable #### Delivery Evidence[](https://docs.tomba.io/email-verifier-delivery-guarantee#delivery-evidence) * SMTP delivery logs and bounce messages * Email service provider delivery reports * Bounce categorization (hard vs. soft) * Timeline of sending attempts #### Technical Information[](https://docs.tomba.io/email-verifier-delivery-guarantee#technical-information) * Sending domain authentication records * Sender reputation scores * Email content and headers (if relevant) * ISP feedback and block notifications ### Claim Resolution Process[](https://docs.tomba.io/email-verifier-delivery-guarantee#claim-resolution-process) #### Step 1: Initial Review (1-2 Business Days)[](https://docs.tomba.io/email-verifier-delivery-guarantee#step-1-initial-review-1-2-business-days) * Verification of claim eligibility * Documentation completeness check * Preliminary analysis of delivery patterns * Assignment to specialist team #### Step 2: Technical Analysis (3-5 Business Days)[](https://docs.tomba.io/email-verifier-delivery-guarantee#step-2-technical-analysis-3-5-business-days) * Detailed review of verification accuracy * SMTP log analysis * Cross-reference with our quality metrics * Investigation of delivery failures #### Step 3: Resolution (2-3 Business Days)[](https://docs.tomba.io/email-verifier-delivery-guarantee#step-3-resolution-2-3-business-days) * Determination of guarantee applicability * Calculation of service credits or remedies * Implementation of account improvements * Communication of results and next steps * * * Remedies and Compensation[](https://docs.tomba.io/email-verifier-delivery-guarantee#remedies-and-compensation) --------------------------------------------------------------------------------------------------------------- ### Service Credit Structure[](https://docs.tomba.io/email-verifier-delivery-guarantee#service-credit-structure) #### Credit Calculation[](https://docs.tomba.io/email-verifier-delivery-guarantee#credit-calculation) * **Standard Rate**: 2x credits for each failed verification * **Premium Accounts**: 3x credits plus additional services * **Enterprise Clients**: Custom compensation packages * **Bulk Users**: Volume-based credit adjustments #### Credit Application[](https://docs.tomba.io/email-verifier-delivery-guarantee#credit-application) * Automatic application to account balance * Can be used for any Tomba.io services * No expiration date on guarantee credits * Transferable between team members ### Enhanced Services[](https://docs.tomba.io/email-verifier-delivery-guarantee#enhanced-services) #### Priority Re-verification[](https://docs.tomba.io/email-verifier-delivery-guarantee#priority-re-verification) * Free re-verification of problematic emails * Enhanced verification algorithms applied * Priority processing queue access * Dedicated account specialist support #### Account Optimization[](https://docs.tomba.io/email-verifier-delivery-guarantee#account-optimization) * Personal consultation with verification experts * Custom verification rule development * Integration optimization assistance * Advanced feature access * * * Optimization Best Practices[](https://docs.tomba.io/email-verifier-delivery-guarantee#optimization-best-practices) ------------------------------------------------------------------------------------------------------------------- ### Pre-Verification Preparation[](https://docs.tomba.io/email-verifier-delivery-guarantee#pre-verification-preparation) #### Email List Hygiene[](https://docs.tomba.io/email-verifier-delivery-guarantee#email-list-hygiene) * Remove obvious invalid formats * Clean duplicates and variations * Segment by source and age * Prioritize high-value contacts #### Batch Processing[](https://docs.tomba.io/email-verifier-delivery-guarantee#batch-processing) * Optimal batch sizes (500-1000 emails) * Appropriate timing intervals * Monitor processing status * Handle API rate limits properly ### Post-Verification Actions[](https://docs.tomba.io/email-verifier-delivery-guarantee#post-verification-actions) #### Result Segmentation[](https://docs.tomba.io/email-verifier-delivery-guarantee#result-segmentation) * **High Confidence (95-100)**: Priority sending * **Good Confidence (85-94)**: Standard campaigns * **Lower Confidence (Below 85)**: Additional verification or exclusion * **Special Cases**: Manual review for important contacts #### List Maintenance[](https://docs.tomba.io/email-verifier-delivery-guarantee#list-maintenance) * Regular re-verification (quarterly recommended) * Monitor bounce rates continuously * Update verification status based on delivery outcomes * Maintain suppression lists for hard bounces * * * Advanced Features for Higher Accuracy[](https://docs.tomba.io/email-verifier-delivery-guarantee#advanced-features-for-higher-accuracy) --------------------------------------------------------------------------------------------------------------------------------------- ### Enhanced Verification Options[](https://docs.tomba.io/email-verifier-delivery-guarantee#enhanced-verification-options) #### Deep SMTP Analysis[](https://docs.tomba.io/email-verifier-delivery-guarantee#deep-smtp-analysis) * Multi-step SMTP conversation simulation * Advanced server response interpretation * Custom timeout configurations * Retry logic optimization #### AI-Powered Predictions[](https://docs.tomba.io/email-verifier-delivery-guarantee#ai-powered-predictions) * Machine learning delivery predictions * Historical pattern analysis * Behavioral modeling * Risk assessment algorithms ### Integration Capabilities[](https://docs.tomba.io/email-verifier-delivery-guarantee#integration-capabilities) #### Real-Time API[](https://docs.tomba.io/email-verifier-delivery-guarantee#real-time-api) * Instant verification results * Bulk processing endpoints * Custom field mapping #### Third-Party Integrations[](https://docs.tomba.io/email-verifier-delivery-guarantee#third-party-integrations) * CRM system connections * Email marketing platform sync * Data enrichment workflows * Automated list cleaning * * * Monitoring and Analytics[](https://docs.tomba.io/email-verifier-delivery-guarantee#monitoring-and-analytics) ------------------------------------------------------------------------------------------------------------- ### Performance Dashboard[](https://docs.tomba.io/email-verifier-delivery-guarantee#performance-dashboard) Access comprehensive analytics through your Tomba.io dashboard: * **Verification Accuracy Tracking**: Real-time accuracy metrics * **Delivery Rate Monitoring**: Track guarantee compliance * **Historical Performance**: Long-term accuracy trends * **Comparative Analysis**: Benchmark against industry standards ### Automated Alerts[](https://docs.tomba.io/email-verifier-delivery-guarantee#automated-alerts) * **Accuracy Threshold Alerts**: Notifications when accuracy drops * **Volume Processing Updates**: Status of large batch verifications * **System Status Notifications**: Service availability updates * **Guarantee Performance Reports**: Monthly guarantee compliance summaries * * * Support and Contact Information[](https://docs.tomba.io/email-verifier-delivery-guarantee#support-and-contact-information) --------------------------------------------------------------------------------------------------------------------------- ### Guarantee Support Team[](https://docs.tomba.io/email-verifier-delivery-guarantee#guarantee-support-team) Specialized support for delivery guarantee issues: * **Email**: [info@tomba.io](mailto:info@tomba.io) * **Priority Support**: Available for guarantee-related issues * **Technical Consultation**: Expert advice on verification optimization * **Account Management**: Dedicated support for enterprise clients ### Response Time Commitments[](https://docs.tomba.io/email-verifier-delivery-guarantee#response-time-commitments) * **Guarantee Claims**: Response within 24 hours * **Technical Issues**: Response within 4 hours * **General Inquiries**: Response within 2 hours during business hours * **Emergency Support**: Available 24/7 for critical issues * * * Frequently Asked Questions[](https://docs.tomba.io/email-verifier-delivery-guarantee#frequently-asked-questions) ----------------------------------------------------------------------------------------------------------------- ### Q: How does the 98% guarantee compare to the 95% Email Finder guarantee?[](https://docs.tomba.io/email-verifier-delivery-guarantee#q-how-does-the-98-guarantee-compare-to-the-95-email-finder-guarantee) A: The Email Verifier has a higher guarantee (98%) because it performs additional real-time validation checks on existing emails, while Email Finder discovers new emails which inherently carry slightly more uncertainty. ### Q: What's the minimum number of verifications needed to claim the guarantee?[](https://docs.tomba.io/email-verifier-delivery-guarantee#q-whats-the-minimum-number-of-verifications-needed-to-claim-the-guarantee) A: We require a minimum of 100 verified emails marked as "deliverable" to ensure statistical significance for guarantee claims. ### Q: How often should I re-verify email addresses?[](https://docs.tomba.io/email-verifier-delivery-guarantee#q-how-often-should-i-re-verify-email-addresses) A: We recommend re-verification every 3-6 months for active lists, or immediately before important campaigns, to maintain the highest accuracy. ### Q: Do verification results expire?[](https://docs.tomba.io/email-verifier-delivery-guarantee#q-do-verification-results-expire) A: Verification results remain valid for 30 days under our guarantee. After that, email deliverability may change due to factors outside our control. ### Q: Can I get a refund instead of service credits?[](https://docs.tomba.io/email-verifier-delivery-guarantee#q-can-i-get-a-refund-instead-of-service-credits) A: Our standard remedy is service credits, but enterprise clients may have different arrangements based on their service agreements. * * * Our 98% Delivery Guarantee for Email Verifier represents the highest standard in email verification accuracy, backed by advanced technology and our commitment to your success. Last modified on November 16, 2025 [95% Delivery Guarantee - Email Finder](https://docs.tomba.io/email-finder-delivery-guarantee) [Frequently Asked Questions](https://docs.tomba.io/faqs) --- # Email Verifier Attributes | Tomba Documentation Menu Email Verification Fields[](https://docs.tomba.io/attributes/verifier#email-verification-fields) ------------------------------------------------------------------------------------------------- | Attribute | Description | Example | | --- | --- | --- | | `email` | The email address that was verified. | [m@wordpress.org](mailto:m@wordpress.org) | | `status` | General status of the email syntax and lookup. It can be one of: `valid`, `invalid`, `accept_all`, `webmail`, `disposable`, `unknown`. | valid | | `result` | Final verdict on deliverability. It can be one of: `deliverable`, `undeliverable`, `risky`. | deliverable | | `score` | Confidence score from 0 to 100. Higher score = better quality. | 100 | | `regex` | Checks if the email matches standard email pattern. | true | | `mx.records` | Whether MX (Mail Exchange) DNS records were found. | | | `mx_check` | Whether the domain has valid and working MX (Mail Exchange) records, confirming it can receive emails. | \['aspmx.l.google.com', 'alt2.aspmx.l.google.com'\] | | `smtp_server` | Whether an SMTP server was found for the domain. | true | | `smtp_check` | Whether the SMTP server responded positively to the email probe. | true | | `smtp_provider` | Whether the SMTP provider (email sending service) for the domain was identified. | Google Workspace | | `accept_all` | Whether the domain accepts all emails (catch-all). | false | | `block` | Whether the domain is blocked or blacklisted. | false | | `gibberish` | Whether the local part (before @) of the email looks random/gibberish. | false | | `disposable` | Whether the email comes from a disposable (temporary) provider. | false | | `webmail` | Whether the domain is a webmail provider (e.g., Gmail, Yahoo). | false | | `greylisted` | Whether the email server temporarily deferred the verification attempt (greylisting), which may require retrying later. | false | * * * Email Status Field[](https://docs.tomba.io/attributes/verifier#email-status-field) ----------------------------------------------------------------------------------- The `status` field in Tomba's email verification response indicates the deliverability and quality of the provided email address. It can take one of the following **six possible values**: ### Possible Status Values[](https://docs.tomba.io/attributes/verifier#possible-status-values) | Status | Description | | --- | --- | | `valid` | The email address is valid and deliverable. | | `invalid` | The email address is not valid or does not exist. | | `accept_all` | The domain accepts all email addresses regardless of their validity. | | `webmail` | The email address is from a public email provider (e.g., Gmail, Outlook). | | `disposable` | The email is from a temporary/disposable service (e.g., Mailinator). | | `unknown` | Tomba could not verify the email address due to a technical issue. | * * * ### Notes[](https://docs.tomba.io/attributes/verifier#notes) * **`accept_all` domains** may give false positives. Use the `score` and other signals to decide confidence. * **`unknown`** status may be caused by SMTP timeouts, greylisting, or temporary blocks. * The `status` value is always returned along with `result`, `score`, and `smtp_check` for more context. * * * Email Result Field[](https://docs.tomba.io/attributes/verifier#email-result-field) ----------------------------------------------------------------------------------- The `result` field summarizes the overall outcome of the email verification check. It is based on factors such as syntax, MX records, SMTP checks, and domain behavior. ### Possible Result Values[](https://docs.tomba.io/attributes/verifier#possible-result-values) | Result | Description | | --- | --- | | `deliverable` | The email address is valid and deliverable. | | `undeliverable` | The email address is not valid and cannot be delivered to. | | `risky` | The verification could not be fully confirmed, often due to catch-all domains, greylisting, or timeout issues. | * * * ### Notes[](https://docs.tomba.io/attributes/verifier#notes-1) * **`deliverable`** means the address is safe to send emails to. * **`undeliverable`** suggests the address is invalid or the server rejected it. * **`risky`** requires caution. Combine it with `score` and `accept_all` for a more accurate decision. Last modified on April 28, 2026 [Person Attributes](https://docs.tomba.io/attributes/person) [Email Count Attributes](https://docs.tomba.io/attributes/email-count) --- # Technology Attributes | Tomba Documentation Menu These attributes represent technology stack information returned by Tomba's Technology Finder service, which helps identify software, tools, and platforms used by organizations. * * * Technology Details[](https://docs.tomba.io/attributes/technology#technology-details) ------------------------------------------------------------------------------------- | Attribute | Description | Example | | --- | --- | --- | | `slug` | Unique identifier for the technology | intercom | | `name` | The technology or tool name | Intercom | | `description` | Brief description of the technology's purpose | Customer messaging platform | | `icon` | Icon filename for the technology | Intercom.png | | `website` | Official website URL of the technology | [https://www.intercom.com](https://www.intercom.com/) | | `categories` | Technology category information (object) | See Categories section below | * * * Categories Object[](https://docs.tomba.io/attributes/technology#categories-object) ----------------------------------------------------------------------------------- The `categories` field contains detailed classification information for the technology. | Attribute | Description | Example | | --- | --- | --- | | `id` | Unique identifier for the category | 10 | | `slug` | URL-friendly category identifier | analytics | | `name` | Human-readable category name | Analytics | * * * Example Response[](https://docs.tomba.io/attributes/technology#example-response) --------------------------------------------------------------------------------- Code `{ "data": [ { "slug": "intercom", "name": "Intercom", "icon": "Intercom.png", "website": "https://www.intercom.com", "categories": { "id": 10, "slug": "analytics", "name": "Analytics" } } ] }` * * * Use Cases[](https://docs.tomba.io/attributes/technology#use-cases) ------------------------------------------------------------------- * **Technology Stack Analysis**: Understand what tools and platforms a company uses * **Sales Intelligence**: Identify companies using specific technologies for targeted outreach * **Competitive Research**: Analyze competitors' technology choices and infrastructure * **Integration Planning**: Find companies using compatible or complementary technologies * **Market Research**: Track technology adoption trends across industries * **Lead Qualification**: Score leads based on their technology stack fit * * * Technology Categories[](https://docs.tomba.io/attributes/technology#technology-categories) ------------------------------------------------------------------------------------------- Technologies are organized into various categories including: * **Analytics**: Data analysis, tracking, and business intelligence tools * **CRM**: Customer relationship management systems * **Marketing Automation**: Email marketing, campaign management, and automation * **Customer Support**: Help desk, chat, and support ticketing systems * **E-commerce**: Online store platforms and shopping cart solutions * **Payment Processing**: Payment gateways and financial transaction tools * **Cloud Infrastructure**: Hosting, servers, and cloud services * **Development Tools**: Frameworks, libraries, and development platforms * **Security**: Security tools, SSL certificates, and protection services * **Content Management**: CMS platforms and content delivery systems * **Advertising**: Ad networks and advertising platforms * **Communication**: Email services, messaging, and collaboration tools * **Productivity**: Project management and productivity applications * And many more... * * * Live Data Generation If you're on a paid plan and no technology data is immediately available in our database, Tomba will work live to discover and analyze the company's technology stack in real-time. This ensures you always get the most current and comprehensive technology information for your target companies. * * * Notes[](https://docs.tomba.io/attributes/technology#notes) ----------------------------------------------------------- * Technology detection is based on multiple data sources including website analysis, public APIs, and business intelligence * **Tomba Technology works with Wappalyzer v6 apps.json** for comprehensive technology identification * The accuracy of detection varies depending on how publicly visible the technologies are * Some technologies may be detected through indirect signals or integrations * Results include both frontend and backend technologies where detectable * Technology information is regularly updated to reflect changes in company infrastructure Last modified on December 6, 2025 [Similar Company Attributes](https://docs.tomba.io/attributes/similar) [NAICS Codes](https://docs.tomba.io/attributes/naics) JSON --- # NAICS Codes | Tomba Documentation Menu The North American Industry Classification System (NAICS) is a standard used by federal statistical agencies in classifying business establishments for the purpose of collecting, analyzing, and publishing statistical data related to the U.S. business economy. Overview[](https://docs.tomba.io/attributes/naics#overview) ------------------------------------------------------------ NAICS codes are 6-digit codes that classify businesses by their primary type of economic activity. Tomba provides NAICS classification data for companies in our database to help you filter and target specific industries. Usage in Tomba[](https://docs.tomba.io/attributes/naics#usage-in-tomba) ------------------------------------------------------------------------ You can use NAICS codes to: * Filter companies by specific industry sectors * Target businesses in particular economic activities * Analyze market segments and industry trends * Build precise B2B prospecting lists NAICS Code Structure[](https://docs.tomba.io/attributes/naics#naics-code-structure) ------------------------------------------------------------------------------------ * **2-digit**: Sector (broadest level) * **3-digit**: Subsector * **4-digit**: Industry group * **5-digit**: NAICS industry * **6-digit**: National industry (most specific) Complete NAICS Codes List[](https://docs.tomba.io/attributes/naics#complete-naics-codes-list) ---------------------------------------------------------------------------------------------- | Code | Industry Title | | --- | --- | | 111110 | Soybean Farming | | 111120 | Oilseed (except Soybean) Farming | | 111130 | Dry Pea and Bean Farming | | 111140 | Wheat Farming | | 111150 | Corn Farming | | 111160 | Rice Farming | | 111191 | All Other Grain Farming | | 111211 | Potato Farming | | 111219 | Other Vegetable (except Potato) and Melon Farming | | 111310 | Orange Groves | | 111320 | Citrus (except Orange) Groves | | 111331 | Apple Orchards | | 111332 | Grape Vineyards | | 111333 | Strawberry Farming | | 111334 | Berry (except Strawberry) Farming | | 111335 | Tree Nut Farming | | 111336 | Fruit and Tree Nut Combination Farming | | 111339 | Other Noncitrus Fruit Farming | | 111411 | Mushroom Production | | 111419 | Other Food Crops Grown Under Cover | | 111421 | Nursery and Tree Production | | 111422 | Floriculture Production | | 111910 | Tobacco Farming | | 111920 | Cotton Farming | | 111930 | Sugarcane Farming | | 111940 | Hay Farming | | 111991 | Sugar Beet Farming | | 111992 | Peanut Farming | | 111998 | All Other Miscellaneous Crop Farming | | 112111 | Beef Cattle Ranching and Farming | | 112112 | Cattle Feedlots | | 112120 | Dairy Cattle and Milk Production | | 112210 | Hog and Pig Farming | | 112310 | Chicken Egg Production | | 112320 | Broilers and Other Meat Type Chicken Production | | 112330 | Turkey Production | | 112340 | Poultry Hatcheries | | 112390 | Other Poultry Production | | 112410 | Sheep Farming | | 112420 | Goat Farming | | 112511 | Finfish Farming and Fish Hatcheries | | 112512 | Shellfish Farming | | 112519 | Other Aquaculture | | 112910 | Apiculture | | 112920 | Horses and Other Equine Production | | 112930 | Fur-Bearing Animal and Rabbit Production | | 112990 | All Other Animal Production | | 113110 | Timber Tract Operations | | 113210 | Forest Nurseries and Gathering of Forest Products | | 113310 | Logging | | 114111 | Finfish Fishing | | 114112 | Shellfish Fishing | | 114119 | Other Marine Fishing | | 114210 | Hunting and Trapping | | 115111 | Cotton Ginning | | 115112 | Soil Preparation, Planting, and Cultivating | | 115113 | Crop Harvesting, Primarily by Machine | | 115114 | Postharvest Crop Activities (except Cotton Ginning) | | 115115 | Farm Labor Contractors and Crew Leaders | | 115116 | Farm Management Services | | 115210 | Support Activities for Animal Production | | 115310 | Support Activities for Forestry | | 211120 | Crude Petroleum Extraction | | 211130 | Natural Gas Extraction | | 212111 | Surface Coal Mining | | 212112 | Underground Coal Mining | | 212210 | Iron Ore Mining | | 212221 | Gold Ore and Silver Ore Mining | | 212230 | Copper, Nickel, Lead, and Zinc Mining | | 212290 | Other Metal Ore Mining | | 212311 | Dimension Stone Mining and Quarrying | | 212312 | Crushed and Broken Limestone Mining and Quarrying | | 212313 | Crushed and Broken Granite Mining and Quarrying | | 212319 | Other Crushed and Broken Stone Mining and Quarrying | | 212321 | Construction Sand and Gravel Mining | | 212322 | Industrial Sand Mining | | 212324 | Kaolin, Clay, and Ceramic and Refractory Minerals Mining | | 212390 | Other Nonmetallic Mineral Mining and Quarrying | | 213111 | Drilling Oil and Gas Wells | | 213112 | Support Activities for Oil and Gas Operations | | 213113 | Support Activities for Coal Mining | | 213114 | Support Activities for Metal Mining | | 213115 | Support Activities for Nonmetallic Minerals (except Fuels) Mining | | 221111 | Hydroelectric Power Generation | | 221112 | Fossil Fuel Electric Power Generation | | 221113 | Nuclear Electric Power Generation | | 221114 | Solar Electric Power Generation | | 221115 | Wind Electric Power Generation | | 221116 | Geothermal Electric Power Generation | | 221117 | Biomass Electric Power Generation | | 221118 | Other Electric Power Generation | | 221121 | Electric Bulk Power Transmission and Control | | 221122 | Electric Power Distribution | | 221210 | Natural Gas Distribution | | 221310 | Water Supply and Irrigation Systems | | 221320 | Sewage Treatment Facilities | | 221330 | Steam and Air-Conditioning Supply | | 236115 | New Single-Family Housing Construction (except For-Sale Builders) | | 236116 | New Multifamily Housing Construction (except For-Sale Builders) | | 236117 | New Housing For-Sale Builders | | 236118 | Residential Remodelers | | 236210 | Industrial Building Construction | | 236220 | Commercial and Institutional Building Construction | | 237110 | Water and Sewer Line and Related Structures Construction | | 237120 | Oil and Gas Pipeline and Related Structures Construction | | 237130 | Power and Communication Line and Related Structures Construction | | 237210 | Land Subdivision | | 237310 | Highway, Street, and Bridge Construction | | 237990 | Other Heavy and Civil Engineering Construction | | 238110 | Poured Concrete Foundation and Structure Contractors | | 238120 | Structural Steel and Precast Concrete Contractors | | 238130 | Framing Contractors | | 238140 | Masonry Contractors | | 238150 | Glass and Glazing Contractors | | 238160 | Roofing Contractors | | 238170 | Siding Contractors | | 238190 | Other Foundation, Structure, and Building Exterior Contractors | | 238210 | Electrical Contractors and Other Wiring Installation Contractors | | 238220 | Plumbing, Heating, and Air-Conditioning Contractors | | 238290 | Other Building Equipment Contractors | | 238310 | Drywall and Insulation Contractors | | 238320 | Painting and Wall Covering Contractors | | 238330 | Flooring Contractors | | 238340 | Tile and Terrazzo Contractors | | 238350 | Finish Carpentry Contractors | | 238390 | Other Building Finishing Contractors | | 238910 | Site Preparation Contractors | | 238990 | All Other Specialty Trade Contractors | | 311111 | Dog and Cat Food Manufacturing | | 311119 | Other Animal Food Manufacturing | | 311211 | Flour Milling | | 311212 | Rice Milling | | 311213 | Malt Manufacturing | | 311221 | Wet Corn Milling and Starch Manufacturing | | 311224 | Soybean and Other Oilseed Processing | | 311225 | Fats and Oils Refining and Blending | | 311230 | Breakfast Cereal Manufacturing | | 311313 | Beet Sugar Manufacturing | | 311314 | Cane Sugar Manufacturing | | 311340 | Nonchocolate Confectionery Manufacturing | | 311351 | Chocolate and Confectionery Manufacturing from Cacao Beans | | 311352 | Confectionery Manufacturing from Purchased Chocolate | | 311411 | Frozen Fruit, Juice, and Vegetable Manufacturing | | 311412 | Frozen Specialty Food Manufacturing | | 311421 | Fruit and Vegetable Canning | | 311422 | Specialty Canning | | 311423 | Dried and Dehydrated Food Manufacturing | | 311511 | Fluid Milk Manufacturing | | 311512 | Creamery Butter Manufacturing | | 311513 | Cheese Manufacturing | | 311514 | Dry, Condensed, and Evaporated Dairy Product Manufacturing | | 311520 | Ice Cream and Frozen Dessert Manufacturing | | 311611 | Animal (except Poultry) Slaughtering | | 311612 | Meat Processed from Carcasses | | 311613 | Rendering and Meat Byproduct Processing | | 311615 | Poultry Processing | | 311710 | Seafood Product Preparation and Packaging | | 311812 | Commercial Bakeries | | 311813 | Frozen Cakes, Pies, and Other Pastries Manufacturing | | 311821 | Cookie and Cracker Manufacturing | | 311824 | Dry Pasta, Dough, and Flour Mixes Manufacturing from Purchased Flour | | 311830 | Tortilla Manufacturing | | 311911 | Roasted Nuts and Peanut Butter Manufacturing | | 311919 | Other Snack Food Manufacturing | | 311920 | Coffee and Tea Manufacturing | | 311930 | Flavoring Syrup and Concentrate Manufacturing | | 311941 | Mayonnaise, Dressing, and Other Prepared Sauce Manufacturing | | 311942 | Spice and Extract Manufacturing | | 311991 | Perishable Prepared Food Manufacturing | | 311999 | All Other Miscellaneous Food Manufacturing | | 312111 | Soft Drink Manufacturing | | 312112 | Bottled Water Manufacturing | | 312113 | Ice Manufacturing | | 312120 | Breweries | | 312130 | Wineries | | 312140 | Distilleries | | 312230 | Tobacco Manufacturing | _Note: This is a partial list. The complete NAICS system contains over 1,000 industry classifications._ Related Resources[](https://docs.tomba.io/attributes/naics#related-resources) ------------------------------------------------------------------------------ * [Company Attributes](https://docs.tomba.io/attributes/company) * [SIC Codes](https://docs.tomba.io/attributes/sic) * [Industry Filtering](https://docs.tomba.io/attributes/company#industry-attribute) Last modified on January 8, 2026 [Technology Attributes](https://docs.tomba.io/attributes/technology) [SIC Codes](https://docs.tomba.io/attributes/sic) --- # Cursor Setup | Tomba Documentation Menu Learn how to setup Cursor AI editor to generate accurate Tomba API code using our comprehensive documentation. Quick Use[](https://docs.tomba.io/llm/editor/cursor#quick-use) --------------------------------------------------------------- ### Using Web Search in Cursor[](https://docs.tomba.io/llm/editor/cursor#using-web-search-in-cursor) In Cursor's chat interface, you can reference our documentation directly: Code `@web https://docs.tomba.io/llms.txt Create a TypeScript class for Tomba email finder with async/await patterns` ### Using the Documentation Panel[](https://docs.tomba.io/llm/editor/cursor#using-the-documentation-panel) 1. Open Cursor's documentation panel 2. Add the Tomba API documentation URL: `https://docs.tomba.io/llms.txt` 3. Reference it in your prompts with `@docs` Project-level Setup[](https://docs.tomba.io/llm/editor/cursor#project-level-setup) ----------------------------------------------------------------------------------- ### Method 1: Project Documentation[](https://docs.tomba.io/llm/editor/cursor#method-1-project-documentation) Create a `.cursorrules` file in your project root: TerminalCode `# Download Tomba API documentation curl -L https://docs.tomba.io/llms.txt -o .cursorrules` ### Method 2: Custom Instructions[](https://docs.tomba.io/llm/editor/cursor#method-2-custom-instructions) Create a `cursor-instructions.md` file in your project: TerminalCode `# Create project documentation mkdir -p docs curl -L https://docs.tomba.io/llms.txt -o docs/cursor-instructions.md` Add this to your project's `.cursor/` directory: Code `{ "includeInContext": ["docs/cursor-instructions.md"], "customInstructions": "Use the Tomba API documentation in docs/cursor-instructions.md for all API-related code generation. Follow the authentication patterns and endpoint structures defined in the documentation." }` Cursor-Specific Features[](https://docs.tomba.io/llm/editor/cursor#cursor-specific-features) --------------------------------------------------------------------------------------------- ### 1\. Multi-file Editing[](https://docs.tomba.io/llm/editor/cursor#1-multi-file-editing) Use Cursor's multi-file editing with Tomba API: **Prompt:** Code `@docs Create a complete Tomba API client with separate files for: - Authentication module - Email finder service - Email verifier service - Error handling utilities - TypeScript types` ### 2\. Codebase Chat[](https://docs.tomba.io/llm/editor/cursor#2-codebase-chat) Reference your entire codebase when working with Tomba API: Code `@codebase How can I integrate Tomba email verification into my existing user registration flow?` ### 3\. Smart Rewrites[](https://docs.tomba.io/llm/editor/cursor#3-smart-rewrites) Select existing code and ask Cursor to enhance it: Code `@docs Refactor this email validation function to use Tomba's email verifier API instead of regex` Configuration[](https://docs.tomba.io/llm/editor/cursor#configuration) ----------------------------------------------------------------------- ### Cursor Settings[](https://docs.tomba.io/llm/editor/cursor#cursor-settings) Add these settings to enhance Tomba API code generation: Code `{ "cursor.general.enableInlineCompletion": true, "cursor.chat.includeWorkspaceInContext": true, "cursor.ai.model": "claude-3.5-sonnet", "cursor.chat.customInstructions": "When generating API code, prioritize Tomba API endpoints and follow RESTful patterns. Include proper error handling and authentication." }` ### Environment Variables[](https://docs.tomba.io/llm/editor/cursor#environment-variables) Set up your environment for Cursor to understand your API keys: TerminalCode `# Create .env.example file echo "TOMBA_API_KEY=your_api_key_here" > .env.example echo "TOMBA_SECRET_KEY=your_secret_key_here" >> .env.example` Example Use Cases[](https://docs.tomba.io/llm/editor/cursor#example-use-cases) ------------------------------------------------------------------------------- ### 1\. Building an Email Finder Component[](https://docs.tomba.io/llm/editor/cursor#1-building-an-email-finder-component) **Prompt:** Code `@docs Create a React component that uses Tomba API to find emails for a company. Include: - Input field for domain - Loading state - Results display - Error handling - TypeScript types` **Generated Code:** Code ``import React, { useState } from 'react'; interface EmailResult { email: string; first_name: string; last_name: string; position: string; confidence: number; } interface TombaResponse { data: { emails: EmailResult[]; }; meta: { total: number; }; } const EmailFinder: React.FC = () => { const [domain, setDomain] = useState(''); const [results, setResults] = useState([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const findEmails = async () => { if (!domain) return; setLoading(true); setError(null); try { const response = await fetch(`https://api.tomba.io/v1/domain-search?domain=${domain}`, { headers: { 'X-Tomba-Key': process.env.REACT_APP_TOMBA_API_KEY!, 'X-Tomba-Secret': process.env.REACT_APP_TOMBA_SECRET_KEY!, }, }); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data: TombaResponse = await response.json(); setResults(data.data.emails); } catch (err) { setError(err instanceof Error ? err.message : 'An error occurred'); } finally { setLoading(false); } }; return (
setDomain(e.target.value)} placeholder="Enter company domain (e.g., tomba.io)" className="domain-input" />
{error &&
{error}
} {results.length > 0 && (

Found {results.length} emails:

{results.map((email, index) => (
{email.email}
{email.first_name} {email.last_name}
{email.position}
Confidence: {email.confidence}%
))}
)}
); }; export default EmailFinder;`` ### 2\. API Client with Error Handling[](https://docs.tomba.io/llm/editor/cursor#2-api-client-with-error-handling) **Prompt:** Code `@docs Create a robust Tomba API client class with: - Rate limiting - Retry logic - Comprehensive error handling - TypeScript support - All major endpoints` ### 3\. Integration with Form Validation[](https://docs.tomba.io/llm/editor/cursor#3-integration-with-form-validation) **Prompt:** Code `@docs Create a form validation hook that uses Tomba email verifier to validate email addresses in real-time` Advanced Features[](https://docs.tomba.io/llm/editor/cursor#advanced-features) ------------------------------------------------------------------------------- ### 1\. Custom Commands[](https://docs.tomba.io/llm/editor/cursor#1-custom-commands) Create custom Cursor commands for Tomba API: Code `{ "commands": [ { "name": "Generate Tomba Email Finder", "command": "@docs Create an email finder function using Tomba API for the selected domain variable" }, { "name": "Add Tomba Verification", "command": "@docs Add Tomba email verification to the selected email input field" } ] }` ### 2\. Code Actions[](https://docs.tomba.io/llm/editor/cursor#2-code-actions) Set up code actions for common Tomba API patterns: Code `{ "codeActions": { "tomba.addEmailVerification": { "title": "Add Tomba Email Verification", "kind": "refactor" } } }` Best Practices[](https://docs.tomba.io/llm/editor/cursor#best-practices) ------------------------------------------------------------------------- ### 1\. Use Contextual Prompts[](https://docs.tomba.io/llm/editor/cursor#1-use-contextual-prompts) Instead of generic requests, provide context: Code `@docs In my user registration form, add Tomba email verification before allowing signup` ### 2\. Leverage Cursor's Understanding[](https://docs.tomba.io/llm/editor/cursor#2-leverage-cursors-understanding) Let Cursor understand your project structure: Code `@codebase @docs Integrate Tomba email finder into my existing user management system` ### 3\. Iterative Development[](https://docs.tomba.io/llm/editor/cursor#3-iterative-development) Build incrementally: Code `@docs Start with a basic Tomba email verification function` Then enhance: Code `@docs Add caching and rate limiting to the previous email verification function` Troubleshooting[](https://docs.tomba.io/llm/editor/cursor#troubleshooting) --------------------------------------------------------------------------- ### Documentation Not Loading[](https://docs.tomba.io/llm/editor/cursor#documentation-not-loading) 1. Check your internet connection 2. Verify the URL: `https://docs.tomba.io/llms.txt` 3. Try refreshing the documentation panel ### API Code Not Working[](https://docs.tomba.io/llm/editor/cursor#api-code-not-working) 1. Ensure your API keys are properly set 2. Check the generated endpoint URLs 3. Verify authentication headers are included ### Context Issues[](https://docs.tomba.io/llm/editor/cursor#context-issues) 1. Make sure `.cursorrules` is in your project root 2. Check that custom instructions are properly formatted 3. Try restarting Cursor after configuration changes Additional Resources[](https://docs.tomba.io/llm/editor/cursor#additional-resources) ------------------------------------------------------------------------------------- * [Cursor Documentation](https://docs.cursor.com/) * [Tomba API Reference](https://docs.tomba.io/api) * [Authentication Guide](https://docs.tomba.io/authentication) * [Rate Limits](https://docs.tomba.io/rate-limits) Last modified on October 3, 2025 [VSCode Setup](https://docs.tomba.io/llm/editor/vscode) [Zed Editor Setup](https://docs.tomba.io/llm/editor/zed) JSON JSON TypeScript JSON JSON --- # Pipedream Integration | Tomba Documentation Menu Overview[](https://docs.tomba.io/integrations/pipedream#overview) ------------------------------------------------------------------ Connect Tomba.io with 2,000+ apps on Pipedream to build serverless workflows with code-level control. Pipedream is a developer-first integration platform that lets you build powerful automations with Node.js code or pre-built actions. Prerequisites[](https://docs.tomba.io/integrations/pipedream#prerequisites) ---------------------------------------------------------------------------- * Active Tomba.io account with API credentials * Pipedream account (free or paid) Setup & Authentication[](https://docs.tomba.io/integrations/pipedream#setup--authentication) --------------------------------------------------------------------------------------------- ### Connecting Tomba.io to Pipedream[](https://docs.tomba.io/integrations/pipedream#connecting-tombaio-to-pipedream) 1. In your workflow, search for **Tomba** in the action/trigger selector 2. Click **Connect Account** 3. Enter your Tomba.io credentials: * **API Key**: Your Tomba.io API key * **Secret Key**: Your Tomba.io secret key 4. Click **Save** **Getting Your API Credentials:** 1. Log in to your [Tomba.io dashboard](https://app.tomba.io/) 2. Navigate to [API Keys](https://app.tomba.io/api) 3. Copy your API Key and Secret Key Available Actions[](https://docs.tomba.io/integrations/pipedream#available-actions) ------------------------------------------------------------------------------------ ### Email Finder[](https://docs.tomba.io/integrations/pipedream#email-finder) Find professional email addresses using a person's name and company domain. **Input:** * **Domain** (required) - Company domain (e.g., `tomba.io`) * **First Name** (required) - Person's first name * **Last Name** (required) - Person's last name **Output:** * Email address * Verification status * Score (accuracy confidence) * Position * Department * Social profiles **Example Code:** Code ``import { axios } from "@pipedream/platform"; export default defineComponent({ props: { tomba: { type: "app", app: "tomba", }, }, async run({ steps, $ }) { return await axios($, { url: `https://api.tomba.io/v1/email-finder`, params: { domain: "tomba.io", first_name: "Mohamed", last_name: "Ben rebia", }, headers: { "X-Tomba-Key": `${this.tomba.$auth.api_key}`, "X-Tomba-Secret": `${this.tomba.$auth.secret_key}`, }, }); }, });`` ### Email Verifier[](https://docs.tomba.io/integrations/pipedream#email-verifier) Verify if an email address is valid and deliverable. **Input:** * **Email** (required) - Email address to verify **Output:** * Email status (valid/invalid) * Result (deliverable/undeliverable/risky) * Score (0-100) * SMTP check results * Accept-all detection * Disposable email detection **Example Code:** Code ``import { axios } from "@pipedream/platform"; export default defineComponent({ props: { tomba: { type: "app", app: "tomba", }, }, async run({ steps, $ }) { return await axios($, { url: `https://api.tomba.io/v1/email-verifier`, params: { email: "mohamed@tomba.io", }, headers: { "X-Tomba-Key": `${this.tomba.$auth.api_key}`, "X-Tomba-Secret": `${this.tomba.$auth.secret_key}`, }, }); }, });`` ### Domain Search[](https://docs.tomba.io/integrations/pipedream#domain-search) Search for all email addresses associated with a domain. **Input:** * **Domain** (required) - Company domain * **Page** (optional) - Page number for pagination * **Limit** (optional) - Results per page (max: 100) * **Department** (optional) - Filter by department **Output:** * Array of email addresses * Full names and positions * Departments * Social profiles * Total count **Example Code:** Code ``import { axios } from "@pipedream/platform"; export default defineComponent({ props: { tomba: { type: "app", app: "tomba", }, }, async run({ steps, $ }) { return await axios($, { url: `https://api.tomba.io/v1/domain-search`, params: { domain: "tomba.io", page: 1, limit: 10, }, headers: { "X-Tomba-Key": `${this.tomba.$auth.api_key}`, "X-Tomba-Secret": `${this.tomba.$auth.secret_key}`, }, }); }, });`` ### Email Count[](https://docs.tomba.io/integrations/pipedream#email-count) Get the total number of email addresses for a domain. **Input:** * **Domain** (required) - Company domain **Output:** * Total email count * Personal emails count * Generic emails count ### LinkedIn Email Finder[](https://docs.tomba.io/integrations/pipedream#linkedin-email-finder) Find email addresses from LinkedIn profile URLs. **Input:** * **LinkedIn URL** (required) - LinkedIn profile URL **Output:** * Email address * Full name * Position * Company * Verification status ### Enrichment[](https://docs.tomba.io/integrations/pipedream#enrichment) Enrich company or contact data using email or domain. **Input:** * **Email** (optional) - Email address to enrich * **Domain** (optional) - Domain to enrich **Output:** * Full profile data * Company information * Social profiles * Technologies used * Employee count ### Phone Finder[](https://docs.tomba.io/integrations/pipedream#phone-finder) Find phone numbers associated with a domain, email, or LinkedIn URL. **Input:** * **Domain** (optional) - Company domain * **Email** (optional) - Email address * **LinkedIn URL** (optional) - LinkedIn profile URL **Output:** * Phone number(s) * Phone type (mobile/work) * Country code * Verified status Example Workflows[](https://docs.tomba.io/integrations/pipedream#example-workflows) ------------------------------------------------------------------------------------ ### Lead Enrichment Pipeline[](https://docs.tomba.io/integrations/pipedream#lead-enrichment-pipeline) **Trigger:** HTTP Webhook (receives lead data) **Steps:** 1. **Parse webhook data** - Extract name, company, domain 2. **Tomba - Email Finder** - Find email using name + domain 3. **Tomba - Email Verifier** - Verify the found email 4. **Tomba - Enrichment** - Get additional profile data 5. **Filter** - Only continue if email is deliverable 6. **Send to CRM** - Create lead in Salesforce/HubSpot 7. **Slack notification** - Alert sales team **Code Example:** Code ``export default defineComponent({ async run({ steps, $ }) { const lead = steps.trigger.event.body; // Find email const emailResult = await axios($, { url: `https://api.tomba.io/v1/email-finder`, params: { domain: lead.domain, first_name: lead.firstName, last_name: lead.lastName, }, headers: { "X-Tomba-Key": this.tomba.$auth.api_key, "X-Tomba-Secret": this.tomba.$auth.secret_key, }, }); // Verify email const verifyResult = await axios($, { url: `https://api.tomba.io/v1/email-verifier`, params: { email: emailResult.data.email, }, headers: { "X-Tomba-Key": this.tomba.$auth.api_key, "X-Tomba-Secret": this.tomba.$auth.secret_key, }, }); // Return enriched lead data return { ...lead, email: emailResult.data.email, verification: verifyResult.data, }; }, });`` ### Email Validation Service[](https://docs.tomba.io/integrations/pipedream#email-validation-service) **Trigger:** New row in Google Sheets **Steps:** 1. **For each row** - Iterate through email list 2. **Tomba - Email Verifier** - Verify each email 3. **Transform data** - Format verification results 4. **Update Google Sheets** - Write verification status 5. **Filter invalid** - Separate invalid emails 6. **Send summary email** - Report validation results ### Company Research Automation[](https://docs.tomba.io/integrations/pipedream#company-research-automation) **Trigger:** New company added to CRM **Steps:** 1. **Extract domain** - Get company website domain 2. **Tomba - Domain Search** - Find all company emails 3. **Tomba - Email Count** - Get total email count 4. **Loop through emails** - Process each found email 5. **Tomba - Enrichment** - Enrich each contact 6. **Store in Database** - Save to PostgreSQL/Airtable 7. **Generate report** - Create company research document Advanced Features[](https://docs.tomba.io/integrations/pipedream#advanced-features) ------------------------------------------------------------------------------------ ### Custom Code Steps[](https://docs.tomba.io/integrations/pipedream#custom-code-steps) Pipedream allows you to write custom Node.js code for complex logic: Code `export default defineComponent({ async run({ steps, $ }) { const tombaResults = steps.tomba_email_finder.$return_value; // Custom validation logic if (tombaResults.data.score > 90) { // High confidence - proceed with outreach return { action: "send_email", email: tombaResults.data.email }; } else if (tombaResults.data.score > 70) { // Medium confidence - manual review return { action: "review", email: tombaResults.data.email }; } else { // Low confidence - skip return { action: "skip" }; } }, });` ### Error Handling[](https://docs.tomba.io/integrations/pipedream#error-handling) Add try-catch blocks for robust workflows: Code ``export default defineComponent({ async run({ steps, $ }) { try { const result = await axios($, { url: `https://api.tomba.io/v1/email-finder`, params: steps.trigger.event.body, headers: { "X-Tomba-Key": this.tomba.$auth.api_key, "X-Tomba-Secret": this.tomba.$auth.secret_key, }, }); return result; } catch (error) { // Log error and return gracefully console.error("Tomba API Error:", error); return { error: error.message, status: "failed" }; } }, });`` ### Batch Processing[](https://docs.tomba.io/integrations/pipedream#batch-processing) Process multiple items efficiently: Code ``export default defineComponent({ async run({ steps, $ }) { const leads = steps.trigger.event.body.leads; // Process in batches of 10 const batchSize = 10; const results = []; for (let i = 0; i < leads.length; i += batchSize) { const batch = leads.slice(i, i + batchSize); const promises = batch.map((lead) => axios($, { url: `https://api.tomba.io/v1/email-finder`, params: { domain: lead.domain, first_name: lead.firstName, last_name: lead.lastName, }, headers: { "X-Tomba-Key": this.tomba.$auth.api_key, "X-Tomba-Secret": this.tomba.$auth.secret_key, }, }), ); const batchResults = await Promise.all(promises); results.push(...batchResults); // Rate limiting - wait between batches await new Promise((resolve) => setTimeout(resolve, 1000)); } return results; }, });`` Troubleshooting[](https://docs.tomba.io/integrations/pipedream#troubleshooting) -------------------------------------------------------------------------------- ### Authentication Issues[](https://docs.tomba.io/integrations/pipedream#authentication-issues) **Problem:** "Authentication failed" or 401 errors **Solutions:** * Verify API credentials in [Tomba.io dashboard](https://app.tomba.io/api) * Reconnect the Tomba account in Pipedream * Check that your Tomba.io account is active * Ensure API keys haven't been regenerated ### Rate Limiting[](https://docs.tomba.io/integrations/pipedream#rate-limiting) **Problem:** 429 "Too Many Requests" errors **Solutions:** * Add delays between API calls using `setTimeout` * Implement exponential backoff * Check your [Tomba.io plan limits](https://tomba.io/pricing) * Use batch processing with rate limiting **Example with delay:** Code `// Add delay between requests await new Promise((resolve) => setTimeout(resolve, 1000));` ### No Data Returned[](https://docs.tomba.io/integrations/pipedream#no-data-returned) **Problem:** Empty results from Tomba API **Solutions:** * Verify input parameters are correct * Check that the email/domain exists in Tomba's database * Review workflow execution logs in Pipedream * Test the API call directly using curl or Postman ### Workflow Execution Errors[](https://docs.tomba.io/integrations/pipedream#workflow-execution-errors) **Problem:** Workflow fails mid-execution **Solutions:** * Add error handling with try-catch blocks * Use conditional steps to handle missing data * Enable "Continue on error" for non-critical steps * Check Pipedream's execution history for detailed logs Best Practices[](https://docs.tomba.io/integrations/pipedream#best-practices) ------------------------------------------------------------------------------ 1. **Use Environment Variables** - Store sensitive data in Pipedream secrets 2. **Implement Retries** - Add retry logic for failed API calls 3. **Validate Inputs** - Check data before sending to Tomba API 4. **Log Important Events** - Use `console.log()` for debugging 5. **Test Workflows** - Use Pipedream's testing feature before deploying 6. **Monitor Usage** - Track your Tomba.io API usage regularly 7. **Handle Edge Cases** - Account for missing or invalid data 8. **Optimize Performance** - Use parallel processing where possible Pipedream Features[](https://docs.tomba.io/integrations/pipedream#pipedream-features) -------------------------------------------------------------------------------------- ### Event Sources[](https://docs.tomba.io/integrations/pipedream#event-sources) Pipedream can listen to events from various sources: * HTTP webhooks * Cron schedules * Email (incoming) * RSS feeds * App events (new row in sheets, new email, etc.) ### Data Stores[](https://docs.tomba.io/integrations/pipedream#data-stores) Store data between workflow runs: Code `// Store email verification results await require("@pipedream/platform").axios($, { method: "POST", url: this.$checkpoint, data: { email: steps.tomba_verify.$return_value.data.email, status: steps.tomba_verify.$return_value.data.result, timestamp: Date.now(), }, });` ### SQL Queries[](https://docs.tomba.io/integrations/pipedream#sql-queries) Query databases directly in workflows: Code `import { PrismaClient } from "@prisma/client"; const prisma = new PrismaClient(); await prisma.lead.create({ data: { email: steps.tomba_finder.$return_value.data.email, verified: true, }, });` API Rate Limits[](https://docs.tomba.io/integrations/pipedream#api-rate-limits) -------------------------------------------------------------------------------- Tomba.io API limits vary by plan: * **Free**: 50 requests/month * **Starter**: 1,000 requests/month * **Growth**: 5,000 requests/month * **Business**: 25,000 requests/month * **Enterprise**: Custom limits [View detailed pricing](https://tomba.io/pricing) Pipedream Pricing[](https://docs.tomba.io/integrations/pipedream#pipedream-pricing) ------------------------------------------------------------------------------------ * **Free**: 100 workflow executions/day * **Basic**: $19/month - 1,000 executions/day * **Advanced**: $49/month - 5,000 executions/day * **Business**: Custom pricing [View Pipedream pricing](https://pipedream.com/pricing) Resources[](https://docs.tomba.io/integrations/pipedream#resources) -------------------------------------------------------------------- * [Tomba.io API Documentation](https://docs.tomba.io/) * [Pipedream Documentation](https://pipedream.com/docs) * [Tomba on Pipedream](https://pipedream.com/apps/tomba) * [Pipedream Community](https://pipedream.com/community) * [API Status](https://status.tomba.io/) Support[](https://docs.tomba.io/integrations/pipedream#support) ---------------------------------------------------------------- ### Tomba.io Support[](https://docs.tomba.io/integrations/pipedream#tombaio-support) * Email: [support@tomba.io](mailto:support@tomba.io) * Dashboard: [app.tomba.io](https://app.tomba.io/) ### Pipedream Support[](https://docs.tomba.io/integrations/pipedream#pipedream-support) * Community: [pipedream.com/community](https://pipedream.com/community) * Documentation: [pipedream.com/docs](https://pipedream.com/docs) * Twitter: [@PipedreamHQ](https://twitter.com/PipedreamHQ) FAQs[](https://docs.tomba.io/integrations/pipedream#faqs) ---------------------------------------------------------- **Q: Can I use Tomba.io in scheduled workflows?** A: Yes, create a Cron trigger and connect Tomba actions to run on a schedule. **Q: How do I handle pagination in Domain Search?** A: Use a loop step to iterate through pages, incrementing the page parameter. **Q: Can I export Tomba data to a database?** A: Yes, use Pipedream's database integrations (PostgreSQL, MySQL, etc.) after Tomba steps. **Q: Is it possible to combine multiple Tomba actions?** A: Absolutely! Chain multiple Tomba actions together in a single workflow. **Q: How do I test my workflow without consuming API credits?** A: Use Pipedream's test mode with sample data before deploying to production. Version History[](https://docs.tomba.io/integrations/pipedream#version-history) -------------------------------------------------------------------------------- **v1.0.0** - Initial Pipedream integration * Email Finder action * Email Verifier action * Domain Search action * LinkedIn Finder action * Enrichment action * Phone Finder action * Full Node.js SDK support Last modified on February 11, 2026 [Make (Integromat) Integration](https://docs.tomba.io/integrations/make) [Integrate Tomba Finder with n8n](https://docs.tomba.io/integrations/n8n) Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript --- # Integrate Tomba Finder with MyBB | Tomba Documentation Menu Overview[](https://docs.tomba.io/integrations/mybb#overview) ------------------------------------------------------------- The **MyBB Disposable Email Blocker** is an indispensable security tool that provides a superior line of defense for your forum registration process. This plugin enhances security and reliability by preventing users from registering with disposable, temporary, or invalid email addresses. ### Why Use This Plugin?[](https://docs.tomba.io/integrations/mybb#why-use-this-plugin) * 🛡️ **Enhanced Security**: Prevents spam registrations and fake accounts * 📧 **Email Quality**: Ensures only legitimate email addresses are used * 🚫 **Spam Reduction**: Significantly reduces spam and bot registrations * **User Experience**: Provides real-time validation feedback * 📊 **Data Integrity**: Maintains clean and reliable user database * ⚡ **JavaScript-Based**: Fast, client-side validation with instant feedback ### Key Benefits[](https://docs.tomba.io/integrations/mybb#key-benefits) * **Real-time Validation**: Instant feedback during registration * **Always Up-to-Date**: Daily updates of disposable email domains * **Fully Customizable**: Custom error messages and settings * **Lightweight**: JavaScript-based solution with minimal server load * **User-Friendly**: Clear error messages guide users to valid emails * **Comprehensive Protection**: Blocks disposable, invalid, and webmail addresses Features[](https://docs.tomba.io/integrations/mybb#features) ------------------------------------------------------------- ### Core Protection Features[](https://docs.tomba.io/integrations/mybb#core-protection-features) * **Invalid Email Detection**: Identifies malformed email addresses * **Invalid Domain Detection**: Blocks emails from non-existent domains * **Disposable Email Blocking**: Prevents temporary/throwaway email services * **Webmail Blocking**: Optional blocking of free webmail providers * **Real-time Validation**: Instant feedback during typing * **Custom Error Messages**: Personalized validation messages ### 🔄 Advanced Features[](https://docs.tomba.io/integrations/mybb#-advanced-features) * **Daily Domain Updates**: Automatically updated disposable email database * **Pattern Recognition**: Advanced detection algorithms * **Whitelist Support**: Allow specific domains despite general rules * **Multiple Validation Levels**: Different strictness levels available * **API Integration**: Powered by Tomba.io's email intelligence * **Browser Compatibility**: Works across all modern browsers ### 📋 Supported Detection Types[](https://docs.tomba.io/integrations/mybb#-supported-detection-types) | Detection Type | Description | Customizable | | --- | --- | --- | | **Invalid Format** | Malformed email addresses | Yes | | **Invalid Domains** | Non-existent or invalid domains | Yes | | **Disposable Emails** | Temporary/throwaway email services | Yes | | **Webmail Services** | Free email providers (Gmail, Yahoo, etc.) | Yes | | **Spam Domains** | Known spam and abuse domains | Yes | Installation[](https://docs.tomba.io/integrations/mybb#installation) --------------------------------------------------------------------- ### Prerequisites[](https://docs.tomba.io/integrations/mybb#prerequisites) * MyBB 1.8.x or higher * Administrator access to your MyBB forum * Web server with JavaScript support ### Step 1: Download the Plugin[](https://docs.tomba.io/integrations/mybb#step-1-download-the-plugin) 1. **Download** the latest release from [GitHub](https://github.com/tomba-io/mybb-disposable-email-blocker) 2. **Extract** the downloaded ZIP file 3. **Locate** the `inc` folder in the extracted files ### Step 2: Upload Files[](https://docs.tomba.io/integrations/mybb#step-2-upload-files) 1. **Connect** to your server via FTP or file manager 2. **Navigate** to your MyBB forum root directory 3. **Upload** the contents of the `inc` folder to your forum's `inc` folder 4. **Ensure** all files are properly uploaded and permissions are correct ### Step 3: Activate the Plugin[](https://docs.tomba.io/integrations/mybb#step-3-activate-the-plugin) 1. **Log in** to your MyBB Admin Control Panel (ACP) 2. **Navigate** to `Configuration` → `Plugins` 3. **Find** "Disposable Email Blocker" in the inactive plugins list 4. **Click** "Activate" to enable the plugin 5. **Verify** the plugin appears in the active plugins list ### File Structure After Installation[](https://docs.tomba.io/integrations/mybb#file-structure-after-installation) Code `inc/ ├── plugins/ │ └── disposable_email_blocker.php ├── languages/ │ └── english/ │ └── disposable_email_blocker.lang.php └── jscripts/ └── disposable-email-blocker.min.js` Configuration[](https://docs.tomba.io/integrations/mybb#configuration) ----------------------------------------------------------------------- ### Access Plugin Settings[](https://docs.tomba.io/integrations/mybb#access-plugin-settings) 1. **Navigate** to MyBB Admin Control Panel 2. **Go to** `Configuration` → `Settings` 3. **Find** "Disposable Email Blocker" settings group 4. **Configure** options according to your needs ### Available Settings[](https://docs.tomba.io/integrations/mybb#available-settings) #### General Settings[](https://docs.tomba.io/integrations/mybb#general-settings) | Setting | Description | Default | Options | | --- | --- | --- | --- | | **Enable Plugin** | Enable/disable the blocker | Enabled | On/Off | | **Validation Mode** | When to validate emails | Real-time | Real-time, On Submit | | **API Endpoint** | Custom API URL for validation | Tomba.io | Custom URL | | **Debug Mode** | Show debug information | Disabled | On/Off | #### Disposable Email Settings[](https://docs.tomba.io/integrations/mybb#disposable-email-settings) | Setting | Description | Default | | --- | --- | --- | | **Block Disposable** | Block disposable email services | Enabled | | **Disposable Message** | Custom error message | "Disposable emails are not allowed" | | **Update Frequency** | How often to update domain list | Daily | | **Custom Domains** | Additional domains to block | Empty | #### Webmail Settings[](https://docs.tomba.io/integrations/mybb#webmail-settings) | Setting | Description | Default | | --- | --- | --- | | **Block Webmail** | Block webmail providers | Disabled | | **Webmail Message** | Warning/error message | "Professional email recommended" | | **Webmail Action** | Block or warn | Warn | | **Allowed Webmail** | Whitelist specific webmail | Empty | #### Error Display Settings[](https://docs.tomba.io/integrations/mybb#error-display-settings) | Setting | Description | Default | | --- | --- | --- | | **Error Style** | CSS styling for error messages | Red text | | **Error Position** | Where to show errors | Below field | | **Animation** | Error message animation | Fade in | | **Icon Display** | Show warning/error icons | Enabled | ### Sample Configuration[](https://docs.tomba.io/integrations/mybb#sample-configuration) Code `// Example settings in MyBB ACP 'disposable_email_blocker_enabled' => '1', 'disposable_email_blocker_block_webmail' => '0', 'disposable_email_blocker_disposable_message' => 'Disposable emails are not allowed. Please use a permanent email address.', 'disposable_email_blocker_webmail_message' => 'Warning: Professional email addresses are recommended for better account security.', 'disposable_email_blocker_debug' => '0'` Usage[](https://docs.tomba.io/integrations/mybb#usage) ------------------------------------------------------- ### For Forum Administrators[](https://docs.tomba.io/integrations/mybb#for-forum-administrators) #### Basic Setup[](https://docs.tomba.io/integrations/mybb#basic-setup) 1. **Install and activate** the plugin 2. **Configure settings** in the ACP 3. **Test registration** with disposable emails 4. **Monitor** registration attempts and spam reduction 5. **Adjust settings** based on your community needs #### Advanced Configuration[](https://docs.tomba.io/integrations/mybb#advanced-configuration) Code `// Custom JavaScript configuration (optional) ` ### For Users (Registration Experience)[](https://docs.tomba.io/integrations/mybb#for-users-registration-experience) #### Valid Email Registration[](https://docs.tomba.io/integrations/mybb#valid-email-registration) Code `User enters: john.doe@company.com Result: Email accepted, registration proceeds` #### Disposable Email Attempt[](https://docs.tomba.io/integrations/mybb#disposable-email-attempt) Code `User enters: temp123@10minutemail.com ❌ Result: Error message appears "Disposable emails are not allowed. Please use a permanent email address."` #### Webmail Warning (If Configured)[](https://docs.tomba.io/integrations/mybb#webmail-warning-if-configured) Code `User enters: john.doe@gmail.com ⚠️ Result: Warning message (registration still allowed) "Professional email addresses are recommended for better account security."` Technical Details[](https://docs.tomba.io/integrations/mybb#technical-details) ------------------------------------------------------------------------------- ### How It Works[](https://docs.tomba.io/integrations/mybb#how-it-works) 1. **JavaScript Integration**: Plugin integrates with MyBB registration forms 2. **Real-time Validation**: Validates emails as users type 3. **API Communication**: Checks emails against Tomba.io database 4. **Domain Database**: Maintains updated list of disposable domains 5. **Client-side Processing**: Fast validation without server round-trips 6. **Fallback Protection**: Server-side validation as backup ### Validation Process[](https://docs.tomba.io/integrations/mybb#validation-process) Code `graph TD A[User Types Email] --> B[JavaScript Validation] B --> C{Email Format Valid?} C -->|No| D[Show Format Error] C -->|Yes| E[Check Domain] E --> F{Domain Valid?} F -->|No| G[Show Domain Error] F -->|Yes| H[Check Disposable] H --> I{Is Disposable?} I -->|Yes| J[Show Disposable Error] I -->|No| K[Check Webmail] K --> L{Is Webmail?} L -->|Yes & Blocked| M[Show Webmail Error] L -->|Yes & Warning| N[Show Warning] L -->|No| O[Email Approved]` ### JavaScript API[](https://docs.tomba.io/integrations/mybb#javascript-api) The plugin provides a JavaScript API for advanced customization: Code `// Initialize with custom settings new Disposable.Blocker({ disposable: { message: "Custom disposable email error message", }, webmail: { message: "Custom webmail warning message", block: false, }, }); // Event listeners disposableBlocker.on("invalid", function (email, reason) { console.log("Invalid email:", email, "Reason:", reason); }); disposableBlocker.on("valid", function (email) { console.log("Valid email:", email); });` Troubleshooting[](https://docs.tomba.io/integrations/mybb#troubleshooting) --------------------------------------------------------------------------- ### Common Issues[](https://docs.tomba.io/integrations/mybb#common-issues) #### Issue: False Positives (Valid Emails Blocked)[](https://docs.tomba.io/integrations/mybb#issue-false-positives-valid-emails-blocked) **Symptoms:** * Legitimate emails being rejected * Users can't register with business emails * Over-aggressive blocking **Solutions:** 1. **Adjust settings** - reduce strictness level 2. **Add to whitelist** - allow specific domains 3. **Check domain status** - verify domain isn't miscategorized 4. **Update plugin** - ensure latest domain database #### Issue: Disposable Emails Still Getting Through[](https://docs.tomba.io/integrations/mybb#issue-disposable-emails-still-getting-through) **Symptoms:** * Spam registrations continuing * Known disposable domains not blocked * Plugin seems ineffective **Solutions:** 1. **Update domain database** - ensure latest disposable domain list 2. **Check plugin settings** - verify disposable blocking is enabled 3. **Monitor new domains** - add newly discovered disposable services 4. **Enable server-side validation** - add backup validation #### Issue: Performance Problems[](https://docs.tomba.io/integrations/mybb#issue-performance-problems) **Symptoms:** * Slow page loading * Registration form lag * High server load **Solutions:** 1. **Enable caching** - cache domain lookups locally 2. **Optimize settings** - reduce API calls frequency 3. **Use CDN** - load JavaScript from CDN 4. **Check server resources** - ensure adequate server capacity ### Debug Mode[](https://docs.tomba.io/integrations/mybb#debug-mode) Enable debug mode to troubleshoot issues: 1. **Access** plugin settings in ACP 2. **Enable** debug mode 3. **Check** browser console for detailed logs 4. **Review** validation process step-by-step Code `// Debug output example Disposable Blocker Debug: - Email: test@10minutemail.com - Domain: 10minutemail.com - Type: disposable - Action: block - Message: Disposable emails are not allowed` ### Log File Analysis[](https://docs.tomba.io/integrations/mybb#log-file-analysis) Check MyBB error logs for plugin-related issues: TerminalCode `# Common log locations tail -f /path/to/mybb/inc/logs/error.log tail -f /var/log/apache2/error.log tail -f /var/log/nginx/error.log` Support[](https://docs.tomba.io/integrations/mybb#support) ----------------------------------------------------------- ### Getting Help[](https://docs.tomba.io/integrations/mybb#getting-help) #### Documentation & Resources[](https://docs.tomba.io/integrations/mybb#documentation--resources) * 📚 [Plugin Documentation](https://github.com/tomba-io/mybb-disposable-email-blocker/wiki) * 🔧 [MyBB Community Forums](https://community.mybb.com/) * 🌐 [Tomba.io API Documentation](https://docs.tomba.io/) * 💡 [MyBB Plugin Development Guide](https://docs.mybb.com/1.8/development/) #### Support Channels[](https://docs.tomba.io/integrations/mybb#support-channels) * 🐛 **Bug Reports**: [GitHub Issues](https://github.com/tomba-io/mybb-disposable-email-blocker/issues) * 💬 **Feature Requests**: [GitHub Discussions](https://github.com/tomba-io/mybb-disposable-email-blocker/discussions) * 📧 **Email Support**: [support@tomba.io](mailto:support@tomba.io) * 🏛️ **MyBB Community**: [MyBB Forum Thread](https://community.mybb.com/mods.php?action=view&pid=1571) ### Frequently Asked Questions[](https://docs.tomba.io/integrations/mybb#frequently-asked-questions) #### Q: Is this plugin free?[](https://docs.tomba.io/integrations/mybb#q-is-this-plugin-free) **A:** Yes, the Disposable Email Blocker plugin is completely free to use. #### Q: Does it work with custom MyBB themes?[](https://docs.tomba.io/integrations/mybb#q-does-it-work-with-custom-mybb-themes) **A:** Yes, the plugin is designed to work with all MyBB themes. The JavaScript integrates automatically with registration forms. #### Q: Can I customize the error messages?[](https://docs.tomba.io/integrations/mybb#q-can-i-customize-the-error-messages) **A:** Yes, all error messages are fully customizable through the plugin settings in your MyBB Admin Control Panel. #### Q: How often is the disposable domain list updated?[](https://docs.tomba.io/integrations/mybb#q-how-often-is-the-disposable-domain-list-updated) **A:** The domain database is updated daily to include new disposable email services and remove inactive ones. #### Q: Can I block specific domains manually?[](https://docs.tomba.io/integrations/mybb#q-can-i-block-specific-domains-manually) **A:** Yes, you can add custom domains to the blocklist through the plugin settings. #### Q: Does it affect forum performance?[](https://docs.tomba.io/integrations/mybb#q-does-it-affect-forum-performance) **A:** No, the plugin uses client-side JavaScript validation, which doesn't impact server performance. #### Q: Can users bypass the validation?[](https://docs.tomba.io/integrations/mybb#q-can-users-bypass-the-validation) **A:** The plugin includes both client-side and server-side validation to prevent bypassing. Last modified on April 27, 2026 [Orthogonal Integration](https://docs.tomba.io/integrations/orthogonal) [Integrate Tomba Finder with Maltego](https://docs.tomba.io/integrations/maltego) PHP Javascript Javascript Javascript --- # Phone Finder Bulk | Tomba Documentation Menu Overview[](https://docs.tomba.io/bulks/phone-finder#overview) -------------------------------------------------------------- [Bulks Phone Finder](https://tomba.io/bulks/phone-finder) enables you to discover phone numbers associated with email addresses, company websites, and LinkedIn profiles. Expand your contact methods and enable multi-channel outreach strategies with comprehensive phone number discovery. ### Key Features[](https://docs.tomba.io/bulks/phone-finder#key-features) * **Multi-Source Discovery**: Find phone numbers from emails, websites, and LinkedIn URLs * **Bulk Processing**: Process up to 2,500 contacts per operation * **Contact Expansion**: Add phone numbers to existing contact databases * **Multi-Channel Outreach**: Enable phone-based sales and marketing activities * **Quality Filtering**: Filter out invalid and non-business phone numbers ### How Phone Finder Bulk Works[](https://docs.tomba.io/bulks/phone-finder#how-phone-finder-bulk-works) 1. **Prepare Contact List**: Compile emails, website URLs, or LinkedIn profile URLs 2. **Upload Data**: Provide contact information for phone number discovery 3. **Process Discovery**: Launch phone number search algorithms 4. **Review Results**: Examine discovered phone numbers with source context 5. **Export Contacts**: Download enriched contact lists with phone numbers ### Limitations[](https://docs.tomba.io/bulks/phone-finder#limitations) * Each Bulk is limited to 2,500 email addresses, websites, or LinkedIn profile URLs * Webmail addresses (Gmail, Outlook, etc.) and disposable emails are skipped * Special or unexpected characters may be removed from your file * Duplicate and invalid lines will not be imported Go SDK Integration[](https://docs.tomba.io/bulks/phone-finder#go-sdk-integration) ---------------------------------------------------------------------------------- ### Installation[](https://docs.tomba.io/bulks/phone-finder#installation) TerminalCode `go get github.com/tomba-io/go` ### Basic Setup[](https://docs.tomba.io/bulks/phone-finder#basic-setup) Code `package main import ( "fmt" "log" "time" "strings" "github.com/tomba-io/go/tomba" "github.com/tomba-io/go/tomba/models" ) func main() { // Initialize Tomba client client := tomba.NewTomba("your-api-key", "your-secret-key") // Your phone finder code here }` ### Finding Phone Numbers from Email List[](https://docs.tomba.io/bulks/phone-finder#finding-phone-numbers-from-email-list) Code `// Email addresses for phone number discovery emailList := []string{ "contact@techcorp.com", "sales@startup.io", "info@enterprise.com", "support@business.net", "hello@company.org", } params := &models.BulkCreateParams{ Name: "Phone Discovery - Email Sources", List: strings.Join(emailList, "\n"), Sources: true, // Include sources for context Notifie: true, // Notify when complete } // Create phone finder bulk operation response, err := client.CreateBulk(models.BulkTypePhoneFinder, params) if err != nil { log.Fatal("Failed to create phone finder bulk:", err) } bulkID := *response.Data.ID fmt.Printf("Created phone finder bulk with ID: %d\n", bulkID)` ### Finding Phone Numbers from Website URLs[](https://docs.tomba.io/bulks/phone-finder#finding-phone-numbers-from-website-urls) Code `// Company websites for phone discovery websites := []string{ "https://techcorp.com", "https://startup.io", "https://enterprise.com", "https://business.net", "https://company.org", } params := &models.BulkCreateParams{ Name: "Phone Discovery - Company Websites", List: strings.Join(websites, "\n"), Sources: true, Notifie: true, } response, err := client.CreateBulk(models.BulkTypePhoneFinder, params) if err != nil { log.Fatal("Failed to create phone finder bulk:", err) } bulkID := *response.Data.ID fmt.Printf("Created website phone finder bulk: %d\n", bulkID)` ### Creating Phone Finder from CSV File[](https://docs.tomba.io/bulks/phone-finder#creating-phone-finder-from-csv-file) Code `// Create phone finder from CSV with mixed sources params := &models.BulkCreateParams{ Name: "Multi-Channel Phone Discovery", Delimiter: ",", Column: 2, // Source column (email/website/linkedin URL) Sources: true, Notifie: true, } // CSV can contain emails, websites, or LinkedIn URLs response, err := client.CreateBulkWithFile( models.BulkTypePhoneFinder, params, "/path/to/contact-sources.csv", ) if err != nil { log.Fatal("Failed to create bulk with file:", err) } bulkID := *response.Data.ID fmt.Printf("Created phone finder bulk: %d\n", bulkID)` ### Launching and Monitoring Phone Discovery[](https://docs.tomba.io/bulks/phone-finder#launching-and-monitoring-phone-discovery) Code `// Launch the phone discovery process launchResponse, err := client.LaunchBulk(models.BulkTypePhoneFinder, bulkID) if err != nil { log.Fatal("Failed to launch phone finder:", err) } fmt.Println("Phone number discovery started!") // Monitor progress startTime := time.Now() for { progress, err := client.GetBulkProgress(models.BulkTypePhoneFinder, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) time.Sleep(30 * time.Second) continue } elapsed := time.Since(startTime).Round(time.Second) fmt.Printf("Phone discovery: %d%% (%d processed) - %v elapsed\n", progress.Progress, progress.Processed, elapsed, ) if progress.Status { fmt.Println("Phone number discovery completed!") break } // Check every 45 seconds (phone discovery can be slower) time.Sleep(45 * time.Second) }` ### Retrieving Phone Discovery Results[](https://docs.tomba.io/bulks/phone-finder#retrieving-phone-discovery-results) Code `// Get detailed results bulk, err := client.GetBulk(models.BulkTypePhoneFinder, bulkID) if err != nil { log.Fatal("Failed to get bulk details:", err) } bulkInfo := bulk.Data[0] fmt.Printf("Phone Discovery Results:\n") fmt.Printf("- Campaign: %s\n", bulkInfo.Name) fmt.Printf("- Status: %v\n", bulkInfo.Status) fmt.Printf("- Sources Processed: %d\n", bulkInfo.Processed) // Download results with phone numbers err = client.SaveBulkResults( models.BulkTypePhoneFinder, bulkID, "phone-numbers.csv", "full", ) if err != nil { log.Fatal("Failed to download results:", err) } fmt.Println("Phone numbers saved to phone-numbers.csv") // Download only records where phones were found err = client.SaveBulkResults( models.BulkTypePhoneFinder, bulkID, "found-phones.csv", "valid", ) if err != nil { log.Printf("Warning: Could not save found phones: %v", err) } else { fmt.Println("Found phone numbers saved to found-phones.csv") }` ### Managing Phone Finder Operations[](https://docs.tomba.io/bulks/phone-finder#managing-phone-finder-operations) Code `// List all phone finder bulks params := &models.BulkGetParams{ Page: 1, Limit: 15, Direction: "desc", Filter: "all", } bulks, err := client.GetAllPhoneFinderBulks(params) if err != nil { log.Fatal("Failed to get phone finder bulks:", err) } fmt.Printf("Phone Finder Operations:\n") for _, bulk := range bulks.Data { status := "In Progress" if bulk.Status { status = "Completed" } fmt.Printf("- %s (ID: %d)\n", bulk.Name, bulk.BulkID) fmt.Printf(" Status: %s | Progress: %d%% | Processed: %d\n", status, bulk.Progress, bulk.Processed) created := bulk.CreatedAt.Format("2006-01-02 15:04") fmt.Printf(" Created: %s\n", created) fmt.Println() } // Archive old completed operations for _, bulk := range bulks.Data { if bulk.Status && time.Since(bulk.CreatedAt) > 7*24*time.Hour { // 7 days old _, err := client.ArchiveBulk(models.BulkTypePhoneFinder, bulk.BulkID) if err != nil { log.Printf("Failed to archive bulk %d: %v", bulk.BulkID, err) } else { fmt.Printf("Archived old phone finder: %s\n", bulk.Name) } } }` ### Advanced Phone Discovery Workflow[](https://docs.tomba.io/bulks/phone-finder#advanced-phone-discovery-workflow) Code ``type PhoneDiscoveryResult struct { Source string SourceType string // "email", "website", "linkedin" PhoneNumber string Found bool Country string Type string // "mobile", "landline", etc. } func discoverPhonesFromMixedSources(client *tomba.Tomba, sources []string) ([]PhoneDiscoveryResult, error) { // Step 1: Categorize sources var emails, websites, linkedinURLs []string for _, source := range sources { source = strings.TrimSpace(source) if strings.Contains(source, "@") { emails = append(emails, source) } else if strings.Contains(source, "linkedin.com") { linkedinURLs = append(linkedinURLs, source) } else if strings.HasPrefix(source, "http") { websites = append(websites, source) } } log.Printf("Categorized sources: %d emails, %d websites, %d LinkedIn profiles", len(emails), len(websites), len(linkedinURLs)) var allResults []PhoneDiscoveryResult // Step 2: Process each category separately for better tracking if len(emails) > 0 { results, err := processPhoneDiscoveryBatch(client, emails, "email") if err != nil { log.Printf("Email phone discovery failed: %v", err) } else { allResults = append(allResults, results...) } } if len(websites) > 0 { results, err := processPhoneDiscoveryBatch(client, websites, "website") if err != nil { log.Printf("Website phone discovery failed: %v", err) } else { allResults = append(allResults, results...) } } if len(linkedinURLs) > 0 { results, err := processPhoneDiscoveryBatch(client, linkedinURLs, "linkedin") if err != nil { log.Printf("LinkedIn phone discovery failed: %v", err) } else { allResults = append(allResults, results...) } } return allResults, nil } func processPhoneDiscoveryBatch(client *tomba.Tomba, sources []string, sourceType string) ([]PhoneDiscoveryResult, error) { // Respect the 2,500 limit if len(sources) > 2500 { log.Printf("Warning: Truncating %s sources from %d to 2,500", sourceType, len(sources)) sources = sources[:2500] } // Create batch operation params := &models.BulkCreateParams{ Name: fmt.Sprintf("Phone Discovery - %s sources - %s", strings.Title(sourceType), time.Now().Format("15:04:05")), List: strings.Join(sources, "\n"), Sources: true, Notifie: false, } response, err := client.CreateBulk(models.BulkTypePhoneFinder, params) if err != nil { return nil, fmt.Errorf("failed to create phone finder bulk: %w", err) } bulkID := *response.Data.ID log.Printf("Created %s phone discovery bulk: %d", sourceType, bulkID) // Launch and monitor _, err = client.LaunchBulk(models.BulkTypePhoneFinder, bulkID) if err != nil { return nil, fmt.Errorf("failed to launch bulk: %w", err) } // Wait for completion with timeout timeout := time.After(45 * time.Minute) ticker := time.NewTicker(30 * time.Second) defer ticker.Stop() for { select { case <-timeout: return nil, fmt.Errorf("phone discovery timed out for %s sources", sourceType) case <-ticker.C: progress, err := client.GetBulkProgress(models.BulkTypePhoneFinder, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) continue } if progress.Progress%25 == 0 || progress.Status { log.Printf("%s phone discovery: %d%% (%d processed)", strings.Title(sourceType), progress.Progress, progress.Processed) } if progress.Status { // Parse results return parsePhoneResults(client, bulkID, sourceType) } } } } func parsePhoneResults(client *tomba.Tomba, bulkID int64, sourceType string) ([]PhoneDiscoveryResult, error) { // Download results data, err := client.DownloadBulk(models.BulkTypePhoneFinder, bulkID, &models.BulkDownloadParams{Type: "full"}) if err != nil { return nil, fmt.Errorf("failed to download results: %w", err) } // Parse CSV results (simplified parsing) var results []PhoneDiscoveryResult lines := strings.Split(string(data), "\n") for i, line := range lines { if i == 0 || strings.TrimSpace(line) == "" { continue // Skip header and empty lines } // Simple CSV parsing - use proper CSV parser in production parts := strings.Split(line, ",") if len(parts) >= 2 { result := PhoneDiscoveryResult{ Source: strings.Trim(parts[0], `"`), SourceType: sourceType, Found: false, } if len(parts) > 1 && strings.TrimSpace(parts[1]) != "" { result.PhoneNumber = strings.Trim(parts[1], `"`) result.Found = true } // Extract additional metadata if available if len(parts) > 2 { result.Country = strings.Trim(parts[2], `"`) } if len(parts) > 3 { result.Type = strings.Trim(parts[3], `"`) } results = append(results, result) } } log.Printf("Parsed %d %s phone results (%d found)", len(results), sourceType, countFoundPhones(results)) return results, nil } func countFoundPhones(results []PhoneDiscoveryResult) int { count := 0 for _, result := range results { if result.Found { count++ } } return count } // Complete workflow example func runPhoneDiscoveryCampaign(client *tomba.Tomba, csvPath string) error { // Read sources from CSV file, err := os.Open(csvPath) if err != nil { return fmt.Errorf("failed to open CSV: %w", err) } defer file.Close() reader := csv.NewReader(file) records, err := reader.ReadAll() if err != nil { return fmt.Errorf("failed to read CSV: %w", err) } var sources []string for i, record := range records { if i == 0 || len(record) == 0 { // Skip header and empty rows continue } sources = append(sources, record[0]) } log.Printf("Processing phone discovery for %d sources", len(sources)) // Discover phones results, err := discoverPhonesFromMixedSources(client, sources) if err != nil { return fmt.Errorf("phone discovery failed: %w", err) } // Analyze results totalSources := len(results) phonesFound := countFoundPhones(results) // Group by source type typeStats := make(map[string]struct{ Total, Found int }) for _, result := range results { stats := typeStats[result.SourceType] stats.Total++ if result.Found { stats.Found++ } typeStats[result.SourceType] = stats } // Report results fmt.Printf("\nPhone Discovery Campaign Results:\n") fmt.Printf("Total Sources: %d\n", totalSources) fmt.Printf("Phones Found: %d\n", phonesFound) fmt.Printf("Success Rate: %.1f%%\n", float64(phonesFound)/float64(totalSources)*100) fmt.Printf("\nBreakdown by Source Type:\n") for sourceType, stats := range typeStats { successRate := float64(stats.Found) / float64(stats.Total) * 100 fmt.Printf("- %s: %d/%d (%.1f%%)\n", strings.Title(sourceType), stats.Found, stats.Total, successRate) } // Save consolidated results timestamp := time.Now().Format("20060102-150405") outputFile := fmt.Sprintf("phone-discovery-results-%s.csv", timestamp) return savePhoneResults(results, outputFile) } func savePhoneResults(results []PhoneDiscoveryResult, filename string) error { file, err := os.Create(filename) if err != nil { return err } defer file.Close() writer := csv.NewWriter(file) defer writer.Flush() // Write header writer.Write([]string{"Source", "Source_Type", "Phone_Number", "Found", "Country", "Type"}) // Write results for _, result := range results { writer.Write([]string{ result.Source, result.SourceType, result.PhoneNumber, fmt.Sprintf("%v", result.Found), result.Country, result.Type, }) } log.Printf("Saved phone discovery results to: %s", filename) return nil } // Usage example func main() { client := tomba.NewTomba("your-api-key", "your-secret-key") err := runPhoneDiscoveryCampaign(client, "mixed-sources.csv") if err != nil { log.Fatal("Phone discovery campaign failed:", err) } }`` ### CSV File Format Examples[](https://docs.tomba.io/bulks/phone-finder#csv-file-format-examples) **Mixed Sources** Code `source john.doe@example.com https://techcorp.com https://www.linkedin.com/in/jane-smith contact@startup.io https://business.net support@company.org` **With Source Type Labels** Code `source,notes john.doe@example.com,Sales contact https://techcorp.com,website,Company https://www.linkedin.com/in/jane-smith,linkedin,CTO profile contact@startup.io,General inquiry https://business.net/contact,Contact page` Best Practices[](https://docs.tomba.io/bulks/phone-finder#best-practices) -------------------------------------------------------------------------- * **Business Focus**: Prioritize business contacts over personal ones * **Data Quality**: Use verified email addresses and legitimate websites as sources * **Compliance**: Ensure compliance with telecommunications regulations and privacy laws * **Multi-Channel Strategy**: Integrate phone data with email and social outreach * **Regular Updates**: Refresh phone data as contact information changes * **Source Validation**: Validate input sources before processing * **Batch Management**: Process sources in manageable batches under 2,500 limit * **Result Analysis**: Track success rates by source type to optimize strategies * **Privacy Respect**: Use discovered phone numbers responsibly and ethically * **Quality Control**: Verify phone numbers before using for outreach campaigns Last modified on April 27, 2026 [LinkedIn Finder Bulk](https://docs.tomba.io/bulks/linkedin-finder) [Phone Validator Bulk](https://docs.tomba.io/bulks/phone-validator) Go Go Go Go Go Go Go Go --- # LinkedIn Finder Bulk | Tomba Documentation Menu Overview[](https://docs.tomba.io/bulks/linkedin-finder#overview) ----------------------------------------------------------------- [Bulk Linkedin Finder](https://tomba.io/bulks/linkedin-finder) allows you to extract email addresses from LinkedIn profile URLs at scale. Transform your LinkedIn prospecting efforts by converting profile links into actionable contact information for direct outreach. ### Key Features[](https://docs.tomba.io/bulks/linkedin-finder#key-features) * **LinkedIn Integration**: Process LinkedIn profile URLs to find email addresses * **Bulk Processing**: Handle up to 10,000 LinkedIn URLs per operation * **Professional Context**: Maintain connection between LinkedIn profiles and email contacts * **Pattern Matching**: Use LinkedIn data to improve email accuracy * **Export Capabilities**: Download results with LinkedIn profile associations ### How LinkedIn Finder Bulk Works[](https://docs.tomba.io/bulks/linkedin-finder#how-linkedin-finder-bulk-works) 1. **Collect LinkedIn URLs**: Gather LinkedIn profile URLs from your prospecting activities 2. **Upload URL List**: Provide LinkedIn URLs via text input or file upload 3. **Process Profiles**: Launch the email discovery process 4. **Review Results**: Examine found email addresses with LinkedIn context 5. **Export Data**: Download email addresses linked to LinkedIn profiles ### Limitations[](https://docs.tomba.io/bulks/linkedin-finder#limitations) * Each Bulk is limited to 10,000 URLs * Additional rows will be skipped * Some special or unexpected characters may be deleted in the file * Invalid URLs won't be imported * Duplicate URLs won't be imported Go SDK Integration[](https://docs.tomba.io/bulks/linkedin-finder#go-sdk-integration) ------------------------------------------------------------------------------------- ### Installation[](https://docs.tomba.io/bulks/linkedin-finder#installation) TerminalCode `go get github.com/tomba-io/go` #### Basic Setup[](https://docs.tomba.io/bulks/linkedin-finder#basic-setup) Code `package main import ( "fmt" "log" "time" "strings" "github.com/tomba-io/go/tomba" "github.com/tomba-io/go/tomba/models" ) func main() { // Initialize Tomba client client := tomba.NewTomba("your-api-key", "your-secret-key") // Your LinkedIn finder code here }` ### Creating LinkedIn Finder Bulk with URL List[](https://docs.tomba.io/bulks/linkedin-finder#creating-linkedin-finder-bulk-with-url-list) Code `// LinkedIn URLs collected from prospecting linkedinURLs := []string{ "https://www.linkedin.com/in/johndoe", "https://www.linkedin.com/in/janesmith", "https://www.linkedin.com/in/mikejohnson", "https://linkedin.com/in/sarahwilson", "https://www.linkedin.com/in/company-ceo", } // Join URLs with newlines for the bulk operation urlList := strings.Join(linkedinURLs, "\n") params := &models.BulkCreateParams{ Name: "LinkedIn Prospects - Tech Industry Q1", List: urlList, Sources: true, // Include sources for context Verify: false, // Skip verification for LinkedIn findings Notifie: true, // Notify when complete } // Create the LinkedIn finder bulk response, err := client.CreateBulk(models.BulkTypeLinkedIn, params) if err != nil { log.Fatal("Failed to create LinkedIn finder bulk:", err) } bulkID := *response.Data.ID fmt.Printf("Created LinkedIn finder bulk with ID: %d\n", bulkID)` ### Creating LinkedIn Finder Bulk from CSV File[](https://docs.tomba.io/bulks/linkedin-finder#creating-linkedin-finder-bulk-from-csv-file) Code `// Create LinkedIn finder from CSV containing URLs params := &models.BulkCreateParams{ Name: "Sales Prospects - LinkedIn Discovery", Delimiter: ",", Column: 1, // LinkedIn URL column (1-based index) Sources: true, Notifie: true, } // Upload CSV file with LinkedIn URLs response, err := client.CreateBulkWithFile( models.BulkTypeLinkedIn, params, "/path/to/linkedin-profiles.csv", ) if err != nil { log.Fatal("Failed to create bulk with file:", err) } bulkID := *response.Data.ID fmt.Printf("Created LinkedIn finder bulk: %d\n", bulkID)` ### Single LinkedIn Profile Processing (for comparison)[](https://docs.tomba.io/bulks/linkedin-finder#single-linkedin-profile-processing-for-comparison) Code `// Process a single LinkedIn profile linkedinURL := "https://www.linkedin.com/in/example-profile" result, err := client.LinkedinFinder(linkedinURL) if err != nil { log.Printf("Failed to find email for %s: %v", linkedinURL, err) } else { fmt.Printf("LinkedIn Profile: %s\n", linkedinURL) if result.Data.Email != nil { fmt.Printf("Found Email: %s\n", *result.Data.Email) fmt.Printf("Name: %s %s\n", result.Data.FirstName, result.Data.LastName) if result.Data.Position != nil { fmt.Printf("Position: %s\n", *result.Data.Position) } } else { fmt.Println("No email found for this profile") } }` ### Launching and Monitoring LinkedIn Processing[](https://docs.tomba.io/bulks/linkedin-finder#launching-and-monitoring-linkedin-processing) Code `// Launch the LinkedIn email discovery launchResponse, err := client.LaunchBulk(models.BulkTypeLinkedIn, bulkID) if err != nil { log.Fatal("Failed to launch LinkedIn finder:", err) } fmt.Println("LinkedIn email discovery started!") // Monitor progress with detailed logging startTime := time.Now() ticker := time.NewTicker(30 * time.Second) defer ticker.Stop() for { progress, err := client.GetBulkProgress(models.BulkTypeLinkedIn, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) time.Sleep(30 * time.Second) continue } elapsed := time.Since(startTime).Round(time.Second) fmt.Printf("LinkedIn processing: %d%% (%d profiles processed) - %v elapsed\n", progress.Progress, progress.Processed, elapsed, ) if progress.Status { fmt.Println("LinkedIn email discovery completed!") break } // LinkedIn processing can be slower, check every 30 seconds time.Sleep(30 * time.Second) }` ### Retrieving LinkedIn Discovery Results[](https://docs.tomba.io/bulks/linkedin-finder#retrieving-linkedin-discovery-results) Code `// Get detailed results bulk, err := client.GetBulk(models.BulkTypeLinkedIn, bulkID) if err != nil { log.Fatal("Failed to get bulk details:", err) } bulkInfo := bulk.Data[0] fmt.Printf("LinkedIn Discovery Results:\n") fmt.Printf("- Campaign: %s\n", bulkInfo.Name) fmt.Printf("- Status: %v\n", bulkInfo.Status) fmt.Printf("- Profiles Processed: %d\n", bulkInfo.Processed) if bulkInfo.TotalEmails != nil { fmt.Printf("- Emails Found: %d\n", *bulkInfo.TotalEmails) successRate := float64(*bulkInfo.TotalEmails) / float64(bulkInfo.Processed) * 100 fmt.Printf("- Success Rate: %.1f%%\n", successRate) } // Download all results with LinkedIn context err = client.SaveBulkResults( models.BulkTypeLinkedIn, bulkID, "linkedin-emails.csv", "full", ) if err != nil { log.Fatal("Failed to download results:", err) } fmt.Println("LinkedIn results saved to linkedin-emails.csv")` ### Advanced Processing with URL Validation[](https://docs.tomba.io/bulks/linkedin-finder#advanced-processing-with-url-validation) Code `// Validate and process LinkedIn URLs func validateLinkedInURL(url string) bool { url = strings.ToLower(strings.TrimSpace(url)) return strings.Contains(url, "linkedin.com/in/") || strings.Contains(url, "linkedin.com/pub/") } func processLinkedInProspects(client *tomba.Tomba, urls []string) error { // Step 1: Validate URLs var validURLs []string for _, url := range urls { if validateLinkedInURL(url) { validURLs = append(validURLs, url) } else { log.Printf("Skipping invalid URL: %s", url) } } if len(validURLs) == 0 { return fmt.Errorf("no valid LinkedIn URLs found") } fmt.Printf("Processing %d valid LinkedIn URLs\n", len(validURLs)) // Step 2: Create bulk operation params := &models.BulkCreateParams{ Name: fmt.Sprintf("LinkedIn Discovery - %s", time.Now().Format("2006-01-02")), List: strings.Join(validURLs, "\n"), Sources: true, Notifie: true, } response, err := client.CreateBulk(models.BulkTypeLinkedIn, params) if err != nil { return fmt.Errorf("failed to create LinkedIn bulk: %w", err) } bulkID := *response.Data.ID log.Printf("Created LinkedIn bulk: %d", bulkID) // Step 3: Launch and monitor _, err = client.LaunchBulk(models.BulkTypeLinkedIn, bulkID) if err != nil { return fmt.Errorf("failed to launch bulk: %w", err) } // Monitor with timeout and progress tracking timeout := time.After(60 * time.Minute) // LinkedIn processing can take longer ticker := time.NewTicker(45 * time.Second) defer ticker.Stop() startTime := time.Now() for { select { case <-timeout: return fmt.Errorf("LinkedIn processing timed out after 60 minutes") case <-ticker.C: progress, err := client.GetBulkProgress(models.BulkTypeLinkedIn, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) continue } if progress.Progress%25 == 0 || progress.Status { elapsed := time.Since(startTime).Round(time.Second) log.Printf("LinkedIn progress: %d%% (%d/%d) - %v", progress.Progress, progress.Processed, len(validURLs), elapsed) } if progress.Status { // Download and analyze results bulk, err := client.GetBulk(models.BulkTypeLinkedIn, bulkID) if err != nil { return fmt.Errorf("failed to get final results: %w", err) } info := bulk.Data[0] log.Printf("LinkedIn discovery completed!") log.Printf("Total processed: %d", info.Processed) if info.TotalEmails != nil { successRate := float64(*info.TotalEmails) / float64(info.Processed) * 100 log.Printf("Emails found: %d (%.1f%% success rate)", *info.TotalEmails, successRate) } // Save results timestamp := time.Now().Format("20060102-150405") outputFile := fmt.Sprintf("linkedin-results-%s.csv", timestamp) err = client.SaveBulkResults(models.BulkTypeLinkedIn, bulkID, outputFile, "full") if err != nil { return fmt.Errorf("failed to save results: %w", err) } log.Printf("Results saved to: %s", outputFile) return nil } } } }` ### Managing LinkedIn Finder Operations[](https://docs.tomba.io/bulks/linkedin-finder#managing-linkedin-finder-operations) Code `// List all LinkedIn finder bulks params := &models.BulkGetParams{ Page: 1, Limit: 10, Direction: "desc", Filter: "all", } bulks, err := client.GetAllLinkedInBulks(params) if err != nil { log.Fatal("Failed to get LinkedIn bulks:", err) } fmt.Printf("LinkedIn Finder Operations:\n") for _, bulk := range bulks.Data { status := "In Progress" if bulk.Status { status = "Completed" } fmt.Printf("- %s (ID: %d)\n", bulk.Name, bulk.BulkID) fmt.Printf(" Status: %s | Progress: %d%% | Processed: %d\n", status, bulk.Progress, bulk.Processed) if bulk.TotalEmails != nil { fmt.Printf(" Emails Found: %d\n", *bulk.TotalEmails) } fmt.Println() } // Clean up old operations for _, bulk := range bulks.Data { if bulk.Status && time.Since(bulk.CreatedAt) > 30*24*time.Hour { // 30 days old _, err := client.ArchiveBulk(models.BulkTypeLinkedIn, bulk.BulkID) if err != nil { log.Printf("Failed to archive bulk %d: %v", bulk.BulkID, err) } else { fmt.Printf("Archived old bulk: %s\n", bulk.Name) } } }` ### Complete LinkedIn Prospecting Workflow[](https://docs.tomba.io/bulks/linkedin-finder#complete-linkedin-prospecting-workflow) Code `type LinkedInProspect struct { URL string Email string Name string Position string Company string Found bool } func runLinkedInCampaign(client *tomba.Tomba, csvPath string) ([]LinkedInProspect, error) { // Step 1: Read and validate LinkedIn URLs from CSV file, err := os.Open(csvPath) if err != nil { return nil, fmt.Errorf("failed to open CSV: %w", err) } defer file.Close() reader := csv.NewReader(file) records, err := reader.ReadAll() if err != nil { return nil, fmt.Errorf("failed to read CSV: %w", err) } var validURLs []string for i, record := range records { if i == 0 { // Skip header continue } if len(record) > 0 && validateLinkedInURL(record[0]) { validURLs = append(validURLs, record[0]) } } log.Printf("Found %d valid LinkedIn URLs", len(validURLs)) // Step 2: Process URLs in batches if needed batchSize := 5000 // Process in smaller batches for better management var allResults []LinkedInProspect for i := 0; i < len(validURLs); i += batchSize { end := i + batchSize if end > len(validURLs) { end = len(validURLs) } batchURLs := validURLs[i:end] log.Printf("Processing batch %d/%d (%d URLs)", i/batchSize+1, (len(validURLs)+batchSize-1)/batchSize, len(batchURLs)) batchResults, err := processLinkedInBatch(client, batchURLs) if err != nil { log.Printf("Batch processing failed: %v", err) continue } allResults = append(allResults, batchResults...) // Small delay between batches if end < len(validURLs) { time.Sleep(5 * time.Second) } } return allResults, nil } func processLinkedInBatch(client *tomba.Tomba, urls []string) ([]LinkedInProspect, error) { // Create and process batch params := &models.BulkCreateParams{ Name: fmt.Sprintf("LinkedIn Batch - %s", time.Now().Format("15:04:05")), List: strings.Join(urls, "\n"), Sources: true, Notifie: false, // Don't notify for batches } response, err := client.CreateBulk(models.BulkTypeLinkedIn, params) if err != nil { return nil, err } bulkID := *response.Data.ID // Launch and wait for completion _, err = client.LaunchBulk(models.BulkTypeLinkedIn, bulkID) if err != nil { return nil, err } // Wait for completion for { progress, err := client.GetBulkProgress(models.BulkTypeLinkedIn, bulkID) if err != nil { time.Sleep(30 * time.Second) continue } if progress.Status { break } time.Sleep(30 * time.Second) } // Parse results data, err := client.DownloadBulk(models.BulkTypeLinkedIn, bulkID, &models.BulkDownloadParams{Type: "full"}) if err != nil { return nil, err } // Parse CSV results (simplified - would need proper CSV parsing) var results []LinkedInProspect lines := strings.Split(string(data), "\n") for _, line := range lines[1:] { // Skip header if strings.TrimSpace(line) == "" { continue } // Parse CSV line and create LinkedInProspect // This is simplified - use proper CSV parsing library parts := strings.Split(line, ",") if len(parts) >= 2 { prospect := LinkedInProspect{ URL: parts[0], Email: parts[1], Found: parts[1] != "", } results = append(results, prospect) } } return results, nil } // Usage example func main() { client := tomba.NewTomba("your-api-key", "your-secret-key") results, err := runLinkedInCampaign(client, "linkedin-prospects.csv") if err != nil { log.Fatal("LinkedIn campaign failed:", err) } // Analyze results totalProspects := len(results) emailsFound := 0 for _, prospect := range results { if prospect.Found { emailsFound++ } } fmt.Printf("\nLinkedIn Campaign Summary:\n") fmt.Printf("Total Prospects: %d\n", totalProspects) fmt.Printf("Emails Found: %d\n", emailsFound) fmt.Printf("Success Rate: %.1f%%\n", float64(emailsFound)/float64(totalProspects)*100) }` ### CSV File Format Examples[](https://docs.tomba.io/bulks/linkedin-finder#csv-file-format-examples) **Simple LinkedIn URL List** Code `linkedin_url https://www.linkedin.com/in/johndoe https://www.linkedin.com/in/janesmith https://linkedin.com/in/mikejohnson https://www.linkedin.com/in/sarahconnor` **With Additional Context** Code `linkedin_url,name,company,notes https://www.linkedin.com/in/johndoe,John Doe,Tech Corp,CEO prospect https://www.linkedin.com/in/janesmith,Jane Smith,StartupXYZ,CTO contact https://linkedin.com/in/mikejohnson,Mike Johnson,Enterprise Co,Decision maker` Best Practices[](https://docs.tomba.io/bulks/linkedin-finder#best-practices) ----------------------------------------------------------------------------- * **Valid LinkedIn URLs**: Ensure URLs are properly formatted and accessible * **Profile Quality**: Use complete, professional LinkedIn profiles for better results * **Compliance**: Respect LinkedIn's terms of service and privacy policies * **Data Integration**: Connect LinkedIn insights with email outreach strategies * **Regular Updates**: Refresh data as LinkedIn profiles change * **Batch Processing**: Process large lists in manageable batches * **Rate Limiting**: Be mindful of processing limits and API quotas * **Result Analysis**: Track success rates to optimize prospecting strategies * **Privacy Considerations**: Ensure compliance with data privacy regulations * **Quality Control**: Validate found emails before using for outreach Last modified on April 27, 2026 [Email Verifier Bulk](https://docs.tomba.io/bulks/email-verifier) [Phone Finder Bulk](https://docs.tomba.io/bulks/phone-finder) Go Go Go Go Go Go Go Go Go --- # Phone Validator Bulk | Tomba Documentation Menu Overview[](https://docs.tomba.io/bulks/phone-validator#overview) ----------------------------------------------------------------- [Bulks Phone Validator](https://tomba.io/bulks/phone-validator) verifies phone numbers at scale to ensure accuracy and validity for SMS campaigns, sales calling, and customer communication. Improve contact rates and reduce wasted outreach efforts with comprehensive phone validation. ### Key Features[](https://docs.tomba.io/bulks/phone-validator#key-features) * **Number Validation**: Verify phone number format, validity, and carrier information * **Bulk Processing**: Validate up to 2,500 phone numbers per operation * **Carrier Detection**: Identify mobile vs. landline numbers for appropriate outreach * **Geographic Information**: Determine location and timezone data for numbers * **Quality Scoring**: Get detailed validation status for each phone number * **Export Options**: Download validated numbers with detailed metadata ### How Phone Validator Bulk Works[](https://docs.tomba.io/bulks/phone-validator#how-phone-validator-bulk-works) 1. **Prepare Phone List**: Compile phone numbers requiring validation 2. **Upload Numbers**: Provide phone numbers via CSV file with country information 3. **Configure Validation**: Set validation parameters and quality requirements 4. **Process Validation**: Launch comprehensive phone number verification 5. **Export Results**: Download validated phone lists with quality scores ### Limitations[](https://docs.tomba.io/bulks/phone-validator#limitations) * Each Bulk is limited to 2,500 phone numbers * Special or unexpected characters may be removed from your file * Duplicate and invalid lines will not be imported Go SDK Integration[](https://docs.tomba.io/bulks/phone-validator#go-sdk-integration) ------------------------------------------------------------------------------------- ### Installation[](https://docs.tomba.io/bulks/phone-validator#installation) TerminalCode `go get github.com/tomba-io/go` ### Basic Setup[](https://docs.tomba.io/bulks/phone-validator#basic-setup) Code `package main import ( "fmt" "log" "time" "encoding/csv" "os" "github.com/tomba-io/go/tomba" "github.com/tomba-io/go/tomba/models" ) func main() { // Initialize Tomba client client := tomba.NewTomba("your-api-key", "your-secret-key") // Your phone validation code here }` ### Creating Phone Validator Bulk from CSV[](https://docs.tomba.io/bulks/phone-validator#creating-phone-validator-bulk-from-csv) Code `// Create phone validator bulk with column mapping params := &models.BulkPhoneValidatorCreateParams{ BulkCreateParams: models.BulkCreateParams{ Name: "Phone Validation - Customer Database", Delimiter: ",", }, BulkPhoneValidatorParams: models.BulkPhoneValidatorParams{ ColumnPhone: 2, // Phone number column (1-based) ColumnCountry: 3, // Country code column (optional but recommended) }, } // Upload CSV and create validation bulk response, err := client.CreatePhoneValidatorBulk(params, "/path/to/phone-list.csv") if err != nil { log.Fatal("Failed to create phone validator bulk:", err) } bulkID := *response.Data.ID fmt.Printf("Created phone validator bulk: %d\n", bulkID)` ### Alternative: Phone Numbers Only CSV[](https://docs.tomba.io/bulks/phone-validator#alternative-phone-numbers-only-csv) Code `// When CSV contains only phone numbers without country codes params := &models.BulkPhoneValidatorCreateParams{ BulkCreateParams: models.BulkCreateParams{ Name: "Phone Validation - Simple List", Delimiter: ",", }, BulkPhoneValidatorParams: models.BulkPhoneValidatorParams{ ColumnPhone: 1, // Phone number in first column ColumnCountry: 0, // No country column }, } response, err := client.CreatePhoneValidatorBulk(params, "simple-phone-list.csv") if err != nil { log.Fatal("Failed to create validation bulk:", err) }` ### Launching and Monitoring Validation[](https://docs.tomba.io/bulks/phone-validator#launching-and-monitoring-validation) Code `// Launch the validation process launchResponse, err := client.LaunchBulk(models.BulkTypePhoneValidator, bulkID) if err != nil { log.Fatal("Failed to launch phone validation:", err) } fmt.Println("Phone validation started!") // Monitor progress with detailed status startTime := time.Now() for { progress, err := client.GetBulkProgress(models.BulkTypePhoneValidator, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) time.Sleep(20 * time.Second) continue } elapsed := time.Since(startTime).Round(time.Second) fmt.Printf("Validation: %d%% complete (%d processed) - %v elapsed\n", progress.Progress, progress.Processed, elapsed, ) if progress.Status { fmt.Println("Phone validation completed!") break } // Check every 20 seconds (validation is typically faster) time.Sleep(20 * time.Second) }` ### Retrieving Validation Results[](https://docs.tomba.io/bulks/phone-validator#retrieving-validation-results) Code `// Get detailed validation results bulk, err := client.GetBulk(models.BulkTypePhoneValidator, bulkID) if err != nil { log.Fatal("Failed to get bulk details:", err) } bulkInfo := bulk.Data[0] fmt.Printf("Validation Summary:\n") fmt.Printf("- Campaign: %s\n", bulkInfo.Name) fmt.Printf("- Status: %v\n", bulkInfo.Status) fmt.Printf("- Numbers Processed: %d\n", bulkInfo.Processed) // Download all validation results err = client.SaveBulkResults( models.BulkTypePhoneValidator, bulkID, "validation-results.csv", "full", ) if err != nil { log.Fatal("Failed to download results:", err) } fmt.Println("Validation results saved to validation-results.csv")` ### Downloading Segmented Results[](https://docs.tomba.io/bulks/phone-validator#downloading-segmented-results) Code `// Download only valid phone numbers err = client.SaveBulkResults( models.BulkTypePhoneValidator, bulkID, "valid-phones.csv", "valid", ) if err != nil { log.Printf("Error downloading valid phones: %v", err) } else { fmt.Println("Valid phone numbers saved to valid-phones.csv") } // Download invalid or unverifiable phone numbers err = client.SaveBulkResults( models.BulkTypePhoneValidator, bulkID, "invalid-phones.csv", "not_found", ) if err != nil { log.Printf("Error downloading invalid phones: %v", err) } else { fmt.Println("Invalid phone numbers saved to invalid-phones.csv") }` ### Managing Phone Validator Operations[](https://docs.tomba.io/bulks/phone-validator#managing-phone-validator-operations) Code `// List all phone validator bulks params := &models.BulkGetParams{ Page: 1, Limit: 10, Direction: "desc", Filter: "all", } bulks, err := client.GetAllPhoneValidatorBulks(params) if err != nil { log.Fatal("Failed to get phone validator bulks:", err) } fmt.Printf("Phone Validator Operations:\n") for _, bulk := range bulks.Data { status := "In Progress" if bulk.Status { status = "Completed" } fmt.Printf("- %s (ID: %d)\n", bulk.Name, bulk.BulkID) fmt.Printf(" Status: %s | Progress: %d%% | Processed: %d\n", status, bulk.Progress, bulk.Processed) created := bulk.CreatedAt.Format("2006-01-02 15:04") fmt.Printf(" Created: %s\n", created) fmt.Println() } // Rename a validation bulk renameParams := &models.BulkRenameParams{ Name: "Updated Phone Validation Campaign", } _, err = client.RenameBulk(models.BulkTypePhoneValidator, bulkID, renameParams) if err != nil { log.Fatal("Failed to rename bulk:", err) } // Archive completed validation _, err = client.ArchiveBulk(models.BulkTypePhoneValidator, bulkID) if err != nil { log.Fatal("Failed to archive bulk:", err) }` ### Advanced Validation Workflow with Analysis[](https://docs.tomba.io/bulks/phone-validator#advanced-validation-workflow-with-analysis) Code ``type PhoneValidationResult struct { OriginalNumber string FormattedNumber string Valid bool LineType string // "mobile", "landline", "voip", etc. Carrier string Country string CountryCode string Region string Timezone string Risk string // "low", "medium", "high" } func validatePhoneDatabase(client *tomba.Tomba, csvPath string, phoneCol, countryCol int) (*ValidationSummary, error) { // Step 1: Create validation bulk params := &models.BulkPhoneValidatorCreateParams{ BulkCreateParams: models.BulkCreateParams{ Name: fmt.Sprintf("Phone Validation - %s", time.Now().Format("2006-01-02")), Delimiter: ",", }, BulkPhoneValidatorParams: models.BulkPhoneValidatorParams{ ColumnPhone: phoneCol, ColumnCountry: countryCol, }, } response, err := client.CreatePhoneValidatorBulk(params, csvPath) if err != nil { return nil, fmt.Errorf("failed to create validation bulk: %w", err) } bulkID := *response.Data.ID log.Printf("Created phone validation bulk: %d", bulkID) // Step 2: Launch validation _, err = client.LaunchBulk(models.BulkTypePhoneValidator, bulkID) if err != nil { return nil, fmt.Errorf("failed to launch validation: %w", err) } log.Println("Phone validation in progress...") // Step 3: Monitor with progress tracking timeout := time.After(30 * time.Minute) ticker := time.NewTicker(15 * time.Second) defer ticker.Stop() startTime := time.Now() for { select { case <-timeout: return nil, fmt.Errorf("validation timed out after 30 minutes") case <-ticker.C: progress, err := client.GetBulkProgress(models.BulkTypePhoneValidator, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) continue } if progress.Progress%25 == 0 || progress.Status { elapsed := time.Since(startTime).Round(time.Second) log.Printf("Validation: %d%% (%d processed) - %v", progress.Progress, progress.Processed, elapsed) } if progress.Status { // Step 4: Analyze and download results summary, err := analyzeValidationResults(client, bulkID, startTime) if err != nil { return nil, fmt.Errorf("failed to analyze results: %w", err) } log.Printf("Phone validation completed! %d numbers processed in %v", summary.TotalNumbers, summary.Duration.Round(time.Second)) return summary, nil } } } } func analyzeValidationResults(client *tomba.Tomba, bulkID int64, startTime time.Time) (*ValidationSummary, error) { // Get bulk details bulk, err := client.GetBulk(models.BulkTypePhoneValidator, bulkID) if err != nil { return nil, err } info := bulk.Data[0] // Download and parse results timestamp := time.Now().Format("20060102-150405") allResultsFile := fmt.Sprintf("phone-validation-all-%s.csv", timestamp) validPhonesFile := fmt.Sprintf("phone-validation-valid-%s.csv", timestamp) // Download all results err = client.SaveBulkResults(models.BulkTypePhoneValidator, bulkID, allResultsFile, "full") if err != nil { log.Printf("Warning: Failed to save all results: %v", err) } // Download valid results err = client.SaveBulkResults(models.BulkTypePhoneValidator, bulkID, validPhonesFile, "valid") if err != nil { log.Printf("Warning: Failed to save valid results: %v", err) } // Parse results for analysis results, err := parseValidationResults(allResultsFile) if err != nil { log.Printf("Warning: Could not parse results for analysis: %v", err) results = []PhoneValidationResult{} // Continue with empty results } // Build summary summary := &ValidationSummary{ BulkID: bulkID, Name: info.Name, TotalNumbers: info.Processed, Duration: time.Since(startTime), AllResultsFile: allResultsFile, ValidPhonesFile: validPhonesFile, } // Analyze results if len(results) > 0 { summary.ValidNumbers = countValidNumbers(results) summary.LineTypes = analyzeLineTypes(results) summary.Countries = analyzeCountries(results) summary.Carriers = analyzeCarriers(results) } return summary, nil } func parseValidationResults(filename string) ([]PhoneValidationResult, error) { file, err := os.Open(filename) if err != nil { return nil, err } defer file.Close() reader := csv.NewReader(file) records, err := reader.ReadAll() if err != nil { return nil, err } var results []PhoneValidationResult // Skip header row for i := 1; i < len(records); i++ { record := records[i] if len(record) < 3 { continue } result := PhoneValidationResult{ OriginalNumber: getCSVField(record, 0), Valid: getCSVField(record, 1) == "valid", LineType: getCSVField(record, 2), } // Parse additional fields if available if len(record) > 3 { result.FormattedNumber = getCSVField(record, 3) } if len(record) > 4 { result.Carrier = getCSVField(record, 4) } if len(record) > 5 { result.Country = getCSVField(record, 5) } if len(record) > 6 { result.CountryCode = getCSVField(record, 6) } results = append(results, result) } return results, nil } func getCSVField(record []string, index int) string { if index < len(record) { return strings.Trim(record[index], `"`) } return "" } func countValidNumbers(results []PhoneValidationResult) int { count := 0 for _, result := range results { if result.Valid { count++ } } return count } func analyzeLineTypes(results []PhoneValidationResult) map[string]int { types := make(map[string]int) for _, result := range results { if result.Valid && result.LineType != "" { types[result.LineType]++ } } return types } func analyzeCountries(results []PhoneValidationResult) map[string]int { countries := make(map[string]int) for _, result := range results { if result.Valid && result.Country != "" { countries[result.Country]++ } } return countries } func analyzeCarriers(results []PhoneValidationResult) map[string]int { carriers := make(map[string]int) for _, result := range results { if result.Valid && result.Carrier != "" { carriers[result.Carrier]++ } } return carriers } // Summary structure for validation results type ValidationSummary struct { BulkID int64 Name string TotalNumbers int ValidNumbers int Duration time.Duration AllResultsFile string ValidPhonesFile string LineTypes map[string]int Countries map[string]int Carriers map[string]int } func (s *ValidationSummary) String() string { validRate := float64(s.ValidNumbers) / float64(s.TotalNumbers) * 100 result := fmt.Sprintf(` Phone Validation Summary: - Bulk ID: %d - Name: %s - Total Numbers: %d - Valid Numbers: %d (%.1f%%) - Duration: %v - All Results: %s - Valid Only: %s`, s.BulkID, s.Name, s.TotalNumbers, s.ValidNumbers, validRate, s.Duration.Round(time.Second), s.AllResultsFile, s.ValidPhonesFile) if len(s.LineTypes) > 0 { result += "\n\nLine Type Distribution:" for lineType, count := range s.LineTypes { percent := float64(count) / float64(s.ValidNumbers) * 100 result += fmt.Sprintf("\n- %s: %d (%.1f%%)", lineType, count, percent) } } if len(s.Countries) > 0 { result += "\n\nTop Countries:" // Show top 5 countries type countryCount struct { country string count int } var sorted []countryCount for country, count := range s.Countries { sorted = append(sorted, countryCount{country, count}) } // Simple sort by count (descending) for i := 0; i < len(sorted)-1; i++ { for j := 0; j < len(sorted)-i-1; j++ { if sorted[j].count < sorted[j+1].count { sorted[j], sorted[j+1] = sorted[j+1], sorted[j] } } } for i, cc := range sorted { if i >= 5 { // Top 5 only break } percent := float64(cc.count) / float64(s.ValidNumbers) * 100 result += fmt.Sprintf("\n- %s: %d (%.1f%%)", cc.country, cc.count, percent) } } return result } // Usage example func main() { client := tomba.NewTomba("your-api-key", "your-secret-key") // Validate phone database summary, err := validatePhoneDatabase(client, "phone-database.csv", 2, 3) if err != nil { log.Fatal("Phone validation failed:", err) } fmt.Println(summary) }`` ### CSV File Format Examples[](https://docs.tomba.io/bulks/phone-validator#csv-file-format-examples) **With Country Codes** Code `name,phone,country John Doe,+1-555-0123,US Jane Smith,+44-20-7123-4567,GB Pierre Martin,+33-1-23-45-67-89,FR Maria Garcia,+34-91-123-4567,ES` **Phone Numbers Only** Code `phone +1-555-0123 +44-20-7123-4567 +33-1-23-45-67-89 +34-91-123-4567 555-0123` **With Additional Context** Code `customer_id,name,phone,country,source 12345,John Doe,+1-555-0123,US,Website 12346,Jane Smith,+44-20-7123-4567,GB,CRM Import 12347,Pierre Martin,+33-1-23-45-67-89,FR,Lead Gen` Best Practices[](https://docs.tomba.io/bulks/phone-validator#best-practices) ----------------------------------------------------------------------------- * **Consistent Formatting**: Use consistent international phone number formatting * **Country Information**: Include country codes or country columns for accurate validation * **Regular Validation**: Validate phone lists regularly to maintain quality * **Campaign Optimization**: Use validation results to improve calling and SMS campaigns * **Compliance Checking**: Verify numbers comply with local telecommunications regulations * **Batch Processing**: Process large lists in batches under 2,500 limit * **Result Segmentation**: Separate valid, invalid, and risky numbers for targeted use * **Quality Thresholds**: Set validation quality standards based on use case * **Data Privacy**: Ensure phone validation complies with privacy regulations * **Cost Optimization**: Track validation costs and optimize processing efficiency Last modified on April 27, 2026 [Phone Finder Bulk](https://docs.tomba.io/bulks/phone-finder) [Similar Domain Bulk](https://docs.tomba.io/bulks/similar) Go Go Go Go Go Go Go Go --- # 95% Delivery Guarantee - Email Finder | Tomba Documentation Menu Tomba.io stands behind the quality of our Email Finder service with a **95% Delivery Guarantee**. When you use our Email Finder to discover professional email addresses, we guarantee that 95% of the emails will be deliverable and reach their intended recipients. * * * What Our 95% Delivery Guarantee Covers[](https://docs.tomba.io/email-finder-delivery-guarantee#what-our-95-delivery-guarantee-covers) -------------------------------------------------------------------------------------------------------------------------------------- ### Scope of Guarantee[](https://docs.tomba.io/email-finder-delivery-guarantee#scope-of-guarantee) Our 95% delivery guarantee applies to emails discovered through: * **[Email Finder API](https://tomba.io/email-finder) **: Direct email discovery using name and domain * **[Domain Search](https://tomba.io/domain-search) **: Company-wide email discovery * **[Author Finder](https://tomba.io/author-finder) **: Content author email discovery * **[LinkedIn Finder](https://tomba.io/linkedin-finder) **: Professional email discovery from LinkedIn profiles ### Quality Metrics[](https://docs.tomba.io/email-finder-delivery-guarantee#quality-metrics) * **Deliverability Rate**: 95% of discovered emails will be deliverable * **Validity Verification**: All emails pass basic format and domain validation * **Active Mailbox**: Emails reach active, monitored mailboxes * **Real-time Status**: Up-to-date deliverability information * * * How We Achieve 95% Deliverability[](https://docs.tomba.io/email-finder-delivery-guarantee#how-we-achieve-95-deliverability) ---------------------------------------------------------------------------------------------------------------------------- ### Advanced Discovery Methods[](https://docs.tomba.io/email-finder-delivery-guarantee#advanced-discovery-methods) #### 1\. **Multi-Source Verification**[](https://docs.tomba.io/email-finder-delivery-guarantee#1-multi-source-verification) * Cross-reference emails from multiple public sources * Validate against company websites and directories * Verify through social media profiles and professional networks * Confirm with business registration data #### 2\. **Pattern Recognition**[](https://docs.tomba.io/email-finder-delivery-guarantee#2-pattern-recognition) * Analyze company email patterns and formats * Use machine learning to predict valid email structures * Apply domain-specific formatting rules * Validate against known corporate email schemes #### 3\. **Real-time Validation**[](https://docs.tomba.io/email-finder-delivery-guarantee#3-real-time-validation) * SMTP server verification for each discovered email * MX record validation for domain authenticity * Mailbox existence confirmation * Bounce prediction algorithms ### Quality Assurance Process[](https://docs.tomba.io/email-finder-delivery-guarantee#quality-assurance-process) #### Pre-Discovery Filtering[](https://docs.tomba.io/email-finder-delivery-guarantee#pre-discovery-filtering) * Domain reputation analysis * Company legitimacy verification * Public data source validation * Pattern reliability assessment #### Post-Discovery Verification[](https://docs.tomba.io/email-finder-delivery-guarantee#post-discovery-verification) * Comprehensive deliverability testing * Format validation and standardization * Duplicate detection and removal * Confidence score calculation * * * Confidence Scoring System[](https://docs.tomba.io/email-finder-delivery-guarantee#confidence-scoring-system) ------------------------------------------------------------------------------------------------------------- Every email discovered through our Email Finder includes a confidence score that indicates delivery probability: ### Score Ranges[](https://docs.tomba.io/email-finder-delivery-guarantee#score-ranges) * **90-100**: Very High - Guaranteed deliverable * **80-89**: High - Highly likely to deliver * **70-79**: Good - Good delivery probability * **60-69**: Medium - Moderate confidence * **Below 60**: Lower confidence (not covered by guarantee) ### Factors Affecting Scores[](https://docs.tomba.io/email-finder-delivery-guarantee#factors-affecting-scores) * **Source Quality**: Reliability of the discovery source * **Verification Results**: SMTP and MX validation outcomes * **Pattern Matching**: Accuracy of email format prediction * **Historical Data**: Past performance of similar emails * * * Guarantee Terms and Conditions[](https://docs.tomba.io/email-finder-delivery-guarantee#guarantee-terms-and-conditions) ----------------------------------------------------------------------------------------------------------------------- ### Eligibility Requirements[](https://docs.tomba.io/email-finder-delivery-guarantee#eligibility-requirements) #### Qualifying Usage[](https://docs.tomba.io/email-finder-delivery-guarantee#qualifying-usage) * Emails discovered through official Tomba.io APIs or tools * Confidence scores of 60 or higher * Used within 30 days of discovery * Proper email authentication and sending practices #### Proper Implementation[](https://docs.tomba.io/email-finder-delivery-guarantee#proper-implementation) * Follow email marketing best practices * Use appropriate email authentication (SPF, DKIM, DMARC) * Maintain good sender reputation * Comply with anti-spam regulations ### Measurement Criteria[](https://docs.tomba.io/email-finder-delivery-guarantee#measurement-criteria) #### Delivery Success Metrics[](https://docs.tomba.io/email-finder-delivery-guarantee#delivery-success-metrics) * Email reaches recipient's mailbox (not spam folder) * No hard bounces or permanent delivery failures * Successful SMTP transaction completion * Recipient server accepts the message #### Exclusions[](https://docs.tomba.io/email-finder-delivery-guarantee#exclusions) * Soft bounces due to temporary issues * Spam folder placement (if email is delivered) * Recipient-side filtering or blocking * ISP throttling or rate limiting * * * Claim Process[](https://docs.tomba.io/email-finder-delivery-guarantee#claim-process) ------------------------------------------------------------------------------------- ### When to File a Claim[](https://docs.tomba.io/email-finder-delivery-guarantee#when-to-file-a-claim) Submit a delivery guarantee claim if: * Your delivery rate falls below 95% for qualifying emails * You experience consistent hard bounces * Email addresses are consistently invalid * Systematic delivery failures occur ### Required Documentation[](https://docs.tomba.io/email-finder-delivery-guarantee#required-documentation) * **Email List**: Complete list of discovered emails * **Delivery Reports**: Detailed bounce and delivery logs * **Confidence Scores**: Tomba.io provided confidence ratings * **Timeline**: Dates of discovery and sending attempts * **Technical Details**: SMTP logs and error messages ### Claim Submission Process[](https://docs.tomba.io/email-finder-delivery-guarantee#claim-submission-process) #### Step 1: Gather Evidence[](https://docs.tomba.io/email-finder-delivery-guarantee#step-1-gather-evidence) * Export your email discovery history from Tomba.io * Compile delivery reports from your email service provider * Document specific bounces and delivery failures * Calculate your actual delivery rate #### Step 2: Submit Claim[](https://docs.tomba.io/email-finder-delivery-guarantee#step-2-submit-claim) * Contact our support team at [info@tomba.io](mailto:info@tomba.io) * Provide all required documentation * Include your account details and usage period * Specify the delivery rate discrepancy #### Step 3: Review Process[](https://docs.tomba.io/email-finder-delivery-guarantee#step-3-review-process) * Our team reviews your claim within 5 business days * We verify the discovery methods and confidence scores * Technical analysis of delivery failures * Assessment of compliance with guarantee terms * * * Remedies and Compensation[](https://docs.tomba.io/email-finder-delivery-guarantee#remedies-and-compensation) ------------------------------------------------------------------------------------------------------------- ### Available Remedies[](https://docs.tomba.io/email-finder-delivery-guarantee#available-remedies) #### Service Credits[](https://docs.tomba.io/email-finder-delivery-guarantee#service-credits) * Additional API credits equal to failed email discoveries * Bonus credits for future email discovery services * Extended service periods to compensate for poor performance * Priority support for account optimization #### Re-Discovery Services[](https://docs.tomba.io/email-finder-delivery-guarantee#re-discovery-services) * Free re-discovery of failed email addresses * Enhanced verification for problematic domains * Alternative email discovery methods * Updated contact information research #### Account Optimization[](https://docs.tomba.io/email-finder-delivery-guarantee#account-optimization) * Personal consultation on delivery best practices * Email authentication setup assistance * Sender reputation improvement guidance * Custom integration support ### Credit Calculation[](https://docs.tomba.io/email-finder-delivery-guarantee#credit-calculation) Service credits are calculated based on: * Number of failed email discoveries * Percentage below the 95% guarantee threshold * Account tier and subscription level * Historical account performance * * * Best Practices for Maximum Deliverability[](https://docs.tomba.io/email-finder-delivery-guarantee#best-practices-for-maximum-deliverability) --------------------------------------------------------------------------------------------------------------------------------------------- ### Email Discovery Optimization[](https://docs.tomba.io/email-finder-delivery-guarantee#email-discovery-optimization) #### Target Quality Sources[](https://docs.tomba.io/email-finder-delivery-guarantee#target-quality-sources) * Focus on high-confidence score emails (80+) * Prioritize recently updated contact information * Use multiple discovery methods for verification * Cross-reference with existing contact databases #### Timing Considerations[](https://docs.tomba.io/email-finder-delivery-guarantee#timing-considerations) * Use discovered emails promptly (within 30 days) * Verify emails before large campaigns * Monitor delivery rates continuously * Update contact lists regularly ### Sending Best Practices[](https://docs.tomba.io/email-finder-delivery-guarantee#sending-best-practices) #### Technical Setup[](https://docs.tomba.io/email-finder-delivery-guarantee#technical-setup) * Implement proper SPF, DKIM, and DMARC records * Use dedicated IP addresses for high-volume sending * Maintain consistent sending patterns * Monitor sender reputation scores #### Content and Compliance[](https://docs.tomba.io/email-finder-delivery-guarantee#content-and-compliance) * Follow CAN-SPAM and GDPR requirements * Provide clear unsubscribe mechanisms * Personalize messages appropriately * Avoid spam trigger words and phrases * * * Monitoring and Reporting[](https://docs.tomba.io/email-finder-delivery-guarantee#monitoring-and-reporting) ----------------------------------------------------------------------------------------------------------- ### Delivery Analytics[](https://docs.tomba.io/email-finder-delivery-guarantee#delivery-analytics) We provide comprehensive analytics to help you track and optimize delivery performance: * **Real-time Delivery Rates**: Monitor your current delivery performance * **Confidence Score Trends**: Track the quality of discovered emails over time * **Bounce Analysis**: Detailed breakdown of delivery failures * **Historical Performance**: Long-term delivery rate trends ### Performance Alerts[](https://docs.tomba.io/email-finder-delivery-guarantee#performance-alerts) * Automated notifications when delivery rates drop below thresholds * Early warning system for potential delivery issues * Recommendations for improvement actions * Proactive support team outreach * * * Technical Support[](https://docs.tomba.io/email-finder-delivery-guarantee#technical-support) --------------------------------------------------------------------------------------------- ### Guarantee Support Team[](https://docs.tomba.io/email-finder-delivery-guarantee#guarantee-support-team) Our specialized guarantee support team provides: * **Technical Consultation**: Expert advice on delivery optimization * **Integration Support**: Help with API implementation and best practices * **Performance Analysis**: Detailed review of your delivery metrics * **Custom Solutions**: Tailored approaches for specific use cases ### Contact Information[](https://docs.tomba.io/email-finder-delivery-guarantee#contact-information) * **Guarantee Claims**: [info@tomba.io](mailto:info@tomba.io) * **Technical Support**: [support@tomba.io](mailto:support@tomba.io) * * * Frequently Asked Questions[](https://docs.tomba.io/email-finder-delivery-guarantee#frequently-asked-questions) --------------------------------------------------------------------------------------------------------------- ### Q: What happens if my delivery rate is exactly 95%?[](https://docs.tomba.io/email-finder-delivery-guarantee#q-what-happens-if-my-delivery-rate-is-exactly-95) A: You meet our guarantee threshold and no remedial action is required. Our guarantee covers delivery rates of 95% or higher. ### Q: Do temporary bounces count against the guarantee?[](https://docs.tomba.io/email-finder-delivery-guarantee#q-do-temporary-bounces-count-against-the-guarantee) A: No, only permanent hard bounces count against the delivery guarantee. Temporary issues like full mailboxes or server downtime are excluded. ### Q: How quickly must I use discovered emails to maintain guarantee coverage?[](https://docs.tomba.io/email-finder-delivery-guarantee#q-how-quickly-must-i-use-discovered-emails-to-maintain-guarantee-coverage) A: Emails must be used within 30 days of discovery to remain covered by our delivery guarantee. ### Q: Can I transfer guarantee coverage between different email campaigns?[](https://docs.tomba.io/email-finder-delivery-guarantee#q-can-i-transfer-guarantee-coverage-between-different-email-campaigns) A: Yes, the guarantee applies to the emails themselves, not specific campaigns, as long as they meet our usage requirements. * * * This 95% Delivery Guarantee reflects our confidence in the Email Finder service and our commitment to providing you with the highest quality professional email addresses available. Last modified on September 29, 2025 [Anti-Spam Policy](https://docs.tomba.io/anti-spam-policy) [98% Delivery Guarantee - Email Verifier](https://docs.tomba.io/email-verifier-delivery-guarantee) --- # Person Attributes | Tomba Documentation Menu These attributes represent personal and professional details for an individual, as returned by Tomba's enrichment services. * * * Basic Details[](https://docs.tomba.io/attributes/person#basic-details) ----------------------------------------------------------------------- | Attribute | Description | Example | | --- | --- | --- | | `email` | The person's email address | [m@wordpress.org](mailto:m@wordpress.org) | | `first_name` | The person’s first name | Matt | | `last_name` | The person’s last name | Mullenweg | | `full_name` | The complete name | Matt Mullenweg | | `gender` | Gender of the individual | male | | `phone_number` | Phone number if available (`false` if not) | false | | `type` | Classification type (generic, personal) | generic | | `country` | Country of the individual | US | | `score` | Confidence score (0–100) | 99 | * * * Professional Role[](https://docs.tomba.io/attributes/person#professional-role) ------------------------------------------------------------------------------- | Attribute | Description | Example | | --- | --- | --- | | `position` | Job title or role | CEO | | `department` | Department the person belongs to | executive | | `seniority` | Seniority level | senior | * * * Social Profiles[](https://docs.tomba.io/attributes/person#social-profiles) --------------------------------------------------------------------------- | Attribute | Description | Example | | --- | --- | --- | | `linkedin` | LinkedIn profile URL | [https://www.linkedin.com/in/mattm](https://www.linkedin.com/in/mattm) | | `twitter` | Twitter handle or URL | null | * * * Verification[](https://docs.tomba.io/attributes/person#verification) --------------------------------------------------------------------- | Attribute | Description | Example | | --- | --- | --- | | `verification.date` | Date of last successful verification | 2021-05-25T00:00:00+02:00 | | `verification.status` | Status of the most recent verification | valid | * * * Note: Fields may return `false` or `null` when data is unavailable. Email Type Attribute[](https://docs.tomba.io/attributes/person#email-type-attribute) ------------------------------------------------------------------------------------- The `type` field defines the nature of the email address based on the role or naming pattern used. It helps distinguish between direct contacts and role-based addresses. * * * ### Available Values[](https://docs.tomba.io/attributes/person#available-values) | Value | Description | | --- | --- | | `personal` | The email address belongs to a specific individual (for example, [john@company.com](mailto:john@company.com)
). | | `generic` | The email is a role-based address, typically not tied to one person (for example, support@, info@). | * * * ### Use Cases[](https://docs.tomba.io/attributes/person#use-cases) * Prioritize **personal** emails for outreach and sales. * Use **generic** emails for general notifications or customer support. * Segment contacts by personalization level for better targeting. Department Attribute[](https://docs.tomba.io/attributes/person#department-attribute) ------------------------------------------------------------------------------------- The `department` field identifies the division or function within the organization that a person belongs to. This is used to help segment, target, and understand roles within a company. * * * ### Accepted Department Values[](https://docs.tomba.io/attributes/person#accepted-department-values) | Department | Description | | --- | --- | | `engineering` | Software, hardware, or technical engineers | | `sales` | Sales reps, account executives, closers | | `finance` | Finance and accounting roles | | `hr` | Human resources | | `it` | Information technology support and admin | | `marketing` | Marketing and branding teams | | `operations` | Logistics, business ops, and execution | | `management` | Mid-level or general management | | `executive` | C-level or founder-level roles | | `legal` | Legal team, lawyers, compliance | | `support` | Customer or technical support | | `communication` | Corporate communications or media relations | | `software` | Developers, software architects | | `security` | Information security, cybersecurity | | `pr` | Public relations | | `warehouse` | Physical product handling or logistics | | `diversity` | Diversity, equity, and inclusion | | `administrative` | Admin assistants and office managers | | `facilities` | Office or site facilities and maintenance | | `accounting` | Bookkeepers and financial accountants | * * * ### Use Cases[](https://docs.tomba.io/attributes/person#use-cases-1) * Send outreach campaigns tailored to specific departments. * Filter by function in CRMs or dashboards. * Map personas in account-based marketing strategies. Author Finder Attributes[](https://docs.tomba.io/attributes/person#author-finder-attributes) --------------------------------------------------------------------------------------------- These are additional fields returned if the email was discovered using Tomba's **Author Finder**, typically from an article or blog post. | Attribute | Description | | --- | --- | | `url` | URL of the article where the author was found | | `title` | Title of the article where the author was found | | `og_image` | Open Graph image URL of the article | | `description` | Article description or excerpt | | `full_name` | Author's full name | | `first_name` | Author's first name | | `last_name` | Author's last name | | `article_domain` | Domain where the article is hosted | | `same_as_domain` | Author's personal domain if available | | `linkedin` | Author's LinkedIn profile URL or handle | | `twitter` | Author's Twitter handle | | `email` | Discovered email for the author | | `image` | Author's profile image URL | | `gravatar` | Indicates whether the image is from Gravatar | | `emails` | Array of discovered emails related to the author | | `author_score` | Confidence score for author identification | Valid Email Guarantee Tomba returns only valid email addresses when using Email Finder and LinkedIn Finder. All results are automatically verified before being returned, ensuring you receive deliverable and active email addresses. This saves you time and credits by eliminating the need for separate verification steps. Last modified on April 28, 2026 [Domain Suggestions](https://docs.tomba.io/attributes/domain-suggestions) [Email Verifier Attributes](https://docs.tomba.io/attributes/verifier) --- # Zed Editor Setup | Tomba Documentation Menu Learn how to setup Zed editor to work effectively with Tomba API using AI assistance and our comprehensive documentation. Quick Use[](https://docs.tomba.io/llm/editor/zed#quick-use) ------------------------------------------------------------ ### Using Assistant Panel[](https://docs.tomba.io/llm/editor/zed#using-assistant-panel) In Zed's assistant panel, you can reference our documentation: Code `Please fetch the documentation from https://docs.tomba.io/llms.txt and help me create a Rust function for email verification using Tomba API` ### Direct Web Context[](https://docs.tomba.io/llm/editor/zed#direct-web-context) Code `Based on the Tomba API documentation at https://docs.tomba.io/llms.txt, generate a Go client for email finding with proper error handling` Project-level Setup[](https://docs.tomba.io/llm/editor/zed#project-level-setup) -------------------------------------------------------------------------------- ### Method 1: Project Documentation[](https://docs.tomba.io/llm/editor/zed#method-1-project-documentation) Create a documentation file in your project: TerminalCode `# Create docs directory mkdir -p docs # Download Tomba API documentation curl -L https://docs.tomba.io/llms.txt -o docs/tomba-api.md` ### Method 2: Workspace Configuration[](https://docs.tomba.io/llm/editor/zed#method-2-workspace-configuration) Create a `.zed` directory with configuration: TerminalCode `mkdir -p .zed` Add this to `.zed/settings.json`: Code `{ "assistant": { "version": "2", "default_model": { "provider": "anthropic", "model": "claude-3-5-sonnet-20241022" }, "custom_instructions": "When working with API code, prioritize Tomba API patterns from docs/tomba-api.md. Use proper authentication headers (X-Tomba-Key, X-Tomba-Secret) and handle rate limiting appropriately." }, "context_servers": [ { "id": "tomba-docs", "executable": { "command": "cat", "args": ["docs/tomba-api.md"] } } ] }` Zed-Specific Features[](https://docs.tomba.io/llm/editor/zed#zed-specific-features) ------------------------------------------------------------------------------------ ### 1\. Language Server Integration[](https://docs.tomba.io/llm/editor/zed#1-language-server-integration) Configure language servers for better API development: Code `{ "lsp": { "rust-analyzer": { "cargo": { "features": ["tokio", "reqwest", "serde"] } }, "typescript-language-server": { "settings": { "typescript": { "preferences": { "importModuleSpecifier": "relative" } } } } } }` ### 2\. Custom Snippets[](https://docs.tomba.io/llm/editor/zed#2-custom-snippets) Create Tomba API snippets in your language settings: For JavaScript/TypeScript (`.zed/snippets/javascript.json`): Code ``{ "tomba-email-finder": { "prefix": "tomba-finder", "body": [ "async function findEmails(domain) {", " const response = await fetch(`https://api.tomba.io/v1/domain-search?domain=${domain}`, {", " headers: {", " 'X-Tomba-Key': process.env.TOMBA_API_KEY,", " 'X-Tomba-Secret': process.env.TOMBA_SECRET_KEY", " }", " });", " ", " if (!response.ok) {", " throw new Error(`HTTP error! status: ${response.status}`);", " }", " ", " return await response.json();", "}" ], "description": "Create a Tomba email finder function" }, "tomba-email-verifier": { "prefix": "tomba-verify", "body": [ "async function verifyEmail(email) {", " const response = await fetch(`https://api.tomba.io/v1/email-verifier?email=${email}`, {", " headers: {", " 'X-Tomba-Key': process.env.TOMBA_API_KEY,", " 'X-Tomba-Secret': process.env.TOMBA_SECRET_KEY", " }", " });", " ", " if (!response.ok) {", " throw new Error(`HTTP error! status: ${response.status}`);", " }", " ", " return await response.json();", "}" ], "description": "Create a Tomba email verifier function" } }`` For Rust (`.zed/snippets/rust.json`): Code `{ "tomba-client": { "prefix": "tomba-client", "body": [ "use reqwest::Client;", "use serde_json::Value;", "use std::collections::HashMap;", "", "pub struct TombaClient {", " client: Client,", " api_key: String,", " secret_key: String,", "}", "", "impl TombaClient {", " pub fn new(api_key: String, secret_key: String) -> Self {", " Self {", " client: Client::new(),", " api_key,", " secret_key,", " }", " }", "", " pub async fn domain_search(&self, domain: &str) -> Result {", " let url = format!(\"https://api.tomba.io/v1/domain-search?domain={}\", domain);", " ", " let response = self.client", " .get(&url)", " .header(\"X-Tomba-Key\", &self.api_key)", " .header(\"X-Tomba-Secret\", &self.secret_key)", " .send()", " .await?;", " ", " response.json().await", " }", "}" ], "description": "Create a Tomba API client in Rust" } }` Configuration Examples[](https://docs.tomba.io/llm/editor/zed#configuration-examples) -------------------------------------------------------------------------------------- ### Rust Development[](https://docs.tomba.io/llm/editor/zed#rust-development) For Rust projects, add this to your `Cargo.toml`: TOMLCode `[dependencies] reqwest = { version = "0.11", features = ["json"] } tokio = { version = "1.0", features = ["full"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" anyhow = "1.0"` Then use the assistant: Code `Using the Tomba API documentation, create a complete Rust library for email finding and verification with proper error handling and async support` ### Go Development[](https://docs.tomba.io/llm/editor/zed#go-development) For Go projects, initialize modules: TerminalCode `go mod init tomba-client go get github.com/go-resty/resty/v2` Assistant prompt: Code `Based on the Tomba API docs, create a Go package for email operations using the resty HTTP client with proper struct definitions and error handling` ### Python Development[](https://docs.tomba.io/llm/editor/zed#python-development) Setup virtual environment: TerminalCode `python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install requests aiohttp` Assistant prompt: Code `Using Tomba API documentation, create a Python async client class with both sync and async methods for all email operations` Example Use Cases[](https://docs.tomba.io/llm/editor/zed#example-use-cases) ---------------------------------------------------------------------------- ### 1\. Multi-language API Client[](https://docs.tomba.io/llm/editor/zed#1-multi-language-api-client) **Prompt:** Code `Based on docs/tomba-api.md, create API clients in Rust, Go, and Python that all follow the same interface pattern for email finding and verification` ### 2\. CLI Tool Development[](https://docs.tomba.io/llm/editor/zed#2-cli-tool-development) **Prompt:** Code `Using the Tomba API documentation, create a CLI tool in Rust using clap that can: - Find emails for a domain - Verify single emails - Bulk verify from a file - Export results to JSON/CSV` ### 3\. Web Service Integration[](https://docs.tomba.io/llm/editor/zed#3-web-service-integration) **Prompt:** Code `Create a microservice using the Tomba API that provides: - REST endpoints for email operations - Rate limiting middleware - Caching with Redis - Proper logging and metrics` Advanced Configuration[](https://docs.tomba.io/llm/editor/zed#advanced-configuration) -------------------------------------------------------------------------------------- ### Environment Variables[](https://docs.tomba.io/llm/editor/zed#environment-variables) Create a `.env.example` file: TerminalCode `# Tomba API Configuration TOMBA_API_KEY=your_api_key_here TOMBA_SECRET_KEY=your_secret_key_here TOMBA_BASE_URL=https://api.tomba.io/v1 # Optional Configuration TOMBA_TIMEOUT=30 TOMBA_RATE_LIMIT=100` ### Project Templates[](https://docs.tomba.io/llm/editor/zed#project-templates) Create project templates for common Tomba integrations: TerminalCode `# Create templates directory mkdir -p .zed/templates # Rust API client template cat > .zed/templates/rust-tomba-client.rs << 'EOF' // Tomba API Client Template use reqwest::Client; use serde::{Deserialize, Serialize}; use std::time::Duration; #[derive(Debug, Clone)] pub struct TombaClient { client: Client, api_key: String, secret_key: String, base_url: String, } // Add your implementation here EOF` ### Task Configuration[](https://docs.tomba.io/llm/editor/zed#task-configuration) Add build and test tasks to `.zed/tasks.json`: Code `{ "tasks": [ { "label": "Build Tomba Client", "command": "cargo", "args": ["build", "--release"], "group": "build" }, { "label": "Test Tomba Integration", "command": "cargo", "args": ["test", "--", "--nocapture"], "group": "test" }, { "label": "Run Examples", "command": "cargo", "args": ["run", "--example", "email_finder"], "group": "build" } ] }` Best Practices[](https://docs.tomba.io/llm/editor/zed#best-practices) ---------------------------------------------------------------------- ### 1\. Structured Prompts[](https://docs.tomba.io/llm/editor/zed#1-structured-prompts) Use clear, structured prompts: Code `Context: Building a Rust application that processes user signups Task: Integrate Tomba email verification Requirements: - Async/await pattern - Proper error handling with custom error types - Rate limiting with exponential backoff - Comprehensive tests` ### 2\. Incremental Development[](https://docs.tomba.io/llm/editor/zed#2-incremental-development) Build features incrementally: Code `Step 1: Create basic Tomba client struct Step 2: Add email verification method Step 3: Add error handling Step 4: Add rate limiting Step 5: Add caching layer` ### 3\. Code Review Integration[](https://docs.tomba.io/llm/editor/zed#3-code-review-integration) Use Zed's collaborative features: Code `Review this Tomba API integration for: - Security best practices - Error handling completeness - Performance optimizations - Code documentation` Troubleshooting[](https://docs.tomba.io/llm/editor/zed#troubleshooting) ------------------------------------------------------------------------ ### Assistant Not Responding[](https://docs.tomba.io/llm/editor/zed#assistant-not-responding) 1. Check your API keys in Zed settings 2. Verify internet connection 3. Try restarting Zed 4. Clear assistant cache if available ### Documentation Not Found[](https://docs.tomba.io/llm/editor/zed#documentation-not-found) 1. Ensure `docs/tomba-api.md` exists in your project 2. Check file permissions 3. Verify the curl command downloaded the file correctly ### Build Issues[](https://docs.tomba.io/llm/editor/zed#build-issues) 1. Check language server status in Zed 2. Verify dependencies are correctly installed 3. Review compiler/interpreter error messages Additional Resources[](https://docs.tomba.io/llm/editor/zed#additional-resources) ---------------------------------------------------------------------------------- * [Zed Editor Documentation](https://zed.dev/docs) * [Tomba API Reference](https://docs.tomba.io/api) * [Authentication Guide](https://docs.tomba.io/authentication) * [Rate Limits Documentation](https://docs.tomba.io/rate-limits) Last modified on October 3, 2025 [Cursor Setup](https://docs.tomba.io/llm/editor/cursor) [Windsurf Setup](https://docs.tomba.io/llm/editor/windsurf) JSON JSON JSON JSON JSON --- # Claude Code Setup | Tomba Documentation Menu Learn how to setup the Claude Code extension for VS Code to work effectively with Tomba API development. Quick Use[](https://docs.tomba.io/llm/editor/claude-code#quick-use) -------------------------------------------------------------------- ### Direct Documentation Reference[](https://docs.tomba.io/llm/editor/claude-code#direct-documentation-reference) In the Claude Code chat panel, reference our documentation: Code `Please analyze the Tomba API documentation at https://docs.tomba.io/llms.txt and help me implement email verification in my React component with proper TypeScript types.` ### Contextual Code Assistance[](https://docs.tomba.io/llm/editor/claude-code#contextual-code-assistance) Select code in your editor and ask Claude Code: Code `@docs Based on the Tomba API documentation, refactor this email validation function to use Tomba's email verifier endpoint instead of regex validation.` Installation & Setup[](https://docs.tomba.io/llm/editor/claude-code#installation--setup) ----------------------------------------------------------------------------------------- ### 1\. Install Claude Code Extension[](https://docs.tomba.io/llm/editor/claude-code#1-install-claude-code-extension) 1. Open VS Code 2. Go to Extensions (Ctrl+Shift+X) 3. Search for "Claude Code" 4. Install the official Claude Code extension 5. Sign in to your Anthropic account ### 2\. Project Configuration[](https://docs.tomba.io/llm/editor/claude-code#2-project-configuration) Create a `.claude` directory in your project root: TerminalCode `mkdir .claude` Download Tomba API documentation: TerminalCode `curl -L https://docs.tomba.io/llms.txt -o .claude/tomba-api.md` ### 3\. Workspace Settings[](https://docs.tomba.io/llm/editor/claude-code#3-workspace-settings) Add Claude Code settings to your VS Code workspace settings: Code `{ "claude.contextFiles": [".claude/tomba-api.md"], "claude.systemPrompt": "You are a helpful coding assistant. When working with email-related APIs, prioritize using Tomba API patterns from the provided documentation. Always include proper authentication headers and error handling.", "claude.autoContext": { "includeWorkspace": true, "includeOpenFiles": true, "maxFiles": 10 } }` Claude Code Features[](https://docs.tomba.io/llm/editor/claude-code#claude-code-features) ------------------------------------------------------------------------------------------ ### 1\. Inline Code Generation[](https://docs.tomba.io/llm/editor/claude-code#1-inline-code-generation) Use Claude Code directly in your editor: 1. **Select code** you want to modify 2. **Right-click** and select "Ask Claude" 3. **Type your request** with context **Example**: Code `// Select this basic email validation function validateEmail(email: string): boolean { const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return regex.test(email); } // Ask Claude: "Replace this with Tomba API email verification"` ### 2\. Chat Panel Integration[](https://docs.tomba.io/llm/editor/claude-code#2-chat-panel-integration) Open the Claude Code chat panel and reference files: Code `@file:src/types/api.ts @docs Based on the Tomba API documentation, update my TypeScript interfaces to match all API response types exactly.` ### 3\. Multi-file Context[](https://docs.tomba.io/llm/editor/claude-code#3-multi-file-context) Work across multiple files: Code `@file:src/services/email.ts @file:src/utils/api.ts @docs I need to refactor my email service to use Tomba API. The current service is in email.ts and uses the API utility in api.ts. Please update both files to integrate Tomba email verification.` Development Workflows[](https://docs.tomba.io/llm/editor/claude-code#development-workflows) -------------------------------------------------------------------------------------------- ### 1\. API Client Development[](https://docs.tomba.io/llm/editor/claude-code#1-api-client-development) **Step 1**: Create base structure Code `@docs Create a TypeScript class for Tomba API client with these requirements: - Authentication with API key and secret - All endpoints from the documentation - Proper error handling - Rate limiting support - TypeScript interfaces for all responses` **Step 2**: Add specific methods Code `// Select existing class and ask: // "Add the email verification method based on Tomba API docs" export class TombaClient { // existing code... // Claude will add the method here }` **Step 3**: Error handling Code `@file:src/client/tomba.ts @docs Add comprehensive error handling to this Tomba client including: - Network errors - API errors with status codes - Rate limit handling - Timeout handling - Custom error types` ### 2\. React Component Integration[](https://docs.tomba.io/llm/editor/claude-code#2-react-component-integration) **Creating Email Verification Component**: Code `// Start with basic component import React, { useState } from 'react'; interface EmailVerificationProps { onVerification: (result: any) => void; } const EmailVerification: React.FC = ({ onVerification }) => { const [email, setEmail] = useState(''); return (
setEmail(e.target.value)} placeholder="Enter email address" />
); }; export default EmailVerification;` **Ask Claude Code**: Code `@docs Complete this React component to integrate Tomba email verification: 1. Add proper TypeScript types from API documentation 2. Implement verification logic with error handling 3. Add loading states 4. Show verification results 5. Handle rate limiting` ### 3\. Express.js Integration[](https://docs.tomba.io/llm/editor/claude-code#3-expressjs-integration) **Middleware Development**: Code `// Basic middleware structure const emailVerificationMiddleware = (req, res, next) => { // TODO: Implement Tomba verification next(); }; module.exports = { emailVerificationMiddleware };` **Ask Claude Code**: Code `@docs @file:middleware/validation.js Complete this Express middleware to use Tomba email verification: - Extract email from request body - Call Tomba verification API - Add verification result to request object - Handle errors appropriately - Respect rate limits` Code Examples & Patterns[](https://docs.tomba.io/llm/editor/claude-code#code-examples--patterns) ------------------------------------------------------------------------------------------------- ### 1\. Async/Await Pattern[](https://docs.tomba.io/llm/editor/claude-code#1-asyncawait-pattern) **Prompt**: Code `@docs Create an async function for Tomba email verification with: - Proper TypeScript types - Error handling with try/catch - Timeout handling - Retry logic for failed requests` **Generated Code**: Code ``import axios, { AxiosResponse } from "axios"; interface TombaVerificationResult { email: string; result: "valid" | "invalid" | "unknown"; score: number; reason: string; // ... other fields from API docs } interface TombaApiError { error: string; message: string; status: number; } class TombaClient { private apiKey: string; private secretKey: string; private baseUrl = "https://api.tomba.io/v1"; constructor(apiKey: string, secretKey: string) { this.apiKey = apiKey; this.secretKey = secretKey; } async verifyEmail( email: string, options: { timeout?: number; retries?: number } = {}, ): Promise { const { timeout = 30000, retries = 3 } = options; for (let attempt = 1; attempt <= retries; attempt++) { try { const response: AxiosResponse = await axios.get(`${this.baseUrl}/email-verifier`, { params: { email }, headers: { "X-Tomba-Key": this.apiKey, "X-Tomba-Secret": this.secretKey, }, timeout, }); return response.data; } catch (error) { if (axios.isAxiosError(error)) { const apiError = error.response?.data as TombaApiError; // Don't retry on client errors if (error.response?.status && error.response.status < 500) { throw new Error( `Tomba API error: ${apiError?.message || error.message}`, ); } // Retry on server errors if (attempt === retries) { throw new Error( `Tomba API failed after ${retries} attempts: ${error.message}`, ); } // Wait before retry (exponential backoff) await new Promise((resolve) => setTimeout(resolve, Math.pow(2, attempt) * 1000), ); } else { throw error; } } } throw new Error("Unexpected error in email verification"); } }`` ### 2\. React Hook Pattern[](https://docs.tomba.io/llm/editor/claude-code#2-react-hook-pattern) **Prompt**: Code `@docs Create a React hook for Tomba email verification with: - Loading states - Error handling - Caching with React Query - TypeScript support` ### 3\. Node.js Service Pattern[](https://docs.tomba.io/llm/editor/claude-code#3-nodejs-service-pattern) **Prompt**: Code `@docs Create a Node.js service class for Tomba operations with: - Connection pooling - Rate limiting - Caching with Redis - Comprehensive logging - Health checks` Advanced Features[](https://docs.tomba.io/llm/editor/claude-code#advanced-features) ------------------------------------------------------------------------------------ ### 1\. Code Generation from Selection[](https://docs.tomba.io/llm/editor/claude-code#1-code-generation-from-selection) Select existing code and enhance it: Code `// Select this basic function async function processEmails(emails: string[]) { return emails.map((email) => ({ email, valid: true })); } // Ask: "Enhance this with Tomba bulk verification using the API documentation"` ### 2\. Refactoring Assistance[](https://docs.tomba.io/llm/editor/claude-code#2-refactoring-assistance) Code `// Select existing email validation logic if (email.includes("@") && email.includes(".")) { // basic validation return true; } // Ask: "Replace this with proper Tomba email verification"` ### 3\. Test Generation[](https://docs.tomba.io/llm/editor/claude-code#3-test-generation) Code `@file:src/services/tomba.ts @docs Generate comprehensive Jest tests for this Tomba service including: - Unit tests for all methods - Mock API responses - Error scenario testing - Rate limit testing - Integration tests` Best Practices[](https://docs.tomba.io/llm/editor/claude-code#best-practices) ------------------------------------------------------------------------------ ### 1\. Structured Prompts[](https://docs.tomba.io/llm/editor/claude-code#1-structured-prompts) Use clear, specific prompts: Code `Context: Building user registration system Task: Integrate Tomba email verification Requirements: - Real-time validation during form input - Fallback for API failures - User-friendly error messages - TypeScript throughout @docs Please implement email verification for my registration form` ### 2\. Incremental Development[](https://docs.tomba.io/llm/editor/claude-code#2-incremental-development) Build features step by step: Code `Step 1: @docs Create basic Tomba client class Step 2: Add error handling to the client Step 3: Add rate limiting logic Step 4: Create React hook wrapper Step 5: Add caching layer` ### 3\. Code Review Integration[](https://docs.tomba.io/llm/editor/claude-code#3-code-review-integration) Code `@file:src/api/tomba.ts @docs Please review this Tomba integration for: - Security best practices - Performance optimizations - Error handling completeness - TypeScript type safety - Code maintainability` Troubleshooting[](https://docs.tomba.io/llm/editor/claude-code#troubleshooting) -------------------------------------------------------------------------------- ### Extension Issues[](https://docs.tomba.io/llm/editor/claude-code#extension-issues) 1. **Claude Code not responding**: Restart VS Code 2. **Authentication problems**: Sign out and sign in again 3. **Context not loading**: Check file paths in settings ### Documentation Issues[](https://docs.tomba.io/llm/editor/claude-code#documentation-issues) 1. **API docs not found**: Verify `.claude/tomba-api.md` exists 2. **Outdated information**: Re-download documentation 3. **Context too large**: Split into smaller files ### Code Generation Issues[](https://docs.tomba.io/llm/editor/claude-code#code-generation-issues) 1. **Incomplete responses**: Be more specific in prompts 2. **Wrong patterns**: Include more context about your project 3. **Type errors**: Ensure TypeScript is properly configured Integration with VS Code Features[](https://docs.tomba.io/llm/editor/claude-code#integration-with-vs-code-features) -------------------------------------------------------------------------------------------------------------------- ### 1\. IntelliSense Integration[](https://docs.tomba.io/llm/editor/claude-code#1-intellisense-integration) Claude Code works with VS Code's IntelliSense: * Type hints for generated code * Auto-completion for Tomba API methods * Error highlighting for incorrect usage ### 2\. Debugging Support[](https://docs.tomba.io/llm/editor/claude-code#2-debugging-support) Use Claude Code to help with debugging: Code `@file:src/debug.log @docs I'm getting this error when calling Tomba API. Help me debug and fix the issue.` ### 3\. Git Integration[](https://docs.tomba.io/llm/editor/claude-code#3-git-integration) Get help with commit messages: Code `@git-diff @docs Generate a commit message for these Tomba API integration changes.` Additional Resources[](https://docs.tomba.io/llm/editor/claude-code#additional-resources) ------------------------------------------------------------------------------------------ * [Claude Code Extension](https://marketplace.visualstudio.com/items?itemName=Anthropic.claude-vscode) * [VS Code Extension Guide](https://code.visualstudio.com/docs/editor/extension-marketplace) * [Tomba API Reference](https://docs.tomba.io/api) * [Authentication Guide](https://docs.tomba.io/authentication) Last modified on October 3, 2025 [Claude Desktop Setup](https://docs.tomba.io/llm/editor/claude-desktop) [ChatGPT Setup](https://docs.tomba.io/llm/editor/chatgpt) JSON TypeScript TypeScript TypeScript Javascript TypeScript TypeScript TypeScript --- # Tomba Local MCP Tools | Tomba Documentation Menu MCP Tools[](https://docs.tomba.io/llm/local-mcp/tools#mcp-tools) ----------------------------------------------------------------- This document provides detailed information about all thirteen tools available in the Tomba MCP Server. Each tool offers specific email intelligence capabilities with comprehensive input validation and structured output. Tools Overview[](https://docs.tomba.io/llm/local-mcp/tools#tools-overview) --------------------------------------------------------------------------- | Tool | Purpose | Input | Output Type | | --- | --- | --- | --- | | `domain_search` | Find emails by domain | Domain name + options | Email list with metadata | | `email_finder` | Generate email from name + domain | First/last name + domain | Single email with confidence | | `email_verifier` | Verify email deliverability | Email address | Verification status + score | | `email_enrichment` | Enrich email with contact data | Email address | Complete contact profile | | `email_count` | Get total email counts for domain | Domain name | Email count statistics | | `author_finder` | Find author emails from articles | Article URL | Author contact list | | `linkedin_finder` | Find emails from LinkedIn | LinkedIn profile URL | Contact with verification | | `phone_finder` | Find phone numbers | Email/domain/LinkedIn | Phone numbers with details | | `phone_validator` | Validate phone numbers | Phone number | Validation results + carrier | | `technology_finder` | Discover tech stacks | Domain name | Technology list + categories | | `similar_finder` | Find similar companies | Domain name | Similar domain list | | `companies_search` | Search companies by query | Natural language query | Company list with filters | * * * Prompts (16 pre-built workflows)[](https://docs.tomba.io/llm/local-mcp/tools#prompts-16-pre-built-workflows) ------------------------------------------------------------------------------------------------------------- ### Contact Discovery & Enrichment[](https://docs.tomba.io/llm/local-mcp/tools#contact-discovery--enrichment) * **find\_contact** - Find complete contact info for a person * **enrich\_lead** - Enrich a lead with all available data * **prospect\_enrichment** - Enrich company prospects with comprehensive data ### Email & Phone Verification[](https://docs.tomba.io/llm/local-mcp/tools#email--phone-verification) * **verify\_email\_list** - Batch verify email addresses * **finder\_phone** - Find phone numbers for contacts * **validate\_phone** - Validate a phone number ### Company & Market Research[](https://docs.tomba.io/llm/local-mcp/tools#company--market-research) * **research\_company** - Research company contacts and structure * **domain\_insights** - Get comprehensive insights about a domain including email count and technology * **bulk\_domain\_research** - Research multiple domains for email counts and basic information * **market\_research** - Research companies in a specific market segment * **industry\_analysis** - Analyze companies within a specific industry and location ### Competitive Intelligence[](https://docs.tomba.io/llm/local-mcp/tools#competitive-intelligence) * **competitor\_analysis** - Analyze competitors using similar domains and technology * **technology\_audit** - Comprehensive technology audit of a website ### Lead Generation & Targeting[](https://docs.tomba.io/llm/local-mcp/tools#lead-generation--targeting) * **find\_target\_companies** - Find companies matching specific criteria using natural language search * **lead\_generation** - Generate leads by finding companies and their contacts * **find\_journalists** - Find journalist contacts from articles * * * Domain Search[](https://docs.tomba.io/llm/local-mcp/tools#domain-search) ------------------------------------------------------------------------- **Purpose**: Discover all email addresses associated with a specific domain name. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema) Code `{ "domain": "string (required)", "limit": "number (optional, default: 10)", "offset": "number (optional, default: 0)", "type": "string (optional: 'personal' | 'generic')", "sources": "boolean (optional, default: true)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `domain` | string | Yes | Target domain name | `"github.com"` | | `limit` | number | No | Max results to return (1-100) | `25` | | `offset` | number | No | Results to skip for pagination | `0` | | `type` | string | No | Filter by email type | `"personal"` | | `sources` | boolean | No | Include source information | `true` | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage) Code `// MCP Request { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "domain_search", "arguments": { "domain": "github.com", "limit": 10, "type": "personal", "sources": true } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format) Code `{ "domain": "github.com", "emails": [ { "email": "john.doe@github.com", "first_name": "John", "last_name": "Doe", "position": "Senior Developer", "department": "Engineering", "type": "personal", "confidence": 95, "sources": [ { "uri": "https://github.com/about", "website_piece": "team", "extracted_on": "2024-01-15", "last_seen_on": "2024-01-15", "still_on_page": true } ] } ], "total": 147, "limit": 10, "offset": 0 }` ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases) * Lead generation for sales teams * Competitive intelligence research * Contact discovery for partnerships * Email list building for marketing * * * Email Finder[](https://docs.tomba.io/llm/local-mcp/tools#email-finder) ----------------------------------------------------------------------- **Purpose**: Generate the most likely email address for a person based on their name and company domain. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-1) Code `{ "domain": "string (required)", "firstName": "string (required)", "lastName": "string (required)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-1) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `domain` | string | Yes | Company domain | `"microsoft.com"` | | `firstName` | string | Yes | Person's first name | `"Satya"` | | `lastName` | string | Yes | Person's last name | `"Nadella"` | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-1) Code `{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "email_finder", "arguments": { "domain": "microsoft.com", "firstName": "Satya", "lastName": "Nadella" } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-1) Code `{ "email": "satya.nadella@microsoft.com", "score": 98, "first_name": "Satya", "last_name": "Nadella", "full_name": "Satya Nadella", "gender": "male", "country": "US", "position": "CEO", "twitter": "@satyanadella", "linkedin": "https://linkedin.com/in/satya-nadella", "phone_number": null, "company": "Microsoft Corporation", "sources": [ { "uri": "https://microsoft.com/leadership", "website_piece": "executive-team", "extracted_on": "2024-01-10", "last_seen_on": "2024-01-15", "still_on_page": true } ] }` ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-1) * Sales prospecting with known contacts * Recruiting specific individuals * Journalist source identification * Partnership outreach * * * Email Verifier[](https://docs.tomba.io/llm/local-mcp/tools#email-verifier) --------------------------------------------------------------------------- **Purpose**: Verify email address deliverability and check if it exists in Tomba's database. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-2) Code `{ "email": "string (required)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-2) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `email` | string | Yes | Email address to verify | `"test@example.com"` | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-2) Code `{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "email_verifier", "arguments": { "email": "satya.nadella@microsoft.com" } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-2) Code `{ "email": { "email": "satya.nadella@microsoft.com", "gibberish": false, "disposable": false, "webmail": false, "result": "deliverable", "score": 95 }, "sources": [ { "uri": "https://microsoft.com/leadership", "website_piece": "executive-bio", "extracted_on": "2024-01-10", "last_seen_on": "2024-01-15", "still_on_page": true } ] }` ### Verification Results[](https://docs.tomba.io/llm/local-mcp/tools#verification-results) | Result | Description | | --- | --- | | `deliverable` | Email exists and can receive messages | | `undeliverable` | Email doesn't exist or bounces | | `risky` | Email exists but may have issues | | `unknown` | Cannot determine deliverability | ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-2) * Email list cleaning before campaigns * Lead qualification and scoring * Contact database maintenance * Fraud prevention and validation * * * Email Enrichment[](https://docs.tomba.io/llm/local-mcp/tools#email-enrichment) ------------------------------------------------------------------------------- **Purpose**: Get comprehensive contact information and social profiles for an email address. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-3) Code `{ "email": "string (required)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-3) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `email` | string | Yes | Email to enrich | `"contact@company.com"` | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-3) Code `{ "jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": { "name": "email_enrichment", "arguments": { "email": "satya.nadella@microsoft.com" } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-3) Code `{ "email": "satya.nadella@microsoft.com", "first_name": "Satya", "last_name": "Nadella", "full_name": "Satya Nadella", "gender": "male", "country": "United States", "position": "Chief Executive Officer", "twitter": "satyanadella", "linkedin": "https://linkedin.com/in/satya-nadella", "phone_number": "+1-425-882-8080", "company": "Microsoft Corporation", "industry": "Technology", "website": "microsoft.com" }` ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-3) * CRM data enrichment * Lead scoring and qualification * Personalized outreach preparation * Contact profile completion * * * Author Finder[](https://docs.tomba.io/llm/local-mcp/tools#author-finder) ------------------------------------------------------------------------- **Purpose**: Extract email addresses of authors from article URLs. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-4) Code `{ "url": "string (required)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-4) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `url` | string | Yes | Article or blog post URL | `"https://example.com/article"` | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-4) Code `{ "jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": { "name": "author_finder", "arguments": { "url": "https://github.blog/2024-01-15-new-features/" } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-4) Code `{ "emails": [ { "email": "author@github.com", "first_name": "Jane", "last_name": "Smith", "position": "Technical Writer", "twitter": "janesmith_dev", "linkedin": "https://linkedin.com/in/janesmith" }, { "email": "editor@github.com", "first_name": "Mike", "last_name": "Johnson", "position": "Content Editor", "twitter": "mikejohnson", "linkedin": "https://linkedin.com/in/mikejohnson" } ] }` ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-4) * Journalist contact discovery * Guest posting outreach * Expert source identification * Content collaboration * * * LinkedIn Finder[](https://docs.tomba.io/llm/local-mcp/tools#linkedin-finder) ----------------------------------------------------------------------------- **Purpose**: Find email addresses associated with LinkedIn profile URLs. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-5) Code `{ "url": "string (required)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-5) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `url` | string | Yes | LinkedIn profile URL | `"https://linkedin.com/in/username"` | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-5) Code `{ "jsonrpc": "2.0", "id": 6, "method": "tools/call", "params": { "name": "linkedin_finder", "arguments": { "url": "https://linkedin.com/in/satya-nadella" } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-5) Code `{ "email": "satya.nadella@microsoft.com", "first_name": "Satya", "last_name": "Nadella", "full_name": "Satya Nadella", "country": "United States", "gender": "male", "position": "Chief Executive Officer", "twitter": "satyanadella", "phone_number": null, "company": "Microsoft", "verification": { "date": "2024-01-15", "signature": "verified_profile_abc123" } }` ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-5) * Sales prospecting from LinkedIn * Recruiting pipeline development * Professional networking * Contact verification from social profiles * * * ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-6) * Market research and analysis * Competitive intelligence gathering * Partnership opportunity identification * Industry mapping and analysis * * * Phone Finder[](https://docs.tomba.io/llm/local-mcp/tools#phone-finder) ----------------------------------------------------------------------- **Purpose**: Search for phone numbers based on email address, domain, or LinkedIn profile. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-6) Code `{ "email": "string (optional)", "domain": "string (optional)", "linkedin": "string (optional)" }` **Note**: At least one parameter is required. ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-6) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `email` | string | No\* | Email address | `"contact@company.com"` | | `domain` | string | No\* | Company domain | `"company.com"` | | `linkedin` | string | No\* | LinkedIn profile URL | `"https://linkedin.com/in/user"` | \*At least one parameter is required. ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-6) Code `{ "jsonrpc": "2.0", "id": 8, "method": "tools/call", "params": { "name": "phone_finder", "arguments": { "email": "satya.nadella@microsoft.com" } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-6) Code `{ "phone_number": "+1-425-882-8080", "country": "United States", "local_format": "(425) 882-8080", "intl_format": "+1 425 882 8080", "carrier": "Verizon", "line_type": "landline" }` ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-7) * Multi-channel contact strategies * Lead enrichment with phone data * Customer service contact verification * Sales outreach diversification * * * Phone Validator[](https://docs.tomba.io/llm/local-mcp/tools#phone-validator) ----------------------------------------------------------------------------- **Purpose**: Validate phone numbers and retrieve carrier information. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-7) Code `{ "phone": "string (required)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-7) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `phone` | string | Yes | Phone number to validate | `"+1-425-882-8080"` | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-7) Code `{ "jsonrpc": "2.0", "id": 9, "method": "tools/call", "params": { "name": "phone_validator", "arguments": { "phone": "+14258828080" } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-7) Code `{ "phone_number": "+14258828080", "valid": true, "country": "United States", "country_code": "US", "local_format": "(425) 882-8080", "intl_format": "+1 425 882 8080", "carrier": "Verizon Business", "line_type": "landline", "is_mobile": false }` ### Validation Results[](https://docs.tomba.io/llm/local-mcp/tools#validation-results) | Field | Description | | --- | --- | | `valid` | Whether the phone number is valid | | `country` | Country name | | `country_code` | ISO country code | | `local_format` | Local formatting | | `intl_format` | International formatting | | `carrier` | Telecom carrier name | | `line_type` | "mobile", "landline", or "voip" | | `is_mobile` | Boolean indicating mobile number | ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-8) * Contact data validation * SMS campaign preparation * Fraud prevention * Call routing optimization * * * Email Count[](https://docs.tomba.io/llm/local-mcp/tools#email-count) --------------------------------------------------------------------- **Purpose**: Get total email count available in Tomba's database for a specific domain. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-8) Code `{ "domain": "string (required)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-8) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `domain` | string | Yes | Target domain name | `"stripe.com"` | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-8) Code `{ "jsonrpc": "2.0", "id": 10, "method": "tools/call", "params": { "name": "email_count", "arguments": { "domain": "stripe.com" } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-8) Code `{ "total": 347, "personal": 312, "generic": 35, "department": { "engineering": 156, "sales": 78, "marketing": 45, "support": 33 } }` ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-9) * Market research and TAM analysis * Lead generation planning * Competitive intelligence * Database coverage assessment * * * Technology Finder[](https://docs.tomba.io/llm/local-mcp/tools#technology-finder) --------------------------------------------------------------------------------- **Purpose**: Discover the technology stack used by a website (6000+ technologies tracked). ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-9) Code `{ "domain": "string (required)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-9) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `domain` | string | Yes | Target domain name | `"shopify.com"` | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-9) Code `{ "jsonrpc": "2.0", "id": 11, "method": "tools/call", "params": { "name": "technology_finder", "arguments": { "domain": "shopify.com" } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-9) Code `{ "domain": "shopify.com", "technologies": [ { "name": "Google Analytics", "category": "Analytics", "icon": "https://d12h6n0d1mbsct.cloudfront.net/technologies/google-analytics.png", "website": "https://analytics.google.com" }, { "name": "Stripe", "category": "Payment Processing", "icon": "https://d12h6n0d1mbsct.cloudfront.net/technologies/stripe.png", "website": "https://stripe.com" }, { "name": "Cloudflare", "category": "CDN", "icon": "https://d12h6n0d1mbsct.cloudfront.net/technologies/cloudflare.png", "website": "https://cloudflare.com" } ], "categories": { "Analytics": 3, "Payment Processing": 2, "CDN": 1, "Marketing Automation": 2, "CRM": 1 } }` ### Technology Categories[](https://docs.tomba.io/llm/local-mcp/tools#technology-categories) Common categories include: * Analytics & Tracking * Payment Processing * CDN & Hosting * Marketing Automation * CRM & Sales * E-commerce Platforms * Email Services * Customer Support * Security & Compliance * Development Tools ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-10) * Competitive analysis * Sales intelligence (know what tools prospects use) * Partnership opportunities * Market research on technology adoption * Lead qualification based on tech stack * * * Similar Finder[](https://docs.tomba.io/llm/local-mcp/tools#similar-finder) --------------------------------------------------------------------------- **Purpose**: Find companies similar to a target domain based on industry, size, and characteristics. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-10) Code `{ "domain": "string (required)", "limit": "number (optional, default: 10)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-10) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `domain` | string | Yes | Target domain name | `"salesforce.com"` | | `limit` | number | No | Max results (1-50) | `20` | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-10) Code `{ "jsonrpc": "2.0", "id": 12, "method": "tools/call", "params": { "name": "similar_finder", "arguments": { "domain": "salesforce.com", "limit": 10 } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-10) Code `{ "domain": "salesforce.com", "similar_domains": [ { "domain": "hubspot.com", "similarity_score": 95, "industry": "CRM & Marketing Automation", "employees": "1001-5000", "website": "https://hubspot.com" }, { "domain": "zoho.com", "similarity_score": 92, "industry": "CRM & Business Software", "employees": "5001-10000", "website": "https://zoho.com" }, { "domain": "pipedrive.com", "similarity_score": 88, "industry": "Sales CRM", "employees": "501-1000", "website": "https://pipedrive.com" } ], "total": 47 }` ### Similarity Scoring[](https://docs.tomba.io/llm/local-mcp/tools#similarity-scoring) Similarity is calculated based on: * Industry classification * Company size (employees) * Technology stack overlap * Business model * Target market | Score | Meaning | | --- | --- | | 90-100 | Very similar (direct competitors) | | 80-89 | Highly similar (same space) | | 70-79 | Similar (adjacent markets) | | 60-69 | Somewhat similar | | Below 60 | Different but related | ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-11) * Competitive intelligence * TAM (Total Addressable Market) expansion * Partnership opportunity discovery * Market mapping * Lead generation (find lookalike companies) * * * Companies Search[](https://docs.tomba.io/llm/local-mcp/tools#companies-search) ------------------------------------------------------------------------------- **Purpose**: Search for companies using natural language queries with advanced filters. ### Input Schema[](https://docs.tomba.io/llm/local-mcp/tools#input-schema-11) Code `{ "query": "string (required)", "page": "number (optional, default: 1)", "limit": "number (optional, default: 50)", "filters": "object (optional)" }` ### Parameters[](https://docs.tomba.io/llm/local-mcp/tools#parameters-11) | Parameter | Type | Required | Description | Example | | --- | --- | --- | --- | --- | | `query` | string | Yes | Natural language search | `"SaaS startups in Europe"` | | `page` | number | No | Page number | `1` | | `limit` | number | No | Results per page (max: 100) | `50` | | `filters` | object | No | Advanced filter object | See filters below | ### Example Usage[](https://docs.tomba.io/llm/local-mcp/tools#example-usage-11) **Simple Natural Language Query:** Code `{ "jsonrpc": "2.0", "id": 13, "method": "tools/call", "params": { "name": "companies_search", "arguments": { "query": "Real Estate companies in Europe", "limit": 50 } } }` **Advanced Query with Filters:** Code `{ "jsonrpc": "2.0", "id": 14, "method": "tools/call", "params": { "name": "companies_search", "arguments": { "query": "E-commerce companies", "limit": 50, "filters": { "country": ["US", "UK"], "employees": "51-200", "revenue": "$10M-$50M", "technologies": ["Shopify", "Stripe"] } } } }` ### Response Format[](https://docs.tomba.io/llm/local-mcp/tools#response-format-11) Code `{ "companies": [ { "domain": "example-ecommerce.com", "organization": "Example E-commerce Inc", "industry": "E-commerce", "country": "US", "city": "San Francisco", "employees": "51-200", "revenue": "$10M-$50M", "founded": 2018, "description": "Leading online retailer for sustainable products", "technologies": ["Shopify", "Stripe", "Google Analytics"], "email_count": 67, "website": "https://example-ecommerce.com" } ], "total": 1247, "page": 1, "limit": 50, "has_more": true }` ### Available Filters[](https://docs.tomba.io/llm/local-mcp/tools#available-filters) | Filter | Type | Description | Example | | --- | --- | --- | --- | | `country` | array\[string\] | Country codes (ISO 2-letter) | `["US", "UK", "FR"]` | | `industry` | array\[string\] | Industry categories | `["Technology", "Finance"]` | | `employees` | string | Employee range | `"51-200"` | | `revenue` | string | Revenue range | `"$10M-$50M"` | | `founded` | object | Year founded range | `{"min": 2010, "max": 2020}` | | `technologies` | array\[string\] | Technologies used | `["AWS", "Stripe"]` | | `city` | array\[string\] | City names | `["San Francisco", "New York"]` | ### Employee Ranges[](https://docs.tomba.io/llm/local-mcp/tools#employee-ranges) * `"1-10"` - Micro * `"11-50"` - Small * `"51-200"` - Medium * `"201-500"` - Large * `"501-1000"` - Very Large * `"1001-5000"` - Enterprise * `"5001+"` - Mega Enterprise ### Revenue Ranges[](https://docs.tomba.io/llm/local-mcp/tools#revenue-ranges) * `"$0-$1M"` - Bootstrapped * `"$1M-$10M"` - Growing * `"$10M-$50M"` - Established * `"$50M-$100M"` - Large * `"$100M-$500M"` - Very Large * `"$500M-$1B"` - Major * `"$1B+"` - Enterprise ### Use Cases[](https://docs.tomba.io/llm/local-mcp/tools#use-cases-12) * Lead generation with specific criteria * Market research and analysis * Competitive landscape mapping * Partnership opportunity identification * Investment research (VC/PE) * Account-Based Marketing (ABM) list building * * * Common Parameters[](https://docs.tomba.io/llm/local-mcp/tools#common-parameters) --------------------------------------------------------------------------------- ### Pagination[](https://docs.tomba.io/llm/local-mcp/tools#pagination) Many tools support pagination through `limit` and `offset`: Code `{ "limit": 25, // Items per page (max: 100) "offset": 50 // Items to skip (for page 3 with limit 25) }` ### Confidence Scoring[](https://docs.tomba.io/llm/local-mcp/tools#confidence-scoring) Results include confidence scores (0-100): * **90-100**: Very High - Verified or highly likely * **70-89**: High - Strong indicators * **50-69**: Medium - Some evidence * **30-49**: Low - Weak indicators * **0-29**: Very Low - Speculative ### Source Attribution[](https://docs.tomba.io/llm/local-mcp/tools#source-attribution) Many results include source information: Code `{ "sources": [ { "uri": "https://example.com/page", "website_piece": "contact", "extracted_on": "2024-01-15", "last_seen_on": "2024-01-15", "still_on_page": true } ] }` Error Handling[](https://docs.tomba.io/llm/local-mcp/tools#error-handling) --------------------------------------------------------------------------- All tools return consistent error formats: Code `{ "content": [ { "type": "text", "text": "Error: Invalid email format provided" } ], "isError": true }` ### Common Error Types[](https://docs.tomba.io/llm/local-mcp/tools#common-error-types) * **Invalid Input**: Malformed parameters * **Rate Limit**: API quota exceeded * **Authentication**: Invalid API credentials * **Not Found**: No results for query * **Network Error**: Connection issues Usage Tips[](https://docs.tomba.io/llm/local-mcp/tools#usage-tips) ------------------------------------------------------------------- ### Best Practices[](https://docs.tomba.io/llm/local-mcp/tools#best-practices) 1. **Start Small**: Use small limits while testing 2. **Verify Inputs**: Validate parameters before sending 3. **Handle Errors**: Always check for error responses 4. **Rate Limiting**: Respect API limits and implement backoff 5. **Data Quality**: Use confidence scores for filtering ### Performance Optimization[](https://docs.tomba.io/llm/local-mcp/tools#performance-optimization) * Use pagination for large result sets * Batch similar requests when possible * Cache results when appropriate * Monitor API quota usage ### Data Privacy[](https://docs.tomba.io/llm/local-mcp/tools#data-privacy) * Only request necessary data * Handle personal information securely * Respect opt-out requests * Follow local privacy regulations * * * Ready to use these tools? Check out the [LLM Integration Guide](https://docs.tomba.io/llm/local-mcp/llm-files) for connecting with AI applications. Last modified on March 6, 2026 [Local MCP Server - Introduction](https://docs.tomba.io/llm/local-mcp/introduction) [Tomba Local MCP LLM Integration](https://docs.tomba.io/llm/local-mcp/integration) JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON JSON --- # Clearbit Combined API Replacement | Tomba Documentation Menu This guide provides step-by-step instructions for migrating from Clearbit's Combined API (Person + Company) to Tomba's `/combined/find` endpoint. * * * API Comparison[](https://docs.tomba.io/migration/clearbit/combined-api#api-comparison) --------------------------------------------------------------------------------------- | Feature | Clearbit Combined API | Tomba Combined API | | --- | --- | --- | | **Endpoint** | `person.clearbit.com/v2/combined/find` | `api.tomba.io/v1/combined/find` | | **Input** | Email | Email | | **Authentication** | Bearer token | API Key + Secret headers | | **Rate Limit** | 600 req/min | 300 req/min | | **Person Data** | ✅ | ✅ Enhanced | | **Company Data** | ✅ | ✅ Enhanced | | **Email Verification** | ❌ | ✅ FREE | | **Phone Numbers** | Limited | ✅ Validated | | **Technology Stack** | Basic | ✅ 6000+ technologies | | **Similar Companies** | ❌ | ✅ | | **API Calls** | 1 | 1 (same efficiency) | | **Cost** | $999/10k | $119/10k (88% savings) | | **Free Trial** | 50 calls | 50 searches + 500 verifications | * * * Endpoint Migration[](https://docs.tomba.io/migration/clearbit/combined-api#endpoint-migration) ----------------------------------------------------------------------------------------------- ### Clearbit Combined API[](https://docs.tomba.io/migration/clearbit/combined-api#clearbit-combined-api) Code `GET https://person.clearbit.com/v2/combined/find?email=john@stripe.com Authorization: Bearer sk_clearbit_xxx` ### Tomba Combined API[](https://docs.tomba.io/migration/clearbit/combined-api#tomba-combined-api) Code `GET https://api.tomba.io/v1/combined/find?email=john@stripe.com X-Tomba-Key: your-api-key X-Tomba-Secret: your-secret-key` * * * Why Use Combined API?[](https://docs.tomba.io/migration/clearbit/combined-api#why-use-combined-api) ---------------------------------------------------------------------------------------------------- The Combined API returns both person and company data in a single request, giving you: ✅ **Reduced API calls** - 1 call instead of 2 ✅ **Lower latency** - Get both datasets instantly ✅ **Cost savings** - Pay for 1 request, not 2 ✅ **Simplified code** - One endpoint, one response * * * Response Format Comparison[](https://docs.tomba.io/migration/clearbit/combined-api#response-format-comparison) --------------------------------------------------------------------------------------------------------------- ### Clearbit Response[](https://docs.tomba.io/migration/clearbit/combined-api#clearbit-response) Code `{ "person": { "id": "d54c54ad-40be-4305-8a34-0ab44710b90d", "name": { "fullName": "John Doe", "givenName": "John", "familyName": "Doe" }, "email": "john@stripe.com", "location": "San Francisco, CA, US", "employment": { "domain": "stripe.com", "name": "Stripe", "title": "Senior Software Engineer", "role": "engineering", "seniority": "senior" }, "linkedin": { "handle": "in/johndoe" }, "twitter": { "handle": "johndoe", "followers": 1000 } }, "company": { "id": "027b0d40-016c-40ea-8925-a076fa640992", "name": "Stripe", "domain": "stripe.com", "description": "Online payment processing for internet businesses", "location": "San Francisco, CA, US", "logo": "https://logo.clearbit.com/stripe.com", "metrics": { "employees": 7000, "employeesRange": "1001-5000", "estimatedAnnualRevenue": "$1B-$10B" }, "category": { "industry": "Financial Services" } } }` ### Tomba Response[](https://docs.tomba.io/migration/clearbit/combined-api#tomba-response) Code `{ "data": { "person": { "email": "john@stripe.com", "first_name": "John", "last_name": "Doe", "full_name": "John Doe", "gender": null, "phone_number": "+1-415-555-0123", "position": "Senior Software Engineer", "department": "Engineering", "seniority": "senior", "twitter": "johndoe", "linkedin": "https://www.linkedin.com/in/johndoe", "location": { "city": "San Francisco", "state": "California", "country": "United States", "country_code": "US" }, "verification": { "status": "valid", "result": "deliverable", "score": 98, "smtp_check": true, "disposable": false } }, "company": { "organization": "Stripe", "domain": "stripe.com", "website": "https://stripe.com", "email_count": 347, "phone_number": "+1-888-926-2289", "country": "US", "state": "California", "city": "San Francisco", "postal_code": "94103", "street": "510 Townsend Street", "revenue": "$1B-$10B", "employees": "1001-5000", "founded": 2010, "industry": "Financial Services", "description": "Online payment processing for internet businesses", "logo": "https://d12h6n0d1mbsct.cloudfront.net/logos/stripe-com.jpg", "twitter": "stripe", "linkedin": "stripe", "facebook": "stripe", "technologies": [ { "name": "Stripe", "category": "Payment Processing" }, { "name": "AWS", "category": "Cloud Infrastructure" } ], "similar_domains": ["square.com", "paypal.com", "adyen.com"] } } }` * * * Field Mapping[](https://docs.tomba.io/migration/clearbit/combined-api#field-mapping) ------------------------------------------------------------------------------------- ### Person Fields[](https://docs.tomba.io/migration/clearbit/combined-api#person-fields) | Clearbit Field | Tomba Field | Notes | | --- | --- | --- | | `person.name.fullName` | `person.full_name` | Full name | | `person.name.givenName` | `person.first_name` | First name | | `person.name.familyName` | `person.last_name` | Last name | | `person.email` | `person.email` | Email address | | `person.employment.title` | `person.position` | Job title | | `person.employment.role` | `person.department` | Department | | `person.employment.seniority` | `person.seniority` | Seniority | | `person.location` | `person.location.*` | Location object | | `person.linkedin.handle` | `person.linkedin` | LinkedIn URL | | `person.twitter.handle` | `person.twitter` | Twitter handle | | N/A | `person.phone_number` | **New: Phone number** | | N/A | `person.verification` | **New: Email verification** | ### Company Fields[](https://docs.tomba.io/migration/clearbit/combined-api#company-fields) | Clearbit Field | Tomba Field | Notes | | --- | --- | --- | | `company.name` | `company.organization` | Company name | | `company.domain` | `company.domain` | Domain | | `company.description` | `company.description` | Description | | `company.location` | `company.city`, `company.state`, `company.country` | Location fields | | `company.logo` | `company.logo` | Logo URL | | `company.metrics.employees` | `company.employees` | Employee count | | `company.metrics.estimatedAnnualRevenue` | `company.revenue` | Revenue estimate | | `company.category.industry` | `company.industry` | Industry | | N/A | `company.email_count` | **New: Available emails** | | N/A | `company.phone_number` | **New: Company phone** | | N/A | `company.technologies` | **New: Tech stack** | | N/A | `company.similar_domains` | **New: Competitors** | * * * Code Examples[](https://docs.tomba.io/migration/clearbit/combined-api#code-examples) ------------------------------------------------------------------------------------- ### Node.js / JavaScript[](https://docs.tomba.io/migration/clearbit/combined-api#nodejs--javascript) **Before (Clearbit):** Code `const clearbit = require("clearbit")("sk_clearbit_xxx"); async function getCombined(email) { try { const combined = await clearbit.Combined.find({ email }); return { person: { name: combined.person?.name?.fullName, position: combined.person?.employment?.title, location: combined.person?.location, }, company: { name: combined.company?.name, industry: combined.company?.category?.industry, employees: combined.company?.metrics?.employees, }, }; } catch (error) { console.error("Clearbit error:", error); throw error; } }` **After (Tomba):** Code ``const axios = require("axios"); async function getCombined(email) { try { const response = await axios.get( "https://api.tomba.io/v1/combined/find", { params: { email }, headers: { "X-Tomba-Key": process.env.TOMBA_API_KEY, "X-Tomba-Secret": process.env.TOMBA_API_SECRET, }, }, ); const data = response.data.data; return { person: { name: data.person.full_name, position: data.person.position, location: `${data.person.location?.city}, ${data.person.location?.country}`, // Bonus fields phone: data.person.phone_number, emailValid: data.person.verification?.status === "valid", emailScore: data.person.verification?.score, }, company: { name: data.company.organization, industry: data.company.industry, employees: data.company.employees, // Bonus fields revenue: data.company.revenue, emailCount: data.company.email_count, technologies: data.company.technologies?.map((t) => t.name), competitors: data.company.similar_domains, }, }; } catch (error) { console.error("Tomba error:", error); throw error; } } // Usage getCombined("john@stripe.com").then(console.log);`` ### Python[](https://docs.tomba.io/migration/clearbit/combined-api#python) **Before (Clearbit):** Code `import clearbit clearbit.key = 'sk_clearbit_xxx' def get_combined(email): try: combined = clearbit.Combined.find(email=email) return { 'person': { 'name': combined.get('person', {}).get('name', {}).get('fullName'), 'position': combined.get('person', {}).get('employment', {}).get('title'), 'location': combined.get('person', {}).get('location') }, 'company': { 'name': combined.get('company', {}).get('name'), 'industry': combined.get('company', {}).get('category', {}).get('industry'), 'employees': combined.get('company', {}).get('metrics', {}).get('employees') } } except clearbit.errors.NotFoundError: return None` **After (Tomba):** Code `import requests import os def get_combined(email): try: response = requests.get( 'https://api.tomba.io/v1/combined/find', params={'email': email}, headers={ 'X-Tomba-Key': os.getenv('TOMBA_API_KEY'), 'X-Tomba-Secret': os.getenv('TOMBA_API_SECRET') } ) response.raise_for_status() data = response.json()['data'] return { 'person': { 'name': data['person'].get('full_name'), 'position': data['person'].get('position'), 'location': f"{data['person'].get('location', {}).get('city')}, {data['person'].get('location', {}).get('country')}", # Bonus fields 'phone': data['person'].get('phone_number'), 'email_valid': data['person'].get('verification', {}).get('status') == 'valid', 'email_score': data['person'].get('verification', {}).get('score') }, 'company': { 'name': data['company'].get('organization'), 'industry': data['company'].get('industry'), 'employees': data['company'].get('employees'), # Bonus fields 'revenue': data['company'].get('revenue'), 'email_count': data['company'].get('email_count'), 'technologies': [t['name'] for t in data['company'].get('technologies', [])], 'competitors': data['company'].get('similar_domains', []) } } except requests.exceptions.HTTPError as e: if e.response.status_code == 404: return None raise # Usage combined = get_combined('john@stripe.com') print(combined)` ### PHP[](https://docs.tomba.io/migration/clearbit/combined-api#php) **Before (Clearbit):** Code `find(['email' => $email]); return [ 'person' => [ 'name' => $combined->person->name->fullName ?? null, 'position' => $combined->person->employment->title ?? null, 'location' => $combined->person->location ?? null ], 'company' => [ 'name' => $combined->company->name ?? null, 'industry' => $combined->company->category->industry ?? null, 'employees' => $combined->company->metrics->employees ?? null ] ]; } catch (\Clearbit\Errors\NotFoundError $e) { return null; } }` **After (Tomba):** Code `get('https://api.tomba.io/v1/combined/find', [ 'query' => ['email' => $email], 'headers' => [ 'X-Tomba-Key' => getenv('TOMBA_API_KEY'), 'X-Tomba-Secret' => getenv('TOMBA_API_SECRET') ] ]); $data = json_decode($response->getBody())->data; return [ 'person' => [ 'name' => $data->person->full_name ?? null, 'position' => $data->person->position ?? null, 'location' => "{$data->person->location->city}, {$data->person->location->country}", // Bonus fields 'phone' => $data->person->phone_number ?? null, 'email_valid' => ($data->person->verification->status ?? '') === 'valid', 'email_score' => $data->person->verification->score ?? 0 ], 'company' => [ 'name' => $data->company->organization ?? null, 'industry' => $data->company->industry ?? null, 'employees' => $data->company->employees ?? null, // Bonus fields 'revenue' => $data->company->revenue ?? null, 'email_count' => $data->company->email_count ?? 0, 'technologies' => array_map(fn($t) => $t->name, $data->company->technologies ?? []), 'competitors' => $data->company->similar_domains ?? [] ] ]; } catch (\GuzzleHttp\Exception\ClientException $e) { if ($e->getResponse()->getStatusCode() === 404) { return null; } throw $e; } } // Usage $combined = getCombined('john@stripe.com'); print_r($combined);` * * * Use Cases[](https://docs.tomba.io/migration/clearbit/combined-api#use-cases) ----------------------------------------------------------------------------- ### Sales Intelligence[](https://docs.tomba.io/migration/clearbit/combined-api#sales-intelligence) Get everything you need about a prospect in one call: Code ``const prospect = await getCombined("decision.maker@target-company.com"); console.log("Prospect Profile:"); console.log(`Name: ${prospect.person.name}`); console.log(`Position: ${prospect.person.position}`); console.log(`Phone: ${prospect.person.phone}`); console.log(`Email Valid: ${prospect.person.emailValid ? "Yes" : "No"}`); console.log("\nCompany Profile:"); console.log(`Company: ${prospect.company.name}`); console.log(`Industry: ${prospect.company.industry}`); console.log(`Size: ${prospect.company.employees} employees`); console.log(`Revenue: ${prospect.company.revenue}`); console.log(`Technologies: ${prospect.company.technologies.join(", ")}`); console.log(`Competitors: ${prospect.company.competitors.join(", ")}`);`` ### Lead Enrichment[](https://docs.tomba.io/migration/clearbit/combined-api#lead-enrichment) Enrich leads in your CRM: Code `async function enrichLead(email) { const data = await getCombined(email); if (!data) { return { status: "not_found" }; } return { status: "enriched", contact: { first_name: data.person.name.split(" ")[0], last_name: data.person.name.split(" ").slice(1).join(" "), title: data.person.position, phone: data.person.phone, email_verified: data.person.emailValid, linkedin_url: data.person.linkedin, }, company: { name: data.company.name, domain: data.company.domain, industry: data.company.industry, employee_count: data.company.employees, annual_revenue: data.company.revenue, tech_stack: data.company.technologies, competitors: data.company.competitors, }, }; }` ### Account-Based Marketing[](https://docs.tomba.io/migration/clearbit/combined-api#account-based-marketing) Build comprehensive account profiles: Code `async function buildAccountProfile(emails) { const profiles = await Promise.all( emails.map((email) => getCombined(email)), ); const validProfiles = profiles.filter((p) => p !== null); if (validProfiles.length === 0) { return null; } // Aggregate company data (same company for all contacts) const company = validProfiles[0].company; // Collect all contacts const contacts = validProfiles.map((p) => ({ name: p.person.name, position: p.person.position, phone: p.person.phone, email_score: p.person.emailScore, seniority: p.person.seniority, })); return { company: { name: company.name, size: company.employees, revenue: company.revenue, industry: company.industry, technologies: company.technologies, competitors: company.competitors, total_contacts_available: company.emailCount, }, contacts: contacts, decision_makers: contacts.filter( (c) => c.seniority === "executive" || c.position.includes("VP") || c.position.includes("Director"), ), }; }` * * * Performance Optimization[](https://docs.tomba.io/migration/clearbit/combined-api#performance-optimization) ----------------------------------------------------------------------------------------------------------- ### Batch Processing[](https://docs.tomba.io/migration/clearbit/combined-api#batch-processing) Code ``async function enrichLeadsBatch(emails, batchSize = 10) { const results = []; for (let i = 0; i < emails.length; i += batchSize) { const batch = emails.slice(i, i + batchSize); const batchResults = await Promise.allSettled( batch.map((email) => getCombined(email)), ); results.push( ...batchResults.map((r, idx) => ({ email: batch[idx], data: r.status === "fulfilled" ? r.value : null, error: r.status === "rejected" ? r.reason : null, })), ); // Respect rate limits if (i + batchSize < emails.length) { await new Promise((resolve) => setTimeout(resolve, 200)); } } return results; } // Usage const emails = [ "contact1@company.com", "contact2@company.com", "contact3@company.com", ]; const enriched = await enrichLeadsBatch(emails); console.log( `Enriched ${enriched.filter((r) => r.data).length}/${emails.length} leads`, );`` * * * Error Handling[](https://docs.tomba.io/migration/clearbit/combined-api#error-handling) --------------------------------------------------------------------------------------- Code `async function getCombinedSafe(email) { try { const response = await axios.get( "https://api.tomba.io/v1/combined/find", { params: { email }, headers: { "X-Tomba-Key": process.env.TOMBA_API_KEY, "X-Tomba-Secret": process.env.TOMBA_API_SECRET, }, }, ); return { success: true, data: response.data.data, }; } catch (error) { if (error.response?.status === 404) { return { success: false, error: "NOT_FOUND", message: "Email or company not found in database", }; } else if (error.response?.status === 429) { return { success: false, error: "RATE_LIMIT", message: "Rate limit exceeded. Please retry later.", }; } else if (error.response?.status === 400) { return { success: false, error: "INVALID_EMAIL", message: "Invalid email format", }; } else if (error.response?.status === 401) { return { success: false, error: "AUTH_FAILED", message: "Invalid API credentials", }; } else { return { success: false, error: "UNKNOWN", message: error.message, }; } } }` * * * Migration Checklist[](https://docs.tomba.io/migration/clearbit/combined-api#migration-checklist) ------------------------------------------------------------------------------------------------- * [ ] Sign up for Tomba account * [ ] Generate API keys * [ ] Update authentication headers * [ ] Change base URL to `api.tomba.io/v1` * [ ] Update field mappings for person data * [ ] Update field mappings for company data * [ ] Add handling for new fields (verification, technologies, etc.) * [ ] Update error handling * [ ] Test with sample emails * [ ] Update type definitions/interfaces * [ ] Test batch operations * [ ] Deploy to staging * [ ] Monitor API responses * [ ] Deploy to production * [ ] Remove Clearbit dependencies * * * Testing[](https://docs.tomba.io/migration/clearbit/combined-api#testing) ------------------------------------------------------------------------- ### Comprehensive Test Suite[](https://docs.tomba.io/migration/clearbit/combined-api#comprehensive-test-suite) Code `const assert = require("assert"); describe("Combined API Migration", () => { it("should return combined data for valid email", async () => { const data = await getCombined("john@stripe.com"); // Person assertions assert(data.person.name); assert(data.person.position); assert(data.person.emailValid !== undefined); // Company assertions assert(data.company.name); assert(data.company.industry); assert(data.company.emailCount > 0); }); it("should return null for non-existent email", async () => { const data = await getCombined("notexist@example12345.com"); assert.strictEqual(data, null); }); it("should include email verification", async () => { const data = await getCombined("valid@stripe.com"); assert(data.person.emailValid === true); assert(data.person.emailScore > 90); }); it("should include technology stack", async () => { const data = await getCombined("john@shopify.com"); assert(Array.isArray(data.company.technologies)); assert(data.company.technologies.length > 0); }); it("should include similar companies", async () => { const data = await getCombined("john@salesforce.com"); assert(Array.isArray(data.company.competitors)); }); it("should handle batch processing", async () => { const emails = [ "john@stripe.com", "jane@shopify.com", "bob@salesforce.com", ]; const results = await enrichLeadsBatch(emails); assert.equal(results.length, emails.length); assert(results.some((r) => r.data !== null)); }); });` * * * Next Steps[](https://docs.tomba.io/migration/clearbit/combined-api#next-steps) ------------------------------------------------------------------------------- * [Company API Migration](https://docs.tomba.io/migration/clearbit/company-api) - Company-only enrichment * [Person API Migration](https://docs.tomba.io/migration/clearbit/person-api) - Person-only enrichment * [Migration Overview](https://docs.tomba.io/migration/clearbit) - Full Clearbit replacement guide * [Full API Documentation](https://docs.tomba.io/) * * * **Ready to migrate from Clearbit?** Get started with a free Tomba account - includes 50 free searches and 500 free verifications! [Start Migration →](https://app.tomba.io/auth/register) Last modified on November 16, 2025 [Clearbit Person API Replacement](https://docs.tomba.io/migration/clearbit/person-api) [Migrate to Tomba Email Verifier](https://docs.tomba.io/migration/email-verifier/introduction) JSON JSON Javascript Javascript PHP PHP Javascript Javascript Javascript Javascript Javascript Javascript --- # Enrichment Attributes | Tomba Documentation Menu Our Enrichment endpoints allow you to retrieve all the information we have about an email address, a company, or both. The response is formatted according to Clearbit's schema. Person API[](https://docs.tomba.io/attributes/enrichment#person-api) --------------------------------------------------------------------- The **Person Enrichment API** returns detailed information about a person and their online profiles based on their email address. * * * ### Personal Identity[](https://docs.tomba.io/attributes/enrichment#personal-identity) | Attribute | Description | | --- | --- | | `fullName` | Full name of the person | | `givenName` | First name | | `familyName` | Last name | | `email` | Email address | | `gender` | Gender (if detectable) | | `bio` | Short biography | | `site` | Personal website | | `avatar` | Profile picture (if available) | * * * ### Location & Time[](https://docs.tomba.io/attributes/enrichment#location--time) | Attribute | Description | | --- | --- | | `location` | Country code | | `timeZone` | Time zone | | `utcOffset` | UTC offset from GMT | #### Geo Breakdown[](https://docs.tomba.io/attributes/enrichment#geo-breakdown) | Geo Field | Description | | --- | --- | | `city` | City name | | `state` | Full state name | | `stateCode` | Abbreviated state code | | `country` | Full country name | | `countryCode` | ISO country code | | `lat` | Latitude | | `lng` | Longitude | * * * ### Employment Details[](https://docs.tomba.io/attributes/enrichment#employment-details) | Attribute | Description | | --- | --- | | `domain` | Company domain | | `name` | Company name | | `title` | Person’s job title | | `role` | Department or role area | | `subRole` | Sub-category of role (if applicable) | | `seniority` | Seniority level within the company | * * * ### Social & Developer Profiles[](https://docs.tomba.io/attributes/enrichment#social--developer-profiles) | Platform | Attribute | | --- | --- | | **Twitter** | `handle` | | **Facebook** | `handle` | | **LinkedIn** | `handle` | | **GitHub** | `handle` | | **Gravatar** | `handle` | * * * ### Other Fields[](https://docs.tomba.io/attributes/enrichment#other-fields) | Attribute | Description | | --- | --- | | `phone` | Whether a phone number is associated | | `indexedAt` | Timestamp of when the record was last updated | | `activeAt` | Timestamp of last known activity | | `inactiveAt` | Timestamp of when user became inactive | | `fuzzy` | Whether the match was a fuzzy match | | `emailProvider` | Email provider type (e.g. Gmail, Outlook) | * * * Company API[](https://docs.tomba.io/attributes/enrichment#company-api) ----------------------------------------------------------------------- Tomba’s **Company Enrichment API** returns detailed company-level data based on a domain. It includes metadata, technologies used, contact information, industry classification, social links, and more. * * * ### Core Company Details[](https://docs.tomba.io/attributes/enrichment#core-company-details) | Attribute | Description | | --- | --- | | `id` | Unique company ID | | `name` | Public company name | | `legalName` | Legal entity name | | `domain` | Primary domain name | | `domainAliases` | Alternate domains (if any) | | `description` | Short description of the company | | `type` | Type of company (e.g., private, public) | | `foundedYear` | Year the company was founded | | `location` | Full textual HQ location | | `timeZone` | Time zone of the HQ | | `utcOffset` | Time zone offset from UTC | | `indexedAt` | Date when the data was last indexed | | `emailProvider` | Provider that hosts the email services | | `phone` | Main business contact phone | * * * ### Location Details[](https://docs.tomba.io/attributes/enrichment#location-details) | Field | Description | | --- | --- | | `city` | City of headquarters | | `state` | Full state name | | `stateCode` | State abbreviation | | `country` | Country | | `countryCode` | ISO country code | | `lat` / `lng` | Latitude and longitude | * * * ### Contact Information[](https://docs.tomba.io/attributes/enrichment#contact-information) | Field | Description | | --- | --- | | `site.phoneNumbers` | List of phone numbers | | `site.emailAddresses` | All known email addresses | * * * ### Industry Classification[](https://docs.tomba.io/attributes/enrichment#industry-classification) | Field | Description | | --- | --- | | `category.sector` | Sector name | | `category.industryGroup` | Industry group | | `category.industry` | Specific industry | | `category.subIndustry` | Sub-industry | | `category.gicsCode` | GICS classification code | | `category.sicCode` | SIC primary code | | `category.sic4Codes[]` | SIC 4-digit codes | | `category.naicsCode` | NAICS primary code | | `category.naics6Codes[]` | NAICS 6-digit codes | | `category.naics6Codes2022[]` | NAICS (2022) codes | * * * ### Tags[](https://docs.tomba.io/attributes/enrichment#tags) | Field | Description | | --- | --- | | `tags[]` | Keywords or tags describing business | * * * ### Brand & Social Profiles[](https://docs.tomba.io/attributes/enrichment#brand--social-profiles) | Platform | Attribute | Example | | --- | --- | --- | | `logo` | Logo image URL | | | `facebook.handle` | Facebook page ID | | | `linkedin.handle` | LinkedIn company path | | | `twitter.handle` | Twitter username | | | `crunchbase.handle` | Crunchbase identifier | | * * * ### Metrics[](https://docs.tomba.io/attributes/enrichment#metrics) | Metric | Description | | --- | --- | | `trafficRank` | Web traffic level (e.g., very\_high) | | `employees` | Company size category | | `marketCap` | Market capitalization | | `raised` | Total funds raised | | `annualRevenue` | Verified revenue (if available) | | `estimatedAnnualRevenue` | Estimated revenue | | `fiscalYearEnd` | Fiscal year-end month/date | * * * ### Parent Relationships[](https://docs.tomba.io/attributes/enrichment#parent-relationships) | Field | Description | | --- | --- | | `parent.domain` | Immediate parent company domain | | `ultimateParent.domain` | Ultimate holding company | * * * ### Technology Stack[](https://docs.tomba.io/attributes/enrichment#technology-stack) | Field | Description | | --- | --- | | `tech[]` | List of detected technologies used by company | | `techCategories[]` | Categories of technologies in use | * * * ### Notes[](https://docs.tomba.io/attributes/enrichment#notes) * Multiple **email addresses** are returned from publicly available sources and records. * Tech stack detection is powered by Tomba’s proprietary crawling engine. * Fields may return `null` if data is unavailable or not detected. * * * This data is ideal for enriching CRM systems, lead profiling, competitive research, and personalization at scale. Combined API[](https://docs.tomba.io/attributes/enrichment#combined-api) ------------------------------------------------------------------------- The **Combined Enrichment API** aggregates both **Email Enrichment** and **Company Enrichment** data into a single structured response, allowing you to retrieve complete person and company metadata using only an email address. * * * ### Structure[](https://docs.tomba.io/attributes/enrichment#structure) The response includes two primary objects under the `data` key: | Field | Description | | --- | --- | | `person` | Contains all person-level data (same as Email Enrichment) | | `company` | Contains all domain/company-level data (same as Company Enrichment) | * * * ### Data Composition[](https://docs.tomba.io/attributes/enrichment#data-composition) * `person`: Includes name, role, social profiles, location, and employment metadata. See [Person API](https://docs.tomba.io/attributes/enrichment#person-api) . * `company`: Includes company name, description, size, industry classifications, contact info, social links, and technologies used. See [Company API](https://docs.tomba.io/attributes/enrichment#company-api) . Last modified on April 28, 2026 [Email Count Attributes](https://docs.tomba.io/attributes/email-count) [Email Format Attribute](https://docs.tomba.io/attributes/format) --- # ClawHub Integration | Tomba Documentation Menu Overview[](https://docs.tomba.io/integrations/clawhub#overview) ---------------------------------------------------------------- The [Tomba Contact Intelligence](https://clawhub.ai/benemohamed/tomba-contact-intelligence) skill on [ClawHub](https://clawhub.ai/) gives AI agents access to Tomba's full suite of contact discovery, email verification, lead enrichment, phone lookup, and company research tools. It uses the Tomba MCP server under the hood and guides the agent to pick the right tools and multi-step workflows automatically. Prerequisites[](https://docs.tomba.io/integrations/clawhub#prerequisites) -------------------------------------------------------------------------- * Active Tomba.io account with API credentials * ClawHub account with [OpenClaw](https://clawhub.ai/) access * Tomba MCP server connected in the session Setup & Authentication[](https://docs.tomba.io/integrations/clawhub#setup--authentication) ------------------------------------------------------------------------------------------- ### Install the Skill[](https://docs.tomba.io/integrations/clawhub#install-the-skill) Install the skill from ClawHub: TerminalCode `openclaw skill install benemohamed/tomba-contact-intelligence` Or copy the skill folder into your skills directory: Code `~/.openclaw/skills/tomba-contact-intelligence/` ### Environment Variables[](https://docs.tomba.io/integrations/clawhub#environment-variables) Set your Tomba API credentials: * **TOMBA\_API\_KEY** (required) Your Tomba.io API key * **TOMBA\_SECRET\_KEY** (required) Your Tomba.io secret key **Getting Your API Credentials:** 1. Log in to your [Tomba.io dashboard](https://app.tomba.io/) 2. Navigate to [API Keys](https://app.tomba.io/api) 3. Copy your API Key and Secret Key ### Connect the Tomba MCP Server[](https://docs.tomba.io/integrations/clawhub#connect-the-tomba-mcp-server) Make sure the Tomba MCP server is connected in your OpenClaw session. The skill expects the following 12 tools to be available: * `domain_search` * `email_finder` * `email_verifier` * `email_enrichment` * `author_finder` * `linkedin_finder` * `phone_finder` * `phone_validator` * `email_count` * `similar_finder` * `technology_finder` * `companies_search` Available Tools[](https://docs.tomba.io/integrations/clawhub#available-tools) ------------------------------------------------------------------------------ ### Email Finder[](https://docs.tomba.io/integrations/clawhub#email-finder) Find a professional email address using a person's name and company domain. **Input Fields:** * **Domain** (required) Company domain (e.g., `tomba.io`) * **First Name** (required) Person's first name * **Last Name** (required) Person's last name **Output:** * Email address * Confidence score * Position and department * Sources * Verification status ### Email Verifier[](https://docs.tomba.io/integrations/clawhub#email-verifier) Verify if an email address is valid and deliverable. **Input Fields:** * **Email** (required) Email address to verify **Output:** * Email status (valid/invalid) * Result (deliverable/undeliverable/risky/unknown) * Score (0–100) * SMTP check results * Disposable and free provider detection ### Email Enrichment[](https://docs.tomba.io/integrations/clawhub#email-enrichment) Expand an existing email into richer contact and company data. **Input Fields:** * **Email** (required) Email address to enrich **Output:** * Full name, position, department * Company details * Social profiles * Location data ### Domain Search[](https://docs.tomba.io/integrations/clawhub#domain-search) Find all known email addresses associated with a company domain. **Input Fields:** * **Domain** (required) Company domain (e.g., `stripe.com`) **Output:** * List of email addresses * Name, position, department per contact * Sources and last seen dates ### Phone Finder[](https://docs.tomba.io/integrations/clawhub#phone-finder) Find phone numbers from an email, domain, or LinkedIn profile. **Input Fields:** * **Email** (optional) Email address * **Domain** (optional) Company domain * **LinkedIn** (optional) LinkedIn profile URL **Output:** * Phone numbers * Phone type (mobile/landline) * Country and carrier info ### Phone Validator[](https://docs.tomba.io/integrations/clawhub#phone-validator) Validate a phone number and return carrier details. **Input Fields:** * **Phone** (required) Phone number to validate * **Country Code** (optional) ISO country code **Output:** * Valid/invalid status * Carrier name * Line type * Country and location ### LinkedIn Finder[](https://docs.tomba.io/integrations/clawhub#linkedin-finder) Find an email address from a LinkedIn profile URL. **Input Fields:** * **URL** (required) LinkedIn profile URL **Output:** * Email address * Confidence score * Profile data ### Author Finder[](https://docs.tomba.io/integrations/clawhub#author-finder) Find the contact email of an article author. **Input Fields:** * **URL** (required) Article URL **Output:** * Author email address * Confidence score * Author name ### Email Count[](https://docs.tomba.io/integrations/clawhub#email-count) Estimate the number of known email addresses for a domain. **Input Fields:** * **Domain** (required) Company domain **Output:** * Total email count * Personal vs generic breakdown * Department distribution ### Technology Finder[](https://docs.tomba.io/integrations/clawhub#technology-finder) Identify the website technology stack for a domain. **Input Fields:** * **Domain** (required) Company domain **Output:** * Detected technologies by category * CMS, analytics, frameworks, hosting, etc. ### Similar Finder[](https://docs.tomba.io/integrations/clawhub#similar-finder) Find similar or competing domains. **Input Fields:** * **Domain** (required) Company domain **Output:** * List of similar domains * Domain metadata ### Companies Search[](https://docs.tomba.io/integrations/clawhub#companies-search) Find companies using structured market filters. **Input Fields:** * **Query** (optional) Natural language search query * **Country** (optional) Country codes (e.g., `US`, `FR`) * **Industry** (optional) Industry filter * **Size** (optional) Employee count range (e.g., `51-250`) * **Revenue** (optional) Revenue range **Output:** * Company name and domain * Industry, size, location * Revenue and employee data Common Workflows[](https://docs.tomba.io/integrations/clawhub#common-workflows) -------------------------------------------------------------------------------- ### Find a Person's Best Email[](https://docs.tomba.io/integrations/clawhub#find-a-persons-best-email) Code `Prompt: "Find the VP Sales at Stripe and verify the email" ↓ Tool: email_finder (name + domain) ↓ Tool: email_verifier (validate the result) ↓ Output: Verified email with confidence score` ### Enrich an Existing Lead[](https://docs.tomba.io/integrations/clawhub#enrich-an-existing-lead) Code `Prompt: "Enrich jane@acme.com with company, phone, and tech data" ↓ Tool: email_enrichment (expand contact data) ↓ Tool: phone_finder (find phone numbers) ↓ Tool: technology_finder (website stack) ↓ Output: Full contact profile with phone and tech data` ### Research a Company for Outreach[](https://docs.tomba.io/integrations/clawhub#research-a-company-for-outreach) Code `Prompt: "Research hubspot.com contacts, tech stack, competitors" ↓ Tool: domain_search (find contacts) ↓ Tool: email_count (estimate contact surface) ↓ Tool: technology_finder (website stack) ↓ Tool: similar_finder (competitors) ↓ Output: Company dossier with contacts, tech, and competitors` ### Build a Target Account List[](https://docs.tomba.io/integrations/clawhub#build-a-target-account-list) Code `Prompt: "Find SaaS companies in Germany with 50-250 employees" ↓ Tool: companies_search (market filters) ↓ Tool: domain_search (contacts for top matches) ↓ Tool: email_verifier (validate candidates) ↓ Output: Qualified company list with verified contacts` ### Find Contact from LinkedIn[](https://docs.tomba.io/integrations/clawhub#find-contact-from-linkedin) Code `Prompt: "Find the email for this LinkedIn profile and check if a phone number is available" ↓ Tool: linkedin_finder (LinkedIn URL → email) ↓ Tool: email_enrichment (expand data) ↓ Tool: phone_finder (phone lookup) ↓ Output: Email, enrichment data, and phone number` Example Prompts[](https://docs.tomba.io/integrations/clawhub#example-prompts) ------------------------------------------------------------------------------ ### Contact Discovery[](https://docs.tomba.io/integrations/clawhub#contact-discovery) * "Find the best partnerships contact at stripe.com" * "Guess and verify the email for Jane Doe at Acme" * "Find the author email for this blog post: [https://example.com/article](https://example.com/article) " ### Lead Enrichment[](https://docs.tomba.io/integrations/clawhub#lead-enrichment) * "Enrich this lead and check whether a phone number is available: [jane@acme.com](mailto:jane@acme.com) " * "Use this LinkedIn profile to find an email: [https://www.linkedin.com/in/example](https://www.linkedin.com/in/example) " ### Company Research[](https://docs.tomba.io/integrations/clawhub#company-research) * "Research tomba.io for contact coverage, technology stack, and similar competitors" * "Find software companies in France with 51-250 employees and revenue between $10M-$50M" * "Show me companies similar to notion.so" Output Standards[](https://docs.tomba.io/integrations/clawhub#output-standards) -------------------------------------------------------------------------------- The skill instructs the agent to: * Distinguish clearly between confirmed data and inferred data * State whether an email was verified * Include the source input used for each lookup * Keep summaries concise and decision-oriented * Suggest the next best lookup path if no high-confidence result is found Troubleshooting[](https://docs.tomba.io/integrations/clawhub#troubleshooting) ------------------------------------------------------------------------------ ### Skill Not Detected[](https://docs.tomba.io/integrations/clawhub#skill-not-detected) * Confirm the skill folder exists in your OpenClaw skills directory * Restart the OpenClaw gateway or start a new session * Check that `SKILL.md` is present in the skill folder ### Tools Not Available[](https://docs.tomba.io/integrations/clawhub#tools-not-available) * Verify the Tomba MCP server is connected in your session * Check that `TOMBA_API_KEY` and `TOMBA_SECRET_KEY` are set * Confirm all 12 Tomba tools are registered in the MCP server ### Low Confidence Results[](https://docs.tomba.io/integrations/clawhub#low-confidence-results) * Provide more specific input (full name, exact domain, LinkedIn URL) * Use `email_verifier` to validate results before acting on them * Try `domain_search` as a fallback when `email_finder` returns low scores Best Practices[](https://docs.tomba.io/integrations/clawhub#best-practices) ---------------------------------------------------------------------------- 1. Always verify emails with `email_verifier` before using them for outreach 2. Provide the most specific input available full name plus exact company domain yields the best results 3. Use `companies_search` to build targeted lists before drilling into individual contacts 4. Chain tools together: find → verify → enrich for the most complete profiles 5. Check `email_count` before `domain_search` to gauge how many contacts are available API Limits[](https://docs.tomba.io/integrations/clawhub#api-limits) -------------------------------------------------------------------- API limits depend on your Tomba.io subscription plan. See [Usage and Quotas](https://docs.tomba.io/usage-and-quotas) for details. Resources[](https://docs.tomba.io/integrations/clawhub#resources) ------------------------------------------------------------------ * [Tomba Contact Intelligence on ClawHub](https://clawhub.ai/benemohamed/tomba-contact-intelligence) * [Tomba MCP Server](https://github.com/tomba-io/tomba-mcp-server) * [Tomba.io Dashboard](https://app.tomba.io/) * [Tomba API Documentation](https://docs.tomba.io/) Support[](https://docs.tomba.io/integrations/clawhub#support) -------------------------------------------------------------- * **Tomba.io Support**: [help.tomba.io](https://help.tomba.io/en/) * **ClawHub Issues**: [clawhub.ai](https://clawhub.ai/) * **MCP Server Issues**: [GitHub Issues](https://github.com/tomba-io/tomba-mcp-server/issues) Last modified on April 19, 2026 [Clearbit Combined Enrichment Actor](https://docs.tomba.io/integrations/apify/clearbit-combined) [Zapier Integration](https://docs.tomba.io/integrations/zapier) --- # Google Gemini Setup | Tomba Documentation Menu Learn how to use Google Gemini effectively with Tomba API documentation for code generation and development assistance. Quick Use[](https://docs.tomba.io/llm/editor/gemini#quick-use) --------------------------------------------------------------- ### Direct Documentation Reference[](https://docs.tomba.io/llm/editor/gemini#direct-documentation-reference) Reference our documentation in your Gemini prompts: Code `Please analyze the Tomba API documentation at https://docs.tomba.io/llms.txt and help me create a Java Spring Boot application that integrates email verification into user registration with proper error handling and rate limiting.` ### Code Generation with Context[](https://docs.tomba.io/llm/editor/gemini#code-generation-with-context) Code `Using the Tomba API documentation available at https://docs.tomba.io/llms.txt, generate a complete Flutter/Dart package for email verification that includes: - HTTP client configuration - Model classes for API responses - Error handling - Rate limiting - Unit tests - Usage examples` Gemini-Specific Features[](https://docs.tomba.io/llm/editor/gemini#gemini-specific-features) --------------------------------------------------------------------------------------------- ### 1\. Multi-Modal Capabilities[](https://docs.tomba.io/llm/editor/gemini#1-multi-modal-capabilities) Upload screenshots or diagrams along with your code requests: Code `I've uploaded a diagram of my application architecture. Based on this architecture and the Tomba API documentation (https://docs.tomba.io/llms.txt), help me integrate email verification into the user registration flow. Show me how to implement this in the service layer.` ### 2\. Code Analysis and Optimization[](https://docs.tomba.io/llm/editor/gemini#2-code-analysis-and-optimization) Code `Here's my current email validation implementation: [Paste code] Based on the Tomba API documentation at https://docs.tomba.io/llms.txt, analyze this code and provide optimizations for: - Performance improvements - Better error handling - Rate limiting integration - Security enhancements - Code maintainability` ### 3\. Long-Form Technical Documentation[](https://docs.tomba.io/llm/editor/gemini#3-long-form-technical-documentation) Code `Based on the Tomba API documentation (https://docs.tomba.io/llms.txt), create comprehensive technical documentation for integrating email verification into a Node.js application, including: 1. Architecture overview 2. Implementation guide 3. Configuration options 4. Error handling strategies 5. Performance considerations 6. Security best practices 7. Testing approaches 8. Deployment guidelines 9. Monitoring and logging 10. Troubleshooting guide Make it detailed enough for a development team to follow.` Development Workflows[](https://docs.tomba.io/llm/editor/gemini#development-workflows) --------------------------------------------------------------------------------------- ### 1\. API Client Development[](https://docs.tomba.io/llm/editor/gemini#1-api-client-development) **Planning Phase**: Code `I need to create a robust API client for Tomba email verification. The API documentation is available at https://docs.tomba.io/llms.txt. Please analyze the API and provide: 1. Recommended architecture for the client 2. Key design patterns to implement 3. Error handling strategy 4. Rate limiting approach 5. Caching considerations 6. Testing strategy 7. Documentation requirements Focus on scalability and maintainability for an enterprise application.` **Implementation Phase**: Code `Based on our previous discussion and the Tomba API documentation, implement a production-ready TypeScript client with: Core Features: - Authentication management - Request/response interceptors - Automatic retry with exponential backoff - Rate limiting with queue management - Response caching with TTL - Comprehensive error handling - Event-driven architecture for monitoring - TypeScript interfaces for all endpoints - Configurable timeouts and retries - Health check capabilities Please provide the complete implementation with detailed comments.` ### 2\. Framework-Specific Integration[](https://docs.tomba.io/llm/editor/gemini#2-framework-specific-integration) **Django Integration**: Code `Using the Tomba API (documentation: https://docs.tomba.io/llms.txt), create a Django integration package that includes: 1. Django settings configuration 2. Custom user model with email verification 3. Middleware for request validation 4. Management commands for bulk operations 5. Admin interface integration 6. Celery tasks for background processing 7. Custom form fields with validation 8. REST API views using Django REST Framework 9. Unit and integration tests 10. Documentation with examples Structure this as a reusable Django package.` **Angular Integration**: Code `Based on the Tomba API docs (https://docs.tomba.io/llms.txt), create an Angular service and components for email verification: 1. Injectable service with HTTP client 2. Reactive forms integration 3. Custom validators for real-time verification 4. Error handling with user-friendly messages 5. Loading states and progress indicators 6. Caching with Angular HTTP interceptors 7. TypeScript models and interfaces 8. Unit tests with Jasmine/Karma 9. E2E tests with Protractor/Cypress 10. Component library with Storybook Include proper dependency injection and RxJS patterns.` ### 3\. Performance and Scalability[](https://docs.tomba.io/llm/editor/gemini#3-performance-and-scalability) **High-Performance Implementation**: Code `Design a high-performance email verification system using Tomba API (docs: https://docs.tomba.io/llms.txt) for an application processing 1M+ emails daily: Requirements: - Sub-100ms response times - 99.99% uptime - Horizontal scaling - Fault tolerance - Cost optimization Design considerations: 1. Connection pooling strategies 2. Request batching and queuing 3. Multi-level caching (Redis, CDN, application) 4. Circuit breaker pattern 5. Health checks and monitoring 6. Graceful degradation 7. Rate limiting strategies 8. Database optimization 9. Microservices architecture 10. Auto-scaling policies Provide implementation details for each component.` Code Generation Examples[](https://docs.tomba.io/llm/editor/gemini#code-generation-examples) --------------------------------------------------------------------------------------------- ### 1\. Go Microservice[](https://docs.tomba.io/llm/editor/gemini#1-go-microservice) **Prompt**: Code `Using the Tomba API documentation (https://docs.tomba.io/llms.txt), create a complete Go microservice for email verification with: Architecture: - Clean architecture pattern - Dependency injection - Interface-based design - Repository pattern Features: - HTTP API with Gin framework - gRPC service definitions - Rate limiting with Redis - Caching with multiple backends - Structured logging with logrus - Metrics with Prometheus - Health checks - Graceful shutdown - Configuration management - Database integration (PostgreSQL) Testing: - Unit tests with testify - Integration tests - Mock implementations - Performance benchmarks DevOps: - Dockerfile - Docker Compose - Kubernetes manifests - CI/CD pipeline (GitHub Actions) Provide the complete implementation with proper project structure.` ### 2\. Python FastAPI Service[](https://docs.tomba.io/llm/editor/gemini#2-python-fastapi-service) **Prompt**: Code `Based on the Tomba API documentation at https://docs.tomba.io/llms.txt, create a production-ready FastAPI service with: Core Features: - Async/await throughout - Pydantic models for validation - SQLAlchemy for database operations - Redis for caching and rate limiting - Celery for background tasks - Authentication with JWT - API documentation with OpenAPI - Error handling and logging - Health checks and metrics Advanced Features: - Dependency injection - Middleware for rate limiting - Background task processing - WebSocket support for real-time updates - File upload for bulk operations - Export functionality (CSV, JSON) - Admin interface - Monitoring dashboard Production Ready: - Docker containerization - Configuration management - Testing suite (pytest) - CI/CD pipeline - Monitoring and alerting - Security best practices Include complete project structure and deployment guides.` ### 3\. React TypeScript Application[](https://docs.tomba.io/llm/editor/gemini#3-react-typescript-application) **Prompt**: Code `Using the Tomba API (docs: https://docs.tomba.io/llms.txt), create a complete React TypeScript application for email management with: Application Features: - Email verification dashboard - Bulk email processing - Real-time validation - Export/import functionality - User management - Analytics and reporting Technical Implementation: - React 18 with hooks - TypeScript throughout - Tailwind CSS for styling - React Query for data fetching - React Hook Form for forms - React Router for navigation - Context API for state management - WebSocket for real-time updates Development Tools: - Vite for build tooling - ESLint and Prettier - Husky for git hooks - Jest and React Testing Library - Storybook for component development - Chromatic for visual testing Production Features: - Error boundaries - Performance optimization - Accessibility compliance - SEO optimization - PWA capabilities - Monitoring integration Include complete project setup and development workflow.` Advanced Gemini Features[](https://docs.tomba.io/llm/editor/gemini#advanced-gemini-features) --------------------------------------------------------------------------------------------- ### 1\. Code Explanation and Documentation[](https://docs.tomba.io/llm/editor/gemini#1-code-explanation-and-documentation) Code `Analyze this Tomba API integration code and provide: 1. Line-by-line explanation of complex parts 2. Architectural decisions and their rationale 3. Performance implications 4. Security considerations 5. Potential improvements 6. Alternative implementation approaches 7. Testing strategies 8. Deployment considerations [Paste your code here] Make the explanation detailed enough for a junior developer to understand and maintain.` ### 2\. Comparative Analysis[](https://docs.tomba.io/llm/editor/gemini#2-comparative-analysis) Code `Based on the Tomba API documentation (https://docs.tomba.io/llms.txt), compare different implementation approaches for email verification: 1. Client-side vs Server-side validation 2. Synchronous vs Asynchronous processing 3. Different programming languages (Node.js, Python, Go, Java) 4. Framework choices (Express, FastAPI, Gin, Spring Boot) 5. Database options (PostgreSQL, MongoDB, Redis) 6. Caching strategies (In-memory, Redis, CDN) 7. Deployment options (Docker, Kubernetes, Serverless) Provide pros/cons, use cases, and implementation examples for each approach.` ### 3\. Troubleshooting and Debugging[](https://docs.tomba.io/llm/editor/gemini#3-troubleshooting-and-debugging) Code `I'm experiencing issues with my Tomba API integration: Symptoms: - Intermittent timeouts (15% of requests) - High memory usage - Occasional 429 rate limit errors - Slow response times during peak hours Current setup: - Node.js with Express - Single instance deployment - No caching - Basic error handling Based on the Tomba API documentation and best practices, diagnose the issues and provide: 1. Root cause analysis 2. Step-by-step debugging approach 3. Monitoring and logging improvements 4. Performance optimizations 5. Infrastructure recommendations 6. Code improvements 7. Testing strategies for validation Include specific code examples and configuration changes.` Best Practices for Gemini[](https://docs.tomba.io/llm/editor/gemini#best-practices-for-gemini) ----------------------------------------------------------------------------------------------- ### 1\. Detailed Context Provision[](https://docs.tomba.io/llm/editor/gemini#1-detailed-context-provision) Code `Project Context: - Technology Stack: React, Node.js, PostgreSQL, Redis - Scale: 100k users, 500k emails/day - Team: 5 developers, 2 DevOps engineers - Timeline: 8 weeks for MVP - Budget: $50k for infrastructure - Compliance: GDPR, SOX Technical Requirements: - 99.9% uptime SLA - <200ms API response time - Real-time email validation - Bulk processing capabilities - Audit logging - Multi-tenant architecture Based on the Tomba API documentation (https://docs.tomba.io/llms.txt), design and implement an email verification system that meets these requirements.` ### 2\. Iterative Development[](https://docs.tomba.io/llm/editor/gemini#2-iterative-development) Code `Let's build this email verification system iteratively: Phase 1: Core API integration and basic validation Phase 2: Error handling and rate limiting Phase 3: Caching and performance optimization Phase 4: Monitoring and alerting Phase 5: Security hardening and compliance Start with Phase 1. Based on the Tomba API docs, implement the core email verification functionality with proper TypeScript types and basic error handling.` ### 3\. Comprehensive Testing Strategy[](https://docs.tomba.io/llm/editor/gemini#3-comprehensive-testing-strategy) Code `For the Tomba API integration we're building, create a comprehensive testing strategy that includes: Unit Testing: - Individual function testing - Mock API responses - Error scenario validation - Edge case handling Integration Testing: - End-to-end API flows - Database integration - Cache integration - Third-party service mocking Performance Testing: - Load testing with varying request volumes - Stress testing for rate limits - Memory usage profiling - Response time benchmarking Security Testing: - Authentication validation - Input sanitization - API key protection - Rate limiting effectiveness Provide test implementation examples for each category using appropriate testing frameworks.` Integration Patterns[](https://docs.tomba.io/llm/editor/gemini#integration-patterns) ------------------------------------------------------------------------------------- ### 1\. Event-Driven Architecture[](https://docs.tomba.io/llm/editor/gemini#1-event-driven-architecture) Code `Design an event-driven architecture for email verification using Tomba API (docs: https://docs.tomba.io/llms.txt) with: Events: - EmailVerificationRequested - EmailVerificationCompleted - EmailVerificationFailed - BulkVerificationStarted - BulkVerificationCompleted Components: - Event producers (API endpoints) - Event consumers (verification services) - Event store (database) - Message broker (Redis/RabbitMQ) - Notification service Implementation: - Event schemas - Publisher/subscriber patterns - Error handling and retry logic - Dead letter queues - Event sourcing patterns - CQRS implementation Provide complete implementation with Node.js and TypeScript.` ### 2\. CQRS and Event Sourcing[](https://docs.tomba.io/llm/editor/gemini#2-cqrs-and-event-sourcing) Code `Implement CQRS and Event Sourcing patterns for email verification using Tomba API: Commands: - VerifyEmailCommand - BulkVerifyEmailsCommand - UpdateVerificationStatusCommand Queries: - GetEmailVerificationQuery - GetBulkVerificationStatusQuery - GetVerificationHistoryQuery Events: - EmailVerificationStartedEvent - EmailVerificationCompletedEvent - VerificationStatusUpdatedEvent Include aggregate roots, event handlers, and projection builders.` Troubleshooting[](https://docs.tomba.io/llm/editor/gemini#troubleshooting) --------------------------------------------------------------------------- ### Common Issues with Gemini[](https://docs.tomba.io/llm/editor/gemini#common-issues-with-gemini) 1. **Context Length**: Break long requests into smaller, focused queries 2. **Code Formatting**: Request specific output formats (markdown, code blocks) 3. **Technical Depth**: Be explicit about the level of detail needed 4. **Implementation Scope**: Clearly define what you want implemented vs planned ### Optimization Tips[](https://docs.tomba.io/llm/editor/gemini#optimization-tips) 1. **Use Specific Examples**: Provide concrete scenarios and requirements 2. **Request Alternatives**: Ask for multiple implementation approaches 3. **Include Constraints**: Mention performance, security, and scalability requirements 4. **Ask for Explanations**: Request rationale behind implementation decisions Additional Resources[](https://docs.tomba.io/llm/editor/gemini#additional-resources) ------------------------------------------------------------------------------------- * [Google Gemini Documentation](https://ai.google.dev/docs) * [Tomba API Reference](https://docs.tomba.io/api) * [Authentication Guide](https://docs.tomba.io/authentication) * [Rate Limits Documentation](https://docs.tomba.io/rate-limits) * [Best Practices Guide](https://docs.tomba.io/features) Last modified on October 3, 2025 [ChatGPT Setup](https://docs.tomba.io/llm/editor/chatgpt) [xAI Grok Setup](https://docs.tomba.io/llm/editor/grok) --- # ChatGPT Setup | Tomba Documentation Menu Learn how to use ChatGPT effectively with Tomba API documentation to generate accurate code and get development assistance. Quick Use[](https://docs.tomba.io/llm/editor/chatgpt#quick-use) ---------------------------------------------------------------- ### Direct Documentation Reference[](https://docs.tomba.io/llm/editor/chatgpt#direct-documentation-reference) Reference our documentation directly in your ChatGPT prompts: Code `Please review the Tomba API documentation at https://docs.tomba.io/llms.txt and help me create a Python Flask application that integrates email verification into user registration.` ### Code Generation with Context[](https://docs.tomba.io/llm/editor/chatgpt#code-generation-with-context) Code `Based on the Tomba API documentation (https://docs.tomba.io/llms.txt), generate a complete Node.js Express middleware for email verification that includes: - Rate limiting - Error handling - Response caching - Logging - TypeScript types` Project Setup Strategies[](https://docs.tomba.io/llm/editor/chatgpt#project-setup-strategies) ---------------------------------------------------------------------------------------------- ### Method 1: Documentation Upload (ChatGPT Plus)[](https://docs.tomba.io/llm/editor/chatgpt#method-1-documentation-upload-chatgpt-plus) For ChatGPT Plus users with file upload capability: 1. **Download Documentation**: TerminalCode `curl -L https://docs.tomba.io/llms.txt -o tomba-api-docs.txt` 2. **Upload to ChatGPT**: * Click the attachment button (📎) * Upload `tomba-api-docs.txt` * Reference it in your prompts 3. **Example Prompt**: Code `Using the uploaded Tomba API documentation, create a comprehensive Python client library with async support, rate limiting, and proper error handling.` ### Method 2: URL Reference Method[](https://docs.tomba.io/llm/editor/chatgpt#method-2-url-reference-method) For all ChatGPT users: Code `I'm working with the Tomba API for email verification. The complete API documentation is available at https://docs.tomba.io/llms.txt. Please help me create a React component that: 1. Validates email addresses in real-time 2. Shows validation results with confidence scores 3. Handles API errors gracefully 4. Includes TypeScript types 5. Uses proper rate limiting` ### Method 3: Context Building[](https://docs.tomba.io/llm/editor/chatgpt#method-3-context-building) Build context gradually in your conversation: **Message 1**: Code `I'm building an email verification service using the Tomba API. The API base URL is https://api.tomba.io/v1 and uses X-Tomba-Key and X-Tomba-Secret headers for authentication. I need help creating a robust client library.` **Message 2**: Code `The main endpoints I need to integrate are: - Email Verifier: GET /email-verifier?email={email} - Domain Search: GET /domain-search?domain={domain} - Bulk operations for processing multiple emails Can you help me start with the email verifier endpoint?` Development Workflows[](https://docs.tomba.io/llm/editor/chatgpt#development-workflows) ---------------------------------------------------------------------------------------- ### 1\. API Client Development[](https://docs.tomba.io/llm/editor/chatgpt#1-api-client-development) **Initial Architecture Discussion**: Code `I need to build a production-ready API client for Tomba email verification service. The API documentation is at https://docs.tomba.io/llms.txt. Help me design the architecture for a TypeScript client that needs to: - Handle authentication - Implement rate limiting - Provide retry logic - Cache responses - Support both individual and bulk operations - Include comprehensive error handling - Be easily testable What would be the best architectural approach?` **Implementation Request**: Code `Based on our architecture discussion and the Tomba API docs, implement the core client class with: 1. Constructor that accepts API credentials 2. Private method for making authenticated requests 3. Error handling for different HTTP status codes 4. Rate limiting with exponential backoff 5. TypeScript interfaces for all response types 6. Logging capabilities Start with the basic structure and authentication.` ### 2\. Framework Integration[](https://docs.tomba.io/llm/editor/chatgpt#2-framework-integration) **Express.js Integration**: Code `Using the Tomba API (docs at https://docs.tomba.io/llms.txt), help me create an Express.js application with: 1. Middleware for email verification 2. Route handlers for verification endpoints 3. Background job processing for bulk operations 4. Error handling middleware 5. Request logging 6. API documentation with Swagger 7. Rate limiting at the application level 8. Health check endpoints Please start with the project structure and basic setup.` **React Integration**: Code `I want to integrate Tomba email verification into my React application. Based on the API documentation at https://docs.tomba.io/llms.txt, create: 1. Custom React hooks for email operations 2. Context provider for API configuration 3. Form components with real-time validation 4. Loading states and error handling 5. TypeScript throughout 6. Integration with React Query for caching Begin with the context provider and basic hook structure.` ### 3\. Testing Strategy[](https://docs.tomba.io/llm/editor/chatgpt#3-testing-strategy) **Comprehensive Testing Plan**: Code `For my Tomba API integration (docs: https://docs.tomba.io/llms.txt), help me create a comprehensive testing strategy: 1. Unit tests for all client methods 2. Integration tests with API mocks 3. Error scenario testing 4. Rate limiting tests 5. Performance benchmarks 6. End-to-end tests for user flows 7. Test data and fixtures 8. CI/CD pipeline integration Start with the testing framework setup and basic unit tests.` Code Generation Examples[](https://docs.tomba.io/llm/editor/chatgpt#code-generation-examples) ---------------------------------------------------------------------------------------------- ### 1\. Complete TypeScript Client[](https://docs.tomba.io/llm/editor/chatgpt#1-complete-typescript-client) **Prompt**: Code `Based on the Tomba API documentation at https://docs.tomba.io/llms.txt, create a complete TypeScript client with: - Full type definitions for all API endpoints - Authentication handling - Request/response interceptors - Automatic retry with exponential backoff - Rate limiting - Caching support - Comprehensive error handling - Logging integration - Configuration options - JSDoc documentation Please provide the complete implementation with proper TypeScript types.` ### 2\. Python Async Client[](https://docs.tomba.io/llm/editor/chatgpt#2-python-async-client) **Prompt**: Code `Using the Tomba API documentation (https://docs.tomba.io/llms.txt), create a Python async client using aiohttp with: - AsyncTombaClient class - Async context manager support - Session management with connection pooling - Rate limiting with asyncio - Retry logic with exponential backoff - Type hints throughout - Error handling for all scenarios - Async generators for bulk operations - Caching with TTL - Logging integration Include usage examples and error handling patterns.` ### 3\. React Email Verification Form[](https://docs.tomba.io/llm/editor/chatgpt#3-react-email-verification-form) **Prompt**: Code `Based on the Tomba API (docs: https://docs.tomba.io/llms.txt), create a React email verification form component with: - Real-time email validation as user types - Debounced API calls to avoid rate limits - Loading states and progress indicators - Error handling and user feedback - Confidence score display - TypeScript throughout - Accessibility support - Mobile responsive design - Integration with React Hook Form - Unit tests with React Testing Library Provide the complete component with all dependencies.` Advanced Use Cases[](https://docs.tomba.io/llm/editor/chatgpt#advanced-use-cases) ---------------------------------------------------------------------------------- ### 1\. Microservices Architecture[](https://docs.tomba.io/llm/editor/chatgpt#1-microservices-architecture) **Architecture Planning**: Code `I'm designing a microservices architecture for email validation using Tomba API. Based on the documentation at https://docs.tomba.io/llms.txt, help me plan: Services: - Email verification service - Bulk processing service - API gateway - Cache service (Redis) - Queue service - Monitoring service Requirements: - 100k+ requests/day - 99.9% uptime - Auto-scaling - Circuit breaker pattern - Distributed tracing - Comprehensive monitoring Provide service boundaries, communication patterns, and technology recommendations.` ### 2\. Performance Optimization[](https://docs.tomba.io/llm/editor/chatgpt#2-performance-optimization) **Optimization Analysis**: Code `My Tomba API integration is experiencing performance issues: Metrics: - 800ms average response time - 15% timeout rate - High memory consumption - Frequent rate limit errors Current implementation uses: - Node.js with Express - Basic HTTP client (axios) - No caching - Sequential processing Based on the Tomba API documentation (https://docs.tomba.io/llms.txt), analyze and provide optimizations for: 1. Connection pooling 2. Request batching 3. Caching strategies 4. Memory management 5. Rate limiting optimization 6. Error recovery Include code examples for each optimization.` ### 3\. Enterprise Integration[](https://docs.tomba.io/llm/editor/chatgpt#3-enterprise-integration) **Enterprise Solution**: Code `Design an enterprise-grade solution for email verification using Tomba API (docs: https://docs.tomba.io/llms.txt) with: Requirements: - Multi-tenant architecture - SSO integration - Audit logging - Data privacy compliance - High availability - Disaster recovery - API versioning - Monitoring and alerting - Cost optimization - Security hardening Provide: 1. Architecture diagram 2. Implementation approach 3. Security considerations 4. Scalability strategy 5. Cost analysis 6. Migration plan` Conversation Management[](https://docs.tomba.io/llm/editor/chatgpt#conversation-management) -------------------------------------------------------------------------------------------- ### 1\. Context Preservation[](https://docs.tomba.io/llm/editor/chatgpt#1-context-preservation) Keep important context in your conversation: Code `For reference, I'm building an email verification service with these requirements: - Technology: Node.js, TypeScript, Express, Redis - Scale: 50k requests/day - SLA: 99.9% uptime, <500ms response time - API: Tomba (docs: https://docs.tomba.io/llms.txt) [Continue with specific questions]` ### 2\. Progressive Development[](https://docs.tomba.io/llm/editor/chatgpt#2-progressive-development) Build features incrementally: Code `Phase 1: Basic email verification Phase 2: Bulk processing Phase 3: Caching and optimization Phase 4: Monitoring and alerting Let's start with Phase 1. Based on the Tomba API docs, create a basic email verification function.` ### 3\. Code Review and Iteration[](https://docs.tomba.io/llm/editor/chatgpt#3-code-review-and-iteration) Code `Here's my current Tomba API client implementation: [Paste code] Based on the Tomba API documentation and best practices, please review this code for: - Security vulnerabilities - Performance issues - Error handling gaps - Type safety improvements - Code maintainability Provide specific recommendations with code examples.` Best Practices for ChatGPT[](https://docs.tomba.io/llm/editor/chatgpt#best-practices-for-chatgpt) -------------------------------------------------------------------------------------------------- ### 1\. Specific and Detailed Prompts[](https://docs.tomba.io/llm/editor/chatgpt#1-specific-and-detailed-prompts) Instead of: Code `Help me use Tomba API` Use: Code `Based on the Tomba API documentation at https://docs.tomba.io/llms.txt, create a TypeScript service class for email verification that handles rate limiting, caching with Redis, and provides detailed error messages for a React application.` ### 2\. Include Technical Context[](https://docs.tomba.io/llm/editor/chatgpt#2-include-technical-context) Code `Context: React TypeScript application using Next.js 14, Tailwind CSS, and React Query Goal: Integrate Tomba email verification in user registration form Constraints: Client-side validation, server-side verification, rate limit handling Using Tomba API docs (https://docs.tomba.io/llms.txt), implement email verification with these requirements...` ### 3\. Request Examples and Tests[](https://docs.tomba.io/llm/editor/chatgpt#3-request-examples-and-tests) Code `Along with the implementation, provide: 1. Usage examples 2. Unit tests with Jest 3. Integration test examples 4. Error handling demonstrations 5. Performance considerations 6. Security best practices` Troubleshooting[](https://docs.tomba.io/llm/editor/chatgpt#troubleshooting) ---------------------------------------------------------------------------- ### Common Issues[](https://docs.tomba.io/llm/editor/chatgpt#common-issues) 1. **Generic Responses**: Be more specific about your requirements and technical stack 2. **Outdated Patterns**: Always reference the current API documentation URL 3. **Incomplete Code**: Ask for complete implementations with error handling 4. **Missing Context**: Provide your technical environment and constraints ### Optimization Tips[](https://docs.tomba.io/llm/editor/chatgpt#optimization-tips) 1. **Use Follow-up Questions**: "Can you add error handling to the previous code?" 2. **Request Alternatives**: "Show me 3 different approaches to implement this" 3. **Ask for Explanations**: "Explain why you chose this approach over alternatives" 4. **Request Documentation**: "Add JSDoc comments to explain the API usage" Additional Resources[](https://docs.tomba.io/llm/editor/chatgpt#additional-resources) -------------------------------------------------------------------------------------- * [ChatGPT Best Practices](https://platform.openai.com/docs/guides/prompt-engineering) * [Tomba API Reference](https://docs.tomba.io/api) * [Authentication Guide](https://docs.tomba.io/authentication) * [Rate Limits Documentation](https://docs.tomba.io/rate-limits) * [Error Handling Guide](https://docs.tomba.io/error-handling) Last modified on October 3, 2025 [Claude Code Setup](https://docs.tomba.io/llm/editor/claude-code) [Google Gemini Setup](https://docs.tomba.io/llm/editor/gemini) --- # PHP Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/php-email-finder#installation) ------------------------------------------------------------------------------ To install via [Composer](http://getcomposer.org/) : TerminalCode `composer require tomba-io/php` Usage[](https://docs.tomba.io/libraries/php-email-finder#usage) ---------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/php-email-finder#domain-search) Get email addresses found on the internet. Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $domain = new Domain($client); $result = $domain->domainSearch('stripe.com');` ### Email Finder[](https://docs.tomba.io/libraries/php-email-finder#email-finder) Find the verified email address of any professional. Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $finder = new Finder($client); $result = $finder->emailFinder('stripe.com', 'fname', 'lname');` ### Email Verifier[](https://docs.tomba.io/libraries/php-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $verifier = new Verifier($client); $result = $verifier->emailVerifier('m@wordpress.org');` Examples[](https://docs.tomba.io/libraries/php-email-finder#examples) ---------------------------------------------------------------------- ### Get Account Information[](https://docs.tomba.io/libraries/php-email-finder#get-account-information) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $account = new Account($client); $result = $account->getAccount();` ### Email Count[](https://docs.tomba.io/libraries/php-email-finder#email-count) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $count = new Count($client); $result = $count->emailCount('tomba.io');` ### Finder Services[](https://docs.tomba.io/libraries/php-email-finder#finder-services) #### Author Finder[](https://docs.tomba.io/libraries/php-email-finder#author-finder) This API endpoint generates or retrieves the most likely email address from a blog post URL. Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $finder = new Finder($client); $result = $finder->authorFinder('https://clearbit.com/blog/company-name-to-domain-api');` #### LinkedIn Finder[](https://docs.tomba.io/libraries/php-email-finder#linkedin-finder) This API endpoint generates or retrieves the most likely email address from a LinkedIn URL. Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $finder = new Finder($client); $result = $finder->linkedinFinder('https://www.linkedin.com/in/alex-maccaw-ab592978');` #### Phone Finder[](https://docs.tomba.io/libraries/php-email-finder#phone-finder) This endpoint looks up phone data from an email address. Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $finder = new Finder($client); $result = $finder->phoneFinder('******@zapier.com');` ### API Key Management[](https://docs.tomba.io/libraries/php-email-finder#api-key-management) #### Create API Key[](https://docs.tomba.io/libraries/php-email-finder#create-api-key) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $keys = new Keys($client); $result = $keys->createKey();` #### Delete API Key[](https://docs.tomba.io/libraries/php-email-finder#delete-api-key) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $keys = new Keys($client); $result = $keys->deleteKey('');` #### Get All API Keys[](https://docs.tomba.io/libraries/php-email-finder#get-all-api-keys) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $keys = new Keys($client); $result = $keys->getKeys();` #### Reset API Key[](https://docs.tomba.io/libraries/php-email-finder#reset-api-key) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $keys = new Keys($client); $result = $keys->resetKey('');` ### Lead Attributes Management[](https://docs.tomba.io/libraries/php-email-finder#lead-attributes-management) #### Create Lead Attribute[](https://docs.tomba.io/libraries/php-email-finder#create-lead-attribute) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $leadsAttributes = new LeadsAttributes($client); $result = $leadsAttributes->createLeadAttribute();` #### Delete Lead Attribute[](https://docs.tomba.io/libraries/php-email-finder#delete-lead-attribute) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $leadsAttributes = new LeadsAttributes($client); $result = $leadsAttributes->deleteLeadAttribute('[Lead_Attributes_ID]');` #### Get Lead Attributes[](https://docs.tomba.io/libraries/php-email-finder#get-lead-attributes) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $leadsAttributes = new LeadsAttributes($client); $result = $leadsAttributes->getLeadAttributes();` #### Update Lead Attribute[](https://docs.tomba.io/libraries/php-email-finder#update-lead-attribute) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $leadsAttributes = new LeadsAttributes($client); $result = $leadsAttributes->updateLeadAttribute('[Lead_Attributes_ID]');` ### Lead Lists Management[](https://docs.tomba.io/libraries/php-email-finder#lead-lists-management) #### Create Lead List[](https://docs.tomba.io/libraries/php-email-finder#create-lead-list) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $leadsLists = new LeadsLists($client); $result = $leadsLists->createList();` #### Delete Lead List[](https://docs.tomba.io/libraries/php-email-finder#delete-lead-list) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $leadsLists = new LeadsLists($client); $result = $leadsLists->deleteListId('[LIST_ID]');` #### Get All Lead Lists[](https://docs.tomba.io/libraries/php-email-finder#get-all-lead-lists) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $leadsLists = new LeadsLists($client); $result = $leadsLists->getLists();` #### Update Lead List[](https://docs.tomba.io/libraries/php-email-finder#update-lead-list) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $leadsLists = new LeadsLists($client); $result = $leadsLists->updateListId('[List_ID]');` ### Activity Logs[](https://docs.tomba.io/libraries/php-email-finder#activity-logs) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $logs = new Logs($client); $result = $logs->getLogs();` ### Email Sources[](https://docs.tomba.io/libraries/php-email-finder#email-sources) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $sources = new Sources($client); $result = $sources->emailSources('b.mohamed@tomba.io');` ### Domain and Company Status[](https://docs.tomba.io/libraries/php-email-finder#domain-and-company-status) #### Auto Complete[](https://docs.tomba.io/libraries/php-email-finder#auto-complete) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $status = new Status($client); $result = $status->autoComplete('google');` #### Domain Status[](https://docs.tomba.io/libraries/php-email-finder#domain-status) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $status = new Status($client); $result = $status->domainStatus('gmail.com');` ### Usage Statistics[](https://docs.tomba.io/libraries/php-email-finder#usage-statistics) Code `setKey('ta_xxxx') // Your API Key ->setSecret('ts_xxxx') // Your Secret ; $usage = new Usage($client); $result = $usage->getUsage();` For more sample codes, check the [**examples/**](https://github.com/tomba-io/php/tree/master/examples) folder. Last modified on April 28, 2026 [Perl Client Library](https://docs.tomba.io/libraries/perl-email-finder) [Python Client Library](https://docs.tomba.io/libraries/python-email-finder) PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP PHP --- # Windsurf Setup | Tomba Documentation Menu Learn how to setup Windsurf IDE to work with Tomba API using AI-powered development features. Quick Use[](https://docs.tomba.io/llm/editor/windsurf#quick-use) ----------------------------------------------------------------- ### Using Windsurf Chat[](https://docs.tomba.io/llm/editor/windsurf#using-windsurf-chat) In Windsurf's AI chat interface, reference our documentation: Code `@web https://docs.tomba.io/llms.txt Create a comprehensive email validation service using Tomba API with TypeScript, including rate limiting and caching` ### Flow Mode[](https://docs.tomba.io/llm/editor/windsurf#flow-mode) Use Windsurf's Flow mode for complex integrations: Code `Flow: Build Tomba Email Service 1. Fetch docs from https://docs.tomba.io/llms.txt 2. Create TypeScript interfaces for all API responses 3. Build service class with authentication 4. Add error handling and retry logic 5. Create unit tests 6. Add integration examples` Project-level Setup[](https://docs.tomba.io/llm/editor/windsurf#project-level-setup) ------------------------------------------------------------------------------------- ### Method 1: Project Configuration[](https://docs.tomba.io/llm/editor/windsurf#method-1-project-configuration) Create a `.windsurf` directory in your project: TerminalCode `mkdir -p .windsurf` Download documentation: TerminalCode `curl -L https://docs.tomba.io/llms.txt -o .windsurf/tomba-api.md` Create configuration file `.windsurf/config.json`: Code `{ "contextFiles": [".windsurf/tomba-api.md"], "aiInstructions": "When generating API code, use Tomba API patterns from the documentation. Always include proper authentication headers (X-Tomba-Key, X-Tomba-Secret) and implement rate limiting.", "codeGeneration": { "preferredLanguages": ["typescript", "python", "rust"], "includeTests": true, "includeDocumentation": true } }` ### Method 2: Workspace Instructions[](https://docs.tomba.io/llm/editor/windsurf#method-2-workspace-instructions) Create `.windsurf/instructions.md`: Code `# Tomba API Development Instructions ## Authentication Always use these headers: - X-Tomba-Key: API key - X-Tomba-Secret: Secret key ## Base URL https://api.tomba.io/v1 ## Rate Limiting - Implement exponential backoff - Respect 429 responses - Cache responses when appropriate ## Error Handling - Handle network errors - Parse API error responses - Provide meaningful error messages` Windsurf-Specific Features[](https://docs.tomba.io/llm/editor/windsurf#windsurf-specific-features) --------------------------------------------------------------------------------------------------- ### 1\. Multi-Agent Collaboration[](https://docs.tomba.io/llm/editor/windsurf#1-multi-agent-collaboration) Use multiple AI agents for complex tasks: Code `Agent 1: API Client Development - Build TypeScript client for Tomba API - Include all endpoints from documentation - Add comprehensive type definitions Agent 2: Testing & Validation - Create unit tests for all methods - Add integration tests - Test error scenarios Agent 3: Documentation - Generate API usage examples - Create README documentation - Add code comments` ### 2\. Flow-Based Development[](https://docs.tomba.io/llm/editor/windsurf#2-flow-based-development) Create development flows for common patterns: **Email Verification Flow:** Code `Flow: Email Verification Service ├── Parse Tomba API docs ├── Create TypeScript interfaces ├── Build verification service ├── Add caching layer ├── Implement rate limiting ├── Create tests └── Generate usage examples` **Bulk Operations Flow:** Code `Flow: Bulk Email Processing ├── Design batch processing architecture ├── Implement queue system ├── Add progress tracking ├── Handle partial failures ├── Add retry mechanisms └── Create monitoring dashboard` ### 3\. Code Generation Templates[](https://docs.tomba.io/llm/editor/windsurf#3-code-generation-templates) Create reusable templates for Tomba integrations: Code `// Template: Tomba Service Base export abstract class TombaServiceBase { protected readonly apiKey: string; protected readonly secretKey: string; protected readonly baseUrl = "https://api.tomba.io/v1"; constructor(apiKey: string, secretKey: string) { this.apiKey = apiKey; this.secretKey = secretKey; } protected getHeaders(): Record { return { "X-Tomba-Key": this.apiKey, "X-Tomba-Secret": this.secretKey, "Content-Type": "application/json", }; } protected async makeRequest( endpoint: string, options?: RequestInit, ): Promise { // Implementation details } }` Advanced Configuration[](https://docs.tomba.io/llm/editor/windsurf#advanced-configuration) ------------------------------------------------------------------------------------------- ### Environment Setup[](https://docs.tomba.io/llm/editor/windsurf#environment-setup) Create comprehensive environment configuration: TerminalCode `# .env.development TOMBA_API_KEY=dev_key_here TOMBA_SECRET_KEY=dev_secret_here TOMBA_BASE_URL=https://api.tomba.io/v1 TOMBA_TIMEOUT=30000 TOMBA_RATE_LIMIT=100 # .env.production TOMBA_API_KEY=prod_key_here TOMBA_SECRET_KEY=prod_secret_here TOMBA_BASE_URL=https://api.tomba.io/v1 TOMBA_TIMEOUT=60000 TOMBA_RATE_LIMIT=1000` ### Windsurf Workspace Settings[](https://docs.tomba.io/llm/editor/windsurf#windsurf-workspace-settings) Configure `.windsurf/workspace.json`: Code `{ "version": "1.0", "ai": { "model": "claude-3.5-sonnet", "temperature": 0.1, "contextWindow": 200000, "customInstructions": "Focus on production-ready code with comprehensive error handling. Use TypeScript for type safety. Follow REST API best practices." }, "codeGeneration": { "autoFormat": true, "addImports": true, "generateTests": true, "includeDocstrings": true }, "development": { "autoSave": true, "liveReload": true, "typeChecking": true } }` Example Implementations[](https://docs.tomba.io/llm/editor/windsurf#example-implementations) --------------------------------------------------------------------------------------------- ### 1\. Complete TypeScript Client[](https://docs.tomba.io/llm/editor/windsurf#1-complete-typescript-client) **Prompt:** Code `Using the Tomba API documentation, create a complete TypeScript client with: 1. Full type definitions for all API responses 2. Service classes for each endpoint category 3. Request/response interceptors 4. Automatic retry with exponential backoff 5. Comprehensive error handling 6. Built-in caching 7. Rate limiting 8. Request logging 9. Unit tests for all methods 10. Integration examples` ### 2\. React Integration[](https://docs.tomba.io/llm/editor/windsurf#2-react-integration) **Prompt:** Code `Create a React integration for Tomba API that includes: 1. Custom hooks for email operations 2. Context provider for API configuration 3. Components for email finder and verifier 4. Loading states and error handling 5. Form validation integration 6. Caching with React Query 7. TypeScript throughout 8. Storybook stories 9. Jest tests` ### 3\. Node.js Microservice[](https://docs.tomba.io/llm/editor/windsurf#3-nodejs-microservice) **Prompt:** Code `Build a Node.js microservice using Tomba API with: 1. Express.js REST API 2. Input validation with Joi 3. Rate limiting middleware 4. Redis caching 5. Bull queue for background jobs 6. Comprehensive logging 7. Health checks 8. Prometheus metrics 9. Docker configuration 10. API documentation with Swagger` Best Practices for Windsurf[](https://docs.tomba.io/llm/editor/windsurf#best-practices-for-windsurf) ----------------------------------------------------------------------------------------------------- ### 1\. Use Contextual Development[](https://docs.tomba.io/llm/editor/windsurf#1-use-contextual-development) Provide rich context in your prompts: Code `Context: E-commerce platform user registration Goal: Prevent fake email registrations Constraints: Must handle 10k+ registrations/day Requirements: Real-time validation, fallback strategies, audit logging Using Tomba API, implement email verification in the user registration flow` ### 2\. Leverage Flow Mode[](https://docs.tomba.io/llm/editor/windsurf#2-leverage-flow-mode) Break complex tasks into flows: Code `Flow: Email Verification System ├── Requirements Analysis │ ├── Performance requirements │ ├── Scalability needs │ └── Integration points ├── Architecture Design │ ├── Service design │ ├── Data flow │ └── Error handling strategy ├── Implementation │ ├── Core service │ ├── API endpoints │ └── Background jobs ├── Testing │ ├── Unit tests │ ├── Integration tests │ └── Performance tests └── Deployment ├── Docker setup ├── CI/CD pipeline └── Monitoring` ### 3\. Use Multi-Agent Workflows[](https://docs.tomba.io/llm/editor/windsurf#3-use-multi-agent-workflows) Assign specialized roles: Code `Primary Agent: Core Implementation - Build main service classes - Implement API calls - Handle authentication Quality Agent: Testing & Validation - Generate comprehensive tests - Validate error scenarios - Performance testing Documentation Agent: Documentation - Generate API docs - Create usage examples - Write integration guides` Integration Examples[](https://docs.tomba.io/llm/editor/windsurf#integration-examples) --------------------------------------------------------------------------------------- ### Express.js Middleware[](https://docs.tomba.io/llm/editor/windsurf#expressjs-middleware) Code `import { TombaEmailVerifier } from "./tomba-client"; export const emailVerificationMiddleware = (verifier: TombaEmailVerifier) => { return async (req: Request, res: Response, next: NextFunction) => { const { email } = req.body; if (!email) { return next(); } try { const result = await verifier.verify(email); req.emailVerification = result; next(); } catch (error) { res.status(400).json({ error: "Email verification failed", details: error.message, }); } }; };` ### React Hook[](https://docs.tomba.io/llm/editor/windsurf#react-hook) Code `import { useCallback, useState } from "react"; import { useTombaClient } from "./TombaProvider"; export const useEmailVerification = () => { const [loading, setLoading] = useState(false); const [result, setResult] = useState(null); const [error, setError] = useState(null); const client = useTombaClient(); const verify = useCallback( async (email: string) => { setLoading(true); setError(null); try { const verification = await client.verifyEmail(email); setResult(verification); return verification; } catch (err) { setError(err); throw err; } finally { setLoading(false); } }, [client], ); return { verify, loading, result, error }; };` Troubleshooting[](https://docs.tomba.io/llm/editor/windsurf#troubleshooting) ----------------------------------------------------------------------------- ### AI Not Using Documentation[](https://docs.tomba.io/llm/editor/windsurf#ai-not-using-documentation) 1. Verify `.windsurf/tomba-api.md` exists 2. Check workspace configuration 3. Restart Windsurf IDE 4. Clear AI context and retry ### Code Generation Issues[](https://docs.tomba.io/llm/editor/windsurf#code-generation-issues) 1. Be more specific in prompts 2. Provide additional context 3. Use Flow mode for complex tasks 4. Break large requests into smaller ones ### Performance Issues[](https://docs.tomba.io/llm/editor/windsurf#performance-issues) 1. Optimize context files 2. Use targeted prompts 3. Leverage caching features 4. Monitor token usage Additional Resources[](https://docs.tomba.io/llm/editor/windsurf#additional-resources) --------------------------------------------------------------------------------------- * [Windsurf IDE Documentation](https://windsurf.ai/docs) * [Tomba API Reference](https://docs.tomba.io/api) * [Authentication Guide](https://docs.tomba.io/authentication) * [Best Practices](https://docs.tomba.io/features) Last modified on October 3, 2025 [Zed Editor Setup](https://docs.tomba.io/llm/editor/zed) [Claude Desktop Setup](https://docs.tomba.io/llm/editor/claude-desktop) JSON Markdown TypeScript JSON TypeScript TypeScript --- # Ruby Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/ruby-email-finder#installation) ------------------------------------------------------------------------------- To install via [Gem](https://rubygems.org/gems/tomba) : TerminalCode `gem install tomba --save` Usage[](https://docs.tomba.io/libraries/ruby-email-finder#usage) ----------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/ruby-email-finder#domain-search) Get email addresses found on the internet. Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; domain = Tomba::Domain.new(client); response = domain.domain_search(domain: 'stripe.com'); puts response` ### Email Finder[](https://docs.tomba.io/libraries/ruby-email-finder#email-finder) Find the verified email address of any professional. Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; finder = Tomba::Finder.new(client); response = finder.email_finder(domain: 'stripe.com', first_name: 'fname', last_name: 'lname'); puts response` ### Email Verifier[](https://docs.tomba.io/libraries/ruby-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; verifier = Tomba::Verifier.new(client); response = verifier.email_verifier(email: 'm@wordpress.org'); puts response` Examples[](https://docs.tomba.io/libraries/ruby-email-finder#examples) ----------------------------------------------------------------------- ### Get Account Information[](https://docs.tomba.io/libraries/ruby-email-finder#get-account-information) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; account = Tomba::Account.new(client); response = account.get_account(); puts response` ### Email Count[](https://docs.tomba.io/libraries/ruby-email-finder#email-count) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; count = Tomba::Count.new(client); response = count.email_count(domain: 'tomba.io'); puts response` ### Finder Services[](https://docs.tomba.io/libraries/ruby-email-finder#finder-services) #### Author Finder[](https://docs.tomba.io/libraries/ruby-email-finder#author-finder) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; finder = Tomba::Finder.new(client); response = finder.author_finder(url: 'https://clearbit.com/blog/company-name-to-domain-api'); puts response` #### LinkedIn Finder[](https://docs.tomba.io/libraries/ruby-email-finder#linkedin-finder) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; finder = Tomba::Finder.new(client); response = finder.linkedin_finder(url: 'https://www.linkedin.com/in/alex-maccaw-ab592978'); puts response` #### Phone Finder[](https://docs.tomba.io/libraries/ruby-email-finder#phone-finder) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; finder = Tomba::Finder.new(client); response = finder.phone_finder(email: '******@zapier.com'); puts response` ### API Key Management[](https://docs.tomba.io/libraries/ruby-email-finder#api-key-management) #### Create API Key[](https://docs.tomba.io/libraries/ruby-email-finder#create-api-key) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; keys = Tomba::Keys.new(client); response = keys.create_key(); puts response` #### Delete API Key[](https://docs.tomba.io/libraries/ruby-email-finder#delete-api-key) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; keys = Tomba::Keys.new(client); response = keys.delete_key(id: ''); puts response` #### Get All API Keys[](https://docs.tomba.io/libraries/ruby-email-finder#get-all-api-keys) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; keys = Tomba::Keys.new(client); response = keys.get_keys(); puts response` #### Reset API Key[](https://docs.tomba.io/libraries/ruby-email-finder#reset-api-key) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; keys = Tomba::Keys.new(client); response = keys.reset_key(id: ''); puts response` ### Lead Attributes Management[](https://docs.tomba.io/libraries/ruby-email-finder#lead-attributes-management) #### Create Lead Attribute[](https://docs.tomba.io/libraries/ruby-email-finder#create-lead-attribute) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; leads_attributes = Tomba::LeadsAttributes.new(client); response = leads_attributes.create_lead_attribute(); puts response` #### Delete Lead Attribute[](https://docs.tomba.io/libraries/ruby-email-finder#delete-lead-attribute) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; leads_attributes = Tomba::LeadsAttributes.new(client); response = leads_attributes.delete_lead_attribute(id: '[Lead_Attributes_ID]'); puts response` #### Get Lead Attributes[](https://docs.tomba.io/libraries/ruby-email-finder#get-lead-attributes) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; leads_attributes = Tomba::LeadsAttributes.new(client); response = leads_attributes.get_lead_attributes(); puts response` #### Update Lead Attribute[](https://docs.tomba.io/libraries/ruby-email-finder#update-lead-attribute) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; leads_attributes = Tomba::LeadsAttributes.new(client); response = leads_attributes.update_lead_attribute(id: '[Lead_Attributes_ID]'); puts response` ### Lead Lists Management[](https://docs.tomba.io/libraries/ruby-email-finder#lead-lists-management) #### Create Lead List[](https://docs.tomba.io/libraries/ruby-email-finder#create-lead-list) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; leads_lists = Tomba::LeadsLists.new(client); response = leads_lists.create_list(); puts response` #### Delete Lead List[](https://docs.tomba.io/libraries/ruby-email-finder#delete-lead-list) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; leads_lists = Tomba::LeadsLists.new(client); response = leads_lists.delete_list_id(id: '[LIST_ID]'); puts response` #### Get All Lead Lists[](https://docs.tomba.io/libraries/ruby-email-finder#get-all-lead-lists) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; leads_lists = Tomba::LeadsLists.new(client); response = leads_lists.get_lists(); puts response` #### Update Lead List[](https://docs.tomba.io/libraries/ruby-email-finder#update-lead-list) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; leads_lists = Tomba::LeadsLists.new(client); response = leads_lists.update_list_id(id: '[List_ID]'); puts response` ### Activity Logs[](https://docs.tomba.io/libraries/ruby-email-finder#activity-logs) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; logs = Tomba::Logs.new(client); response = logs.get_logs(); puts response` ### Email Sources[](https://docs.tomba.io/libraries/ruby-email-finder#email-sources) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; sources = Tomba::Sources.new(client); response = sources.email_sources(email: 'b.mohamed@tomba.io'); puts response` ### Domain and Company Status[](https://docs.tomba.io/libraries/ruby-email-finder#domain-and-company-status) #### Auto Complete[](https://docs.tomba.io/libraries/ruby-email-finder#auto-complete) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; status = Tomba::Status.new(client); response = status.auto_complete(query: 'google'); puts response` #### Domain Status[](https://docs.tomba.io/libraries/ruby-email-finder#domain-status) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; status = Tomba::Status.new(client); response = status.domain_status(domain: 'gmail.com'); puts response` ### Usage Statistics[](https://docs.tomba.io/libraries/ruby-email-finder#usage-statistics) Code `require 'tomba' client = Tomba::Client.new() client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ; usage = Tomba::Usage.new(client); response = usage.get_usage(); puts response` For more sample codes, check the [**examples/**](https://github.com/tomba-io/ruby/tree/master/examples) folder. Last modified on April 28, 2026 [Rust Client Library](https://docs.tomba.io/libraries/rust-email-finder) [Disposable Email Blocker](https://docs.tomba.io/disposable-email-blocker/overview) Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby --- # xAI Grok Setup | Tomba Documentation Menu Learn how to use xAI Grok effectively with Tomba API documentation for code generation and development assistance. Quick Use[](https://docs.tomba.io/llm/editor/grok#quick-use) ------------------------------------------------------------- ### Direct Documentation Reference[](https://docs.tomba.io/llm/editor/grok#direct-documentation-reference) Reference our documentation in your Grok prompts: Code `Hey Grok! Check out the Tomba API docs at https://docs.tomba.io/llms.txt and help me build a sick email verification API in Rust that's blazingly fast and handles errors like a boss.` ### Real-time Web Integration[](https://docs.tomba.io/llm/editor/grok#real-time-web-integration) Grok can access real-time information, making it great for current API integration: Code `Using the latest Tomba API documentation, create a modern JavaScript email verification library that: - Uses the newest ES2024 features - Implements proper rate limiting - Has excellent TypeScript support - Works with the latest framework versions - Includes real-time validation feedback` Grok-Specific Features[](https://docs.tomba.io/llm/editor/grok#grok-specific-features) --------------------------------------------------------------------------------------- ### 1\. Real-time Information Access[](https://docs.tomba.io/llm/editor/grok#1-real-time-information-access) Grok can access current web information, making it excellent for up-to-date API integration: Code `What are the current rate limits for Tomba API and how do they compare to other email verification services? Based on this analysis and the Tomba API docs, create an optimal rate limiting strategy for a high-volume application.` ### 2\. Conversational Development Style[](https://docs.tomba.io/llm/editor/grok#2-conversational-development-style) Grok responds well to casual, conversational prompts: Code `Yo Grok! I'm building this email verification thing with Tomba API. The docs are at https://docs.tomba.io/llms.txt. I need something that: - Doesn't suck at handling errors - Can process like 10k emails without breaking - Has proper TypeScript because I'm not a caveman - Actually works in production Hook me up with a solid implementation!` ### 3\. Humor and Personality[](https://docs.tomba.io/llm/editor/grok#3-humor-and-personality) Leverage Grok's personality for engaging development sessions: Code `Grok, I need your help to make this email verification code less terrible. The Tomba API docs are at https://docs.tomba.io/llms.txt. Current situation: My code is about as reliable as a chocolate teapot. Goal: Make it production-ready without wanting to throw my laptop out the window. What's your take on building this properly?` Development Workflows[](https://docs.tomba.io/llm/editor/grok#development-workflows) ------------------------------------------------------------------------------------- ### 1\. Rapid Prototyping[](https://docs.tomba.io/llm/editor/grok#1-rapid-prototyping) **Quick Start Request**: Code `Grok, I need to quickly prototype an email verification feature using Tomba API. The docs are at https://docs.tomba.io/llms.txt. Give me the fastest way to: 1. Set up a basic Node.js client 2. Verify a single email 3. Handle the most common errors 4. Test it works Skip the fancy stuff for now, just make it work!` ### 2\. Production Hardening[](https://docs.tomba.io/llm/editor/grok#2-production-hardening) **Scaling Discussion**: Code `Alright Grok, time to get serious. I've got this basic Tomba API integration working, but now I need to scale it up for production. Current situation: - Handling ~1000 emails/day - Need to scale to 100k/day - Can't afford downtime - Budget constraints Based on the Tomba API docs and your knowledge of scaling APIs, what's the battle plan?` ### 3\. Problem Solving[](https://docs.tomba.io/llm/editor/grok#3-problem-solving) **Debugging Session**: Code `Grok, I'm in debugging hell. My Tomba API integration is acting up: Issues: - Random timeouts (but not always) - Memory leaks somewhere - Rate limits hitting unexpectedly - Error messages that make no sense The docs are at https://docs.tomba.io/llms.txt. Help me figure out what's going wrong and fix this mess!` Code Generation Examples[](https://docs.tomba.io/llm/editor/grok#code-generation-examples) ------------------------------------------------------------------------------------------- ### 1\. Modern JavaScript/TypeScript[](https://docs.tomba.io/llm/editor/grok#1-modern-javascripttypescript) **Prompt**: Code `Grok, create a modern TypeScript client for Tomba API that uses all the latest and greatest features: - ES2024 syntax where applicable - Proper async/await patterns - Modern error handling - Type safety that actually helps - Works with Bun, Node.js, and Deno - Has built-in retry logic - Caches intelligently - Doesn't make developers cry Use the Tomba API docs at https://docs.tomba.io/llms.txt for the implementation details.` ### 2\. Performance-Focused Implementation[](https://docs.tomba.io/llm/editor/grok#2-performance-focused-implementation) **Prompt**: Code `I need a high-performance email verification service using Tomba API that can handle serious traffic. Requirements: - Process 50k emails/hour - Sub-100ms response times - Memory efficient - Fault tolerant - Actually works under load Technology preference: Your choice, but justify it! Based on the Tomba API docs (https://docs.tomba.io/llms.txt), what would you build and how?` ### 3\. Developer Experience Focus[](https://docs.tomba.io/llm/editor/grok#3-developer-experience-focus) **Prompt**: Code `Grok, create a Tomba API wrapper that developers will actually want to use: - Intuitive API design - Excellent error messages - Great debugging experience - Fantastic documentation - Easy testing capabilities - Minimal boilerplate - Works everywhere Make it so good that developers recommend it to their friends. Use the Tomba docs at https://docs.tomba.io/llms.txt for accuracy.` Framework Integrations[](https://docs.tomba.io/llm/editor/grok#framework-integrations) --------------------------------------------------------------------------------------- ### 1\. Next.js Integration[](https://docs.tomba.io/llm/editor/grok#1-nextjs-integration) Code `Hey Grok! I'm building a Next.js app that needs email verification. Based on the Tomba API docs (https://docs.tomba.io/llms.txt), create: - API routes for email verification - Client-side hooks for real-time validation - Server components for bulk processing - Middleware for rate limiting - Edge function compatibility - Proper caching strategies - TypeScript throughout Make it work with both App Router and Pages Router because compatibility matters!` ### 2\. Svelte/SvelteKit Integration[](https://docs.tomba.io/llm/editor/grok#2-sveltesveltekit-integration) Code `Grok, I'm all-in on Svelte and need to integrate Tomba email verification. The API docs are at https://docs.tomba.io/llms.txt. Create a SvelteKit implementation with: - Svelte stores for state management - Actions for form handling - Load functions for SSR - Reactive email validation - Proper error handling - TypeScript support - Component composition Make it feel native to the Svelte ecosystem!` ### 3\. Fresh (Deno) Integration[](https://docs.tomba.io/llm/editor/grok#3-fresh-deno-integration) Code `I'm experimenting with Fresh and Deno. Based on the Tomba API docs, create an email verification integration that: - Uses Deno's native features - Works with Fresh's island architecture - Handles edge cases gracefully - Is properly typed - Doesn't require node_modules Show me how modern web development should be done!` Advanced Use Cases[](https://docs.tomba.io/llm/editor/grok#advanced-use-cases) ------------------------------------------------------------------------------- ### 1\. Real-time Email Validation[](https://docs.tomba.io/llm/editor/grok#1-real-time-email-validation) Code `Grok, I want to build real-time email validation that doesn't annoy users. Using Tomba API (docs: https://docs.tomba.io/llms.txt), create: - Debounced validation that's smart about when to check - Progressive validation (format → domain → deliverability) - Graceful degradation when API is unavailable - User feedback that actually helps - Proper handling of edge cases - Performance that doesn't suck Make it smooth like butter!` ### 2\. Bulk Processing Pipeline[](https://docs.tomba.io/llm/editor/grok#2-bulk-processing-pipeline) Code `I need to process millions of emails efficiently with Tomba API. Design a system that: - Handles massive batches without choking - Processes in parallel but respects rate limits - Recovers from failures gracefully - Provides progress tracking - Scales horizontally - Doesn't cost a fortune to run What's your architecture recommendation? Use the Tomba docs for API specifics.` ### 3\. Multi-tenant SaaS Integration[](https://docs.tomba.io/llm/editor/grok#3-multi-tenant-saas-integration) Code `Building a SaaS platform that needs email verification for multiple customers. Each customer has different needs and usage patterns. Design a multi-tenant system using Tomba API that: - Isolates customer data and usage - Handles different subscription tiers - Provides usage analytics per tenant - Scales per customer needs - Maintains security boundaries - Offers white-label capabilities What's the cleanest way to architect this?` Best Practices for Grok[](https://docs.tomba.io/llm/editor/grok#best-practices-for-grok) ----------------------------------------------------------------------------------------- ### 1\. Be Direct and Conversational[](https://docs.tomba.io/llm/editor/grok#1-be-direct-and-conversational) Code `Grok, straight up - I need to integrate Tomba email verification into my app without it becoming a nightmare. The docs are at https://docs.tomba.io/llms.txt. What's the smartest way to do this that won't bite me later?` ### 2\. Ask for Opinions and Alternatives[](https://docs.tomba.io/llm/editor/grok#2-ask-for-opinions-and-alternatives) Code `Based on the Tomba API, what do you think is better for email verification: 1. Real-time validation on every keystroke 2. Validation on form submission 3. Background validation with smart caching Give me your honest take and explain why!` ### 3\. Request Practical Examples[](https://docs.tomba.io/llm/editor/grok#3-request-practical-examples) Code `Show me how you'd actually implement Tomba email verification in a real app. Don't give me toy examples - show me production-ready code that handles the messy reality of building software. Include the stuff that tutorials skip: - Error handling for weird edge cases - Rate limiting that actually works - Logging that helps with debugging - Testing that catches real issues` Integration Patterns[](https://docs.tomba.io/llm/editor/grok#integration-patterns) ----------------------------------------------------------------------------------- ### 1\. Event-Driven Validation[](https://docs.tomba.io/llm/editor/grok#1-event-driven-validation) Code `Grok, help me design an event-driven email validation system using Tomba API: Events I'm thinking: - EmailSubmitted - ValidationRequested - ValidationCompleted - ValidationFailed How would you structure this to be resilient and fast? What events am I missing?` ### 2\. Circuit Breaker Pattern[](https://docs.tomba.io/llm/editor/grok#2-circuit-breaker-pattern) Code `My Tomba API integration needs to be bulletproof. Implement a circuit breaker pattern that: - Detects when Tomba API is having issues - Falls back gracefully to basic validation - Recovers automatically when service is restored - Doesn't cascade failures through my system - Provides useful metrics for monitoring Make it robust but not overly complex!` ### 3\. Caching Strategy[](https://docs.tomba.io/llm/editor/grok#3-caching-strategy) Code `What's the smartest caching strategy for Tomba email verification? Considerations: - Email verification results can change over time - Some emails are checked more frequently - Cache invalidation is hard - Memory vs accuracy tradeoffs - Multi-level caching possibilities Give me your cache architecture recommendations!` Performance Optimization[](https://docs.tomba.io/llm/editor/grok#performance-optimization) ------------------------------------------------------------------------------------------- ### 1\. Latency Optimization[](https://docs.tomba.io/llm/editor/grok#1-latency-optimization) Code `Grok, my Tomba API calls are too slow for real-time UX. Current average is 800ms, need to get under 200ms. Analyze the bottlenecks and give me optimization strategies: - Connection pooling - Request batching - Geographic distribution - Smart caching - Predictive validation What's the biggest bang for optimization buck?` ### 2\. Cost Optimization[](https://docs.tomba.io/llm/editor/grok#2-cost-optimization) Code `I'm burning through my Tomba API quota too fast. Help me optimize costs while maintaining quality: Current usage patterns: - Lots of duplicate email checks - Validation of obviously invalid emails - Peak traffic periods waste quota Design a cost-effective validation strategy that's still user-friendly.` Troubleshooting[](https://docs.tomba.io/llm/editor/grok#troubleshooting) ------------------------------------------------------------------------- ### Grok-Specific Tips[](https://docs.tomba.io/llm/editor/grok#grok-specific-tips) 1. **Use Conversational Tone**: Grok responds well to natural conversation 2. **Be Specific About Problems**: Describe actual pain points, not theoretical issues 3. **Ask for Opinions**: Grok enjoys sharing perspectives on technical decisions 4. **Request Real-world Examples**: Ask for production-ready, not tutorial code ### Common Patterns[](https://docs.tomba.io/llm/editor/grok#common-patterns) 1. **"What's your take on..."**: Get Grok's opinion on technical approaches 2. **"Show me how you'd actually..."**: Request practical implementations 3. **"Help me debug this mess..."**: Get assistance with real problems 4. **"What am I missing here?"**: Identify gaps in your approach Additional Resources[](https://docs.tomba.io/llm/editor/grok#additional-resources) ----------------------------------------------------------------------------------- * [xAI Grok Platform](https://grok.x.ai/) * [Tomba API Reference](https://docs.tomba.io/api) * [Authentication Guide](https://docs.tomba.io/authentication) * [Rate Limits Documentation](https://docs.tomba.io/rate-limits) * [Performance Best Practices](https://docs.tomba.io/features) Last modified on October 3, 2025 [Google Gemini Setup](https://docs.tomba.io/llm/editor/gemini) [Cline - VSCode Setup](https://docs.tomba.io/llm/editor/cline) --- # Claude Desktop Setup | Tomba Documentation Menu Claude Desktop Setup[](https://docs.tomba.io/llm/editor/claude-desktop#claude-desktop-setup) ============================================================================================= Learn how to setup Claude Desktop to work effectively with Tomba API for code generation and development assistance. Quick Use[](https://docs.tomba.io/llm/editor/claude-desktop#quick-use) ----------------------------------------------------------------------- ### Direct Documentation Reference[](https://docs.tomba.io/llm/editor/claude-desktop#direct-documentation-reference) In Claude Desktop, you can reference our documentation directly: Code `Please review the Tomba API documentation at https://docs.tomba.io/llms.txt and help me create a Python client for email verification with async support and proper error handling.` ### Project Analysis[](https://docs.tomba.io/llm/editor/claude-desktop#project-analysis) Code `I'm building an email validation service. Can you analyze the Tomba API documentation at https://docs.tomba.io/llms.txt and suggest the best approach for: 1. Real-time email verification 2. Bulk email processing 3. Rate limiting and caching 4. Error handling strategies` Project-level Setup[](https://docs.tomba.io/llm/editor/claude-desktop#project-level-setup) ------------------------------------------------------------------------------------------- ### Method 1: Documentation Preparation[](https://docs.tomba.io/llm/editor/claude-desktop#method-1-documentation-preparation) Before starting a coding session, prepare your documentation: 1. **Download Documentation Locally**: TerminalCode `curl -L https://docs.tomba.io/llms.txt -o tomba-api-docs.txt` 2. **Upload to Claude Desktop**: * Click the attachment button (📎) * Select the `tomba-api-docs.txt` file * This gives Claude persistent access to the documentation ### Method 2: Project Context File[](https://docs.tomba.io/llm/editor/claude-desktop#method-2-project-context-file) Create a comprehensive project context file: Code `# Project: Email Validation Service # Technology Stack: Node.js, TypeScript, Express, Redis # API Provider: Tomba.io ## Tomba API Documentation [Upload tomba-api-docs.txt here] ## Project Requirements - Real-time email verification - Bulk processing capabilities - Rate limiting (100 requests/minute) - Redis caching (1-hour TTL) - Comprehensive error handling - TypeScript throughout - Unit and integration tests ## Environment Variables - TOMBA_API_KEY - TOMBA_SECRET_KEY - REDIS_URL - PORT ## Current Architecture [Describe your current setup]` Claude Desktop Best Practices[](https://docs.tomba.io/llm/editor/claude-desktop#claude-desktop-best-practices) --------------------------------------------------------------------------------------------------------------- ### 1\. Structured Conversations[](https://docs.tomba.io/llm/editor/claude-desktop#1-structured-conversations) Start conversations with clear context: Code `Context: Building a TypeScript Node.js service for email verification Documentation: [Upload tomba-api-docs.txt] Current Task: Implement rate limiting with Redis Please help me create a rate limiting middleware that: 1. Uses Redis for distributed rate limiting 2. Implements sliding window algorithm 3. Returns appropriate HTTP status codes 4. Includes retry-after headers 5. Logs rate limit violations` ### 2\. Incremental Development[](https://docs.tomba.io/llm/editor/claude-desktop#2-incremental-development) Build features step by step: **Session 1**: Architecture & Planning Code `Based on the Tomba API docs, help me design the architecture for an email verification service that needs to handle 10k requests/day with high availability.` **Session 2**: Core Implementation Code `Let's implement the core Tomba API client. I need: - TypeScript interfaces for all responses - Proper authentication handling - Request/response interceptors - Error handling for all scenarios` **Session 3**: Advanced Features Code `Now let's add advanced features: - Caching with Redis - Rate limiting - Request queuing for bulk operations - Monitoring and metrics` ### 3\. Code Review and Optimization[](https://docs.tomba.io/llm/editor/claude-desktop#3-code-review-and-optimization) Use Claude for code review: Code `Please review this Tomba API integration code for: - Security best practices - Performance optimizations - Error handling completeness - Code maintainability - TypeScript type safety [Paste your code here]` Development Workflows[](https://docs.tomba.io/llm/editor/claude-desktop#development-workflows) ----------------------------------------------------------------------------------------------- ### 1\. API Client Development[](https://docs.tomba.io/llm/editor/claude-desktop#1-api-client-development) **Initial Prompt**: Code `Using the uploaded Tomba API documentation, create a complete TypeScript client library with: 1. Core client class with authentication 2. Service classes for each endpoint group: - Email finder - Email verifier - Domain search - Bulk operations 3. Comprehensive TypeScript types 4. Error handling with custom error classes 5. Rate limiting with exponential backoff 6. Request/response logging 7. Unit tests with Jest 8. Integration examples Please start with the project structure and core client class.` ### 2\. Integration Development[](https://docs.tomba.io/llm/editor/claude-desktop#2-integration-development) **Prompt for Express.js Integration**: Code `Based on the Tomba API documentation, help me integrate email verification into an Express.js application: 1. Middleware for email validation 2. Route handlers for verification endpoints 3. Background job processing for bulk operations 4. Error handling middleware 5. Request logging and monitoring 6. API documentation with Swagger 7. Docker configuration 8. Environment-based configuration Current Express app structure: [Describe your current setup]` ### 3\. Testing Strategy[](https://docs.tomba.io/llm/editor/claude-desktop#3-testing-strategy) **Comprehensive Testing Prompt**: Code `Help me create a comprehensive testing strategy for my Tomba API integration: 1. Unit tests for all service methods 2. Integration tests with mock API responses 3. Error scenario testing 4. Rate limiting tests 5. Performance benchmarks 6. End-to-end tests 7. Test data fixtures 8. CI/CD pipeline integration Current testing setup: Jest + Supertest` Code Examples[](https://docs.tomba.io/llm/editor/claude-desktop#code-examples) ------------------------------------------------------------------------------- ### TypeScript Client Implementation[](https://docs.tomba.io/llm/editor/claude-desktop#typescript-client-implementation) **Prompt**: Code `Create a production-ready TypeScript client for Tomba API with the following specifications: - Singleton pattern for client instance - Configurable base URL and timeouts - Automatic retry with exponential backoff - Request/response interceptors - Comprehensive error handling - Type-safe API methods - Built-in caching support - Request logging` **Generated Code Structure**: Code `// types/tomba.ts export interface TombaConfig { apiKey: string; secretKey: string; baseUrl?: string; timeout?: number; retryAttempts?: number; retryDelay?: number; } export interface EmailVerificationResult { email: string; result: "valid" | "invalid" | "unknown"; score: number; reason: string; // ... other fields from API docs } // client/tomba-client.ts export class TombaClient { private static instance: TombaClient; private config: Required; public static getInstance(config: TombaConfig): TombaClient { if (!TombaClient.instance) { TombaClient.instance = new TombaClient(config); } return TombaClient.instance; } // Implementation details... }` ### React Integration[](https://docs.tomba.io/llm/editor/claude-desktop#react-integration) **Prompt**: Code `Create React components and hooks for Tomba email verification: 1. TombaProvider context component 2. useEmailVerification hook 3. EmailVerificationForm component 4. BulkEmailProcessor component 5. VerificationResults display component 6. Error boundary for API errors 7. Loading states and progress indicators 8. Form validation integration` ### Python Async Client[](https://docs.tomba.io/llm/editor/claude-desktop#python-async-client) **Prompt**: Code `Build a Python async client for Tomba API using aiohttp: 1. AsyncTombaClient class 2. Async context manager support 3. Session management with connection pooling 4. Rate limiting with asyncio semaphores 5. Retry logic with exponential backoff 6. Comprehensive error handling 7. Type hints throughout 8. Async generators for bulk operations 9. Caching with TTL support 10. Logging integration` Advanced Use Cases[](https://docs.tomba.io/llm/editor/claude-desktop#advanced-use-cases) ----------------------------------------------------------------------------------------- ### 1\. Microservices Architecture[](https://docs.tomba.io/llm/editor/claude-desktop#1-microservices-architecture) **Architecture Planning Prompt**: Code `Help me design a microservices architecture for email validation using Tomba API: Services needed: - Email verification service - Bulk processing service - Cache service (Redis) - Queue service (Bull/Agenda) - API gateway - Monitoring service Requirements: - Handle 100k+ requests/day - 99.9% uptime - Horizontal scaling - Circuit breaker pattern - Distributed tracing - Comprehensive monitoring Please provide: 1. Service boundaries and responsibilities 2. Inter-service communication patterns 3. Data flow diagrams 4. Technology recommendations 5. Deployment strategy` ### 2\. Performance Optimization[](https://docs.tomba.io/llm/editor/claude-desktop#2-performance-optimization) **Optimization Prompt**: Code `My Tomba API integration is experiencing performance issues: Current metrics: - 500ms average response time - 10% timeout rate - High memory usage - Occasional rate limit errors Please analyze and optimize: 1. Connection pooling configuration 2. Request batching strategies 3. Caching implementation 4. Memory usage patterns 5. Rate limiting logic 6. Error recovery mechanisms Current implementation: [Paste relevant code]` ### 3\. Security Hardening[](https://docs.tomba.io/llm/editor/claude-desktop#3-security-hardening) **Security Review Prompt**: Code `Please review my Tomba API integration for security best practices: Areas to examine: 1. API key management and rotation 2. Request/response data sanitization 3. Rate limiting and DDoS protection 4. Input validation 5. Error message exposure 6. Logging security (no sensitive data) 7. HTTPS enforcement 8. Authentication token handling Current security measures: [Describe current implementation]` File Management Tips[](https://docs.tomba.io/llm/editor/claude-desktop#file-management-tips) --------------------------------------------------------------------------------------------- ### Organizing Documentation[](https://docs.tomba.io/llm/editor/claude-desktop#organizing-documentation) 1. **Create Project Folder**: Organize files by project 2. **Version Documentation**: Keep versions of API docs for reference 3. **Context Files**: Maintain project-specific context files 4. **Code Snippets**: Save reusable code patterns ### Conversation Management[](https://docs.tomba.io/llm/editor/claude-desktop#conversation-management) 1. **Topic-based Conversations**: Separate conversations by feature/topic 2. **Regular Summaries**: Ask Claude to summarize progress 3. **Context Refresh**: Re-upload docs when starting new features 4. **Code Reviews**: Dedicated conversations for code review Troubleshooting[](https://docs.tomba.io/llm/editor/claude-desktop#troubleshooting) ----------------------------------------------------------------------------------- ### Documentation Issues[](https://docs.tomba.io/llm/editor/claude-desktop#documentation-issues) 1. **File Upload Fails**: Try smaller file sizes, split if necessary 2. **Context Lost**: Re-upload documentation if Claude seems unfamiliar 3. **Outdated Info**: Download fresh documentation periodically ### Code Generation Issues[](https://docs.tomba.io/llm/editor/claude-desktop#code-generation-issues) 1. **Be Specific**: Provide detailed requirements and constraints 2. **Include Context**: Always include relevant project information 3. **Iterative Approach**: Build complex features incrementally 4. **Review Outputs**: Validate generated code against documentation ### Performance Issues[](https://docs.tomba.io/llm/editor/claude-desktop#performance-issues) 1. **Reduce Context**: Use focused conversations for specific tasks 2. **Clear Conversations**: Start fresh for unrelated topics 3. **Optimize Prompts**: Be concise but complete in requests Additional Resources[](https://docs.tomba.io/llm/editor/claude-desktop#additional-resources) --------------------------------------------------------------------------------------------- * [Claude Desktop Guide](https://claude.ai/desktop) * [Tomba API Reference](https://docs.tomba.io/api) * [Authentication Documentation](https://docs.tomba.io/authentication) * [Rate Limits Guide](https://docs.tomba.io/rate-limits) * [Error Handling Guide](https://docs.tomba.io/error-handling) Last modified on October 3, 2025 [Windsurf Setup](https://docs.tomba.io/llm/editor/windsurf) [Claude Code Setup](https://docs.tomba.io/llm/editor/claude-code) Markdown TypeScript --- # Node Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/node-email-finder#installation) ------------------------------------------------------------------------------- To install via [NPM](https://www.npmjs.com/package/tomba) : TerminalCode `npm install tomba --save` To install via [YARN](https://yarnpkg.com/package/tomba) : TerminalCode `yarn add tomba` Usage[](https://docs.tomba.io/libraries/node-email-finder#usage) ----------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/node-email-finder#domain-search) Get email addresses found on the internet. Code `import { TombaClient, Domain } from "tomba"; // Init Tomba const client = new TombaClient(); const domain = new Domain(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = domain.domainSearch("stripe.com"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Email Finder[](https://docs.tomba.io/libraries/node-email-finder#email-finder) Find the verified email address of any professional. Code `import { TombaClient, Finder } from "tomba"; // Init Tomba const client = new TombaClient(); const finder = new Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = finder.emailFinder("stripe.com", "fname", "lname"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Email Verifier[](https://docs.tomba.io/libraries/node-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `import { TombaClient, Verifier } from "tomba"; // Init Tomba const client = new TombaClient(); const verifier = new Verifier(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = verifier.emailVerifier("m@wordpress.org"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` Examples[](https://docs.tomba.io/libraries/node-email-finder#examples) ----------------------------------------------------------------------- ### Get Account Information[](https://docs.tomba.io/libraries/node-email-finder#get-account-information) Code `import { TombaClient, Account } from "tomba"; // Init Tomba const client = new TombaClient(); const account = new Account(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = account.getAccount(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Email Count[](https://docs.tomba.io/libraries/node-email-finder#email-count) Code `import { TombaClient, Count } from "tomba"; // Init Tomba const client = new TombaClient(); const count = new Count(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = count.emailCount("tomba.io"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Finder Services[](https://docs.tomba.io/libraries/node-email-finder#finder-services) #### Author Finder[](https://docs.tomba.io/libraries/node-email-finder#author-finder) Code `import { TombaClient, Finder } from "tomba"; // Init Tomba const client = new TombaClient(); const finder = new Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = finder.authorFinder("www.shopify.com/blog/self-publish-a-book"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Email Enrichment[](https://docs.tomba.io/libraries/node-email-finder#email-enrichment) Code `import { TombaClient, Finder } from "tomba"; // Init Tomba const client = new TombaClient(); const finder = new Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = finder.emailEnrichment("dayna.winter@shopify.com"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### LinkedIn Finder[](https://docs.tomba.io/libraries/node-email-finder#linkedin-finder) Code `import { TombaClient, Finder } from "tomba"; // Init Tomba const client = new TombaClient(); const finder = new Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = finder.linkedinFinder("https://www.linkedin.com/in/mattm"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### API Key Management[](https://docs.tomba.io/libraries/node-email-finder#api-key-management) #### Create API Key[](https://docs.tomba.io/libraries/node-email-finder#create-api-key) Code `import { TombaClient, Keys } from "tomba"; // Init Tomba const client = new TombaClient(); const keys = new Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = keys.createKey(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Delete API Key[](https://docs.tomba.io/libraries/node-email-finder#delete-api-key) Code `import { TombaClient, Keys } from "tomba"; // Init Tomba const client = new TombaClient(); const keys = new Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = keys.deleteKey(""); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Get All API Keys[](https://docs.tomba.io/libraries/node-email-finder#get-all-api-keys) Code `import { TombaClient, Keys } from "tomba"; // Init Tomba const client = new TombaClient(); const keys = new Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = keys.getKeys(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Reset API Key[](https://docs.tomba.io/libraries/node-email-finder#reset-api-key) Code `import { TombaClient, Keys } from "tomba"; // Init Tomba const client = new TombaClient(); const keys = new Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = keys.resetKey(""); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Lead Attributes Management[](https://docs.tomba.io/libraries/node-email-finder#lead-attributes-management) #### Create Lead Attribute[](https://docs.tomba.io/libraries/node-email-finder#create-lead-attribute) Code `import { TombaClient, LeadsAttributes } from "tomba"; // Init Tomba const client = new TombaClient(); const leadsAttributes = new LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsAttributes.createLeadAttribute(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Delete Lead Attribute[](https://docs.tomba.io/libraries/node-email-finder#delete-lead-attribute) Code `import { TombaClient, LeadsAttributes } from "tomba"; // Init Tomba const client = new TombaClient(); const leadsAttributes = new LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsAttributes.deleteLeadAttribute("[Lead_Attributes_ID]"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Get Lead Attributes[](https://docs.tomba.io/libraries/node-email-finder#get-lead-attributes) Code `import { TombaClient, LeadsAttributes } from "tomba"; // Init Tomba const client = new TombaClient(); const leadsAttributes = new LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsAttributes.getLeadAttributes(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Update Lead Attribute[](https://docs.tomba.io/libraries/node-email-finder#update-lead-attribute) Code `import { TombaClient, LeadsAttributes } from "tomba"; // Init Tomba const client = new TombaClient(); const leadsAttributes = new LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsAttributes.updateLeadAttribute("[Lead_Attributes_ID]"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Lead Lists Management[](https://docs.tomba.io/libraries/node-email-finder#lead-lists-management) #### Create Lead List[](https://docs.tomba.io/libraries/node-email-finder#create-lead-list) Code `import { TombaClient, LeadsLists } from "tomba"; // Init Tomba const client = new TombaClient(); const leadsLists = new LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsLists.createList(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Delete Lead List[](https://docs.tomba.io/libraries/node-email-finder#delete-lead-list) Code `import { TombaClient, LeadsLists } from "tomba"; // Init Tomba const client = new TombaClient(); const leadsLists = new LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsLists.deleteListId("[LIST_ID]"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Get All Lead Lists[](https://docs.tomba.io/libraries/node-email-finder#get-all-lead-lists) Code `import { TombaClient, LeadsLists } from "tomba"; // Init Tomba const client = new TombaClient(); const leadsLists = new LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsLists.getLists(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Update Lead List[](https://docs.tomba.io/libraries/node-email-finder#update-lead-list) Code `import { TombaClient, LeadsLists } from "tomba"; // Init Tomba const client = new TombaClient(); const leadsLists = new LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsLists.updateListId("[List_ID]"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Activity Logs[](https://docs.tomba.io/libraries/node-email-finder#activity-logs) Code `import { TombaClient, Logs } from "tomba"; // Init Tomba const client = new TombaClient(); const logs = new Logs(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = logs.getLogs(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Email Sources[](https://docs.tomba.io/libraries/node-email-finder#email-sources) Code `import { TombaClient, Sources } from "tomba"; // Init Tomba const client = new TombaClient(); const sources = new Sources(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = sources.emailSources("b.mohamed@tomba.io"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Domain and Company Status[](https://docs.tomba.io/libraries/node-email-finder#domain-and-company-status) #### Domain Status[](https://docs.tomba.io/libraries/node-email-finder#domain-status) Code `import { TombaClient, Status } from "tomba"; // Init Tomba const client = new TombaClient(); const status = new Status(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = status.domainStatus("gmail.com"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Usage Statistics[](https://docs.tomba.io/libraries/node-email-finder#usage-statistics) Code `import { TombaClient, Usage } from "tomba"; // Init Tomba const client = new TombaClient(); const usage = new Usage(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = usage.getUsage(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` For more sample codes, check the [**examples/**](https://github.com/tomba-io/node/tree/master/examples) folder. Last modified on April 28, 2026 [Go Client Library](https://docs.tomba.io/libraries/go-email-finder) [Lua Client Library](https://docs.tomba.io/libraries/lua-email-finder) Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript --- # Python Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/python-email-finder#installation) --------------------------------------------------------------------------------- To install via [PyPI](https://pypi.org/project/tomba-io/) : TerminalCode `pip install tomba-io` Usage[](https://docs.tomba.io/libraries/python-email-finder#usage) ------------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/python-email-finder#domain-search) Get email addresses found on the internet. Code `from tomba.client import Client from tomba.services.domain import Domain client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) domain = Domain(client) result = domain.domain_search('stripe.com')` ### Email Finder[](https://docs.tomba.io/libraries/python-email-finder#email-finder) Find the verified email address of any professional. Code `from tomba.client import Client from tomba.services.finder import Finder client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) finder = Finder(client) result = finder.email_finder('wordpress.org', 'Matt', 'Mullenweg')` ### Email Verifier[](https://docs.tomba.io/libraries/python-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `from tomba.client import Client from tomba.services.verifier import Verifier client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) verifier = Verifier(client) result = verifier.email_verifier('m@wordpress.org')` Examples[](https://docs.tomba.io/libraries/python-email-finder#examples) ------------------------------------------------------------------------- ### Get Account Information[](https://docs.tomba.io/libraries/python-email-finder#get-account-information) Code `from tomba.client import Client from tomba.services.account import Account client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) account = Account(client) result = account.get_account()` ### Email Count[](https://docs.tomba.io/libraries/python-email-finder#email-count) Code `from tomba.client import Client from tomba.services.count import Count client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) count = Count(client) result = count.email_count('tomba.io')` ### Enrichment Services[](https://docs.tomba.io/libraries/python-email-finder#enrichment-services) #### Combined Enrichment[](https://docs.tomba.io/libraries/python-email-finder#combined-enrichment) Code `from tomba.client import Client from tomba.services.enrichment import Enrichment client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) enrichment = Enrichment(client) result = enrichment.combined('******@zapier.com')` #### Company Enrichment[](https://docs.tomba.io/libraries/python-email-finder#company-enrichment) Code `from tomba.client import Client from tomba.services.enrichment import Enrichment client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) enrichment = Enrichment(client) result = enrichment.company('zapier.com')` #### Person Enrichment[](https://docs.tomba.io/libraries/python-email-finder#person-enrichment) Code `from tomba.client import Client from tomba.services.enrichment import Enrichment client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) enrichment = Enrichment(client) result = enrichment.person('john.doe@zapier.com')` ### Finder Services[](https://docs.tomba.io/libraries/python-email-finder#finder-services) #### Author Finder[](https://docs.tomba.io/libraries/python-email-finder#author-finder) Code `from tomba.client import Client from tomba.services.finder import Finder client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) finder = Finder(client) result = finder.author_finder('https://clearbit.com/blog/company-name-to-domain-api')` #### Email Enrichment[](https://docs.tomba.io/libraries/python-email-finder#email-enrichment) Code `from tomba.client import Client from tomba.services.finder import Finder client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) finder = Finder(client) result = finder.enrichment('b.mohamed@tomba.io')` #### LinkedIn Finder[](https://docs.tomba.io/libraries/python-email-finder#linkedin-finder) Code `from tomba.client import Client from tomba.services.finder import Finder client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) finder = Finder(client) result = finder.linkedin_finder('https://www.linkedin.com/in/alex-maccaw-ab592978')` ### API Key Management[](https://docs.tomba.io/libraries/python-email-finder#api-key-management) #### Create API Key[](https://docs.tomba.io/libraries/python-email-finder#create-api-key) Code `from tomba.client import Client from tomba.services.keys import Keys client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) keys = Keys(client) result = keys.create_key()` #### Delete API Key[](https://docs.tomba.io/libraries/python-email-finder#delete-api-key) Code `from tomba.client import Client from tomba.services.keys import Keys client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) keys = Keys(client) result = keys.delete_key('')` #### Get All API Keys[](https://docs.tomba.io/libraries/python-email-finder#get-all-api-keys) Code `from tomba.client import Client from tomba.services.keys import Keys client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) keys = Keys(client) result = keys.get_keys()` #### Reset API Key[](https://docs.tomba.io/libraries/python-email-finder#reset-api-key) Code `from tomba.client import Client from tomba.services.keys import Keys client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) keys = Keys(client) result = keys.reset_key('')` ### Lead Attributes Management[](https://docs.tomba.io/libraries/python-email-finder#lead-attributes-management) #### Create Lead Attribute[](https://docs.tomba.io/libraries/python-email-finder#create-lead-attribute) Code `from tomba.client import Client from tomba.services.leads_attributes import LeadsAttributes client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) leads_attributes = LeadsAttributes(client) result = leads_attributes.create_lead_attribute()` #### Delete Lead Attribute[](https://docs.tomba.io/libraries/python-email-finder#delete-lead-attribute) Code `from tomba.client import Client from tomba.services.leads_attributes import LeadsAttributes client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) leads_attributes = LeadsAttributes(client) result = leads_attributes.delete_lead_attribute('[Lead_Attributes_ID]')` #### Get Lead Attributes[](https://docs.tomba.io/libraries/python-email-finder#get-lead-attributes) Code `from tomba.client import Client from tomba.services.leads_attributes import LeadsAttributes client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) leads_attributes = LeadsAttributes(client) result = leads_attributes.get_lead_attributes()` #### Update Lead Attribute[](https://docs.tomba.io/libraries/python-email-finder#update-lead-attribute) Code `from tomba.client import Client from tomba.services.leads_attributes import LeadsAttributes client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) leads_attributes = LeadsAttributes(client) result = leads_attributes.update_lead_attribute('[Lead_Attributes_ID]')` ### Lead Lists Management[](https://docs.tomba.io/libraries/python-email-finder#lead-lists-management) #### Create Lead List[](https://docs.tomba.io/libraries/python-email-finder#create-lead-list) Code `from tomba.client import Client from tomba.services.leads_lists import LeadsLists client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) leads_lists = LeadsLists(client) result = leads_lists.create_list()` #### Delete Lead List[](https://docs.tomba.io/libraries/python-email-finder#delete-lead-list) Code `from tomba.client import Client from tomba.services.leads_lists import LeadsLists client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) leads_lists = LeadsLists(client) result = leads_lists.delete_list_id('[LIST_ID]')` #### Get All Lead Lists[](https://docs.tomba.io/libraries/python-email-finder#get-all-lead-lists) Code `from tomba.client import Client from tomba.services.leads_lists import LeadsLists client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) leads_lists = LeadsLists(client) result = leads_lists.get_lists()` #### Update Lead List[](https://docs.tomba.io/libraries/python-email-finder#update-lead-list) Code `from tomba.client import Client from tomba.services.leads_lists import LeadsLists client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) leads_lists = LeadsLists(client) result = leads_lists.update_list_id('[List_ID]')` ### Activity Logs[](https://docs.tomba.io/libraries/python-email-finder#activity-logs) Code `from tomba.client import Client from tomba.services.logs import Logs client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) logs = Logs(client) result = logs.get_logs()` ### Phone Services[](https://docs.tomba.io/libraries/python-email-finder#phone-services) #### Phone Finder[](https://docs.tomba.io/libraries/python-email-finder#phone-finder) Code `from tomba.client import Client from tomba.services.phone import Phone client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) phone = Phone(client) result = phone.finder('******@zapier.com')` #### Phone Validator[](https://docs.tomba.io/libraries/python-email-finder#phone-validator) Code `from tomba.client import Client from tomba.services.phone import Phone client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) phone = Phone(client) result = phone.validator('+14158586273')` ### Similar Websites[](https://docs.tomba.io/libraries/python-email-finder#similar-websites) Code `from tomba.client import Client from tomba.services.similar import Similar client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) similar = Similar(client) result = similar.websites('zapier.com')` ### Email Sources[](https://docs.tomba.io/libraries/python-email-finder#email-sources) Code `from tomba.client import Client from tomba.services.sources import Sources client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) sources = Sources(client) result = sources.email_sources('b.mohamed@tomba.io')` ### Domain and Company Status[](https://docs.tomba.io/libraries/python-email-finder#domain-and-company-status) #### Auto Complete[](https://docs.tomba.io/libraries/python-email-finder#auto-complete) Code `from tomba.client import Client from tomba.services.status import Status client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) status = Status(client) result = status.auto_complete('google')` #### Domain Status[](https://docs.tomba.io/libraries/python-email-finder#domain-status) Code `from tomba.client import Client from tomba.services.status import Status client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) status = Status(client) result = status.domain_status('gmail.com')` ### Technology Detection[](https://docs.tomba.io/libraries/python-email-finder#technology-detection) Code `from tomba.client import Client from tomba.services.technology import Technology client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) technology = Technology(client) result = technology.list('zapier.com')` ### Usage Statistics[](https://docs.tomba.io/libraries/python-email-finder#usage-statistics) Code `from tomba.client import Client from tomba.services.usage import Usage client = Client() (client .set_key('ta_xxxx') # Your Key .set_secret('ts_xxxx') # Your Secret ) usage = Usage(client) result = usage.get_usage()` For more sample codes, check the [**examples/**](https://github.com/tomba-io/python/tree/master/examples) folder. Last modified on April 28, 2026 [PHP Client Library](https://docs.tomba.io/libraries/php-email-finder) [R Client Library](https://docs.tomba.io/libraries/r-email-finder) --- # Similar Domain Bulk | Tomba Documentation Menu Overview[](https://docs.tomba.io/bulks/similar#overview) --------------------------------------------------------- [Bulks Similar](https://tomba.io/bulks/domain-similar) helps you discover companies and domains similar to your target prospects. This feature is invaluable for competitive analysis, market research, and expanding your total addressable market by finding lookalike companies. ### Key Features[](https://docs.tomba.io/bulks/similar#key-features) * **Competitor Discovery**: Find domains similar to your target companies * **Market Expansion**: Identify new prospects in similar industries or niches * **Batch Processing**: Process up to 500 domains simultaneously * **Industry Insights**: Discover companies in the same vertical or market segment * **Email Discovery**: Find contact information for similar companies * **Export Capabilities**: Download comprehensive results for further analysis ### How Similar Domain Bulk Works[](https://docs.tomba.io/bulks/similar#how-similar-domain-bulk-works) 1. **Input Reference Domains**: Provide domains of companies you want to find similar matches for 2. **Configure Search Parameters**: Set email type preferences and result limits 3. **Launch Analysis**: Start the similarity search algorithm 4. **Review Results**: Examine discovered similar domains and their contact information 5. **Export Data**: Download results for integration with your CRM or outreach tools ### Limitations[](https://docs.tomba.io/bulks/similar#limitations) * Each Bulk is limited to 500 domains * Additional rows will be skipped * Some special or unexpected characters may be deleted in the file * Invalid websites won't be imported * Duplicate URLs won't be imported * For better results, we use the domain name instead of the company name Go SDK Integration[](https://docs.tomba.io/bulks/similar#go-sdk-integration) ----------------------------------------------------------------------------- ### Installation[](https://docs.tomba.io/bulks/similar#installation) TerminalCode `go get github.com/tomba-io/go` ### Basic Setup[](https://docs.tomba.io/bulks/similar#basic-setup) Code `package main import ( "fmt" "log" "time" "strings" "encoding/csv" "os" "github.com/tomba-io/go/tomba" "github.com/tomba-io/go/tomba/models" ) func main() { // Initialize Tomba client client := tomba.NewTomba("your-api-key", "your-secret-key") // Your similar domain discovery code here }` ### Creating Similar Domain Bulk with Domain List[](https://docs.tomba.io/bulks/similar#creating-similar-domain-bulk-with-domain-list) Code `// Reference domains for finding similar companies referenceDomains := []string{ "stripe.com", "square.com", "paypal.com", "adyen.com", "checkout.com", } params := &models.BulkCreateParams{ Name: "Similar Companies - Fintech Payment Processors", List: strings.Join(referenceDomains, "\n"), Sources: true, // Include sources for context Notifie: true, // Notify when complete } // Create similar domain bulk operation response, err := client.CreateBulk(models.BulkTypeSimilar, params) if err != nil { log.Fatal("Failed to create similar domain bulk:", err) } bulkID := *response.Data.ID fmt.Printf("Created similar domain bulk with ID: %d\n", bulkID)` ### Creating Similar Domain Bulk from CSV File[](https://docs.tomba.io/bulks/similar#creating-similar-domain-bulk-from-csv-file) Code `// Create similar domain bulk from CSV file params := &models.BulkCreateParams{ Name: "Market Analysis - SaaS Competitors", Delimiter: ",", Column: 1, // Domain column (1-based index) Sources: true, Notifie: true, } // Upload CSV with reference domains response, err := client.CreateBulkWithFile( models.BulkTypeSimilar, params, "/path/to/reference-domains.csv", ) if err != nil { log.Fatal("Failed to create bulk with file:", err) } bulkID := *response.Data.ID fmt.Printf("Created similar domain bulk: %d\n", bulkID)` ### Single Similar Domain Query (for comparison)[](https://docs.tomba.io/bulks/similar#single-similar-domain-query-for-comparison) Code `// Find similar domains for a single company targetDomain := "shopify.com" similarDomains, err := client.SimilarDomains(targetDomain) if err != nil { log.Printf("Failed to find similar domains for %s: %v", targetDomain, err) } else { fmt.Printf("Similar domains to %s:\n", targetDomain) for _, domain := range similarDomains.Data.Similar { fmt.Printf("- %s (Score: %d)\n", domain.Domain, domain.Score) } }` ### Launching and Monitoring Similar Domain Discovery[](https://docs.tomba.io/bulks/similar#launching-and-monitoring-similar-domain-discovery) Code `// Launch the similar domain discovery launchResponse, err := client.LaunchBulk(models.BulkTypeSimilar, bulkID) if err != nil { log.Fatal("Failed to launch similar domain bulk:", err) } fmt.Println("Similar domain discovery started!") // Monitor progress startTime := time.Now() for { progress, err := client.GetBulkProgress(models.BulkTypeSimilar, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) time.Sleep(30 * time.Second) continue } elapsed := time.Since(startTime).Round(time.Second) fmt.Printf("Discovery progress: %d%% (%d domains processed) - %v elapsed\n", progress.Progress, progress.Processed, elapsed, ) if progress.Status { fmt.Println("Similar domain discovery completed!") break } // Check every 45 seconds (similar domain discovery can take time) time.Sleep(45 * time.Second) }` ### Retrieving Similar Domain Results[](https://docs.tomba.io/bulks/similar#retrieving-similar-domain-results) Code `// Get detailed results bulk, err := client.GetBulk(models.BulkTypeSimilar, bulkID) if err != nil { log.Fatal("Failed to get bulk details:", err) } bulkInfo := bulk.Data[0] fmt.Printf("Similar Domain Discovery Results:\n") fmt.Printf("- Campaign: %s\n", bulkInfo.Name) fmt.Printf("- Status: %v\n", bulkInfo.Status) fmt.Printf("- Reference Domains Processed: %d\n", bulkInfo.Processed) if bulkInfo.TotalEmails != nil { fmt.Printf("- Contact Emails Found: %d\n", *bulkInfo.TotalEmails) } // Download all results with similar domains and contacts err = client.SaveBulkResults( models.BulkTypeSimilar, bulkID, "similar-domains.csv", "full", ) if err != nil { log.Fatal("Failed to download results:", err) } fmt.Println("Similar domain results saved to similar-domains.csv")` ### Managing Similar Domain Operations[](https://docs.tomba.io/bulks/similar#managing-similar-domain-operations) Code `// List all similar domain bulks params := &models.BulkGetParams{ Page: 1, Limit: 10, Direction: "desc", Filter: "all", } bulks, err := client.GetAllSimilarBulks(params) if err != nil { log.Fatal("Failed to get similar domain bulks:", err) } fmt.Printf("Similar Domain Operations:\n") for _, bulk := range bulks.Data { status := "In Progress" if bulk.Status { status = "Completed" } fmt.Printf("- %s (ID: %d)\n", bulk.Name, bulk.BulkID) fmt.Printf(" Status: %s | Progress: %d%% | Processed: %d\n", status, bulk.Progress, bulk.Processed) if bulk.TotalEmails != nil && *bulk.TotalEmails > 0 { fmt.Printf(" Emails Found: %d\n", *bulk.TotalEmails) } created := bulk.CreatedAt.Format("2006-01-02 15:04") fmt.Printf(" Created: %s\n", created) fmt.Println() } // Archive old analyses for _, bulk := range bulks.Data { if bulk.Status && time.Since(bulk.CreatedAt) > 14*24*time.Hour { // 14 days old _, err := client.ArchiveBulk(models.BulkTypeSimilar, bulk.BulkID) if err != nil { log.Printf("Failed to archive bulk %d: %v", bulk.BulkID, err) } else { fmt.Printf("Archived old analysis: %s\n", bulk.Name) } } }` ### Advanced Market Analysis Workflow[](https://docs.tomba.io/bulks/similar#advanced-market-analysis-workflow) Code ``type SimilarDomainResult struct { ReferenceDomain string SimilarDomain string SimilarityScore int Industry string CompanySize string ContactEmails []string Technologies []string } type MarketAnalysis struct { ReferenceDomains []string SimilarDomainsFound int ContactsDiscovered int TopIndustries map[string]int CompetitorDomains []string } func performMarketAnalysis(client *tomba.Tomba, referenceDomains []string, industry string) (*MarketAnalysis, error) { // Validate domain count if len(referenceDomains) > 500 { log.Printf("Warning: Limiting reference domains from %d to 500", len(referenceDomains)) referenceDomains = referenceDomains[:500] } log.Printf("Starting market analysis for %d reference domains in %s industry", len(referenceDomains), industry) // Step 1: Create similar domain bulk params := &models.BulkCreateParams{ Name: fmt.Sprintf("Market Analysis - %s - %s", strings.Title(industry), time.Now().Format("2006-01-02")), List: strings.Join(referenceDomains, "\n"), Sources: true, Notifie: false, // Don't notify for analysis } response, err := client.CreateBulk(models.BulkTypeSimilar, params) if err != nil { return nil, fmt.Errorf("failed to create similar domain bulk: %w", err) } bulkID := *response.Data.ID log.Printf("Created market analysis bulk: %d", bulkID) // Step 2: Launch and monitor _, err = client.LaunchBulk(models.BulkTypeSimilar, bulkID) if err != nil { return nil, fmt.Errorf("failed to launch bulk: %w", err) } // Monitor with extended timeout for similar domain discovery timeout := time.After(90 * time.Minute) ticker := time.NewTicker(60 * time.Second) defer ticker.Stop() startTime := time.Now() for { select { case <-timeout: return nil, fmt.Errorf("market analysis timed out after 90 minutes") case <-ticker.C: progress, err := client.GetBulkProgress(models.BulkTypeSimilar, bulkID) if err != nil { log.Printf("Error checking progress: %v", err) continue } if progress.Progress%20 == 0 || progress.Status { elapsed := time.Since(startTime).Round(time.Second) log.Printf("Market analysis: %d%% (%d domains processed) - %v", progress.Progress, progress.Processed, elapsed) } if progress.Status { // Step 3: Analyze results return analyzeMarketResults(client, bulkID, referenceDomains, startTime) } } } } func analyzeMarketResults(client *tomba.Tomba, bulkID int64, referenceDomains []string, startTime time.Time) (*MarketAnalysis, error) { // Download results timestamp := time.Now().Format("20060102-150405") resultsFile := fmt.Sprintf("market-analysis-%s.csv", timestamp) err := client.SaveBulkResults(models.BulkTypeSimilar, bulkID, resultsFile, "full") if err != nil { return nil, fmt.Errorf("failed to download results: %w", err) } log.Printf("Downloaded market analysis results to: %s", resultsFile) // Parse and analyze results results, err := parseSimilarDomainResults(resultsFile) if err != nil { log.Printf("Warning: Could not parse results for detailed analysis: %v", err) // Continue with basic analysis from bulk info bulk, err := client.GetBulk(models.BulkTypeSimilar, bulkID) if err != nil { return nil, err } info := bulk.Data[0] analysis := &MarketAnalysis{ ReferenceDomains: referenceDomains, } if info.TotalEmails != nil { analysis.ContactsDiscovered = *info.TotalEmails } return analysis, nil } // Detailed analysis analysis := &MarketAnalysis{ ReferenceDomains: referenceDomains, SimilarDomainsFound: len(results), TopIndustries: make(map[string]int), } // Extract unique similar domains and analyze domainSet := make(map[string]bool) totalContacts := 0 for _, result := range results { if result.SimilarDomain != "" { domainSet[result.SimilarDomain] = true totalContacts += len(result.ContactEmails) if result.Industry != "" { analysis.TopIndustries[result.Industry]++ } } } // Convert domain set to slice for domain := range domainSet { analysis.CompetitorDomains = append(analysis.CompetitorDomains, domain) } analysis.SimilarDomainsFound = len(analysis.CompetitorDomains) analysis.ContactsDiscovered = totalContacts duration := time.Since(startTime) log.Printf("Market analysis completed in %v:", duration.Round(time.Second)) log.Printf("- Reference domains: %d", len(analysis.ReferenceDomains)) log.Printf("- Similar domains found: %d", analysis.SimilarDomainsFound) log.Printf("- Contact emails discovered: %d", analysis.ContactsDiscovered) if len(analysis.TopIndustries) > 0 { log.Printf("- Industries identified: %d", len(analysis.TopIndustries)) } return analysis, nil } func parseSimilarDomainResults(filename string) ([]SimilarDomainResult, error) { file, err := os.Open(filename) if err != nil { return nil, err } defer file.Close() reader := csv.NewReader(file) records, err := reader.ReadAll() if err != nil { return nil, err } var results []SimilarDomainResult // Parse CSV results (simplified - actual format may vary) for i := 1; i < len(records); i++ { // Skip header record := records[i] if len(record) < 2 { continue } result := SimilarDomainResult{ ReferenceDomain: getCSVField(record, 0), SimilarDomain: getCSVField(record, 1), } // Parse additional fields if available if len(record) > 2 { fmt.Sscanf(getCSVField(record, 2), "%d", &result.SimilarityScore) } if len(record) > 3 { result.Industry = getCSVField(record, 3) } if len(record) > 4 { result.CompanySize = getCSVField(record, 4) } if len(record) > 5 { emails := getCSVField(record, 5) if emails != "" { result.ContactEmails = strings.Split(emails, ";") } } results = append(results, result) } return results, nil } func getCSVField(record []string, index int) string { if index < len(record) { return strings.Trim(record[index], `"`) } return "" } // Generate market report func generateMarketReport(analysis *MarketAnalysis, outputFile string) error { file, err := os.Create(outputFile) if err != nil { return err } defer file.Close() fmt.Fprintf(file, "Market Analysis Report\n") fmt.Fprintf(file, "Generated: %s\n\n", time.Now().Format("2006-01-02 15:04:05")) fmt.Fprintf(file, "Reference Domains Analyzed: %d\n", len(analysis.ReferenceDomains)) fmt.Fprintf(file, "Similar Domains Discovered: %d\n", analysis.SimilarDomainsFound) fmt.Fprintf(file, "Contact Emails Found: %d\n", analysis.ContactsDiscovered) if len(analysis.TopIndustries) > 0 { fmt.Fprintf(file, "\nIndustry Distribution:\n") for industry, count := range analysis.TopIndustries { fmt.Fprintf(file, "- %s: %d companies\n", industry, count) } } if len(analysis.CompetitorDomains) > 0 { fmt.Fprintf(file, "\nDiscovered Competitor Domains:\n") for i, domain := range analysis.CompetitorDomains { fmt.Fprintf(file, "%d. %s\n", i+1, domain) if i >= 49 { // Limit to top 50 fmt.Fprintf(file, "... and %d more\n", len(analysis.CompetitorDomains)-50) break } } } return nil } // Complete market analysis workflow func runCompetitorAnalysis(client *tomba.Tomba, csvPath, industry string) error { // Read reference domains from CSV file, err := os.Open(csvPath) if err != nil { return fmt.Errorf("failed to open CSV: %w", err) } defer file.Close() reader := csv.NewReader(file) records, err := reader.ReadAll() if err != nil { return fmt.Errorf("failed to read CSV: %w", err) } var referenceDomains []string for i, record := range records { if i == 0 || len(record) == 0 { // Skip header and empty rows continue } domain := strings.TrimSpace(record[0]) if domain != "" { referenceDomains = append(referenceDomains, domain) } } if len(referenceDomains) == 0 { return fmt.Errorf("no valid reference domains found in CSV") } log.Printf("Starting competitor analysis with %d reference domains", len(referenceDomains)) // Perform market analysis analysis, err := performMarketAnalysis(client, referenceDomains, industry) if err != nil { return fmt.Errorf("market analysis failed: %w", err) } // Generate report timestamp := time.Now().Format("20060102-150405") reportFile := fmt.Sprintf("market-report-%s.txt", timestamp) err = generateMarketReport(analysis, reportFile) if err != nil { log.Printf("Warning: Could not generate report file: %v", err) } else { log.Printf("Market analysis report saved to: %s", reportFile) } // Print summary expansionRate := float64(analysis.SimilarDomainsFound) / float64(len(analysis.ReferenceDomains)) * 100 fmt.Printf("\nCompetitor Analysis Summary:\n") fmt.Printf("Reference Companies: %d\n", len(analysis.ReferenceDomains)) fmt.Printf("Similar Companies Found: %d\n", analysis.SimilarDomainsFound) fmt.Printf("Market Expansion Rate: %.1fx\n", expansionRate/100) fmt.Printf("Contact Emails Discovered: %d\n", analysis.ContactsDiscovered) return nil } // Usage example func main() { client := tomba.NewTomba("your-api-key", "your-secret-key") err := runCompetitorAnalysis(client, "reference-companies.csv", "fintech") if err != nil { log.Fatal("Competitor analysis failed:", err) } }`` ### CSV File Format Examples[](https://docs.tomba.io/bulks/similar#csv-file-format-examples) **Simple Domain List** Code `domain stripe.com square.com paypal.com adyen.com checkout.com` **With Company Context** Code `domain,company_name,industry,notes stripe.com,Stripe,Fintech,Payment processor square.com,Square,Fintech,POS solutions paypal.com,PayPal,Fintech,Digital payments adyen.com,Adyen,Fintech,Global payments checkout.com,Checkout.com,Fintech,Payment gateway` **With Size and Region** Code `domain,company,size,region,target_market shopify.com,Shopify,Large,Global,E-commerce platform bigcommerce.com,BigCommerce,Medium,US/EMEA,E-commerce platform woocommerce.com,WooCommerce,Large,Global,WordPress commerce magento.com,Magento,Large,Global,Enterprise commerce` Best Practices[](https://docs.tomba.io/bulks/similar#best-practices) --------------------------------------------------------------------- * **Quality Input**: Use well-established, representative domains as your reference points * **Industry Focus**: Input domains from the same industry for more relevant results * **Regular Updates**: Refresh your similar domain searches periodically as markets evolve * **Cross-Reference**: Validate similarity results with manual research * **Segment Results**: Organize similar domains by industry or company size * **Batch Processing**: Process reference domains in batches under 500 limit * **Market Research**: Use results for competitive analysis and market mapping * **Contact Discovery**: Leverage found contacts for outreach and partnership opportunities * **Technology Tracking**: Monitor technology stacks of similar companies * **Opportunity Identification**: Use similar domains to identify market gaps and opportunities Last modified on April 27, 2026 [Phone Validator Bulk](https://docs.tomba.io/bulks/phone-validator) [Company Attributes](https://docs.tomba.io/attributes/company) Go Go Go Go Go Go Go Go --- # Company Attributes | Tomba Documentation Menu These attributes are returned when querying company information via Tomba. They include contact details, structure, social links, WHOIS records, and more. Example Request[](https://docs.tomba.io/attributes/company#example-request) ---------------------------------------------------------------------------- TerminalCode `curl -X GET "https://api.tomba.io/v1/domain-search?domain=example.com" \ -H "X-Tomba-Key: your_api_key" \ -H "X-Tomba-Secret: your_secret_key"` Core Company Details[](https://docs.tomba.io/attributes/company#core-company-details) -------------------------------------------------------------------------------------- | Attribute | Description | Example | | --- | --- | --- | | `website_url` | Company website domain | tomba.io | | `organization` | Full legal or brand name | Tomba technology web service LLC | | `description` | Short summary of the company | The most powerful email-finding tool... | | `founded` | Year the company was founded | 2021 | | `company_size` | Estimated number of employees [read more](https://docs.tomba.io/attributes/company#size-attribute) | 1–10 | | `company_type` | Legal business structure [read more](https://docs.tomba.io/attributes/company#company-type-attribute) | Privately Held | | `industries` | Primary industry or category [read more](https://docs.tomba.io/attributes/company#industry-attribute) | Internet | | `pattern` | Email pattern used by company [read more](https://docs.tomba.io/attributes/format) | `{l}.{first}` | | `accept_all` | Whether the domain accepts all emails [read more](https://help.tomba.io/en/articles/10085774-what-is-an-accept-all-means) | false | | `disposable` | Whether the domain is disposable | false | | `webmail` | Whether the domain is a webmail provider | false | | `revenue` | Estimated annual revenue of the company [read more](https://docs.tomba.io/attributes/company#revenue-attribute) | $1M–$5M | | `keywords` | Array of relevant keywords and tags associated with the company | \["email", "api", "verification"\] | | `ranking` | Company ranking or score based on various metrics | 85 | | `phone_number` | Public business contact number | (850) 790-5575 | | `last_updated` | Timestamp of most recent data update | 2025-04-03T13:23:24+02:00 | * * * Location[](https://docs.tomba.io/attributes/company#location) -------------------------------------------------------------- | Attribute | Description | Example | | --- | --- | --- | | `country` | Country of the HQ | US | | `state` | State or province | Delaware | | `city` | City of the HQ | Claymont | | `street_address` | Street and suite address | 2803 Philadelphia Pike Suite B #1228 | | `postal_code` | ZIP or postal code | 19703 | * * * Social Links[](https://docs.tomba.io/attributes/company#social-links) ---------------------------------------------------------------------- | Attribute | Description | Example | | --- | --- | --- | | `twitter_url` | Twitter profile | [twitter.com/tombaplatforum](https://twitter.com/tombaplatforum) | | `facebook_url` | Facebook page | [facebook.com/tombaplatforum](https://www.facebook.com/tombaplatforum) | | `linkedin_url` | LinkedIn page | [linkedin.com/company/tomba-io](https://www.linkedin.com/company/tomba-io) | | `instagram_url` | Instagram profile | [instagram.com/tomba](https://instagram.com/tomba) | | `github_url` | GitHub profile | [github.com/tomba-io](https://github.com/tomba-io) | | `youtube_url` | YouTube channel | [youtube.com/@tomba](https://youtube.com/@tomba) | | `pinterest_url` | Pinterest profile | [pinterest.com/tomba](https://pinterest.com/tomba) | | `tiktok_url` | TikTok profile | [tiktok.com/@tomba](https://tiktok.com/@tomba) | Size Attribute[](https://docs.tomba.io/attributes/company#size-attribute) -------------------------------------------------------------------------- The `company_size` field represents the number of employees working at a company. This helps categorize the organization’s scale for segmentation, targeting, and analytics purposes. * * * ### Company Size Ranges[](https://docs.tomba.io/attributes/company#company-size-ranges) | Value | Description | | --- | --- | | `1-10` | Micro-sized team | | `11-50` | Small-sized business | | `51-250` | Mid-sized company | | `251-1K` | Medium-large business | | `1K-5K` | Large company | | `5K-10K` | Very large company | | `10K-50K` | Enterprise-scale company | | `50K-100K` | Massive corporation | | `100K+` | Global enterprise | * * * ### Use Cases[](https://docs.tomba.io/attributes/company#use-cases) * Lead segmentation based on company scale. * Analytics and reporting on target market reach. * Email personalization (for example, "We help teams of 1-10 scale faster..."). Company Type Attribute[](https://docs.tomba.io/attributes/company#company-type-attribute) ------------------------------------------------------------------------------------------ The `company_type` field helps identify the legal or operational nature of an organization. It is used to better classify companies during enrichment or data validation. * * * ### Available Company Types[](https://docs.tomba.io/attributes/company#available-company-types) | Value | Description | | --- | --- | | `education` | The organization is a school, college, or university. | | `government` | The entity is a government agency or department. | | `nonprofit` | The organization operates as a non-profit. | | `private` | The business is privately owned and not publicly traded. | | `public` | The company is publicly traded on a stock exchange. | | `personal` | The website is maintained by an individual for personal use. | Revenue Attribute[](https://docs.tomba.io/attributes/company#revenue-attribute) -------------------------------------------------------------------------------- The `revenue` field represents the estimated annual revenue range of a company. This helps categorize organizations by their financial scale for better targeting, market analysis, and business intelligence. * * * #### Annual Revenue Range Values[](https://docs.tomba.io/attributes/company#annual-revenue-range-values) | Value | Description | | --- | --- | | `$0-$1M` | Startup or very small business revenue | | `$1M-$10M` | Small business revenue range | | `$10M-$50M` | Mid-sized business revenue range | | `$50M-$100M` | Large business revenue range | | `$100M-$250M` | Very large business revenue range | | `$250M-$500M` | Enterprise-level revenue range | | `$500M-$1B` | Major corporation revenue range | | `$1B-$10B` | Large corporation revenue range | | `$10B+` | Global enterprise revenue range | * * * ### Use Cases[](https://docs.tomba.io/attributes/company#use-cases-1) * Revenue-based lead qualification and scoring. * Market segmentation by company financial size. * Sales territory planning and resource allocation. * Pricing strategy customization based on company scale. Industry Attribute[](https://docs.tomba.io/attributes/company#industry-attribute) ---------------------------------------------------------------------------------- The `industries` field identifies the primary industry a company belongs to. It is based on LinkedIn’s [Industry Codes V2](https://learn.microsoft.com/en-us/linkedin/shared/references/reference-tables/industry-codes-v2) and helps categorize organizations for segmentation, enrichment, and personalization. * * * ### Example Industry Values[](https://docs.tomba.io/attributes/company#example-industry-values) | Value | Description | LinkedIn Reference | | --- | --- | --- | | `Information Technology` | Companies providing IT products/services | [#Information-Technology](https://www.linkedin.com/feed/hashtag/informationtechnology/) | | `Financial Services` | Banking, investing, and insurance firms | [#Financial-Services](https://www.linkedin.com/feed/hashtag/financialservices/) | | `Marketing & Advertising` | Firms focused on promotion and branding | [#Marketing](https://www.linkedin.com/feed/hashtag/marketing/) | | `Hospital & Health Care` | Providers and services in healthcare | [#Healthcare](https://www.linkedin.com/feed/hashtag/healthcare/) | | `E-learning` | Online education platforms and services | [#Elearning](https://www.linkedin.com/feed/hashtag/elearning/) | * * * ### Use Cases[](https://docs.tomba.io/attributes/company#use-cases-2) * Industry-based filtering for targeted outreach. * Enriching CRM records with relevant verticals. * Segmenting markets by industry sectors. Last modified on April 28, 2026 [Similar Domain Bulk](https://docs.tomba.io/bulks/similar) [Domain Suggestions](https://docs.tomba.io/attributes/domain-suggestions) --- # C# Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/csharp-email-finder#installation) --------------------------------------------------------------------------------- Add this reference to your project's `.csproj` file: XMLCode `` You can install packages from the command line With [.NET CLI](https://dotnet.microsoft.com/) : TerminalCode `dotnet add package Tomba --version 1.0.0` Usage[](https://docs.tomba.io/libraries/csharp-email-finder#usage) ------------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/csharp-email-finder#domain-search) Get email addresses found on the internet. Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Domain domain = new Domain(client); HttpResponseMessage result = await domain.DomainSearch("stripe.com");` ### Email Finder[](https://docs.tomba.io/libraries/csharp-email-finder#email-finder) Find the verified email address of any professional. Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Finder finder = new Finder(client); HttpResponseMessage result = await finder.EmailFinder("stripe.com", "Fname", "Lname");` ### Email Verifier[](https://docs.tomba.io/libraries/csharp-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Verifier verifier = new Verifier(client); HttpResponseMessage result = await verifier.EmailVerifier("m@wordpress.org");` Examples[](https://docs.tomba.io/libraries/csharp-email-finder#examples) ------------------------------------------------------------------------- ### Get Account Information[](https://docs.tomba.io/libraries/csharp-email-finder#get-account-information) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Account account = new Account(client); HttpResponseMessage result = await account.GetAccount();` ### Email Count[](https://docs.tomba.io/libraries/csharp-email-finder#email-count) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Count count = new Count(client); HttpResponseMessage result = await count.EmailCount("tomba.io");` ### API Key Management[](https://docs.tomba.io/libraries/csharp-email-finder#api-key-management) #### Create API Key[](https://docs.tomba.io/libraries/csharp-email-finder#create-api-key) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Keys keys = new Keys(client); HttpResponseMessage result = await keys.CreateKey();` #### Delete API Key[](https://docs.tomba.io/libraries/csharp-email-finder#delete-api-key) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Keys keys = new Keys(client); HttpResponseMessage result = await keys.DeleteKey("");` #### Get All API Keys[](https://docs.tomba.io/libraries/csharp-email-finder#get-all-api-keys) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Keys keys = new Keys(client); HttpResponseMessage result = await keys.GetKeys();` #### Reset API Key[](https://docs.tomba.io/libraries/csharp-email-finder#reset-api-key) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Keys keys = new Keys(client); HttpResponseMessage result = await keys.ResetKey("");` ### Lead Attributes Management[](https://docs.tomba.io/libraries/csharp-email-finder#lead-attributes-management) #### Create Lead Attribute[](https://docs.tomba.io/libraries/csharp-email-finder#create-lead-attribute) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; LeadsAttributes leadsAttributes = new LeadsAttributes(client); HttpResponseMessage result = await leadsAttributes.CreateLeadAttribute();` #### Delete Lead Attribute[](https://docs.tomba.io/libraries/csharp-email-finder#delete-lead-attribute) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; LeadsAttributes leadsAttributes = new LeadsAttributes(client); HttpResponseMessage result = await leadsAttributes.DeleteLeadAttribute("[Lead_Attributes_ID]");` #### Get Lead Attributes[](https://docs.tomba.io/libraries/csharp-email-finder#get-lead-attributes) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; LeadsAttributes leadsAttributes = new LeadsAttributes(client); HttpResponseMessage result = await leadsAttributes.GetLeadAttributes();` #### Update Lead Attribute[](https://docs.tomba.io/libraries/csharp-email-finder#update-lead-attribute) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; LeadsAttributes leadsAttributes = new LeadsAttributes(client); HttpResponseMessage result = await leadsAttributes.UpdateLeadAttribute("[Lead_Attributes_ID]");` ### Lead Lists Management[](https://docs.tomba.io/libraries/csharp-email-finder#lead-lists-management) #### Create Lead List[](https://docs.tomba.io/libraries/csharp-email-finder#create-lead-list) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; LeadsLists leadsLists = new LeadsLists(client); HttpResponseMessage result = await leadsLists.CreateList();` #### Delete Lead List[](https://docs.tomba.io/libraries/csharp-email-finder#delete-lead-list) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; LeadsLists leadsLists = new LeadsLists(client); HttpResponseMessage result = await leadsLists.DeleteListId("[LIST_ID]");` #### Get All Lead Lists[](https://docs.tomba.io/libraries/csharp-email-finder#get-all-lead-lists) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; LeadsLists leadsLists = new LeadsLists(client); HttpResponseMessage result = await leadsLists.GetLists();` #### Update Lead List[](https://docs.tomba.io/libraries/csharp-email-finder#update-lead-list) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; LeadsLists leadsLists = new LeadsLists(client); HttpResponseMessage result = await leadsLists.UpdateListId("[List_ID]");` ### Activity Logs[](https://docs.tomba.io/libraries/csharp-email-finder#activity-logs) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Logs logs = new Logs(client); HttpResponseMessage result = await logs.GetLogs();` ### Email Sources[](https://docs.tomba.io/libraries/csharp-email-finder#email-sources) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Sources sources = new Sources(client); HttpResponseMessage result = await sources.EmailSources("b.mohamed@tomba.io");` ### Domain and Company Status[](https://docs.tomba.io/libraries/csharp-email-finder#domain-and-company-status) #### Auto Complete[](https://docs.tomba.io/libraries/csharp-email-finder#auto-complete) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Status status = new Status(client); HttpResponseMessage result = await status.AutoComplete("google");` #### Domain Status[](https://docs.tomba.io/libraries/csharp-email-finder#domain-status) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Status status = new Status(client); HttpResponseMessage result = await status.DomainStatus("gmail.com");` ### Usage Statistics[](https://docs.tomba.io/libraries/csharp-email-finder#usage-statistics) Code `using Tomba; Client client = new Client(); client .SetKey("ta_xxxx") // Your Key .SetSecret("ts_xxxx") // Your Secret ; Usage usage = new Usage(client); HttpResponseMessage result = await usage.GetUsage();` For more sample codes, check the [**examples/**](https://github.com/tomba-io/csharp/tree/master/examples) folder. Last modified on April 28, 2026 [Slack Integration](https://docs.tomba.io/cli/slack) [Dart Client Library](https://docs.tomba.io/libraries/dart-email-finder) C# C# C# C# C# C# C# C# C# C# C# C# C# C# C# C# C# C# C# C# C# C# --- # Dart Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/dart-email-finder#installation) ------------------------------------------------------------------------------- Add this to your package's `pubspec.yaml` file: Code `dependencies: tomba: ^v1.0.1` You can install packages from the command line With [Dart](https://pub.dev/packages/tomba) : TerminalCode `dart pub add tomba` Usage[](https://docs.tomba.io/libraries/dart-email-finder#usage) ----------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/dart-email-finder#domain-search) Get email addresses found on the internet. Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Domain domain = Domain(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = domain.domainSearch( domain: 'stripe.com', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### Email Finder[](https://docs.tomba.io/libraries/dart-email-finder#email-finder) Find the verified email address of any professional. Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Finder finder = Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = finder.emailFinder( domain: 'stripe.com', firstName: 'Fname', lastName: 'Lname', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### Email Verifier[](https://docs.tomba.io/libraries/dart-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Verifier verifier = Verifier(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = verifier.emailVerifier( email: 'm@wordpress.org', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` Examples[](https://docs.tomba.io/libraries/dart-email-finder#examples) ----------------------------------------------------------------------- ### Get Account Information[](https://docs.tomba.io/libraries/dart-email-finder#get-account-information) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Account account = Account(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = account.getAccount(); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### Email Count[](https://docs.tomba.io/libraries/dart-email-finder#email-count) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Count count = Count(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = count.emailCount( domain: 'tomba.io', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### Finder Services[](https://docs.tomba.io/libraries/dart-email-finder#finder-services) #### Author Finder[](https://docs.tomba.io/libraries/dart-email-finder#author-finder) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Finder finder = Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = finder.authorFinder( url: 'https://clearbit.com/blog/company-name-to-domain-api', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### LinkedIn Finder[](https://docs.tomba.io/libraries/dart-email-finder#linkedin-finder) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Finder finder = Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = finder.linkedinFinder( url: 'https://www.linkedin.com/in/alex-maccaw-ab592978', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Phone Finder[](https://docs.tomba.io/libraries/dart-email-finder#phone-finder) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Finder finder = Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = finder.phoneFinder( email: '******@zapier.com', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### API Key Management[](https://docs.tomba.io/libraries/dart-email-finder#api-key-management) #### Create API Key[](https://docs.tomba.io/libraries/dart-email-finder#create-api-key) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Keys keys = Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = keys.createKey(); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Delete API Key[](https://docs.tomba.io/libraries/dart-email-finder#delete-api-key) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Keys keys = Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = keys.deleteKey( id: '', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Get All API Keys[](https://docs.tomba.io/libraries/dart-email-finder#get-all-api-keys) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Keys keys = Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = keys.getKeys(); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Reset API Key[](https://docs.tomba.io/libraries/dart-email-finder#reset-api-key) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Keys keys = Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = keys.resetKey( id: '', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### Lead Attributes Management[](https://docs.tomba.io/libraries/dart-email-finder#lead-attributes-management) #### Create Lead Attribute[](https://docs.tomba.io/libraries/dart-email-finder#create-lead-attribute) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); LeadsAttributes leadsAttributes = LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = leadsAttributes.createLeadAttribute(); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Delete Lead Attribute[](https://docs.tomba.io/libraries/dart-email-finder#delete-lead-attribute) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); LeadsAttributes leadsAttributes = LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = leadsAttributes.deleteLeadAttribute( id: '[Lead_Attributes_ID]', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Get Lead Attributes[](https://docs.tomba.io/libraries/dart-email-finder#get-lead-attributes) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); LeadsAttributes leadsAttributes = LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = leadsAttributes.getLeadAttributes(); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Update Lead Attribute[](https://docs.tomba.io/libraries/dart-email-finder#update-lead-attribute) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); LeadsAttributes leadsAttributes = LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = leadsAttributes.updateLeadAttribute( id: '[Lead_Attributes_ID]', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### Lead Lists Management[](https://docs.tomba.io/libraries/dart-email-finder#lead-lists-management) #### Create Lead List[](https://docs.tomba.io/libraries/dart-email-finder#create-lead-list) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); LeadsLists leadsLists = LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = leadsLists.createList(); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Delete Lead List[](https://docs.tomba.io/libraries/dart-email-finder#delete-lead-list) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); LeadsLists leadsLists = LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = leadsLists.deleteListId( id: '[LIST_ID]', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Get All Lead Lists[](https://docs.tomba.io/libraries/dart-email-finder#get-all-lead-lists) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); LeadsLists leadsLists = LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = leadsLists.getLists(); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Update Lead List[](https://docs.tomba.io/libraries/dart-email-finder#update-lead-list) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); LeadsLists leadsLists = LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = leadsLists.updateListId( id: '[List_ID]', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### Activity Logs[](https://docs.tomba.io/libraries/dart-email-finder#activity-logs) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Logs logs = Logs(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = logs.getLogs(); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### Email Sources[](https://docs.tomba.io/libraries/dart-email-finder#email-sources) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Sources sources = Sources(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = sources.emailSources( email: 'b.mohamed@tomba.io', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### Domain and Company Status[](https://docs.tomba.io/libraries/dart-email-finder#domain-and-company-status) #### Auto Complete[](https://docs.tomba.io/libraries/dart-email-finder#auto-complete) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Status status = Status(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = status.autoComplete( query: 'google', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` #### Domain Status[](https://docs.tomba.io/libraries/dart-email-finder#domain-status) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Status status = Status(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = status.domainStatus( domain: 'gmail.com', ); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` ### Usage Statistics[](https://docs.tomba.io/libraries/dart-email-finder#usage-statistics) Code `import 'package:tomba/tomba.dart'; void main() { // Init SDK Client client = Client(); Usage usage = Usage(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret ; Future result = usage.getUsage(); result .then((response) { print(response); }).catchError((error) { print(error.response); }); }` For more sample codes, check the [**examples/**](https://github.com/tomba-io/dart/tree/master/examples) folder. Last modified on April 28, 2026 [C# Client Library](https://docs.tomba.io/libraries/csharp-email-finder) [Deno Client Library](https://docs.tomba.io/libraries/deno-email-finder) Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart Dart --- # SIC Codes | Tomba Documentation Menu The Standard Industrial Classification (SIC) is a system for classifying industries by a four-digit code. Established in the United States in 1937, it is used by government agencies to classify industry areas and by businesses for market analysis. Overview[](https://docs.tomba.io/attributes/sic#overview) ---------------------------------------------------------- SIC codes are 4-digit codes that classify businesses by their primary type of economic activity. Tomba provides SIC classification data for companies in our database to help you filter and target specific industries. Usage in Tomba[](https://docs.tomba.io/attributes/sic#usage-in-tomba) ---------------------------------------------------------------------- You can use SIC codes to: * Filter companies by traditional industry classifications * Compare data with historical business records * Target specific business sectors and subsectors * Integrate with legacy systems that use SIC codes SIC Code Structure[](https://docs.tomba.io/attributes/sic#sic-code-structure) ------------------------------------------------------------------------------ * **2-digit**: Major group (broadest level) * **3-digit**: Industry group * **4-digit**: Industry (most specific) Complete SIC Codes List[](https://docs.tomba.io/attributes/sic#complete-sic-codes-list) ---------------------------------------------------------------------------------------- | Code | Industry Title | | --- | --- | | 0100 | AGRICULTURAL PRODUCTION-CROPS | | 0200 | AGRICULTURAL PROD-LIVESTOCK & ANIMAL SPECIALTIES | | 0700 | AGRICULTURAL SERVICES | | 0800 | FORESTRY | | 0900 | FISHING, HUNTING AND TRAPPING | | 1000 | METAL MINING | | 1040 | GOLD AND SILVER ORES | | 1090 | MISCELLANEOUS METAL ORES | | 1200 | BITUMINOUS COAL & LIGNITE MINING | | 1220 | BITUMINOUS COAL & LIGNITE SURFACE MINING | | 1311 | CRUDE PETROLEUM & NATURAL GAS | | 1381 | DRILLING OIL & GAS WELLS | | 1382 | OIL & GAS FIELD EXPLORATION SERVICES | | 1389 | OIL & GAS FIELD SERVICES, NEC | | 1400 | MINING & QUARRYING OF NONMETALLIC MINERALS (NO FUELS) | | 1500 | GENERAL BLDG CONTRACTORS - RESIDENTIAL BLDGS | | 1520 | OPERATIVE BUILDERS | | 1540 | GENERAL BLDG CONTRACTORS - NONRESIDENTIAL BLDGS | | 1600 | HEAVY CONSTRUCTION OTHER THAN BLDG CONST - CONTRACTORS | | 1623 | WATER, SEWER, PIPELINE, COMM & POWER LINE CONSTRUCTION | | 1700 | CONSTRUCTION - SPECIAL TRADE CONTRACTORS | | 1731 | ELECTRICAL WORK | | 2000 | FOOD AND KINDRED PRODUCTS | | 2011 | MEAT PACKING PLANTS | | 2013 | SAUSAGES & OTHER PREPARED MEAT PRODUCTS | | 2015 | POULTRY SLAUGHTERING AND PROCESSING | | 2020 | DAIRY PRODUCTS | | 2024 | ICE CREAM & FROZEN DESSERTS | | 2030 | CANNED, FROZEN & PRESERVD FRUIT, VEG & FOOD SPECIALTIES | | 2033 | CANNED, FRUITS, VEG, PRESERVES, JAMS & JELLIES | | 2040 | GRAIN MILL PRODUCTS | | 2050 | BAKERY PRODUCTS | | 2052 | COOKIES & CRACKERS | | 2060 | SUGAR & CONFECTIONERY PRODUCTS | | 2070 | FATS & OILS | | 2080 | BEVERAGES | | 2082 | MALT BEVERAGES | | 2086 | BOTTLED & CANNED SOFT DRINKS & CARBONATED WATERS | | 2090 | MISCELLANEOUS FOOD PREPARATIONS & KINDRED PRODUCTS | | 2092 | PREPARED FRESH OR FROZEN FISH & SEAFOODS | | 2100 | TOBACCO PRODUCTS | | 2111 | CIGARETTES | | 2200 | TEXTILE MILL PRODUCTS | | 2211 | BROADWOVEN FABRIC MILLS, COTTON | | 2221 | BROADWOVEN FABRIC MILLS, MAN MADE FIBER & SILK | | 2250 | KNITTING MILLS | | 2253 | KNIT OUTERWEAR MILLS | | 2273 | CARPETS & RUGS | | 2300 | APPAREL & OTHER FINISHD PRODS OF FABRICS & SIMILAR MATL | | 2320 | MEN'S & BOYS' FURNISHGS, WORK CLOTHG, & ALLIED GARMENTS | | 2330 | WOMEN'S, MISSES', AND JUNIORS OUTERWEAR | | 2340 | WOMEN'S, MISSES', CHILDREN'S & INFANTS' UNDERGARMENTS | | 2390 | MISCELLANEOUS FABRICATED TEXTILE PRODUCTS | | 2400 | LUMBER & WOOD PRODUCTS (NO FURNITURE) | | 2421 | SAWMILLS & PLANTING MILLS, GENERAL | | 2430 | MILLWOOD, VENEER, PLYWOOD, & STRUCTURAL WOOD MEMBERS | | 2451 | MOBILE HOMES | | 2452 | PREFABRICATED WOOD BLDGS & COMPONENTS | | 2510 | HOUSEHOLD FURNITURE | | 2511 | WOOD HOUSEHOLD FURNITURE, (NO UPHOLSTERED) | | 2520 | OFFICE FURNITURE | | 2522 | OFFICE FURNITURE (NO WOOD) | | 2530 | PUBLIC BLDG & RELATED FURNITURE | | 2540 | PARTITIONS, SHELVG, LOCKERS, & OFFICE & STORE FIXTURES | | 2590 | MISCELLANEOUS FURNITURE & FIXTURES | | 2600 | PAPERS & ALLIED PRODUCTS | | 2611 | PULP MILLS | | 2621 | PAPER MILLS | | 2631 | PAPERBOARD MILLS | | 2650 | PAPERBOARD CONTAINERS & BOXES | | 2670 | CONVERTED PAPER & PAPERBOARD PRODS (NO CONTANERS/BOXES) | | 2673 | PLASTICS, FOIL & COATED PAPER BAGS | | 2711 | NEWSPAPERS: PUBLISHING OR PUBLISHING & PRINTING | | 2721 | PERIODICALS: PUBLISHING OR PUBLISHING & PRINTING | | 2731 | BOOKS: PUBLISHING OR PUBLISHING & PRINTING | | 2732 | BOOK PRINTING | | 2741 | MISCELLANEOUS PUBLISHING | | 2750 | COMMERCIAL PRINTING | | 2761 | MANIFOLD BUSINESS FORMS | | 2771 | GREETING CARDS | | 2780 | BLANKBOOKS, LOOSELEAF BINDERS & BOOKBINDG & RELATD WORK | | 2790 | SERVICE INDUSTRIES FOR THE PRINTING TRADE | | 2800 | CHEMICALS & ALLIED PRODUCTS | | 2810 | INDUSTRIAL INORGANIC CHEMICALS | | 2820 | PLASTIC MATERIAL, SYNTH RESIN/RUBBER, CELLULOS (NO GLASS) | | 2821 | PLASTIC MATERIALS, SYNTH RESINS & NONVULCAN ELASTOMERS | | 2833 | MEDICINAL CHEMICALS & BOTANICAL PRODUCTS | | 2834 | PHARMACEUTICAL PREPARATIONS | | 2835 | IN VITRO & IN VIVO DIAGNOSTIC SUBSTANCES | | 2836 | BIOLOGICAL PRODUCTS, (NO DISGNOSTIC SUBSTANCES) | | 2840 | SOAP, DETERGENTS, CLEANG PREPARATIONS, PERFUMES, COSMETICS | | 2842 | SPECIALTY CLEANING, POLISHING AND SANITATION PREPARATIONS | | 2844 | PERFUMES, COSMETICS & OTHER TOILET PREPARATIONS | | 2851 | PAINTS, VARNISHES, LACQUERS, ENAMELS & ALLIED PRODS | | 2860 | INDUSTRIAL ORGANIC CHEMICALS | | 2870 | AGRICULTURAL CHEMICALS | | 2890 | MISCELLANEOUS CHEMICAL PRODUCTS | | 2891 | ADHESIVES & SEALANTS | | 2911 | PETROLEUM REFINING | | 2951 | ASPHALT PAVING & ROOFING MATERIALS | | 2990 | MISCELLANEOUS PRODUCTS OF PETROLEUM & COAL | | 3011 | TIRES & INNER TUBES | | 3021 | RUBBER & PLASTICS FOOTWEAR | | 3050 | GASKETS, PACKG & SEALG DEVICES & RUBBER & PLASTICS HOSE | | 3060 | FABRICATED RUBBER PRODUCTS, NEC | | 3080 | MISCELLANEOUS PLASTICS PRODUCTS | | 3081 | UNSUPPORTED PLASTICS FILM & SHEET | | 3086 | PLASTICS FOAM PRODUCTS | | 3089 | PLASTICS PRODUCTS, NEC | | 3100 | LEATHER & LEATHER PRODUCTS | | 3140 | FOOTWEAR, (NO RUBBER) | | 3211 | FLAT GLASS | | 3220 | GLASS & GLASSWARE, PRESSED OR BLOWN | | 3221 | GLASS CONTAINERS | | 3231 | GLASS PRODUCTS, MADE OF PURCHASED GLASS | | 3241 | CEMENT, HYDRAULIC | | 3250 | STRUCTURAL CLAY PRODUCTS | | 3260 | POTTERY & RELATED PRODUCTS | | 3270 | CONCRETE, GYPSUM & PLASTER PRODUCTS | | 3272 | CONCRETE PRODUCTS, EXCEPT BLOCK & BRICK | | 3281 | CUT STONE & STONE PRODUCTS | | 3290 | ABRASIVE, ASBESTOS & MISC NONMETALLIC MINERAL PRODS | | 3310 | STEEL WORKS, BLAST FURNACES & ROLLING & FINISHING MILLS | | 3312 | STEEL WORKS, BLAST FURNACES & ROLLING MILLS (COKE OVENS) | | 3317 | STEEL PIPE & TUBES | | 3320 | IRON & STEEL FOUNDRIES | | 3330 | PRIMARY SMELTING & REFINING OF NONFERROUS METALS | | 3334 | PRIMARY PRODUCTION OF ALUMINUM | | 3341 | SECONDARY SMELTING & REFINING OF NONFERROUS METALS | | 3350 | ROLLING DRAWING & EXTRUDING OF NONFERROUS METALS | | 3357 | DRAWING & INSULATING OF NONFERROUS WIRE | | 3360 | NONFERROUS FOUNDRIES (CASTINGS) | | 3390 | MISCELLANEOUS PRIMARY METAL PRODUCTS | | 3411 | METAL CANS | | 3412 | METAL SHIPPING BARRELS, DRUMS, KEGS & PAILS | | 3420 | CUTLERY, HANDTOOLS & GENERAL HARDWARE | | 3430 | HEATING EQUIP, EXCEPT ELEC & WARM AIR; & PLUMBING FIXTURES | | 3433 | HEATING EQUIPMENT, EXCEPT ELECTRIC & WARM AIR FURNACES | | 3440 | FABRICATED STRUCTURAL METAL PRODUCTS | | 3442 | METAL DOORS, SASH, FRAMES, MOLDINGS & TRIM | | 3443 | FABRICATED PLATE WORK (BOILER SHOPS) | | 3444 | SHEET METAL WORK | | 3448 | PREFABRICATED METAL BUILDINGS & COMPONENTS | | 3451 | SCREW MACHINE PRODUCTS | | 3452 | BOLTS, NUTS, SCREWS, RIVETS & WASHERS | | 3460 | METAL FORGINGS & STAMPINGS | | 3470 | COATING, ENGRAVING & ALLIED SERVICES | | 3480 | ORDNANCE & ACCESSORIES, (NO VEHICLES/GUIDED MISSILES) | | 3490 | MISCELLANEOUS FABRICATED METAL PRODUCTS | | 3510 | ENGINES & TURBINES | | 3523 | FARM MACHINERY & EQUIPMENT | | 3524 | LAWN & GARDEN TRACTORS & HOME LAWN & GARDENS EQUIP | | 3530 | CONSTRUCTION, MINING & MATERIALS HANDLING MACHINERY & EQUIP | | 3531 | CONSTRUCTION MACHINERY & EQUIP | | 3532 | MINING MACHINERY & EQUIP (NO OIL & GAS FIELD MACH & EQUIP) | | 3533 | OIL & GAS FIELD MACHINERY & EQUIPMENT | | 3537 | INDUSTRIAL TRUCKS, TRACTORS, TRAILORS & STACKERS | | 3540 | METALWORKG MACHINERY & EQUIPMENT | | 3541 | MACHINE TOOLS, METAL CUTTING TYPES | | 3550 | SPECIAL INDUSTRY MACHINERY (NO METALWORKING MACHINERY) | | 3555 | PRINTING TRADES MACHINERY & EQUIPMENT | | 3559 | SPECIAL INDUSTRY MACHINERY, NEC | | 3560 | GENERAL INDUSTRIAL MACHINERY & EQUIPMENT | | 3561 | PUMPS & PUMPING EQUIPMENT | | 3562 | BALL & ROLLER BEARINGS | | 3564 | INDUSTRIAL & COMMERCIAL FANS & BLOWERS & AIR PURIFING EQUIP | | 3567 | INDUSTRIAL PROCESS FURNACES & OVENS | | 3569 | GENERAL INDUSTRIAL MACHINERY & EQUIPMENT, NEC | | 3570 | COMPUTER & OFFICE EQUIPMENT | | 3571 | ELECTRONIC COMPUTERS | | 3572 | COMPUTER STORAGE DEVICES | | 3575 | COMPUTER TERMINALS | | 3576 | COMPUTER COMMUNICATIONS EQUIPMENT | | 3577 | COMPUTER PERIPHERAL EQUIPMENT, NEC | | 3578 | CALCULATING & ACCOUNTING MACHINES (NO ELECTRONIC COMPUTERS) | | 3579 | OFFICE MACHINES, NEC | | 3580 | REFRIGERATION & SERVICE INDUSTRY MACHINERY | | 3585 | AIR-COND & WARM AIR HEATG EQUIP & COMM & INDL REFRIG EQUIP | | 3590 | MISC INDUSTRIAL & COMMERCIAL MACHINERY & EQUIPMENT | | 3600 | ELECTRONIC & OTHER ELECTRICAL EQUIPMENT (NO COMPUTER EQUIP) | | 3612 | POWER, DISTRIBUTION & SPECIALTY TRANSFORMERS | | 3613 | SWITCHGEAR & SWITCHBOARD APPARATUS | | 3620 | ELECTRICAL INDUSTRIAL APPARATUS | | 3621 | MOTORS & GENERATORS | | 3630 | HOUSEHOLD APPLIANCES | | 3634 | ELECTRIC HOUSEWARES & FANS | | 3640 | ELECTRIC LIGHTING & WIRING EQUIPMENT | | 3651 | HOUSEHOLD AUDIO & VIDEO EQUIPMENT | | 3652 | PHONOGRAPH RECORDS & PRERECORDED AUDIO TAPES & DISKS | | 3661 | TELEPHONE & TELEGRAPH APPARATUS | | 3663 | RADIO & TV BROADCASTING & COMMUNICATIONS EQUIPMENT | | 3669 | COMMUNICATIONS EQUIPMENT, NEC | | 3670 | ELECTRONIC COMPONENTS & ACCESSORIES | | 3672 | PRINTED CIRCUIT BOARDS | | 3674 | SEMICONDUCTORS & RELATED DEVICES | | 3675 | ELECTRONIC COILS, TRANSFORMERS & OTHER INDUCTORS | | 3676 | ELECTRONIC CONNECTORS | | 3677 | ELECTRONIC COMPONENTS, NEC | | 3690 | MISCELLANEOUS ELECTRICAL MACHINERY, EQUIPMENT & SUPPLIES | | 3695 | MAGNETIC & OPTICAL RECORDING MEDIA | | 3711 | MOTOR VEHICLES & PASSENGER CAR BODIES | | 3713 | TRUCK & BUS BODIES | | 3714 | MOTOR VEHICLE PARTS & ACCESSORIES | | 3715 | TRUCK TRAILERS | | 3716 | MOTOR HOMES | | 3720 | AIRCRAFT & PARTS | | 3721 | AIRCRAFT | | 3724 | AIRCRAFT ENGINES & ENGINE PARTS | | 3728 | AIRCRAFT PARTS & AUXILIARY EQUIPMENT, NEC | | 3730 | SHIP & BOAT BUILDING & REPAIRING | | 3743 | RAILROAD EQUIPMENT | | 3751 | MOTORCYCLES, BICYCLES & PARTS | | 3760 | GUIDED MISSILES & SPACE VEHICLES & PARTS | | 3790 | MISCELLANEOUS TRANSPORTATION EQUIPMENT | | 3812 | SEARCH, DETECTION, NAVAGATION, GUIDANCE, AERONAUTICAL SYS | | 3821 | LABORATORY APPARATUS & FURNITURE | | 3822 | AUTO CONTROLS FOR REGULATING RESIDENTIAL & COMML ENVIRONMENTS | | 3823 | INDUSTRIAL INSTRUMENTS FOR MEASUREMENT, DISPLAY, AND CONTROL | | 3824 | TOTALIZING FLUID METERS & COUNTING DEVICES | | 3825 | INSTRUMENTS FOR MEAS & TESTING OF ELECTRICITY & ELEC SIGNALS | | 3826 | LABORATORY ANALYTICAL INSTRUMENTS | | 3827 | OPTICAL INSTRUMENTS & LENSES | | 3829 | MEASURING & CONTROLLING DEVICES, NEC | | 3841 | SURGICAL & MEDICAL INSTRUMENTS & APPARATUS | | 3842 | ORTHOPEDIC, PROSTHETIC & SURGICAL APPLIANCES & SUPPLIES | | 3843 | DENTAL EQUIPMENT & SUPPLIES | | 3844 | X-RAY APPARATUS & TUBES & RELATED IRRADIATION APPARATUS | | 3845 | ELECTROMEDICAL & ELECTROTHERAPEUTIC APPARATUS | | 3851 | OPHTHALMIC GOODS | | 3861 | PHOTOGRAPHIC EQUIPMENT & SUPPLIES | | 3873 | WATCHES, CLOCKS, CLOCKWORK OPERATED DEVICES/PARTS | | 3910 | JEWELRY, SILVERWARE & PLATED WARE | | 3911 | JEWELRY, PRECIOUS METAL | | 3931 | MUSICAL INSTRUMENTS | | 3942 | DOLLS & STUFFED TOYS | | 3944 | GAMES, TOYS & CHILDREN'S VEHICLES (NO DOLLS & BICYCLES) | | 3949 | SPORTING & ATHLETIC GOODS, NEC | | 3950 | PENS, PENCILS & OTHER ARTISTS' MATERIALS | | 3960 | COSTUME JEWELRY & NOVELTIES | _Note: This is a partial list covering major SIC codes. The complete SIC system contains additional specialized classifications._ SIC vs NAICS[](https://docs.tomba.io/attributes/sic#sic-vs-naics) ------------------------------------------------------------------ While SIC codes are still widely used, the NAICS system was developed to provide a more modern and comprehensive classification structure: | Feature | SIC | NAICS | | --- | --- | --- | | Code Length | 4 digits | 6 digits | | Created | 1937 | 1997 | | Geographic Scope | U.S. only | North America (US, Canada, Mexico) | | Industries Classified | ~1,000 | ~1,170 | | Updates | Limited | Regular revisions every 5 years | Related Resources[](https://docs.tomba.io/attributes/sic#related-resources) ---------------------------------------------------------------------------- * [Company Attributes](https://docs.tomba.io/attributes/company) * [NAICS Codes](https://docs.tomba.io/attributes/naics) * [Industry Filtering](https://docs.tomba.io/attributes/company#industry-attribute) Last modified on January 8, 2026 [NAICS Codes](https://docs.tomba.io/attributes/naics) [Installation Tomba Cli](https://docs.tomba.io/cli/installation) --- # Deno Client Library | Tomba Documentation Menu Installation[](https://docs.tomba.io/libraries/deno-email-finder#installation) ------------------------------------------------------------------------------- Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts";` Usage[](https://docs.tomba.io/libraries/deno-email-finder#usage) ----------------------------------------------------------------- ### Domain Search[](https://docs.tomba.io/libraries/deno-email-finder#domain-search) Get email addresses found on the internet. Code `let client = new tomba.Client(); let domain = new tomba.Domain(client); client.setKey("ta_xxxx").setSecret("ts_xxxx"); const result = domain.domainSearch("stripe.com"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Email Finder[](https://docs.tomba.io/libraries/deno-email-finder#email-finder) Find the verified email address of any professional. Code `let client = new tomba.Client(); let finder = new tomba.Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = finder.emailFinder("stripe.com", "Moskoz", "Dustin"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Email Verifier[](https://docs.tomba.io/libraries/deno-email-finder#email-verifier) Verify the validity of any professional email address with the most complete email checker. Code `let client = new tomba.Client(); let verifier = new tomba.Verifier(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = verifier.emailVerifier("m@wordpress.org"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` Examples[](https://docs.tomba.io/libraries/deno-email-finder#examples) ----------------------------------------------------------------------- ### Get Account Information[](https://docs.tomba.io/libraries/deno-email-finder#get-account-information) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let account = new tomba.Account(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = account.getAccount(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Email Count[](https://docs.tomba.io/libraries/deno-email-finder#email-count) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let count = new tomba.Count(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = count.emailCount("tomba.io"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Finder Services[](https://docs.tomba.io/libraries/deno-email-finder#finder-services) #### Author Finder[](https://docs.tomba.io/libraries/deno-email-finder#author-finder) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let finder = new tomba.Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = finder.authorFinder( "https://clearbit.com/blog/company-name-to-domain-api", ); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### LinkedIn Finder[](https://docs.tomba.io/libraries/deno-email-finder#linkedin-finder) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let finder = new tomba.Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = finder.linkedinFinder( "https://www.linkedin.com/in/alex-maccaw-ab592978", ); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Phone Finder[](https://docs.tomba.io/libraries/deno-email-finder#phone-finder) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let finder = new tomba.Finder(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = finder.phoneFinder("******@zapier.com"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### API Key Management[](https://docs.tomba.io/libraries/deno-email-finder#api-key-management) #### Create API Key[](https://docs.tomba.io/libraries/deno-email-finder#create-api-key) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let keys = new tomba.Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = keys.createKey(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Delete API Key[](https://docs.tomba.io/libraries/deno-email-finder#delete-api-key) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let keys = new tomba.Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = keys.deleteKey(""); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Get All API Keys[](https://docs.tomba.io/libraries/deno-email-finder#get-all-api-keys) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let keys = new tomba.Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = keys.getKeys(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Reset API Key[](https://docs.tomba.io/libraries/deno-email-finder#reset-api-key) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let keys = new tomba.Keys(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = keys.resetKey(""); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Lead Attributes Management[](https://docs.tomba.io/libraries/deno-email-finder#lead-attributes-management) #### Create Lead Attribute[](https://docs.tomba.io/libraries/deno-email-finder#create-lead-attribute) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let leadsAttributes = new tomba.LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsAttributes.createLeadAttribute(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Delete Lead Attribute[](https://docs.tomba.io/libraries/deno-email-finder#delete-lead-attribute) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let leadsAttributes = new tomba.LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsAttributes.deleteLeadAttribute("[Lead_Attributes_ID]"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Get Lead Attributes[](https://docs.tomba.io/libraries/deno-email-finder#get-lead-attributes) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let leadsAttributes = new tomba.LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsAttributes.getLeadAttributes(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Update Lead Attribute[](https://docs.tomba.io/libraries/deno-email-finder#update-lead-attribute) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let leadsAttributes = new tomba.LeadsAttributes(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsAttributes.updateLeadAttribute("[Lead_Attributes_ID]"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Lead Lists Management[](https://docs.tomba.io/libraries/deno-email-finder#lead-lists-management) #### Create Lead List[](https://docs.tomba.io/libraries/deno-email-finder#create-lead-list) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let leadsLists = new tomba.LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsLists.createList(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Delete Lead List[](https://docs.tomba.io/libraries/deno-email-finder#delete-lead-list) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let leadsLists = new tomba.LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsLists.deleteListId("[LIST_ID]"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Get All Lead Lists[](https://docs.tomba.io/libraries/deno-email-finder#get-all-lead-lists) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let leadsLists = new tomba.LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsLists.getLists(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Update Lead List[](https://docs.tomba.io/libraries/deno-email-finder#update-lead-list) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let leadsLists = new tomba.LeadsLists(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = leadsLists.updateListId("[List_ID]"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Activity Logs[](https://docs.tomba.io/libraries/deno-email-finder#activity-logs) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let logs = new tomba.Logs(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = logs.getLogs(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Email Sources[](https://docs.tomba.io/libraries/deno-email-finder#email-sources) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let sources = new tomba.Sources(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = sources.emailSources("b.mohamed@tomba.io"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Domain and Company Status[](https://docs.tomba.io/libraries/deno-email-finder#domain-and-company-status) #### Auto Complete[](https://docs.tomba.io/libraries/deno-email-finder#auto-complete) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let status = new tomba.Status(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = status.autoComplete("google"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` #### Domain Status[](https://docs.tomba.io/libraries/deno-email-finder#domain-status) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let status = new tomba.Status(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = status.domainStatus("gmail.com"); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` ### Usage Statistics[](https://docs.tomba.io/libraries/deno-email-finder#usage-statistics) Code `import * as tomba from "https://deno.land/x/tombaio/mod.ts"; // Init SDK let client = new tomba.Client(); let usage = new tomba.Usage(client); client .setKey("ta_xxxx") // Your Key .setSecret("ts_xxxx"); // Your Secret const result = usage.getUsage(); result .then((response) => { console.log(response); }) .catch((err) => { console.log(err); });` For more sample codes, check the [**examples/**](https://github.com/tomba-io/deno/tree/master/examples) folder. Last modified on April 28, 2026 [Dart Client Library](https://docs.tomba.io/libraries/dart-email-finder) [elixir Client Library](https://docs.tomba.io/libraries/elixir-email-finder) Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript Javascript ---