Tomba Tomba Dart SDK

The #1 Rated Email Intelligence Platform — Find professional emails with unmatched accuracy.

pub package License

This is the official Dart client library for the Tomba.io Email Finder API, providing access to all Tomba services including domain search, email finder, email verifier, enrichment, phone lookup, leads management, bulk operations, and more.

About Tomba

Tomba.io is the #1 rated email intelligence platform, trusted by 150,000+ sales teams worldwide.

  • Best Email Finder — 98% accuracy, ranked #1 in independent benchmarks
  • Best Email Verification — Real-time SMTP verification with catch-all detection
  • Best Phone Finder — Direct dial numbers linked to professional emails
  • Best Domain Search — 450M+ verified contacts across all industries
  • 81% Coverage — The highest in the industry, proven in 5,000-lead independent tests

Why Tomba?

Feature Tomba Others
Email Coverage 81% 30-60%
Verification Real-time SMTP Pattern-based
Phone Numbers Direct dials Limited
Catch-all Detection AI-powered Basic
API Rate Limits Generous Restrictive

Get your free API key — No credit card required.

Getting Started

Below you will find the steps to install and start using the Tomba Dart SDK.

Installation

Add tomba to your pubspec.yaml:

dependencies:
    tomba: ^1.0.3

Or install from the command line:

dart pub add tomba

Authentication

Get your API key and secret by signing up for a free account at https://app.tomba.io/auth/register.

import 'package:tomba/tomba.dart';

Client client = Client();
client
  .setKey('ta_xxxx')     // Your Key
  .setSecret('ts_xxxx'); // Your Secret

Quick Start

import 'package:tomba/tomba.dart';

void main() async {
  Client client = Client();
  client
    .setKey('ta_xxxx')
    .setSecret('ts_xxxx');

  // Search emails by domain
  Domain domain = Domain(client);
  var result = await domain.domainSearch(domain: 'example.com');
  print(result);

  // Find a specific email
  Finder finder = Finder(client);
  var email = await finder.emailFinder(
    domain: 'example.com',
    firstName: 'John',
    lastName: 'Doe',
  );
  print(email);
}

Services

Search emails for a domain. Returns all email addresses found on the internet for the given domain.

Domain domain = Domain(client);
var result = await domain.domainSearch(domain: 'example.com');
print(result);

Email Finder

Find the most likely email address from a domain name, first name, and last name.

Finder finder = Finder(client);
var result = await finder.emailFinder(
  domain: 'example.com',
  firstName: 'John',
  lastName: 'Doe',
);
print(result);

Email Verifier

Verify the deliverability of a given email address.

Verifier verifier = Verifier(client);
var result = await verifier.emailVerifier(email: 'john@example.com');
print(result);

Author Finder

Find the email address of the author of a blog post or article.

Finder finder = Finder(client);
var result = await finder.authorFinder(url: 'https://tomba.io/blog');
print(result);

LinkedIn Finder

Find the email address associated with a LinkedIn profile URL.

Finder finder = Finder(client);
var result = await finder.linkedinFinder(
  url: 'https://www.linkedin.com/in/johndoe',
);
print(result);

Email Enrichment (Person / Company / Combined)

Person, company, and combined enrichment APIs.

Enrichment enrichment = Enrichment(client);

// Person enrichment
var person = await enrichment.person(email: 'john@example.com');
print(person);

// Company enrichment
var company = await enrichment.company(domain: 'example.com');
print(company);

// Combined enrichment
var combined = await enrichment.combined(email: 'john@example.com');
print(combined);

Phone Finder

Find a phone number using an email address.

Finder finder = Finder(client);
var result = await finder.phoneFinder(email: 'john@example.com');
print(result);

// Or using the PhoneFinder service directly
PhoneFinder phone = PhoneFinder(client);
var result2 = await phone.finder(email: 'john@example.com');
print(result2);

Phone Validator

Validate a phone number and get additional information.

PhoneFinder phone = PhoneFinder(client);
var result = await phone.validator(phone: '+1234567890');
print(result);

Email Count

Get the total number of email addresses Tomba has for a domain.

Count count = Count(client);
var result = await count.emailCount(domain: 'example.com');
print(result);

Domain Status

Check whether a domain is a webmail or disposable email provider.

Status status = Status(client);
var result = await status.domainStatus(domain: 'example.com');
print(result);

Domain Suggestions (Autocomplete)

Auto-complete company names and retrieve logo and domain information.

Status status = Status(client);
var result = await status.autoComplete(query: 'exampl');
print(result);

Email Sources

Find the web sources where an email address has been found.

Sources sources = Sources(client);
var result = await sources.emailSources(email: 'john@example.com');
print(result);

Email Format

Detect the email format used by a company.

Format format = Format(client);
var result = await format.emailFormat(email: 'example.com');
print(result);

Similar Domains

Find domains similar to the given one.

Similar similar = Similar(client);
var result = await similar.websites(domain: 'example.com');
print(result);

