> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Tomba

The Tomba connector lets your AI agent act in each user's Tomba account. Each user connects their own Tomba API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 29 tools.

**Authentication:** API Key
**Categories:** CRM & Sales, Marketing
**Tools:** 29: 28 read, 1 write, 0 destructive
**Users sign in with:** API key
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=TOMBA)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Tomba connection

   In **AgentKit > Connections**, create a Tomba connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'tomba'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Tomba:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'tomba_domain_search',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "tomba"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Tomba:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="tomba_domain_search",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their Tomba credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'tomba_domain_search',
  toolInput: {},
  connector: 'tomba',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="tomba_domain_search",
    tool_input={},
    connection_name="tomba",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `tomba_domain_search`

Domain Search · Read-only

List the email addresses Tomba has for a company, with each person's name, job title, department and verification status.
Returns data.organization (the company profile) and data.emails (one page of addresses), with paging in meta.
Use tomba_domain_search to discover people at a company. Use tomba_find_email when you know the person's name, and tomba_get_email_count to size a domain before paging through it.
Send domain or company. tomba_suggest_domains turns a company name into a domain.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `company` (`string`, optional): Company name, 3 to 75 characters, used instead of domain. When Tomba knows the company, its domain is searched even if domain is also sent; an unknown company fails with 422 unless domain is also sent. Example: Stripe.
- `country` (`string`, optional): Two-letter ISO 3166-1 country code to return only people in that country. tomba_get_email_locations lists the countries that have addresses. Example: US.
- `department` (`string`, optional): Comma-separated departments to keep, such as engineering,sales. Values: accounting, administrative, communication, diversity, education, engineering, executive, facilities, finance, healthcare, hr, it, legal, management, marketing, operations, pr, sales, security, software, support, warehouse. Unknown values are ignored.
- `domain` (`string`, optional): Company domain to search. Send domain or company. Example: stripe.com.
- `enrich_mobile` (`boolean`, optional): Set to true to also return the person's phone numbers in phone_data. Phone numbers cost extra Tomba credits. Default false. Default: `false`.
- `limit` (`integer`, optional): Addresses per page. One of 1, 5, 10, 20, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500 or 5000. The credit cost depends on limit, not on how many addresses come back. Free plans allow at most 10. Default 10. One of: `1`, `5`, `10`, `20`, `50`, `100`, `150`, `200`, `250`, `300`, `350`, `400`, `450`, `500`, `5000`. Default: `10`.
- `page` (`integer`, optional): Page number, starting at 1. Default 1. Default: `1`.
- `type` (`string`, optional): Which addresses to return: all, personal (addresses that belong to one person) or generic (role addresses such as support@). Default all. One of: `all`, `personal`, `generic`. Default: `all`.

Example input: `{}`

### `tomba_enrich_email`

Enrich Email · Read-only

Get the person behind an email address in Tomba's own format.
Returns data with the person's name, position, department, seniority, company, social profiles and the address's verification status. data.email is null when Tomba has no data, and data.disposable and data.webmail still describe the domain.
Use tomba_enrich_email for a Tomba-format person profile. Use tomba_get_person for Clearbit's Person format, tomba_get_combined_profile for person plus company in one call, and tomba_verify_email for deliverability only.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): The email address to enrich. Example: jane.doe@stripe.com.
- `enrich_mobile` (`boolean`, optional): Set to true to also return the person's phone numbers in phone_data. Phone numbers cost extra Tomba credits. Default false. Default: `false`.

Example input: `{"email":"<email>"}`

### `tomba_find_author_email`

Find Author Email · Read-only

Find the email address of the author of an article or blog post from its URL.
Returns data.email with the author's name, position, company and verification status, and data.info with the article and every author candidate. data.email is null when no address is found.
Use tomba_find_author_email when all you have is an article URL. Use tomba_find_email when you know the person's name and company.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `url` (`string`, required): URL of the article or blog post. The scheme is optional. Example: https://stripe.com/blog/online-payments-guide.

