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
Scrape Campaigns
Leads
Lead Lists
Lead Attributes
Account
    Get AccountgetRetrieve API UsagegetRetrieve API LogsgetRetrieve a Single API LoggetRetrieve rate limitsget
Keys
Flag
MCP Server
Schemas
Tomba
Tomba

Account

Download schema

Account details, usage, request logs, and rate limits


Get Account

GET
https://api.tomba.io/v1
/me
X-Tomba-Key (header)
+X-Tomba-Secret (header)

Returns your account, your plan, and your credit usage in the current usage window.

  • requests.domains, requests.verifications, and requests.count hold your search, verification, and email count allowances (available) and what you've used (used). The remaining balance is available minus used.
  • issued and expired bound the current usage window. expired_subscription is when the subscription period ends.
  • pricing.available_searches and pricing.available_verifications include your unused credit-pack credits, which addon_credits lists separately.
  • secret_token is your API secret. Don't log or share this response.

This endpoint is rate-limited per plan under the route name me; see Rate limits. It also accepts an OAuth 2.0 access token with the read scope. See Check usage for the other ways to track credits.

Get Account › Responses

Your account details.

Account
​object · required

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

GET/me
curl https://api.tomba.io/v1/me \ --header 'X-Tomba-Key: <api-key>' \ --header 'X-Tomba-Secret: <api-key>'
Example Responses
{ "data": { "user_id": 1042, "email": "jane.doe@stripe.com", "first_name": "Jane", "last_name": "Doe", "secret_token": "ts_xxxx", "role": 2, "confirmed": true, "blocked": false, "phone": "+14155550123", "image": "https://www.gravatar.com/avatar/5f4dcc3b5aa765d61d8327deb882cf99?s=128&d=https://ui-avatars.com/api/JD/128/1853db/fff?ssl=1", "deleted": false, "provider": "local", "timezone": "America/New_York", "newsletter": true, "activity": true, "title": "Growth Lead", "country": "US", "created_at": "2024-03-12T09:15:00Z", "ip": "203.0.113.42", "has_password": true, "onboarded": true, "weekly_digest": false, "product_updates": true, "important_updates": true, "webmail": false, "issued": "2026-09-01T00:00:00Z", "expired": "2026-10-01T00:00:00Z", "expired_subscription": "2026-10-01T00:00:00Z", "pricing": { "name": "Pro", "pricing_id": 41, "available_searches": 20000, "available_verifications": 20000, "available_leads": 80000, "available_list": 1000, "available_attr": 100, "available_keys": 50, "available_teams": 50, "available_technology": 1000, "available_sources": 80000, "available_email_count": 25000, "frequency": "monthly", "price_monthly": "199", "price_yearly": "2388", "subscription_id": "sub_xxxx", "status": "active", "pw_customer": null, "stripe_customer_id": "cus_xxxx", "update_url": null, "cancel_url": null, "auto_upgrade": false, "plan_full_access": false, "rate_limits": { "default": { "rps": 8, "rpm": 150, "daily": 4000 }, "domain-search": { "rps": 8, "rpm": 150, "daily": 4000 }, "email-verifier": { "rps": 5, "rpm": 100, "daily": 4000 }, "me": { "rps": 10, "rpm": 200, "daily": 10000 } } }, "requests": { "domains": { "available": 20000, "used": 1520 }, "verifications": { "available": 20000, "used": 830 }, "count": { "available": 25000, "used": 64 } }, "intercom_user_jwt": "eyJhbGciOiJIUzI1NiJ9.xxxx.xxxx" } }
json
application/json

Retrieve API Usage

GET
https://api.tomba.io/v1
/usage
X-Tomba-Key (header)
+X-Tomba-Secret (header)

Returns your daily credit usage over a range of days, one row per user and day, with totals for the range.

  • duration sets the range: from that many days ago through today. Rows exist only for days with charged credits.
  • scope=team returns the rows of every member of your workspace, and scope=member the rows of one member. Both need the workspace owner or admin role.
  • A workspace owner's rows also include the credits that members used on most endpoints, because those count against the owner's pool. With scope=team, those credits appear in both the member's rows and the owner's.

The endpoint also reads start, end, and period, but they have no effect on the result: start and end in YYYY-MM-DD form are ignored, an RFC 3339 value fails with 500, and period is validated (daily, weekly, or monthly) but not used. Use duration.

Call this endpoint with an API key and secret. OAuth access tokens aren't accepted and get 401. See Check usage.

Retrieve API Usage › query Parameters

scope
​string · enum

Whose usage to return: user (yours), team (every member of your workspace), or member (the member in member_id). team and member need the workspace owner or admin role and otherwise fail with 403.

Enum values:
user
team
member
Default: user
member_id
​integer · int64

With scope=member, the user ID of a member of your workspace. When it's missing, or the user isn't in your workspace, the response has your own usage.

duration
​integer · enum

Number of days to look back from today. The range includes today, so 7 covers eight days. Other values fail with 422.

Enum values:
2
7
30
60
90
Default: 7

