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
SDKs
CLI
    InstallationAuthenticationCLI commandsBulk CSV processingLocal HTTP serverAI chatSkillsSlack slash commands
CLI

Local HTTP server

tomba serve runs an HTTP server that forwards each request to the Tomba API with the credentials the CLI is signed in with. Use it to call Tomba from local scripts and tools, or to back Slack slash commands. CLI versions before 1.2.3 name this command tomba http.

The server has no authentication, listens on all IPv4 interfaces, and accepts cross-origin requests from any website. Anyone who can reach the port, including web pages open in your browser, can spend your credits, read your API secret from GET /whoami, and list, create, or delete your API keys through /keys. Block the port at your firewall and stop the server when you're not using it. To expose routes to the internet, put a reverse proxy in front that forwards only the routes you need, as shown in Slack slash commands.

Start the server

TerminalCode
tomba serve tomba serve --port 8080
FlagShortTypeDefaultDescription
--port-pint3000Port to listen on. The server listens on all IPv4 interfaces (0.0.0.0); there is no option to listen on localhost only.

The server reads your credentials once, at startup, in the order described in Authentication. It runs in the foreground and logs each request to standard output with the time, client IP, status, latency, method, path, and query string. Stop it with Ctrl+C. If the port is already in use, tomba serve exits immediately without an error message; choose another port with --port.

Each request to the server makes one API request, billed and rate-limited as described in Credit costs and Rate limits.

The Linux packages install a systemd unit, tomba.service, that runs tomba serve as www-data and is enabled at boot.

Send a request

TerminalCode
curl -X POST http://localhost:3000/verify \ -H "Content-Type: application/json" \ -d '{"email": "jane.doe@stripe.com"}'

The lookup routes accept a JSON body or form fields. The /people/find, /companies/find, and /combined/find routes, and the lead, lead list, attribute, key, and flag routes, accept JSON only.

Routes

Lookups

Method and pathBody fieldsCalls
POST /searchdomainGET /v1/domain-search, first page
POST /finderdomain, plus first_name and last_name or full_name; enrich_mobileGET /v1/email-finder
POST /authorurlGET /v1/author-finder
POST /enrichemail, enrich_mobileGET /v1/enrich
POST /linkedinurl, enrich_mobileGET /v1/linkedin
POST /verifyemailGET /v1/email-verifier
POST /sourcesemailGET /v1/email-sources
POST /countdomainGET /v1/email-count
POST /statusdomainGET /v1/domain-status
POST /formatdomainGET /v1/email-format
POST /locationdomainGET /v1/location
POST /autocompletequeryGET /v1/domain-suggestions
POST /similardomainGET /v1/similar
POST /technologydomainGET /v1/technology
POST /phone-finderOne of email, domain, or linkedin; fullGET /v1/phone-finder
POST /phone-validatorphone, country_codeGET /v1/phone-validator
POST /revealquery, or the arrays country, industry, and size; pagePOST /v1/reveal/search
POST /people/findemailGET /v1/people/find
POST /companies/finddomainGET /v1/companies/find
POST /combined/findemailGET /v1/combined/find

For example, a company search with filters:

TerminalCode
curl -X POST http://localhost:3000/reveal \ -H "Content-Type: application/json" \ -d '{"country": ["US", "GB"], "size": ["51-200"]}'

Account and data

Method and pathCalls
GET /whoamiGET /v1/me. The response includes your API secret.
GET /usageGET /v1/usage
GET /logsGET /v1/logs, first page
GET /keys, POST /keysList or create API keys
GET /keys/{id}, DELETE /keys/{id}Get or delete a key
PUT /keys/{id}Calls PUT /v1/keys/{id}/reset, which the API doesn't have, so it returns 500. Rotate keys with the API instead.
GET /flag, POST /flagList or create flags
GET /leads, POST /leadsList or create leads
GET /leads/{id}, PUT /leads/{id}, DELETE /leads/{id}Get, update, or delete a lead
GET /leads_lists, POST /leads_listsList or create lead lists
GET /leads_lists/{id}, PUT /leads_lists/{id}, DELETE /leads_lists/{id}Get, update, or delete a lead list
GET /attributes, POST /attributesList or create lead attributes
GET /attributes/{id}, PUT /attributes/{id}, DELETE /attributes/{id}Get, update, or delete an attribute

GET / redirects to the Tomba website.

Responses

A successful request returns status 200 with the Tomba API's response. Errors use the server's own format, not the API's:

StatusBodyWhen
400{"status": "error", "message": "..."}A lookup's input is missing or malformed.
401{"status": "error", "message": "invalid KEY or SECRET"}The API call failed on /whoami, /usage, /logs, or a lookup route not listed under 500, for any reason: this includes rate limits (429) and exhausted credits (402), not only bad credentials.
404{"status": "error", "message": "..."}search, finder, author, enrich, linkedin, or count found nothing, or verify got an address at a webmail or disposable email domain.
222{"status": "error", "message": "..."}verify couldn't complete the check because the recipient's mail server responded unexpectedly.
500{"error": "error: <HTTP status>, status code: <code>"}The API call failed on /format, /location, /autocomplete, /people/find, /companies/find, /combined/find, or a lead, lead list, attribute, key, or flag route.

Because a 401 hides the API's status, run the same lookup with the CLI, such as tomba verify --target jane.doe@stripe.com, to see it; see Status codes.

Last modified on September 30, 2026
Bulk CSV processingAI chat
On this page
  • Start the server
  • Send a request
  • Routes
    • Lookups
    • Account and data
  • Responses