TombaTomba
Start free
  • Documentation
  • API reference
  • SDKs & CLI
  • AI & MCP
  • Integrations
  • Enterprise
  • Migration guides

Find, verify and enrich B2B contacts from public sources, in the app, your spreadsheet or through the API.

GDPR & CCPA

// docs

  • API changelog
  • Support options
  • Security

// platform

  • Dashboard
  • Pricing
  • API status

// resources

  • Help center
  • Product updates
  • TombaBot crawler

// company

  • Website
  • Contact us
  • Edit or remove your data

© 2021–2026 Tomba.io

  • Terms of service
  • Privacy policy
  • Cookie policy
  • Security policy
  • GDPR
  • CCPA
Information
Finder
Verifier
Enrichment
Phone
Domain
Email
Domain Suggestions
Reveal
Bulks
Leads
Lead Lists
Lead Attributes
Account
Keys
Flag
MCP Server
Schemas
Tomba
Tomba

Schemas

Download schema

RevealSearchRequest

Send `query` or `filters`. When you send `query`, Tomba generates filters from it and ignores any `filters` you send; the generated filters are returned in `meta.filters`.
query
​string · minLength: 8 · maxLength: 100

Natural-language description of the companies you want, 8 to 100 characters. Filters are generated from it on every request, so use it for the first request and send the returned meta.filters as filters for the next pages.

Example: Real estate agencies in Europe
​RevealFilters

Structured filters for company search. Every filter is optional, and a company must match all the filters you send. Most values are matched against Tomba's company data, which isn't normalized to a fixed list; size, founded, and revenue accept only the values listed for them and ignore any other value.

page
​integer · min: 1 · max: 1000

Page number. Each page has up to 50 companies. On the Free plan outside a workspace, any page after the first returns page 1.

Default: 1

RevealFilters

Structured filters for company search. Every filter is optional, and a company must match all the filters you send. Most values are matched against Tomba's company data, which isn't normalized to a fixed list; `size`, `founded`, and `revenue` accept only the values listed for them and ignore any other value.
​SearchFilter

Company domains, such as stripe.com.

​SearchFilter

Two-letter country codes (ISO 3166-1 alpha-2), such as US.

​SearchFilter

City names, such as San Francisco.

​SearchFilter

State or region names, such as California.

​SearchFilter

Industries, such as financial services.

​SearchFilter

Employee count ranges: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, or 10001+.

​PremiumSearchFilter

Company types, such as private or public.

​PremiumSearchFilter

Keywords matched against each company's name, industry, keywords, and description.

​PremiumSearchFilter

Founding years, such as 2015, or ranges: before 1990, 1990-1999, 2000-2009, 2010-2019, or 2020+. exclude isn't supported.

​PremiumSearchFilter

Technology names, such as React.

​PremiumSearchFilter

Reference domains, such as stripe.com, to find similar companies. exclude isn't supported.

​PremiumSearchFilter

Annual revenue ranges: 0-1m, 1m-10m, 10m-50m, 50m-100m, or 100m+.

​PremiumSearchFilter

Four-digit SIC codes, such as 7372. See SIC codes.

​PremiumSearchFilter

Six-digit NAICS codes, 2017 or 2022 edition, such as 522320. See NAICS codes.

SearchFilter

Values to include and exclude. A company matches when it matches any `include` value and no `exclude` value. Values are matched against Tomba's company data, which isn't normalized to a fixed list.
include
​array | null · maxItems: 50

Values to include.

exclude
​array | null · maxItems: 50

Values to exclude.

PremiumSearchFilter

Values to include and exclude. On the Free plan outside a workspace, a request for a page after the first is served as page 1 without these filters.
include
​array | null · maxItems: 50

Values to include. A company matches when it matches any of them.

exclude
​array | null · maxItems: 50

Values to exclude.

RevealSearchResponse

Company search response.
success
​boolean · required

Always true.

​RevealData · required

One page of companies, up to 50.

​RevealMeta · required

Paging, and the filters the search used.

RevealMeta

Paging, and the filters the search used.
total
​integer · required

Number of companies that match.

page
​integer · required

The page returned. 0 if the search fails.

limit
​integer · required

Companies per page. Always 50.

pages
​integer · required

Number of pages.

​RevealFilters · required

The filters the search used: the ones you sent, or the ones generated from query. Only filters that were set appear. Send them as filters to get more pages of the same search.

RevealData

One page of companies, up to 50.
​array | null · required

The companies on this page, most popular domain first, or most relevant first when you filter by keywords. null if the search fails.

Company

A company returned by company search. Every field is always present; text fields are empty strings when Tomba has no value.
name
​string · required

Company name.

description
​string · required

Short description of the company.

country
​string · required

Two-letter country code (ISO 3166-1 alpha-2) of the headquarters.

state
​string · required

State or region.

city
​string · required

City.

street_address
​string · required

Street address.

postal_code
​string · required

Postal code.

industry
​string · required

Industry. Free text; not a fixed list.

company_size
​string · required

Employee count range, such as 51-200. Free text; not a fixed list.

type
​string · required

Company type. Currently always an empty string.

founded
​string · required

Year the company was founded.

website_url
​string · required

Company domain, such as stripe.com.

total_emails
​integer · required

Number of email addresses Tomba has for the domain.

revenue
​string · required

Estimated annual revenue range. Free text; not a fixed list.

phone_number
​boolean · required

Whether Tomba has a phone number for the company. Currently always false.

linkedin_url
​string · required

LinkedIn company page URL, such as https://linkedin.com/company/stripe.