Retrieve API Usage › Responses

Daily usage rows and their totals.

Daily credit usage and totals for the requested range.
Usage
​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.

GET/usage
curl https://api.tomba.io/v1/usage \ --header 'X-Tomba-Key: <api-key>' \ --header 'X-Tomba-Secret: <api-key>'
Example Responses
{ "data": [ { "id": 88213, "user_id": 1042, "search": 42, "verifier": 15, "export": 0, "sources": 0, "email_count": 3, "source_website": 10, "source_bulk": 0, "source_extension": 5, "source_api": 45, "source_sheets": 0, "created_at": "2026-09-27T00:00:00Z" }, { "id": 88390, "user_id": 1042, "search": 18, "verifier": 40, "export": 0, "sources": 1, "email_count": 0, "source_website": 0, "source_bulk": 30, "source_extension": 0, "source_api": 29, "source_sheets": 0, "created_at": "2026-09-28T00:00:00Z" } ], "total": { "search": 60, "verifier": 55, "export": 0, "sources": 1, "source_website": 10, "source_extension": 5, "source_bulk": 30, "source_api": 74, "source_sheets": 0 } }
json
application/json

Retrieve API Logs

GET
https://api.tomba.io/v1
/logs
X-Tomba-Key (header)
+X-Tomba-Secret (header)

Returns your billable lookups, newest first, with what each one cost. Only requests to endpoints that cost credits, and that returned 200 with a result, are logged. Repeats of a lookup already charged in the current usage window appear with cost 0. Failed requests, lookups without a result, and free endpoints aren't logged.

In a workspace, the response includes the rows of every member; member_id narrows it to one member. data is null when no row matches.

Call this endpoint with an API key and secret. OAuth access tokens aren't accepted and get 401.

Retrieve API Logs › query Parameters

page
​integer · min: 1

Page number, starting at 1.

Default: 1
limit
​integer · min: 1 · max: 100

Rows per page, up to 100. Larger values fail with 422.

Default: 20
direction
​string · enum

Sort order by row ID. desc returns the newest rows first.

Enum values:
desc
asc
Default: desc
member_id
​integer · int64

User ID of a member of your workspace, to return only their rows. An ID outside your workspace is ignored.

type
​string

Credit type to match: search, verifier, email_count, or sources. Rows show the lookup's name in type instead.

source
​string

Where the requests came from: source_api, source_website, source_extension, source_sheets, source_bulk, source_mcp, or source_snowflake. Rows show a display name in source instead.

cost
​string · enum

paid returns rows with a cost above 0, free rows with a cost of 0.

Enum values:
all
paid
free
Default: all
status_code
​integer

HTTP status to match. Every logged row has 200.

http_method
​string

HTTP method to match, for example GET.

ip_address
​string

Caller IP address to match.

start
​string · date-time

Earliest created_at to include, in RFC 3339 format such as 2026-09-01T00:00:00Z. A value in another format, such as 2026-09-01, is ignored.

end
​string · date-time

Latest created_at to include, in RFC 3339 format. A value in another format is ignored.

q
​string

Text to look for in hash, route_name, ip_address, endpoint, and request_id.

Retrieve API Logs › Responses

A page of log rows.

​array | null · required

Log rows. null when no row matches.

​object · required

Pagination details.

GET/logs
curl https://api.tomba.io/v1/logs \ --header 'X-Tomba-Key: <api-key>' \ --header 'X-Tomba-Secret: <api-key>'
Example Responses
{ "data": [ { "id": 98765, "user_id": 1042, "uri": "https://api.tomba.io/v1/domain-search", "params": { "domain": "stripe.com" }, "type": "Domain Search", "hash": "2c26b46b68ffc68ff99b453c1d30413413422d70", "cost": 1, "route_name": "domain-search", "source": "API", "country": "US", "user_agent": "curl/8.5.0", "ip_address": "203.0.113.42", "http_method": "GET", "status_code": 200, "endpoint": "/v1/domain-search", "api_key_id": 17, "duration_ms": 842, "created_at": "2026-09-28T14:22:00Z" }, { "id": 98764, "user_id": 1042, "uri": "https://api.tomba.io/v1/email-verifier", "params": { "email": "jane.doe@stripe.com" }, "type": "Email Verification", "hash": "7d793037a0760186574b0282f2f435e7a1b2c3d4", "cost": 0, "route_name": "email-verifier", "source": "API", "country": "US", "user_agent": "curl/8.5.0", "ip_address": "203.0.113.42", "http_method": "GET", "status_code": 200, "endpoint": "/v1/email-verifier", "api_key_id": 17, "duration_ms": 1310, "created_at": "2026-09-28T14:20:00Z" } ], "meta": { "total": 542, "page": 1, "limit": 20, "total_pages": 28 } }
json
application/json

Retrieve a Single API Log

GET
https://api.tomba.io/v1
/logs/{logId}
X-Tomba-Key (header)
+X-Tomba-Secret (header)

Returns one row of GET /logs by its id. In a workspace, you can read the rows of every member.