Example input: `{"url":"<url>"}`

### `tomba_find_email`

Find Email · Read-only

Find one person's professional email address from their name and their company's domain or name.
Returns data.email with a confidence score, the person's name, position, company, social profiles and verification status. data.email is null when no address is found.
Use tomba_find_email when you know the person's name and company. Use tomba_find_email_by_linkedin for a LinkedIn profile URL, tomba_find_author_email for an article URL, and tomba_domain_search to list everyone at a company.
Send domain or company, and first_name plus last_name or full_name.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `company` (`string`, optional): Company name, 3 to 75 characters, used when domain is not sent. A domain gives better results. Example: Stripe.
- `domain` (`string`, optional): Company domain. Send domain or company; when both are sent, domain is used. Webmail domains such as gmail.com fail with 400. Example: stripe.com.
- `enrich_mobile` (`boolean`, optional): Set to true to also return the person's phone numbers in phone_data. Phone numbers cost extra Tomba credits. Default false. Default: `false`.
- `first_name` (`string`, optional): The person's first name. Send first_name and last_name together, or full_name. Example: Jane.
- `full_name` (`string`, optional): The person's full name, 5 to 80 characters, used when first_name and last_name are not both sent. Example: Jane Doe.
- `last_name` (`string`, optional): The person's last name. Send it with first_name. Example: Doe.

Example input: `{}`

### `tomba_find_email_by_linkedin`

Find Email by LinkedIn · Read-only

Find the professional email address of the person behind a LinkedIn profile URL.
Returns data.email with the person's name, position, company, social profiles and verification status, or with full=true an array of up to two stored addresses. data.email is null when no address is found.
Use tomba_find_email_by_linkedin when you have a LinkedIn URL. Use tomba_find_email when you have a name and company, and tomba_find_phone for phone numbers from the same URL.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `url` (`string`, required): LinkedIn profile URL. Example: https://www.linkedin.com/in/jane-doe.
- `enrich_mobile` (`boolean`, optional): Set to true to also return the person's phone numbers in phone_data. Phone numbers cost extra Tomba credits. Default false. Default: `false`.
- `full` (`boolean`, optional): Set to true to return an array of the addresses Tomba has stored for the profile (up to two) instead of the single most likely one. phone_data is not included in this mode. Default false. Default: `false`.

Example input: `{"url":"<url>"}`

### `tomba_find_phone`

Find Phone · Read-only

Find phone numbers for a person or a company from an email address, a company domain or a LinkedIn profile URL.
Returns data with the number in local, international and E.164 formats, its validity, line type, carrier, region and time zones, or an array of every number found with full=true. data is an empty array when nothing is found.
Use tomba_find_phone to get a number you don't have. Use tomba_validate_phone to check and format a number you already have.
Send at least one of email, domain and linkedin; the numbers found for each are merged.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `domain` (`string`, optional): Company domain, to get the company's phone number. Sending a domain changes the credit cost. Example: stripe.com.
- `email` (`string`, optional): Email address of the person. Example: jane.doe@stripe.com.
- `full` (`boolean`, optional): Set to true to return an array of every number found instead of a single number. Default false. Default: `false`.
- `linkedin` (`string`, optional): LinkedIn profile URL of the person. Example: https://www.linkedin.com/in/jane-doe.

Example input: `{}`

### `tomba_find_similar_domains`

Find Similar Domains · Read-only

List companies similar to a domain, such as competitors, 25 per page.
Returns data with each similar company's website_url, name and industries, with paging in meta. data is null when there are none.
Use tomba_find_similar_domains to expand a prospect list from one known company. Use tomba_search_companies to search by industry, size, location or technology instead.
Send domain or company.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `company` (`string`, optional): Company name, 3 to 75 characters. When Tomba knows the company, its domain is used even if domain is also sent. Example: Stripe.
- `domain` (`string`, optional): Company domain to find similar companies for. Send domain or company. Example: stripe.com.
- `limit` (`integer`, optional): Accepted for compatibility: the page size is always 25, but limit sets the credit cost. One of 10, 20, 50, 100, 150, 200, 250. Default 10. One of: `10`, `20`, `50`, `100`, `150`, `200`, `250`. Default: `10`.
- `page` (`integer`, optional): Page number, starting at 1. Default 1. Default: `1`.