facebook_url
​string · required

Facebook page URL, such as https://facebook.com/StripeHQ.

twitter_url
​string · required

Twitter (X) profile URL, such as https://x.com/stripe.

total_similar
​integer · required

Number of similar companies Tomba has for the domain.

Account

​object · required

Your account, plan, and credit usage in the current usage window.

DomainSearch

Domain search response: the company in `data.organization`, one page of its email addresses in `data.emails`, and paging in `meta`. See [Company response](https://docs.tomba.io/attributes/company) and [Person response](https://docs.tomba.io/attributes/person).
​object · required

The company and its email addresses.

​object · required

Paging for the email addresses, and the request as the API read it.

EmailFinder

Email finder and email enrichment response. When no address is found, `data.email` is `null`, the other fields are `null`, `false`, or `0`, `sources` is `null`, and `verification` is left out. See [Person response](https://docs.tomba.io/attributes/person).
​object · required

The person and their email address.

EmailSource

A public web page where Tomba found the email address. An address has at most 20 sources. When it has no public source, the list can contain one entry that isn't a published page: the address's page on Tomba (`website_url` `tomba.io`) when the address was verified as valid, or a Google search (`website_url` `google.com`) when Tomba matched the person to a LinkedIn profile. The dates of such an entry are the time of your request.
uri
​string · required

URL of the page where the address was found.

website_url
​string · required

Host name of that page, such as stripe.com.

extracted_on
​string · date-time · required

When Tomba first found the address on the page, in RFC 3339 format.

last_seen_on
​string · date-time · required

When Tomba last saw the address on the page, in RFC 3339 format.

still_on_page
​boolean · required

true if the address was on the page when Tomba last checked it.

FinderVerification

Result of Tomba's last check of the address. Both fields are `null` when Tomba hasn't checked it.
date
​string | null · date-time · required

When Tomba last checked the address, in RFC 3339 format.

status
​string | null · enum · required

Result of the last check: valid, accept_all, invalid, or unknown. See Status values.

Enum values:
valid
accept_all
invalid
unknown

PhoneData

A phone number with its formats, line type, carrier, region, and time zones. See [Phone response](https://docs.tomba.io/attributes/phone).
valid
​boolean | null · required

true if the number is valid in its country's numbering plan.

local_format
​string | null · required

National format, such as (415) 555-0132.

intl_format
​string | null · required

International format, such as +1 415-555-0132.

e164_format
​string | null · required

E.164 format, such as +14155550132.

rfc3966_format
​string | null · required

RFC 3966 URI, such as tel:+1-415-555-0132.

country_code
​string | null · required

Two-letter country code (ISO 3166-1 alpha-2) of the number.

line_type
​string | null · enum · required

Line type. FIXED_LINE_OR_MOBILE means the numbering plan doesn't distinguish landlines from mobiles; for US, Canadian, and Mexican numbers Tomba replaces it with MOBILE, FIXED_LINE, VOIP, or TOLL_FREE when the number's block is classified. Voicemail numbers are reported as UNKNOWN. See Line types.

Enum values:
FIXED_LINE
MOBILE
FIXED_LINE_OR_MOBILE
TOLL_FREE
PREMIUM_RATE
SHARED_COST
VOIP
PERSONAL_NUMBER
carrier
​string | null · required

Carrier the number was assigned to. Empty when unknown.

region
​object | null · required

State or province of the number. null when the number doesn't identify one.

timezones
​array | null · required

IANA time zones of the number, such as America/Los_Angeles.

email
​string

Phone finder only. The email address the number was found for. Left out when empty.

domain
​string

Phone finder only. The domain the number was found for. Left out when empty.

linkedin
​string

Phone finder only. The LinkedIn profile URL the number was found for. Left out when empty.

EmailVerifier

Email verifier response. The checks are in `data.email`, the public pages where the address appears in `data.sources`, and phone numbers in `data.phone_data`. See [Email verifier response](https://docs.tomba.io/attributes/verifier).
​object · required

The verification result.

EnrichmentPersonAPI

Person API response, in Clearbit's field format.
​EnrichmentPersonData · required

A person in Clearbit's field format. Fields Tomba doesn't fill are always null: timeZone, utcOffset, bio, site, avatar, fuzzy, emailProvider, activeAt, inactiveAt, geo.city, geo.state, geo.stateCode, geo.lat, geo.lng, employment.subRole, employment.seniority, facebook.handle, every github and gravatar field, and every twitter field except handle. See Clearbit-compatible enrichment.

​object · required

The lookup.

EnrichmentCompanyAPI

Company API response, in Clearbit's field format.
​EnrichmentCompanyData · required

A company in Clearbit's field format. Fields Tomba doesn't fill are always null: domainAliases, timeZone, utcOffset, logo, ticker, identifiers.usEIN, category.sector, category.industryGroup, category.industry, category.subIndustry, geo.subPremise, geo.lat, geo.lng, facebook.likes, every twitter field except handle, metrics.alexaUsRank, metrics.alexaGlobalRank, metrics.marketCap, metrics.raised, metrics.fiscalYearEnd, parent.domain, and ultimateParent.domain. See Clearbit-compatible enrichment.

​object · required

The lookup.

EnrichmentCombinedAPI

Combined API response: the person and their company, in Clearbit's field format. When Tomba has no record of the address's domain, every `company` field is `null` (nested objects are still present, with `null` fields) and `meta.email` is empty.
​object · required

The person and the company.

​object · required

The lookup.

EmailCount

How many email addresses Tomba has for a domain, by email type, department, and seniority. An unknown, webmail, or disposable domain returns `0` in every count. See [Email count response](https://docs.tomba.io/attributes/email-count).
​object · required

The counts.

website_id
​integer · required

Tomba's internal ID for the domain's company record. 0 when Tomba has no record of the domain.

Location

For each country, the number of a domain's email addresses that belong to people in that country. See [Location response](https://docs.tomba.io/attributes/location).
​object[] · required

One entry per country, in no particular order. An empty array when Tomba has no location data for the domain.

EmailSources

Public web pages where Tomba found an email address. See [Sources response](https://docs.tomba.io/attributes/sources).
​EmailSource[] · required

The sources, at most 20. An empty array, with status 201, when Tomba has none.

email
​string · required

The address you asked about, trimmed and in lowercase.

EmailFormat

The formats that a domain's email addresses follow, with the share of known addresses that use each one. See [Email format response](https://docs.tomba.io/attributes/format).
​object[] · required

Up to 20 formats, in no particular order. An empty array when Tomba has no formats for the domain.

DomainSimilar

Similar companies for a domain, 25 per page. See [Similar domains response](https://docs.tomba.io/attributes/similar).
​array | null · required

Similar companies. null when Tomba has none for the domain.

​object · required

Paging.

DomainTechnology

Technologies detected on a domain's website. See [Technology response](https://docs.tomba.io/attributes/technology).
​array | null · required

One entry per technology. null when Tomba has no technology data for the domain.

domain
​string

The domain you asked about. Left out when data is null.

PhoneFinder

Phone finder response. `data` is one phone number, preferring a valid one, or an array of every number found when you set `full=true`. When nothing is found, `data` is an empty array and the response repeats the identifiers you sent.
​required

One phone number, or an array of phone numbers. An empty array when nothing is found.

email
​string

The email you sent, in lowercase. Only in a response without results.

domain
​string

The domain you sent, normalized. Only in a response without results.

linkedin
​string

The linkedin profile you sent, reduced to its permalink, such as jane-doe. Only in a response without results.

Lead

id
​integer · int64 · required

Lead ID.

user_id
​integer · int64 · required

User who saved the lead.

email
​string · required

Email address, in lowercase. Empty when the lead was saved without one.

list_id
​integer | null · int64 · required

ID of the lead's list.

first_name
​string | null · required

First name.

last_name
​string | null · required

Last name.

country
​string | null · required

Two-letter country code, for example US.

website_url
​string | null · required

Company domain.

position
​string | null · required

Job title.

twitter
​string | null · required

Twitter profile URL.

linkedin
​string | null · required

LinkedIn profile URL.

phone_number
​string | null · required

Phone number.

company
​string | null · required

Company name.

notes
​string | null · required

Notes.

lead_source
​string | null · required

Where the lead came from: domain (domain search), finder (email finder), verify (email verifier), or browser (browser extension).

score
​integer | null · required

Lead score, up to 100.

sync_status
​string | null · required

State of the last sync to a connected app: pending, error, or success.

sync_airtable
​boolean | null · required

Whether the lead was synced to Airtable.

sync_hubspot
​boolean | null · required

Whether the lead was synced to HubSpot.

sync_mailchimp
​boolean | null · required

Whether the lead was synced to Mailchimp.

sync_pipedrive
​boolean | null · required

Whether the lead was synced to Pipedrive.

created_at
​string · date-time · required

When the lead was saved.

updated_at
​string · date-time · required

When the lead was last changed.

​object · required

The lead's list. Every field is null when the lead isn't in a list you can see.

​object · required

Custom attribute values, keyed by the attribute's identifier. Values are strings. Empty when the lead has none. At most 25 are returned.

LeadAttribute

id
​integer · int64 · required

Attribute ID.

user_id
​integer · int64 · required

User who created the attribute.

name
​string · required

Attribute name.

identifier
​string · required

Key for the attribute's values in a lead's attributes: the name as a lowercase slug, so Deal size becomes deal-size.

type
​string · required

Value type: string, date, or number.

created_at
​string · date-time · required

When the attribute was created.

updated_at
​string · date-time · required

When the attribute was last changed.

LeadsList

id
​integer · int64 · required

List ID.

user_id
​integer · int64 · required

User who created the list.

size
​integer · int64 · required

Number of leads in the list. It's a counter updated as leads are added, moved, and deleted, so it can differ from the number of leads GET /leads?list= returns.

name
​string · required

List name.

favorite
​boolean · required

Whether the list is marked as a favorite.

created_at
​string · date-time · required

When the list was created.

updated_at
​string · date-time · required

When the list was last changed.

type
​string

List type. Lists created with this API have campaigns. Absent when empty.

APIKey

id
​integer · int64 · required

Key ID.

user_id
​integer · int64 · required

User ID of the key's owner. A key authenticates as its owner, and its requests are charged to the owner.

key
​string · required

The key value, ta_ followed by 37 characters. Send it as X-Tomba-Key.

name
​string · required

Label for the key.

Example: CI runner
ip
​string · required

IP address the key was created or last rotated from.

created_at
​string · date-time · required

When the key was created.

updated_at
​string · date-time · required

When the key was last changed.

is_owner
​boolean · required

true when the key is yours, false when it belongs to a workspace teammate.

expired
​boolean · required

Whether the key is past its expiry date.

expires_at
​string · date-time

When the key stops working. Requests with an expired key fail with 400 api_key_expired. Absent for the rare keys without an expiry date.

created_by
​integer · int64

User ID of whoever created the key. Absent on older keys.

last_used_at
​string · date-time

Last time the key authenticated a request, updated at most once an hour. Absent if the key hasn't been used.

expires_in_days
​integer

Whole days until the key expires, negative once it has expired. Absent when expires_at is absent.

Example: 87
creator_name
​string

Name of whoever created the key, or their email address when they have no name. Absent when the creator is unknown.

creator_email
​string

Email address of whoever created the key. Absent when the creator is unknown.

creator_image
​string

Profile image URL of whoever created the key. Absent when there's none.

Usage

Daily credit usage and totals for the requested range.
​array | null · required

One row per user and day with charged credits, oldest first. Days without charged credits have no row. The source_* counters split the day's credits, of every type, by where the requests came from. null when the range has no rows.

​object · required

Sums over the rows in data. There's no email_count total.

Log

One billable lookup. Only requests to endpoints that cost credits, and that returned `200` with a result, are logged, including repeats charged `0`.
id
​integer · int64 · required

Log row ID.

user_id
​integer · int64 · required

User who made the request.

uri
​string · required

https://api.tomba.io plus the path for the lookup's type, without query parameters. It can differ from the path you called, which is in endpoint. Empty when the type isn't recognized.

​object | null · required

The request's query parameters and top-level JSON body fields, as strings.

type
​string · required

Name of the lookup type, for example Domain Search, Email Finder, or Email Verification. Some bulk download rows show the credit type instead: search or verifier.

hash
​string · required

Fingerprint of the request's parameters. Tomba uses it to recognize a repeat of a lookup already charged in the current usage window.

cost
​integer · required

Credits charged. 0 for a repeat of a lookup already charged in the current usage window.

source
​string · required

Where the request came from: API, Website, Browser extension, Google Sheets add-on, Bulk API, or MCP Agent.

country
​string · required

Two-letter country code of the caller's IP address. Empty when unknown.

user_agent
​string · required

The request's User-Agent header.

ip_address
​string · required

The caller's IP address.

created_at
​string · date-time · required

When the request was made.

route_name
​string

Internal route name, for example domain-search, enrich-finder, or SearchCompanies. Absent on older rows.

http_method
​string

HTTP method. Absent on older rows.

status_code
​integer

HTTP status of the response, always 200. Absent on older rows.

request_id
​string

Request ID, on rows that recorded one. Rows logged by the current API don't record it, so the field is usually absent.

endpoint
​string

Path you called, for example /v1/domain-search. Absent on older rows.

api_key_id
​integer · int64

ID of the API key that made the request. Absent for requests made with an OAuth access token or from the dashboard.

duration_ms
​integer

Time Tomba took to handle the request, in milliseconds. Absent on older rows.

OperationSuccess

​object · required

Result of an update or delete.

APIErrorResponse

Standard error envelope returned by the API. `errors` is always a single object, never an array.
​APIError · required

Error details object used in reusable error responses.

Example: {"type":"rate_limit","message":"Rate limit exceeded (daily). Limit is 4000 requests. Retry after 32400 seconds.","code":429}

BulkCreate

Parameters of `POST /bulk/{type}`. Send the input as one of `list`, `data`, or `file`. With `data` or `file`, each column is found from the header row unless you set its zero-based `*_field_index`. A parameter a type doesn't use returns `422`, except `verify_emails`, which is ignored; unknown parameters are ignored. See [Create a job](https://docs.tomba.io/bulks#create-a-job).
name
​string · minLength: 3 · maxLength: 200

Job name, 3 to 200 characters. Required, except for a domain export, which is named after its domain.

list
​string

One value per line, or a JSON array of values. Tomba trims, lowercases, and de-duplicates the values, drops the invalid ones, and keeps the first ones up to the type's row limit. Not accepted by finder.

data
​array[]

Rows of cells, for input with several columns. The first row is a header unless has_header is false. In a multipart form, send it as a JSON-encoded string.

has_header
​boolean

Whether the first row of data or of the file is a header. A list has no header.

Default: true
delimiter
​string

Column separator of the uploaded file: ,, ;, |, or tab. Any other value is read as ,.

Default: ,
domain
​string

The domain to export. Required for export, and used by no other type.

domain_field_index
​integer · min: 0

Zero-based column of the domain or website. Used by search, similar, company, finder, and phone-finder.

company_name_field_index
​integer · min: 0

Zero-based column of the company name. Used by search, similar, company, and finder.

first_name_field_index
​integer · min: 0

Zero-based column of the first name. Used by finder.

last_name_field_index
​integer · min: 0

Zero-based column of the last name. Used by finder.

full_name_field_index
​integer · min: 0

Zero-based column of the full name. Used by finder.

email_field_index
​integer · min: 0

Zero-based column of the email address. Used by enrich, verifier, and phone-finder.

linkedin_url_field_index
​integer · min: 0

Zero-based column of the LinkedIn profile URL. Used by linkedin and phone-finder.

url_field_index
​integer · min: 0

Zero-based column of the article URL. Used by author.

phone_field_index
​integer · min: 0

Zero-based column of the phone number. Used by phone-validator.

country_field_index
​integer · min: 0

Zero-based column of the country code. Used by phone-validator.

technology_field_index
​integer · min: 0

Zero-based column of the technology slug. Used by technology.

input_type
​string · enum

Used by search, similar, and company: whether the input is domains or company names. Defaults to company when the input has a company name column and no domain column, and to domain otherwise.

Enum values:
domain
company
max_emails_per_domain
​integer · enum

Used by search and similar. Addresses returned per domain.

Enum values:
1
10
20
50
100
Default: 10
email_type
​string · enum

Used by search. With email_type_mode only, only addresses of this type are returned.

Enum values:
all
personal
generic
Default: all
email_type_mode
​string · enum

only returns only the addresses of email_type; priority returns every type.

Enum values:
only
priority
Default: only
departments
​string[]

Used by search. With departments_mode only, only addresses in these departments are returned.

Enum values:
all
engineering
sales
finance
hr
it
marketing
operations
departments_mode
​string · enum

only returns only the addresses in departments; priority returns every department.

Enum values:
only
priority
Default: only
verify_emails
​boolean

Used by search: verifies the addresses found. It is turned off, without an error, when max_emails_per_domain is above 10 or the input has more than 2,000 rows. similar, company, finder, enrich, linkedin, and author accept it, but it only adds verification credits there; see Billing.

Default: false
find_phones
​boolean

Adds phone numbers, at an extra cost. Used by search, company, finder, enrich, linkedin, verifier, and export.

Default: false
include_sources
​boolean

Adds the web pages where each address was found. Used by search, finder, enrich, linkedin, author, verifier, and export.

Default: false
boost_score_from_sources
​boolean

Used by search. Adds 10 points, up to 90, to the score of an address that couldn't be verified but was found on at least 5 web pages.

Default: false
skip_rows_with_email
​boolean

Used by finder. Skips the rows that already have a value in a column named email.

Default: false
find_all_phones
​boolean

Used by phone-finder. Returns every phone number found instead of one.

Default: false
filter
​string · enum

Used by export. The addresses to export, by type or by department.

Enum values:
all
personal
generic
engineering
sales
finance
hr
it
Default: all
notify
​boolean

Emails you when the job finishes with at least one result.

Default: false
launch
​boolean

Launches the job right after creating it. If it can't start, it stays pending and data.message in the response says why. A domain export always starts.

Default: false
webhook_url
​string · uri · maxLength: 2048

An https:// URL that receives an event when the job completes, fails, or is cancelled. At most 2,048 characters, without a username or password, on a host with a public IP address. See Bulk job events.

BulkJob

A bulk job. `preview` is returned only by `GET /bulk/{type}/{id}`.
bulk_id
​integer · int64 · required

Job ID.

user_id
​integer · int64 · required

ID of the user who created the job.

bulk_type
​string · required

The job's type. Phone finder jobs are phone.

name
​string · required
status
​string · enum · required

pending until launched, then running. completed, failed, and cancelled are final.

Enum values:
pending
running
completed
failed
cancelled
archived
​boolean · required
progress
​integer · min: 0 · max: 100 · required

Percentage of the rows processed.

processed
​integer · required

Rows processed.

billed
​boolean · required

Whether the results were downloaded, which charges the job, once.

error_message
​string | null · required

Why the job failed.

retry_count
​integer · required

How many times the job was retried.

created_at
​string · date-time · required
started_at
​string | null · date-time · required
completed_at
​string | null · date-time · required
cancelled_at
​string | null · date-time · required
expired
​boolean · required

Whether expired_at has passed. An expired job can no longer be downloaded, launched, or retried.

expired_at
​string · date-time · required

180 days after created_at. Download the results before this date.

​BulkConfig · required

The job's input and options, as set when it was created.

​BulkMetrics · required

The job's results. They are updated while the job runs (partial is true) and final once it completes.

​object[]

The first rows of the results, once billed is true; an empty array before. Their fields depend on the type.

BulkConfig

The job's input and options, as set when it was created.
v
​integer

Version of this document. Currently 1.

​object
​object

The options, with their defaults filled in. See POST /bulk/{type} for each one.

notify
​boolean

Whether an email is sent when the job finishes with results.

​object

Where job events are sent. Absent without webhook_url.

​object

technology only: your search balance when the job was created, which caps the websites returned per technology.

BulkMetrics

The job's results. They are updated while the job runs (`partial` is `true`) and final once it completes.
v
​integer

Version of this document. Currently 1.

partial
​boolean

true while the job is running.

​object
​object
​object

Only the distributions that apply to the type are present.

​object

Types that return email addresses only.

​object

Types that return phone numbers only.

​object
​BulkCredits

Credits of a job. Phone data is billed as search credits: phone is included in search, and total is search plus verify.

​object

BulkBucket

One share of a distribution.
key
​string
label
​string
count
​integer
percent
​number

BulkCredits

Credits of a job. Phone data is billed as search credits: `phone` is included in `search`, and `total` is `search` plus `verify`.
search
​integer
verify
​integer
phone
​integer
total
​integer

BulkProgress

Progress of a bulk job.
status
​string · enum · required

pending until the job is launched. completed, failed, and cancelled are final.

Enum values:
pending
running
completed
failed
cancelled
progress
​integer · min: 0 · max: 100 · required

Percentage of the rows processed.

processed
​integer · required

Rows processed so far.

error_message
​string | null · required

Why the job failed.

rows_per_minute
​number | null · required

Processing speed. null until enough rows are processed.

eta_seconds
​integer | null · required

Estimated seconds until the job completes. null until enough rows are processed.

​BulkMetrics · required

The job's results. They are updated while the job runs (partial is true) and final once it completes.

BulkEstimate

The credits of a job. Before it completes, an upper bound, as if every row returned the maximum. Once it completes, exactly what the first download charges.
bulk_id
​integer · int64
status
​string
basis
​string · enum

upper_bound before the job completes, exact after.

Enum values:
upper_bound
exact
billed
​boolean

Whether the job was already charged. Later downloads are free.

rows
​integer

Rows to process.

​BulkCredits

Credits of a job. Phone data is billed as search credits: phone is included in search, and total is search plus verify.

​object

Your remaining search and verification credits.

sufficient
​boolean

Whether your remaining credits cover credits. Always true once billed.

note
​string

BulkEvent

One entry of a job's history.
id
​integer · int64
user_id
​integer | null · int64

The user who acted, or null for Tomba.

event
​string · enum
Enum values:
created
launched
started
completed
failed
cancelled
retried
downloaded
actor
​string · enum
Enum values:
user
worker
admin
system
message
​string | null

Why the job failed, for failed events.

​object | null

Details of the event, such as the row counts of created, the file and whether it was billed for downloaded, or the attempt and HTTP status of a webhook delivery.

created_at
​string · date-time

BulkTypeInfo

A bulk type, with its input, options, and limits.
type
​string

The bulk_type of its jobs.

path
​string

The {type} in its URLs.

label
​string
description
​string
app_path
​string

Its page in the web app, under https://app.tomba.io/bulk/.

storage
​string
allows_upload
​boolean

Whether it accepts a file.

file_required
​boolean

Whether it needs data or file, and refuses a list.

primary_field
​string

The field a list or a single column is read as.

​object[]
options
​string[]

The options it accepts.

max_rows
​integer
​object
creates_per_day
​integer
downloads_per_job_per_day
​integer
auto_launch
​boolean

Whether its jobs start when created.

downloads
​string[]

The result files it can have.

distributions
​string[]

The metrics.distribution keys it fills.

phone_credits_per_phone
​integer

Search credits per phone number found.

BulkStats

Bulk activity of your account, or of your workspace, over a period. Credits count billed jobs only.
from
​string · date-time
to
​string · date-time
​object

Jobs created in the period, by status.

rows_processed
​integer
found
​integer
emails_found
​integer
hit_rate
​number
​BulkCredits

Credits of a job. Phone data is billed as search credits: phone is included in search, and total is search plus verify.

​object[]
​object[]

BulkWebhookSecret

The key bulk job events are signed with. See [Bulk job events](https://docs.tomba.io/webhook#bulk-job-events).
secret
​string

whsec_ followed by the base64-encoded key.

created_at
​string · date-time
rotated_at
​string | null · date-time

BulkActionResult

status
​boolean · required

Always true.

message
​string · required

What was done.

code
​integer · required

Always 200.

BulkPutRename

name
​string · minLength: 3 · maxLength: 200 · required

New name of the job, 3 to 200 characters.

PaginationMeta

total
​integer · required

Total number of items

pageSize
​integer · required

Items per page

current
​integer · required

Current page number

total_pages
​number · required

Total number of pages

APIError

Error details object used in reusable error responses.
type
​string · enum · required

Machine-readable error type.

Enum values:
params_invalid
unknown_record
unknown_route
not_found
rate_limit
quota_exceeded
api_error
internal_error
message
​string · required

Human-readable error message.

code
​integer · required

HTTP status code associated with the error.

DomainSuggestionsResponse

Companies whose name or domain matches the query, at most five. See [Domain suggestions response](https://docs.tomba.io/attributes/domain-suggestions).
​array | null · required

Suggested companies. An empty array when nothing matches, null if the lookup fails.

​SuggestionsMeta · required

The query and the maximum number of suggestions.

DomainSuggestion

A company whose name or domain matches the query.
name
​string · required

Company name.

Example: Stripe
domain
​string · required

Company domain.

Example: stripe.com
email_count
​integer · min: 0 · required

Number of email addresses Tomba has for the domain.

Example: 1250

SuggestionsMeta

The query and the maximum number of suggestions.
query
​string · required

Your query, trimmed and in lowercase. Empty if the lookup fails.

Example: stripe
limit
​integer · required

Maximum number of suggestions. Always 5, or 0 if the lookup fails.

Example: 5

LinkedinFinder

LinkedIn finder response. `data` is one person, or an array of up to two addresses stored for the profile when you set `full=true`. When no address is found, `data` is a single object whose `email` is `null`, even with `full=true`.
​required

One result, or an array of results with full=true.

LinkedinFinderData

A person found from a LinkedIn profile. When no address is found, `email` is `null`, the other fields are `null`, `false`, or `0`, `sources` is `null`, and `verification` is left out. See [Person response](https://docs.tomba.io/attributes/person).
email
​string | null · email · required

The email address. null when no address is found.

first_name
​string | null · required

First name.

last_name
​string | null · required

Last name.

full_name
​string | null · required

First and last name.

website_url
​string | null · required

Company domain, such as stripe.com.

company
​string | null · required

Company name.

pattern
​string | null · required

Format of the address, such as {first}.{last}. null with full=true. See Patterns.

department
​string | null · required

Department, such as engineering. Empty when unknown, null with full=true. See Departments.

type
​string | null · enum · required

personal for an address that belongs to one person, generic for a role address. null with full=true.

Enum values:
personal
generic
position
​string | null · required

Job title.

country
​string | null · required

Two-letter country code (ISO 3166-1 alpha-2).

gender
​string | null · required

male or female.

twitter
​string | null · required

Twitter (X) profile URL.

linkedin
​string | null · required

LinkedIn profile URL.

score
​integer · min: 0 · max: 100 · required

Confidence from 0 to 100 that the address is correct, based on its last verification result and the number of public sources that list it. 0 when no address is found.

accept_all
​boolean | null · required

true when the domain's mail server accepts mail for any address (catch-all).

phone_number
​boolean · required

true when Tomba has a phone number for the person. Set enrich_mobile=true to get it in phone_data.

​array | null · required

Public pages where the address appears. null when no address is found.

​FinderVerification

Result of Tomba's last check of the address. Both fields are null when Tomba hasn't checked it.

​PhoneData[]

Phone numbers for the person when you set enrich_mobile=true, otherwise an empty array. Left out when no address is found, with full=true, and for an address found by a live check.

LinkedinFinderSource

A public web page where Tomba found the email address. Same shape as `EmailSource`.
uri
​string · required

URL of the page where the address was found.

website_url
​string · required

Host name of that page, such as stripe.com.

extracted_on
​string · date-time · required

When Tomba first found the address on the page, in RFC 3339 format.

last_seen_on
​string · date-time · required

When Tomba last saw the address on the page, in RFC 3339 format.

still_on_page
​boolean · required

true if the address was on the page when Tomba last checked it.

LinkedinFinderVerification

Result of Tomba's last check of the address. Same shape as `FinderVerification`. Both fields are `null` when Tomba hasn't checked the address.
date
​string | null · date-time · required

When Tomba last checked the address, in RFC 3339 format.

status
​string | null · enum · required

Result of the last check.

Enum values:
valid
accept_all
invalid
unknown

AuthorFinder

Author finder response. When no address is found, `data.email` is `null`, the other fields are `null`, `false`, or `0`, `sources` is `null`, and `verification` is left out; `info` is still returned when the page could be read. See [Person response](https://docs.tomba.io/attributes/person#author-finder).
​object · required

The article's author and their email address.

AuthorInfo

The article the author finder read, with every author candidate found on the page. Left out when the page couldn't be read. Text fields are empty strings when the page doesn't provide them.
url
​string · required

The article URL.

title
​string · required

Article title.

og_image
​string · required

URL of the article's Open Graph image.

description
​string · required

Article description.

article_domain
​string · required

Domain that hosts the article.

publisher_name
​string · required

Name of the publication.

publish_date
​string · required

Publication date, as it appears on the page.

​array | null · required

People named as the author on the page, best match first. null when none were found.

FlagCreateRequest

flag_type
​string · enum · required

What you're reporting.

Enum values:
email
organization
phone
author_url
website
value
​string · minLength: 2 · maxLength: 255 · required

The item you're reporting, such as the email address, domain, phone number, or URL.

reason
​string · enum · required

Why the data is wrong. Each flag_type accepts its own reasons, and any other combination fails with 422:

  • email: hard_bounce, invalid_email, wrong_person, outdated, other
  • organization: wrong_company, outdated, other
  • phone: wrong_phone, outdated, other
  • author_url: broken_url, wrong_person, outdated, other
  • website: broken_url, wrong_company, outdated, other

Only an email report with hard_bounce can return a credit, once Tomba confirms it.

Enum values:
hard_bounce
invalid_email
wrong_person
outdated
wrong_company
wrong_phone
broken_url
other
comment
​string · maxLength: 1000

Details that help Tomba review the report, such as the bounce message your mail server received.

FlagItem

id
​integer · int64 · required

Report ID.

flag_type
​string · enum · required

What was reported.

Enum values:
email
organization
phone
author_url
website
value
​string · required

The reported item.

reason
​string · required

Why the data was reported.

status
​string · enum · required

Review status. A new report is pending until Tomba confirms or rejects it.

Enum values:
pending
confirmed
rejected
credits_refunded
​integer · required

Credits returned for the report: 1 when Tomba confirmed an email report with the reason hard_bounce and returned a search credit, otherwise 0.

created_at
​string · date-time · required

When you submitted the report.

comment
​string

Your comment. Absent when you didn't send one.

resolved_at
​string · date-time

When Tomba reviewed the report. Absent until then.

FlagResponse

​FlagItem · required

FlagListResponse

​FlagItem[] · required

Your reports, one page at a time.

​PaginationMeta · required

RateLimits

Rate limits and current usage for each rate-limited route.
​object · required

One entry per route name. The response always has these 21 keys: domain-search, email-finder, email-verifier, email-count, email-sources, email-format, author-finder, enrich, linkedin, phone, phone-validator, similar, technology, domain-suggestions, me, searches, location, enrich-email, enrich-company, enrich-combined, and reveal.

Most keys match the endpoint path. The others:

  • phone covers /phone-finder.
  • enrich-email, enrich-company, and enrich-combined cover /people/find, /companies/find, and /combined/find.
  • searches covers searches made in the Tomba dashboard.
  • reveal is listed but not enforced, so its usage is always 0. /reveal/search has a fixed limit instead.

RouteLimits

Rate limits for one route. `0` means unlimited.
rps
​integer · required

Requests per second.

rpm
​integer · required

Requests per minute.

daily
​integer · required

Requests per day. The day runs from 00:00 UTC.

PhoneValidator

Phone validator response. For a valid number, `data` holds its details. For a number that isn't valid, `data` is an empty array and `phone` repeats your input.
​required

The number's details, or an empty array when the number isn't valid.

phone
​string

The phone you sent. Only in the response for a number that isn't valid.

EnrichmentPersonData

A person in Clearbit's field format. Fields Tomba doesn't fill are always `null`: `timeZone`, `utcOffset`, `bio`, `site`, `avatar`, `fuzzy`, `emailProvider`, `activeAt`, `inactiveAt`, `geo.city`, `geo.state`, `geo.stateCode`, `geo.lat`, `geo.lng`, `employment.subRole`, `employment.seniority`, `facebook.handle`, every `github` and `gravatar` field, and every `twitter` field except `handle`. See [Clearbit-compatible enrichment](https://docs.tomba.io/attributes/enrichment#person-fields).
​object · required

The person's name.

email
​string | null · required

The email address.

location
​string | null · required

Two-letter country code (ISO 3166-1 alpha-2). Clearbit returns a full location here.

gender
​string | null · required

male or female.

timeZone
​string | null · required

Always null.

utcOffset
​integer | null · required

Always null.

​object · required

Location. Only country and countryCode are filled.

bio
​string | null · required

Always null.

site
​string | null · required

Always null.

avatar
​string | null · required

Always null.

​object · required

Current employer and job.

​object · required

Facebook profile. handle is always null.

​object · required

Every field is always null.

​object · required

Twitter (X) profile. Only handle is filled.

​object · required

LinkedIn profile.

​object · required

Every field is always null.

phone
​boolean · required

true when Tomba has a phone number for the person.

fuzzy
​boolean | null · required

Always null.

emailProvider
​string | null · required

Always null.

indexedAt
​string | null · date-time · required

When Tomba last updated the record, in RFC 3339 format.

activeAt
​string | null · date-time · required

Always null.

inactiveAt
​string | null · date-time · required

Always null.

​FinderVerification

Result of Tomba's last check of the address. Both fields are null when Tomba hasn't checked it.

EnrichmentCompanyData

A company in Clearbit's field format. Fields Tomba doesn't fill are always `null`: `domainAliases`, `timeZone`, `utcOffset`, `logo`, `ticker`, `identifiers.usEIN`, `category.sector`, `category.industryGroup`, `category.industry`, `category.subIndustry`, `geo.subPremise`, `geo.lat`, `geo.lng`, `facebook.likes`, every `twitter` field except `handle`, `metrics.alexaUsRank`, `metrics.alexaGlobalRank`, `metrics.marketCap`, `metrics.raised`, `metrics.fiscalYearEnd`, `parent.domain`, and `ultimateParent.domain`. See [Clearbit-compatible enrichment](https://docs.tomba.io/attributes/enrichment#company-fields).
name
​string | null · required

Company name.

legalName
​string | null · required

Same value as name.

domain
​string | null · required

The domain.

domainAliases
​array | null · required

Always null.

​object · required

Contact details found on the website.

​object · required

Industry codes. sector, industryGroup, industry, and subIndustry are always null.

tags
​array | null · required

Keywords that describe the company.

description
​string | null · required

Short description of the company.

foundedYear
​string | null · required

Year the company was founded, as a string.

location
​string | null · required

Two-letter country code (ISO 3166-1 alpha-2) of the headquarters.

timeZone
​string | null · required

Always null.

utcOffset
​integer | null · required

Always null.

​object · required

Headquarters address.

logo
​string | null · required

Always null. Use the Logo API.

​object · required

Facebook page.

​object · required

LinkedIn company page.

​object · required

Twitter (X) profile. Only handle is filled.

​object · required

Domain registration from the WHOIS record, with snake_case keys. Not a Clearbit field.

emailProvider
​string | null · required

Mail provider detected from the domain's MX records, such as Google. Clearbit returns a boolean here.

type
​string | null · required

Company type, such as private. Free text; not a fixed list.

ticker
​string | null · required

Always null.

​object · required

Business identifiers. usEIN is always null.

​object · required

Size and traffic. Only trafficRank, employees, annualRevenue, and estimatedAnnualRevenue are filled.

indexedAt
​string | null · date-time · required

When Tomba last updated the record, in RFC 3339 format.

tech
​array | null · required

Names of the technologies detected on the website.

techCategories
​array | null · required

Categories of those technologies.

​object · required

Parent company. domain is always null.

​object · required

Ultimate parent company. domain is always null.

On this page
  • RevealSearchRequest
  • RevealFilters
  • SearchFilter
  • PremiumSearchFilter
  • RevealSearchResponse
  • RevealMeta
  • RevealData
  • Company
  • Account
  • DomainSearch
  • EmailFinder
  • EmailSource
  • FinderVerification
  • PhoneData
  • EmailVerifier
  • EnrichmentPersonAPI
  • EnrichmentCompanyAPI
  • EnrichmentCombinedAPI
  • EmailCount
  • Location
  • EmailSources
  • EmailFormat
  • DomainSimilar
  • DomainTechnology
  • PhoneFinder
  • Lead
  • LeadAttribute
  • LeadsList
  • APIKey
  • Usage
  • Log
  • OperationSuccess
  • APIErrorResponse
  • BulkCreate
  • BulkJob
  • BulkConfig
  • BulkMetrics
  • BulkBucket
  • BulkCredits
  • BulkProgress
  • BulkEstimate
  • BulkEvent
  • BulkTypeInfo
  • BulkStats
  • BulkWebhookSecret
  • BulkActionResult
  • BulkPutRename
  • PaginationMeta
  • APIError
  • DomainSuggestionsResponse
  • DomainSuggestion
  • SuggestionsMeta
  • LinkedinFinder
  • LinkedinFinderData
  • LinkedinFinderSource
  • LinkedinFinderVerification
  • AuthorFinder
  • AuthorInfo
  • FlagCreateRequest
  • FlagItem
  • FlagResponse
  • FlagListResponse
  • RateLimits
  • RouteLimits
  • PhoneValidator
  • EnrichmentPersonData
  • EnrichmentCompanyData