The API also matches logId against the row's request_id, but rows logged by the current API don't record one, so use id.

Call this endpoint with an API key and secret. OAuth access tokens aren't accepted and get 401.

Retrieve a Single API Log › path Parameters

logId
​string · required

The row's id.

Retrieve a Single API Log › Responses

The log row.

​Log · required

One billable lookup. Only requests to endpoints that cost credits, and that returned 200 with a result, are logged, including repeats charged 0.

GET/logs/{logId}
curl https://api.tomba.io/v1/logs/:logId \ --header 'X-Tomba-Key: <api-key>' \ --header 'X-Tomba-Secret: <api-key>'
Example Responses
{ "data": { "id": 98765, "user_id": 1042, "uri": "https://api.tomba.io/v1/domain-search", "params": { "domain": "stripe.com" }, "type": "Domain Search", "hash": "2c26b46b68ffc68ff99b453c1d30413413422d70", "cost": 1, "route_name": "domain-search", "source": "API", "country": "US", "user_agent": "curl/8.5.0", "ip_address": "203.0.113.42", "http_method": "GET", "status_code": 200, "endpoint": "/v1/domain-search", "api_key_id": 17, "duration_ms": 842, "created_at": "2026-09-28T14:22:00Z" } }
json
application/json

Retrieve rate limits

GET
https://api.tomba.io/v1
/rate-limits
X-Tomba-Key (header)
+X-Tomba-Secret (header)

Returns, for every rate-limited route, the limits that apply to your account and the requests counted against them in the current minute and day.

  • The limits come from your plan, raised by any credit pack that still has credits. 0 means unlimited.
  • In a workspace, members get the owner's limits, and the usage counts cover the whole workspace. Every API key, OAuth app, and member of an account or workspace shares these counters.
  • Daily counts reset at 00:00 UTC.

pricing.rate_limits in GET /me shows your own plan's limits; this endpoint shows the limits actually enforced on your requests. It isn't rate-limited itself. It also accepts an OAuth 2.0 access token with the read scope. See Rate limits.

Retrieve rate limits › Responses

Limits and usage for each route.

Rate limits and current usage for each rate-limited route.
RateLimits
​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.
GET/rate-limits
curl https://api.tomba.io/v1/rate-limits \ --header 'X-Tomba-Key: <api-key>' \ --header 'X-Tomba-Secret: <api-key>'
Example Responses
{ "data": { "domain-search": { "limits": { "rps": 8, "rpm": 150, "daily": 4000 }, "usage": { "rpm_used": 12, "daily_used": 847 } }, "email-finder": { "limits": { "rps": 8, "rpm": 150, "daily": 4000 }, "usage": { "rpm_used": 3, "daily_used": 120 } }, "email-verifier": { "limits": { "rps": 5, "rpm": 100, "daily": 4000 }, "usage": { "rpm_used": 0, "daily_used": 230 } }, "email-count": { "limits": { "rps": 8, "rpm": 150, "daily": 5000 }, "usage": { "rpm_used": 0, "daily_used": 14 } }, "email-sources": { "limits": { "rps": 5, "rpm": 10, "daily": 100 }, "usage": { "rpm_used": 0, "daily_used": 2 } }, "email-format": { "limits": { "rps": 5, "rpm": 150, "daily": 5000 }, "usage": { "rpm_used": 0, "daily_used": 5 } }, "author-finder": { "limits": { "rps": 5, "rpm": 100, "daily": 4000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "enrich": { "limits": { "rps": 5, "rpm": 150, "daily": 4000 }, "usage": { "rpm_used": 0, "daily_used": 31 } }, "linkedin": { "limits": { "rps": 5, "rpm": 80, "daily": 2000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "phone": { "limits": { "rps": 5, "rpm": 80, "daily": 2000 }, "usage": { "rpm_used": 0, "daily_used": 9 } }, "phone-validator": { "limits": { "rps": 5, "rpm": 80, "daily": 2000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "similar": { "limits": { "rps": 8, "rpm": 150, "daily": 4000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "technology": { "limits": { "rps": 8, "rpm": 150, "daily": 4000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "domain-suggestions": { "limits": { "rps": 8, "rpm": 150, "daily": 4000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "me": { "limits": { "rps": 10, "rpm": 200, "daily": 10000 }, "usage": { "rpm_used": 1, "daily_used": 18 } }, "searches": { "limits": { "rps": 5, "rpm": 100, "daily": 8000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "location": { "limits": { "rps": 5, "rpm": 80, "daily": 2000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "enrich-email": { "limits": { "rps": 5, "rpm": 100, "daily": 4000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "enrich-company": { "limits": { "rps": 5, "rpm": 100, "daily": 4000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "enrich-combined": { "limits": { "rps": 5, "rpm": 100, "daily": 4000 }, "usage": { "rpm_used": 0, "daily_used": 0 } }, "reveal": { "limits": { "rps": 5, "rpm": 100, "daily": 4000 }, "usage": { "rpm_used": 0, "daily_used": 0 } } } }
json
application/json

Lead AttributesKeys