Example input: `{}`

### `tomba_get_combined_profile`

Get Person and Company · Read-only

Get the person behind an email address and the company behind its domain in one call, in Clearbit's format.
Returns data.person (Person API fields) and data.company (Company API fields). When the person has no match the response carries an errors object (not_found or params_invalid) instead of data.
Use tomba_get_combined_profile when you need both profiles. Use tomba_get_person or tomba_get_company when you need only one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): The email address to look up. Example: jane.doe@stripe.com.

Example input: `{"email":"<email>"}`

### `tomba_get_company`

Get Company · Read-only

Get the company behind a domain in Clearbit's Company API format.
Returns data with name, description, location, industry codes, social handles, size, revenue and technologies; fields Tomba does not fill are null. When there is no match the response carries an errors object (not_found or params_invalid) instead of data.
Use tomba_get_company for a company profile from a domain. Use tomba_domain_search for the company plus its people, and tomba_get_technologies for the full technology list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `domain` (`string`, required): Domain of the company, without protocol or path. Example: stripe.com.

Example input: `{"domain":"<domain>"}`

### `tomba_get_domain_status`

Get Domain Status · Read-only

Check whether a domain, or the domain of an email address, belongs to a webmail provider such as Gmail or to a disposable email provider.
Returns a flat object with webmail and disposable booleans and the domain or email you sent. Free: no credits are used.
Use tomba_get_domain_status for a quick, free domain check. Use tomba_verify_email to check whether a specific mailbox exists.
Send domain or email; when both are sent, domain is used.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `domain` (`string`, optional): Domain to check. A URL is also accepted; its host is checked. Example: gmail.com.
- `email` (`string`, optional): Email address whose domain to check, used when domain is not sent. Example: jane.doe@stripe.com.

Example input: `{}`

### `tomba_get_email_count`

Get Email Count · Read-only

Count the email addresses Tomba has for a domain, by email type, department and seniority.
Returns data with total, personal_emails, generic_emails, and per-department and per-seniority (junior, senior, executive) counts. Unknown, webmail and disposable domains return 0.
Use tomba_get_email_count to size a domain before running tomba_domain_search. Use tomba_get_email_locations for counts by country.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `domain` (`string`, required): Domain of the company, without protocol or path. Example: stripe.com.
- `type` (`string`, optional): Count only personal or only generic addresses in total and in the department and seniority counts. personal_emails and generic_emails are always returned. Default all. One of: `all`, `personal`, `generic`. Default: `all`.

Example input: `{"domain":"<domain>"}`

### `tomba_get_email_format`

Get Email Format · Read-only

Get the formats a domain's email addresses follow, such as {first}.{last}.
Returns data, an array of formats with the percentage of known addresses that use each. data is empty when Tomba has no formats for the domain.
Use tomba_get_email_format to guess an address pattern. Use tomba_find_email to get a specific person's verified address.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `domain` (`string`, required): Domain of the company, without protocol or path. Example: stripe.com.

Example input: `{"domain":"<domain>"}`

### `tomba_get_email_locations`

Get Email Locations · Read-only

Count a domain's email addresses by country.
Returns data, an array of countries with the number of the domain's addresses that belong to people in each. data is empty when Tomba has no location data.
Use tomba_get_email_locations to pick a country, then pass its code to tomba_domain_search. Use tomba_get_email_count for counts by department and seniority.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `domain` (`string`, required): Domain of the company, without protocol or path. Example: stripe.com.

Example input: `{"domain":"<domain>"}`

### `tomba_get_email_sources`

Get Email Sources · Read-only

