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.
- Tools
- 29
- What they doRead · write · destructive
- 28 · 1 · 028 read1 write0 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Tomba connection
In AgentKit > Connections, create a Tomba connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts 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.actionsconst connector = 'tomba'const identifier = 'user_123'// Generate an authorization link for the userconst { 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 callconst result = await actions.executeTool({connector,identifier,toolName: 'tomba_domain_search',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_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.actionsconnection_name = "tomba"identifier = "user_123"# Generate an authorization link for the userlink_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 callresult = actions.execute_tool(tool_input={},tool_name="tomba_domain_search",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Tomba credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooltomba_domain_searchList the email addresses Tomba has for a company, with each person's name, job title, department and verification status.Read-onlyDomain Search
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.
Inputs
companystring- 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.
countrystring- 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.
departmentstring- 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.
domainstring- Company domain to search. Send domain or company. Example: stripe.com.
enrich_mobileboolean- Set to true to also return the person's phone numbers in phone_data. Phone numbers cost extra Tomba credits. Default false.default
false limitinteger- 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
151020501001502002503003504004505005000default10 pageinteger- Page number, starting at 1. Default 1.default
1 typestring- Which addresses to return: all, personal (addresses that belong to one person) or generic (role addresses such as support@). Default all.one of
allpersonalgenericdefaultall
tomba_enrich_emailGet the person behind an email address in Tomba's own format.Read-onlyEnrich Email
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.
Inputs
emailstringrequired- The email address to enrich. Example: jane.doe@stripe.com.
enrich_mobileboolean- Set to true to also return the person's phone numbers in phone_data. Phone numbers cost extra Tomba credits. Default false.default
false
tomba_find_emailFind one person's professional email address from their name and their company's domain or name.Read-onlyFind Email
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.
Inputs
companystring- Company name, 3 to 75 characters, used when domain is not sent. A domain gives better results. Example: Stripe.
domainstring- 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_mobileboolean- 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_namestring- The person's first name. Send first_name and last_name together, or full_name. Example: Jane.
full_namestring- The person's full name, 5 to 80 characters, used when first_name and last_name are not both sent. Example: Jane Doe.
last_namestring- The person's last name. Send it with first_name. Example: Doe.
tomba_find_email_by_linkedinFind the professional email address of the person behind a LinkedIn profile URL.Read-onlyFind Email by LinkedIn
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.
Inputs
urlstringrequired- LinkedIn profile URL. Example: https://www.linkedin.com/in/jane-doe.
enrich_mobileboolean- Set to true to also return the person's phone numbers in phone_data. Phone numbers cost extra Tomba credits. Default false.default
false fullboolean- 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
tomba_find_phoneFind phone numbers for a person or a company from an email address, a company domain or a LinkedIn profile URL.Read-onlyFind Phone
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.
Inputs
domainstring- Company domain, to get the company's phone number. Sending a domain changes the credit cost. Example: stripe.com.
emailstring- Email address of the person. Example: jane.doe@stripe.com.
fullboolean- Set to true to return an array of every number found instead of a single number. Default false.default
false linkedinstring- LinkedIn profile URL of the person. Example: https://www.linkedin.com/in/jane-doe.
tomba_find_similar_domainsList companies similar to a domain, such as competitors, 25 per page.Read-onlyFind Similar Domains
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.
Inputs
companystring- Company name, 3 to 75 characters. When Tomba knows the company, its domain is used even if domain is also sent. Example: Stripe.
domainstring- Company domain to find similar companies for. Send domain or company. Example: stripe.com.
limitinteger- 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
102050100150200250default10 pageinteger- Page number, starting at 1. Default 1.default
1
tomba_get_combined_profileGet the person behind an email address and the company behind its domain in one call, in Clearbit's format.Read-onlyGet Person and Company
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.
Inputs
emailstringrequired- The email address to look up. Example: jane.doe@stripe.com.
tomba_get_companyGet the company behind a domain in Clearbit's Company API format.Read-onlyGet Company
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.
Inputs
domainstringrequired- Domain of the company, without protocol or path. Example: stripe.com.
tomba_get_domain_statusCheck whether a domain, or the domain of an email address, belongs to a webmail provider such as Gmail or to a disposable email provider.Read-onlyGet Domain Status
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.
Inputs
domainstring- Domain to check. A URL is also accepted; its host is checked. Example: gmail.com.
emailstring- Email address whose domain to check, used when domain is not sent. Example: jane.doe@stripe.com.
tomba_get_email_countCount the email addresses Tomba has for a domain, by email type, department and seniority.Read-onlyGet Email Count
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.
Inputs
domainstringrequired- Domain of the company, without protocol or path. Example: stripe.com.
typestring- 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
allpersonalgenericdefaultall
tomba_get_email_formatGet the formats a domain's email addresses follow, such as {first}.{last}.Read-onlyGet Email Format
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.
Inputs
domainstringrequired- Domain of the company, without protocol or path. Example: stripe.com.
tomba_get_email_locationsCount a domain's email addresses by country.Read-onlyGet Email Locations
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.
Inputs
domainstringrequired- Domain of the company, without protocol or path. Example: stripe.com.
tomba_get_email_sourcesList the public web pages where Tomba found an email address.Read-onlyGet Email Sources
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.
Inputs
emailstringrequired- The email address to look up. Example: jane.doe@stripe.com.
tomba_get_leadGet one saved lead by its id.Read-onlyGet Lead
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.
Inputs
lead_idintegerrequired- The lead's numeric id, from tomba_list_leads. Example: 1234.
tomba_get_lead_listGet one lead list by its id.Read-onlyGet Lead List
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.
Inputs
list_idintegerrequired- The list's numeric id, from tomba_list_lead_lists. Example: 12.
tomba_get_logGet one billed lookup from your API log by its id.Read-onlyGet Log
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.
Inputs
log_idstringrequired- The log row's id, from tomba_list_logs. Example: 98765.
tomba_get_personGet the person behind an email address in Clearbit's Person API format.Read-onlyGet Person
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.
Inputs
emailstringrequired- The email address to look up. Example: jane.doe@stripe.com.
tomba_get_rate_limitsGet 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.Read-onlyGet Rate Limits
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.
Inputs
This tool takes no inputs.
tomba_get_technologiesList the technologies detected on a company's website, such as analytics, live chat and payment tools.Read-onlyGet Technologies
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.
Inputs
domainstringrequired- Domain of the website, without protocol or path. Example: stripe.com.
tomba_get_usageGet daily credit usage over a range of days, one row per user and day.Read-onlyGet Usage
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.
Inputs
durationinteger- 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
27306090default7 member_idinteger- User ID of a workspace member, used with scope=member. Example: 2087.
scopestring- 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
userteammemberdefaultuser
tomba_list_lead_attributesList the custom lead attributes defined in your Tomba workspace (up to 25, no paging).Read-onlyList Lead Attributes
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.
Inputs
This tool takes no inputs.
tomba_list_lead_listsList the lead lists in your Tomba workspace (up to 25, no paging).Read-onlyList Lead Lists
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.
Inputs
This tool takes no inputs.
tomba_list_leadsList the leads saved in your Tomba workspace, optionally only those in one lead list.Read-onlyList Leads
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.
Inputs
directionstring- Sort direction: desc or asc. Default desc.one of
descascdefaultdesc limitinteger- Leads per page, 1 to 200. Default 10.default
10 listinteger- ID of a lead list, to return only the leads in it. Get ids from tomba_list_lead_lists. Example: 12.
pageinteger- Page number, starting at 1. Default 1.default
1 sortstring- 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
emailfirst_namelast_namecountrywebsite_urlpositiontwitterlinkedinphone_numbercompanynotescreated_atdefaultcreated_at
tomba_list_logsList your billed lookups, newest first, with what each one cost.Read-onlyList Logs
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.
Inputs
coststring- paid returns rows with a cost above 0, free rows with a cost of 0, all both. Default all.one of
allpaidfreedefaultall directionstring- Sort order by row ID: desc (newest first) or asc. Default desc.one of
descascdefaultdesc endstring- Latest created_at to include, in RFC 3339 format. Other formats are ignored. Example: 2026-09-30T23:59:59Z.
limitinteger- Rows per page, 1 to 100. Default 20.default
20 member_idinteger- User ID of a workspace member, to return only their rows. Example: 2087.
pageinteger- Page number, starting at 1. Default 1.default
1 qstring- Text to look for in the row's hash, route name, IP address, endpoint and request ID. Example: email-finder.
sourcestring- Where the requests came from: source_api, source_website, source_extension, source_sheets, source_bulk, source_mcp or source_snowflake.one of
source_apisource_websitesource_extensionsource_sheetssource_bulksource_mcpsource_snowflake startstring- Earliest created_at to include, in RFC 3339 format. Other formats are ignored. Example: 2026-09-01T00:00:00Z.
typestring- Credit type to match: search, verifier, email_count or sources.one of
searchverifieremail_countsources
tomba_suggest_domainsSuggest up to five companies whose name or domain matches a text query.Read-onlySuggest Domains
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.
Inputs
querystringrequired- Company name or domain to match. Example: stripe.
tomba_validate_phoneCheck whether a phone number is valid in its country's numbering plan.Read-onlyValidate Phone
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.
Inputs
phonestringrequired- 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_codestring- Two-letter ISO 3166-1 country code used to read a number written without its international prefix. Example: US.
tomba_verify_emailCheck whether an email address can receive mail, using MX, SMTP, catch-all, disposable and webmail checks.Read-onlyVerify Email
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.
Inputs
emailstringrequired- The email address to verify. Example: jane.doe@stripe.com.
enrich_mobileboolean- 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
tomba_search_companiesSearch Tomba's company database with a natural-language query or structured filters, 50 companies per page.WriteSearch Companies
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.
Inputs
filtersobject- 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+"]}}.
pageinteger- Page number, 1 to 1000. Each page has up to 50 companies. Default 1.default
1 querystring- 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.
No tools match.