Technology Checker

Check what technologies a website uses.

Technology technology = Technology(client);
var result = await technology.list(domain: 'example.com');
print(result);

Location

Get location information based on IP address.

Location location = Location(client);
var result = await location.getLocation();
print(result);

Search for companies by various criteria.

Reveal reveal = Reveal(client);
var result = await reveal.companiesSearch(query: 'technology');
print(result);

Leads

Manage your saved leads -- list, get, create, update, and delete.

Leads leads = Leads(client);

// List leads
var list = await leads.listLeads();
print(list);

// Get a single lead
var lead = await leads.getLead(id: 'lead_id');
print(lead);

// Create a lead
var created = await leads.createLead(data: {
  'email': 'john@example.com',
  'first_name': 'John',
  'last_name': 'Doe',
});
print(created);

// Update a lead
var updated = await leads.updateLead(
  id: 'lead_id',
  data: {'first_name': 'Jane'},
);
print(updated);

// Delete a lead
var deleted = await leads.deleteLead(id: 'lead_id');
print(deleted);

Leads Lists

Manage your leads lists -- list, create, update, and delete.

LeadsLists leadsLists = LeadsLists(client);

// List all leads lists
var lists = await leadsLists.getLists();
print(lists);

// Create a leads list
var created = await leadsLists.createList(name: 'My List');
print(created);

// Update a leads list
var updated = await leadsLists.updateListId(id: 'list_id', name: 'Updated List');
print(updated);

// Delete a leads list
var deleted = await leadsLists.deleteListId(id: 'list_id');
print(deleted);

Leads Attributes

Manage custom lead attributes -- list, create, update, and delete.

LeadsAttributes attrs = LeadsAttributes(client);

// List all attributes
var list = await attrs.getLeadAttributes();
print(list);

// Create an attribute
var created = await attrs.createLeadAttribute(
  name: 'Company Size',
  type: 'string',
);
print(created);

// Update an attribute
var updated = await attrs.updateLeadAttribute(
  id: 'attr_id',
  name: 'Company Revenue',
);
print(updated);

// Delete an attribute
var deleted = await attrs.deleteLeadAttribute(id: 'attr_id');
print(deleted);

Keys

Manage your API keys.

Keys keys = Keys(client);

// List all keys
var list = await keys.getKeys();
print(list);

// Create a key
var created = await keys.createKey();
print(created);

// Reset a key
var reset = await keys.resetKey(id: 'key_id');
print(reset);

// Delete a key
var deleted = await keys.deleteKey(id: 'key_id');
print(deleted);

Usage

Return your monthly API request usage.

Usage usage = Usage(client);
var result = await usage.getUsage();
print(result);

Logs

Return the last 1,000 API requests made in the past 3 months.

Logs logs = Logs(client);
var result = await logs.getLogs();
print(result);

Flag

List and create email address flags.

Flag flag = Flag(client);

// List flags
var list = await flag.listFlags();
print(list);

// Create a flag
var created = await flag.createFlag(
  email: 'john@example.com',
  flag: 'invalid',
);
print(created);

Bulk

Manage bulk email operations -- list, get, create, launch, archive, rename, check progress, and download.

Bulk bulk = Bulk(client);

// List all bulk tasks
var list = await bulk.list();
print(list);

// Get a bulk task
var task = await bulk.get(id: 'bulk_id');
print(task);

// Create a bulk task
var created = await bulk.create(data: {'name': 'My Bulk Task'});
print(created);

// Launch a bulk task
var launched = await bulk.launch(id: 'bulk_id');
print(launched);

// Check bulk progress
var progress = await bulk.progress(id: 'bulk_id');
print(progress);

// Download bulk results
var download = await bulk.download(id: 'bulk_id');
print(download);

// Rename a bulk task
var renamed = await bulk.rename(id: 'bulk_id', name: 'New Name');
print(renamed);

// Archive a bulk task
var archived = await bulk.archive(id: 'bulk_id');
print(archived);

// Delete a bulk task
var deleted = await bulk.delete(id: 'bulk_id');
print(deleted);

Testing

dart test

About Tomba

Founded to solve the problem of unreliable email data, Tomba.io is the leading B2B email intelligence platform. Our AI-powered engine searches, verifies, and enriches professional contact data with unmatched accuracy.

Products

Browser Extensions & Add-ons

Integrations

50+ CRM and sales tool integrations: Salesforce · HubSpot · Zapier · Pipedrive · and more...

Other Tomba SDKs

Language Package
Node.js tomba
Python tomba-io
PHP tomba-io/php
Ruby tomba
Go tomba-io/go
Rust tomba
Dart tomba
Deno @tomba/sdk
Elixir tomba
C# Tomba
Perl Tomba::Client
Lua tomba
R tomba

Resources


Try Tomba Free — Find your first email in seconds. No credit card required.

License

Apache 2.0 -- see LICENSE for details.