List the public web pages where Tomba found an email address.
Returns data, an array of sources with the page URI, website, when the address was first and last seen, and whether it is still on the page. data is empty (status 201) when there are none.
Use tomba_get_email_sources to show where an address comes from. Use tomba_verify_email to check that it still works.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): The email address to look up. Example: jane.doe@stripe.com.

Example input: `{"email":"<email>"}`

### `tomba_get_lead`

Get Lead · Read-only

Get one saved lead by its id.
Returns data.leads with the lead as its only item: email, name, company, position, country, social links, phone, notes, list and custom attribute values. data.leads is empty when the lead does not exist or you cannot see it.
Use tomba_get_lead when you know the lead id. Use tomba_list_leads to browse or find ids.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `lead_id` (`integer`, required): The lead's numeric id, from tomba_list_leads. Example: 1234.

Example input: `{"lead_id":1234}`

### `tomba_get_lead_list`

Get Lead List · Read-only

Get one lead list by its id.
Returns data with the list's id, name, size, type, favorite flag and timestamps.
Use tomba_get_lead_list for one list's details. Use tomba_list_leads with list set to get the leads in it.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `list_id` (`integer`, required): The list's numeric id, from tomba_list_lead_lists. Example: 12.

Example input: `{"list_id":12}`

### `tomba_get_log`

Get Log · Read-only

Get one billed lookup from your API log by its id.
Returns data with the row's endpoint, params, type, cost, source, status, IP, duration and created_at.
Use tomba_get_log to inspect one row. Use tomba_list_logs to find row ids.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `log_id` (`string`, required): The log row's id, from tomba_list_logs. Example: 98765.

Example input: `{"log_id":"<log_id>"}`

### `tomba_get_person`

Get Person · Read-only

Get the person behind an email address in Clearbit's Person API format.
Returns data with name, location, employment, bio and social profiles; fields Tomba does not fill are null. When there is no match the response carries an errors object (not_found or params_invalid) instead of data.
Use tomba_get_person when you need Clearbit-compatible fields. Use tomba_enrich_email for Tomba's own format, and tomba_get_combined_profile to get the company too.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): The email address to look up. Example: jane.doe@stripe.com.

Example input: `{"email":"<email>"}`

### `tomba_get_rate_limits`

Get Rate Limits · Read-only

Get the per-minute and per-day request limits enforced on your account for every rate-limited route, and the requests counted against them so far.
Returns data with one entry per route name (domain-search, email-finder, email-verifier, phone, enrich-email and so on). A limit of 0 means unlimited; daily counts reset at 00:00 UTC.
Use tomba_get_rate_limits before a burst of lookups. Use tomba_get_account for credit balances.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `tomba_get_technologies`

Get Technologies · Read-only

List the technologies detected on a company's website, such as analytics, live chat and payment tools.
Returns data, an array of technologies with name, slug, website, description and categories. data is null when Tomba has no technology data for the domain.
Use tomba_get_technologies for a domain's tech stack. Use tomba_get_company for the wider company profile.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `domain` (`string`, required): Domain of the website, without protocol or path. Example: stripe.com.

Example input: `{"domain":"<domain>"}`

### `tomba_get_usage`

Get Usage · Read-only

Get daily credit usage over a range of days, one row per user and day.
Returns data with rows of search, verifier, sources and email_count credits used per day and by source (API, website, extension, bulk, sheets), and total for the range.
Use tomba_get_usage for usage history. Use tomba_get_account for the remaining balance and tomba_list_logs for individual billed lookups.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `duration` (`integer`, optional): Number of days to look back from today: 2, 7, 30, 60 or 90. The range includes today, so 7 covers eight days. Default 7. One of: `2`, `7`, `30`, `60`, `90`. Default: `7`.
- `member_id` (`integer`, optional): User ID of a workspace member, used with scope=member. Example: 2087.
- `scope` (`string`, optional): 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. Default user. One of: `user`, `team`, `member`. Default: `user`.

Example input: `{}`

### `tomba_list_lead_attributes`

List Lead Attributes · Read-only

List the custom lead attributes defined in your Tomba workspace (up to 25, no paging).
Returns data.attributes with each attribute's id, name, identifier, type and timestamps. A lead's attributes are keyed by identifier.
Use tomba_list_lead_attributes to read the custom fields shown on leads from tomba_list_leads and tomba_get_lead.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `tomba_list_lead_lists`

List Lead Lists · Read-only

List the lead lists in your Tomba workspace (up to 25, no paging).
Returns data.list_leads with each list's id, name, size, type, favorite flag and timestamps.
Use tomba_list_lead_lists to find a list id for tomba_list_leads. Use tomba_get_lead_list for one list by id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `tomba_list_leads`

List Leads · Read-only

List the leads saved in your Tomba workspace, optionally only those in one lead list.
Returns data.leads with each lead's id, email, name, company, position, country, social links, phone, notes, list and custom attribute values, and data.meta with paging (total counts every lead).
Use tomba_list_leads to browse saved leads. Use tomba_get_lead for one lead by id and tomba_list_lead_lists to find list ids.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `direction` (`string`, optional): Sort direction: desc or asc. Default desc. One of: `desc`, `asc`. Default: `desc`.
- `limit` (`integer`, optional): Leads per page, 1 to 200. Default 10. Default: `10`.
- `list` (`integer`, optional): ID of a lead list, to return only the leads in it. Get ids from tomba_list_lead_lists. Example: 12.
- `page` (`integer`, optional): Page number, starting at 1. Default 1. Default: `1`.
- `sort` (`string`, optional): Field to sort by: email, first_name, last_name, country, website_url, position, twitter, linkedin, phone_number, company, notes or created_at. Default created_at. One of: `email`, `first_name`, `last_name`, `country`, `website_url`, `position`, `twitter`, `linkedin`, `phone_number`, `company`, `notes`, `created_at`. Default: `created_at`.

Example input: `{}`

### `tomba_list_logs`

List Logs · Read-only

List your billed lookups, newest first, with what each one cost.
Returns data, one page of log rows with id, endpoint, params, type, cost, source, status, IP and created_at, and meta with paging. Only billable lookups that returned a result are logged. data is null when nothing matches.
Use tomba_list_logs to audit credit spend. Use tomba_get_log for one row by id, and tomba_get_usage for daily totals.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cost` (`string`, optional): paid returns rows with a cost above 0, free rows with a cost of 0, all both. Default all. One of: `all`, `paid`, `free`. Default: `all`.
- `direction` (`string`, optional): Sort order by row ID: desc (newest first) or asc. Default desc. One of: `desc`, `asc`. Default: `desc`.
- `end` (`string`, optional): Latest created_at to include, in RFC 3339 format. Other formats are ignored. Example: 2026-09-30T23:59:59Z.
- `limit` (`integer`, optional): Rows per page, 1 to 100. Default 20. Default: `20`.
- `member_id` (`integer`, optional): User ID of a workspace member, to return only their rows. Example: 2087.
- `page` (`integer`, optional): Page number, starting at 1. Default 1. Default: `1`.
- `q` (`string`, optional): Text to look for in the row's hash, route name, IP address, endpoint and request ID. Example: email-finder.
- `source` (`string`, optional): Where the requests came from: source_api, source_website, source_extension, source_sheets, source_bulk, source_mcp or source_snowflake. One of: `source_api`, `source_website`, `source_extension`, `source_sheets`, `source_bulk`, `source_mcp`, `source_snowflake`.
- `start` (`string`, optional): Earliest created_at to include, in RFC 3339 format. Other formats are ignored. Example: 2026-09-01T00:00:00Z.
- `type` (`string`, optional): Credit type to match: search, verifier, email_count or sources. One of: `search`, `verifier`, `email_count`, `sources`.

Example input: `{}`

### `tomba_suggest_domains`

Suggest Domains · Read-only

Suggest up to five companies whose name or domain matches a text query.
Returns data, an array of companies with name, domain and the number of email addresses Tomba has for it. Free: no credits are used.
Use tomba_suggest_domains to turn a company name into a domain before tomba_domain_search or tomba_find_email. Use tomba_search_companies to search by industry, size or location.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `query` (`string`, required): Company name or domain to match. Example: stripe.

Example input: `{"query":"<query>"}`

### `tomba_validate_phone`

Validate Phone · Read-only

Check whether a phone number is valid in its country's numbering plan.
Returns data with the number in local, international, E.164 and RFC 3966 formats, its line type, carrier, region and time zones. data is an empty array when the number is not valid.
Use tomba_validate_phone to check or format a number you already have. Use tomba_find_phone to find a number from an email, domain or LinkedIn URL.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `phone` (`string`, required): The phone number, preferably in international format. Digits, spaces, hyphens and parentheses are accepted. A number without its international prefix also needs country_code. Example: +14155550132.
- `country_code` (`string`, optional): Two-letter ISO 3166-1 country code used to read a number written without its international prefix. Example: US.

Example input: `{"phone":"<phone>"}`

### `tomba_verify_email`

Verify Email · Read-only

Check whether an email address can receive mail, using MX, SMTP, catch-all, disposable and webmail checks.
Returns data.email with result (deliverable, undeliverable or risky), status (valid, invalid, accept_all, unknown or disposable), a score and each individual check, plus data.sources where the address was seen.
Use tomba_verify_email before you send to an address you already have. Use tomba_get_domain_status for a free webmail or disposable check of a domain, and tomba_find_email to get an address you don't have yet.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): The email address to verify. Example: jane.doe@stripe.com.
- `enrich_mobile` (`boolean`, optional): Set to true to also return the person's phone numbers in data.phone_data when Tomba has the address on record. Phone numbers cost extra credits. Default false. Default: `false`.

Example input: `{"email":"<email>"}`

### `tomba_search_companies`

Search Companies · Write

Search Tomba's company database with a natural-language query or structured filters, 50 companies per page.
Returns data.companies with name, description, location, industry, size, type, founding year, revenue, website, email count and social links, and meta with paging and the filters used.
Use tomba_search_companies to build a list of companies by industry, size, location or technology. Use tomba_find_similar_domains to expand from one company, and tomba_domain_search to get the people at a company you found.
Send query or filters. To page through query results, send the returned meta.filters as filters.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `filters` (`object`, optional): Structured filters; a company must match every filter you send. Each filter is an object with an include array and, for most filters, an exclude array (up to 50 values each). Filters: company (domains), location_country (two-letter codes), location_city, location_state, industry, size, type (private, public), keywords, founded, technologies, similar (reference domains), revenue, sic (4-digit codes) and naics (6-digit codes). size accepts 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000 or 10001+; revenue accepts 0-1m, 1m-10m, 10m-50m, 50m-100m or 100m+; founded accepts a year or before 1990, 1990-1999, 2000-2009, 2010-2019 or 2020+. Ignored when query is sent. Example: {"industry": {"include": ["financial services"]}, "location_country": {"include": ["US"]}, "size": {"include": ["5001-10000", "10001+"]}}.
- `page` (`integer`, optional): Page number, 1 to 1000. Each page has up to 50 companies. Default 1. Default: `1`.
- `query` (`string`, optional): Natural-language description of the companies you want, 8 to 100 characters. Filters are generated from it on every request and returned in meta.filters; any filters you send are ignored. Example: Real estate agencies in Europe.

Example input: `{}`

## Related

Other CRM & Sales connectors ([all 103](/agentkit/connectors/?category=crm-sales)):

- [Insightly](/agentkit/connectors/insightly/): Scalekit connector, API key, 108 tools
- [HubSpot](/agentkit/connectors/hubspot/): Scalekit connector, OAuth, 457 tools
- [Salesforce](/agentkit/connectors/salesforce/): Scalekit connector, OAuth, 74 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
