> **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 The Companies API

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

**Authentication:** API Key
**Categories:** CRM & Sales, Marketing, Search
**Tools:** 34: 26 read, 7 write, 1 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=THECOMPANIESAPI)

## 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 The Companies API connection

   In **AgentKit > Connections**, create a The Companies API 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 = 'thecompaniesapi'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize The Companies API:', 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: 'thecompaniesapi_get_current_user',
     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 = "thecompaniesapi"
   identifier = "user_123"

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

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

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their The Companies API 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: 'thecompaniesapi_count_companies',
  toolInput: {},
  connector: 'thecompaniesapi',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="thecompaniesapi_count_companies",
    tool_input={},
    connection_name="thecompaniesapi",
    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.

### `thecompaniesapi_count_companies`

Count Companies · Read-only

Count the companies that match filter conditions and an optional name or domain text search, without returning them.
Returns the number of matching companies.
Use this to size a segment before paying for results with thecompaniesapi_search_companies. Use thecompaniesapi_get_companies_analytics to break a segment down by an attribute.

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

Inputs:

- `query` (`array`, optional): Filter conditions; a company must match every condition. Each condition names an attribute (for example about.industries, about.totalEmployees, locations.headquarters.country.code, technologies.active, finances.revenue or ai.search), a sign (equals, exactEquals, notEquals, greater or lower), the values to compare against, and an operator (or / and) that decides whether a company must match any or all of those values. Industry, technology and location values are the slugs and codes returned by the industry, technology and location search tools; thecompaniesapi_generate_search_query turns a plain-English description into these conditions. Example: [{"attribute": "about.industries", "operator": "or", "sign": "equals", "values": ["computer-software"]}, {"attribute": "locations.headquarters.country.code", "operator": "or", "sign": "equals", "values": ["us", "gb"]}]
- `search` (`string`, optional): Optional text matched against company names or domains (see search_fields). Example: pay
- `search_fields` (`array`, optional): Which fields the search text matches against: about.name (company name), domain.domain (website domain), or both. Example: ["about.name"]

Example input: `{}`

### `thecompaniesapi_enrich_job_title`

Enrich Job Title · Read-only

Classify a job title into its department and seniority level.
Returns the normalized job title with its department, secondary department, seniority level and how common it is on LinkedIn.
Use this to segment contacts by role, for example to tell a VP of Sales from a sales intern.

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

Inputs:

- `name` (`string`, required): The job title to classify. Example: Head of Growth Marketing

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

### `thecompaniesapi_get_companies_analytics`

Get Companies Analytics · Read-only

Break down a company segment or one of your lists by one attribute, such as industry, employee range or headquarters country.
Returns each value of that attribute with its company count and its share of the segment, plus totals.
Use this to profile a segment or list. Use thecompaniesapi_count_companies for a single total.

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

Inputs:

- `attribute` (`string`, required): The company attribute to break down by. Example: about.industries. One of: `about.businessType`, `about.industries`, `about.industry`, `about.totalEmployees`, `about.yearFounded`, `analytics.monthlyVisitors`, `apps`, `codes.naics`, `codes.sic`, `contacts`, `domain.tld`, `finances.revenue`, `finances.stockExchange`, `locations.headquarters.city.code`, `locations.headquarters.continent.code`, `locations.headquarters.country.code`, `locations.headquarters.county.code`, `locations.headquarters.state.code`, `meta.score`, `meta.syncedAt`, `socials`, `technologies.active`, `technologies.categories`.
- `list_id` (`integer`, optional): Analyze the companies in this list instead of a search segment. thecompaniesapi_list_lists returns list IDs. Example: 4210
- `query` (`string`, optional): Optional filter conditions defining the segment, as a JSON array encoded as a string (the same condition objects thecompaniesapi_search_companies takes). Example: [{"attribute":"locations.headquarters.country.code","operator":"or","sign":"equals","values":["us","gb"]}]
- `size` (`integer`, optional): Maximum number of attribute values to return, from 1 to 10000. Example: 20
- `sort_order` (`string`, optional): Sort values by company count, asc or desc. Example: desc. One of: `asc`, `desc`.

Example input: `{"attribute":"about.businessType"}`

### `thecompaniesapi_get_company`

Get Company by Domain · Read-only

Enrich one company from its website domain.
Returns the company profile: name and descriptions, industries, employee range, founding year, revenue range, headquarters location, social profiles, technologies, phone and email contacts, NAICS and SIC codes, and website traffic.
Use this when you know the domain. Use thecompaniesapi_get_company_by_email for a work email, thecompaniesapi_get_company_by_social for a LinkedIn or other social URL, and thecompaniesapi_search_companies_by_name when you only know the name.

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

Inputs:

- `domain` (`string`, required): Company website domain, without protocol or path. Example: stripe.com
- `refresh` (`boolean`, optional): Set to true to re-analyze the company in real time instead of returning the stored profile. Slower, but returns the freshest data. Defaults to false.
- `simplified` (`boolean`, optional): Set to true to return a reduced company profile that costs no credits (the free plan limits how many). Defaults to false, which returns the full profile.

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

### `thecompaniesapi_get_company_by_email`

Get Company by Email · Read-only

Enrich the company behind a work email address.
Returns the company profile plus an analysis of the email: whether it is valid, from a free or disposable provider, and which address pattern it follows.
Use this to enrich a signup or lead from their email. Use thecompaniesapi_get_company when you already have the domain.

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

Inputs:

- `email` (`string`, required): Work email address of someone at the company. Free-mail addresses such as gmail.com return no company. Example: jane@stripe.com
- `refresh` (`boolean`, optional): Set to true to re-analyze the company in real time instead of returning the stored profile. Slower, but returns the freshest data. Defaults to false.
- `simplified` (`boolean`, optional): Set to true to return a reduced company profile that costs no credits (the free plan limits how many). Defaults to false, which returns the full profile.

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

### `thecompaniesapi_get_company_by_social`

Get Company by Social Profile · Read-only

Enrich the company behind a social profile URL, such as its LinkedIn company page.
Returns the company profile: name, domain, industries, employee range, location, social profiles and technologies.
Use this when you have a LinkedIn, X, Facebook or other social URL but not the domain. Use thecompaniesapi_get_company when you have the domain.

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

Inputs:

- `angellist` (`string`, optional): Full URL of the company's AngelList profile. Provide at least one social URL. Example: https://angel.co/company/stripe
- `dribbble` (`string`, optional): Full URL of the company's Dribbble profile. Provide at least one social URL. Example: https://dribbble.com/stripe
- `facebook` (`string`, optional): Full URL of the company's Facebook profile. Provide at least one social URL. Example: https://www.facebook.com/StripeHQ
- `github` (`string`, optional): Full URL of the company's GitHub profile. Provide at least one social URL. Example: https://github.com/stripe
- `instagram` (`string`, optional): Full URL of the company's Instagram profile. Provide at least one social URL. Example: https://www.instagram.com/stripehq
- `linkedin` (`string`, optional): Full URL of the company's LinkedIn profile. Provide at least one social URL. Example: https://www.linkedin.com/company/stripe
- `pinterest` (`string`, optional): Full URL of the company's Pinterest profile. Provide at least one social URL. Example: https://www.pinterest.com/stripe
- `refresh` (`boolean`, optional): Set to true to re-analyze the company in real time instead of returning the stored profile. Slower, but returns the freshest data. Defaults to false.
- `simplified` (`boolean`, optional): Set to true to return a reduced company profile that costs no credits (the free plan limits how many). Defaults to false, which returns the full profile.
- `snapchat` (`string`, optional): Full URL of the company's Snapchat profile. Provide at least one social URL. Example: https://www.snapchat.com/add/stripe
- `soundcloud` (`string`, optional): Full URL of the company's SoundCloud profile. Provide at least one social URL. Example: https://soundcloud.com/stripe
- `tiktok` (`string`, optional): Full URL of the company's TikTok profile. Provide at least one social URL. Example: https://www.tiktok.com/@stripe
- `twitter` (`string`, optional): Full URL of the company's X (Twitter) profile. Provide at least one social URL. Example: https://twitter.com/stripe
- `wellfound` (`string`, optional): Full URL of the company's Wellfound profile. Provide at least one social URL. Example: https://wellfound.com/company/stripe
- `youtube` (`string`, optional): Full URL of the company's YouTube profile. Provide at least one social URL. Example: https://www.youtube.com/@stripe

Example input: `{}`

### `thecompaniesapi_get_company_context`

Get Company Context · Read-only

Get an AI-written briefing on a company from its domain: its market, business model, products, customers and differentiators.
Returns the context object with the company summary and the sources it was built from, plus the cost.
Use this for a narrative overview before outreach or research. Use thecompaniesapi_ask_company to answer one specific question, and thecompaniesapi_get_company for structured profile data.

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

Inputs:

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

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

### `thecompaniesapi_get_company_email_patterns`

Get Company Email Patterns · Read-only

Find the email address patterns a company uses, such as {first}.{last}@domain.
Returns each pattern with how often it is used across the company's known addresses.
Use this to guess a person's work email at a company. Use thecompaniesapi_get_company for the full company profile.

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

Inputs:

- `domain` (`string`, required): Company website domain, without protocol or path. Example: stripe.com
- `emails_count` (`boolean`, optional): Set to true to include how many known email addresses match each pattern. Defaults to false.
- `precision` (`integer`, optional): Minimum usage percentage, from 0 to 100, a pattern needs to be returned. Example: 10

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

### `thecompaniesapi_get_company_in_list`

Get Company in List · Read-only

Get one company from one of your lists by its domain.
Returns the company profile as stored in the list, or a 404 error when the company is not in the list.
Use this to check whether a company is in a list. Use thecompaniesapi_list_companies_in_list to read the whole list.

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

Inputs:

- `domain` (`string`, required): Company website domain, without protocol or path. Example: stripe.com
- `list_id` (`integer`, required): ID of the list. thecompaniesapi_list_lists returns list IDs. Example: 4210

Example input: `{"domain":"<domain>","list_id":4210}`

### `thecompaniesapi_get_current_user`

Get Current User · Read-only

Get the user that owns the API token.
Returns the user's ID, email, name, role and current team ID.
Use this to check which account the connection uses, or to get the team ID for thecompaniesapi_get_team.

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

Inputs: none.

Example input: `{}`

### `thecompaniesapi_get_team`

Get Team · Read-only

Get a team's details, including its remaining credits.
Returns the team's ID, name, country, website, credit balance and subscription status.
Use this to check the credit balance before large searches or bulk jobs.
Get the team ID from currentTeamId in thecompaniesapi_get_current_user.

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

Inputs:

- `team_id` (`integer`, required): ID of the team. thecompaniesapi_get_current_user returns it as currentTeamId. Example: 1234

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

### `thecompaniesapi_list_actions`

List Actions · Read-only

List your team's asynchronous actions, such as bulk enrichment jobs, and check their progress.
Returns each action's ID, type, status (pending, active, completed or failed), cost, job data and results, with pagination info.
Use this to poll a job started with thecompaniesapi_request_action. Use thecompaniesapi_retry_action to rerun a failed one.

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

Inputs:

- `list_id` (`integer`, optional): Only return actions for this list. Example: 4210
- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `search` (`string`, optional): Text to match against actions. Example: enrich
- `size` (`integer`, optional): Number of actions per page. Example: 10
- `status` (`string`, optional): Only return actions with this status. Example: completed. One of: `active`, `completed`, `failed`, `pending`.
- `type` (`string`, optional): Only return actions of this type: jobs:request (requested jobs) or companies:added (companies added to a list). Example: jobs:request. One of: `jobs:request`, `companies:added`.

Example input: `{}`

### `thecompaniesapi_list_companies_in_list`

List Companies in List · Read-only

List the companies in one of your lists, optionally narrowed by filter conditions.
Returns a page of company profiles with pagination info.
Use this to read a saved list. Use thecompaniesapi_get_company_in_list to check one company, and thecompaniesapi_search_companies to search the whole database.

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

Inputs:

- `list_id` (`integer`, required): ID of the list. thecompaniesapi_list_lists returns list IDs. Example: 4210
- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `query` (`array`, optional): Filter conditions; a company must match every condition. Each condition names an attribute (for example about.industries, about.totalEmployees, locations.headquarters.country.code, technologies.active, finances.revenue or ai.search), a sign (equals, exactEquals, notEquals, greater or lower), the values to compare against, and an operator (or / and) that decides whether a company must match any or all of those values. Industry, technology and location values are the slugs and codes returned by the industry, technology and location search tools; thecompaniesapi_generate_search_query turns a plain-English description into these conditions. Example: [{"attribute": "about.industries", "operator": "or", "sign": "equals", "values": ["computer-software"]}, {"attribute": "locations.headquarters.country.code", "operator": "or", "sign": "equals", "values": ["us", "gb"]}]
- `simplified` (`boolean`, optional): Set to true to return a reduced company profile that costs no credits (the free plan limits how many). Defaults to false, which returns the full profile.
- `size` (`integer`, optional): Number of results per page, from 1 to 100. Defaults to 10. Example: 25
- `sort_by` (`string`, optional): Company field to sort results by, such as meta.score (relevance score), about.totalEmployees, about.yearFounded, analytics.monthlyVisitors or finances.revenue. Use with sort_order. Example: about.totalEmployees. One of: `about.businessType`, `about.industries`, `about.industry`, `about.name`, `about.totalEmployees`, `about.yearFounded`, `analytics.monthlyVisitors`, `apps`, `codes.naics`, `codes.sic`, `contacts`, `domain.domain`, `domain.tld`, `finances.revenue`, `locations.headquarters.city.code`, `locations.headquarters.country.code`, `locations.headquarters.county.code`, `locations.headquarters.state.code`, `meta.score`, `meta.syncedAt`, `socials`, `technologies.active`, `urls`.
- `sort_order` (`string`, optional): Sort direction for sort_by: asc or desc. Example: desc. One of: `asc`, `desc`.

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

### `thecompaniesapi_list_lists`

List Lists · Read-only

List your team's company lists.
Returns each list's ID, name, dynamic flag, filter conditions, company count and processing status, with pagination info.
Use this to find a list ID. Use thecompaniesapi_list_companies_in_list to read the companies in a list.

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

Inputs:

- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `size` (`integer`, optional): Number of results per page, from 1 to 500. Defaults to 25. Example: 25

Example input: `{}`

### `thecompaniesapi_search_cities`

Search Cities · Read-only

Search cities by name in The Companies API's location data.
Returns cities with their name, code, coordinates, postcode, and the number of companies headquartered there, with pagination info.
Use this to find the city code for a locations.headquarters.city.code condition in thecompaniesapi_search_companies. Use thecompaniesapi_search_states or thecompaniesapi_search_countries for larger areas.

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

Inputs:

- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `search` (`string`, optional): Text to match against city names. Example: San Francisco
- `size` (`integer`, optional): Number of results per page, from 1 to 20. Defaults to 20. Example: 20
- `sort_by` (`string`, optional): Sort results by the number of companies in each place (counts.companies). Use with sort_order. Example: counts.companies. One of: `counts.companies`.
- `sort_order` (`string`, optional): Sort direction for sort_by: asc or desc. Example: desc. One of: `asc`, `desc`.

Example input: `{}`

### `thecompaniesapi_search_companies`

Search Companies · Read-only

Search the company database with filter conditions on industry, size, location, technologies, revenue and more, optionally combined with a name or domain text search.
Returns a page of matching company profiles, pagination info (total, current and last page) and the credit cost. Each returned company costs 1 credit unless simplified is true.
Use this for structured filters. Use thecompaniesapi_search_companies_by_prompt for a plain-English description, thecompaniesapi_search_companies_by_name for a name lookup, and thecompaniesapi_count_companies to size a segment without paying for results.

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

Inputs:

- `domains_to_exclude` (`string`, optional): Comma-separated domains to leave out of the results. Example: amazon.com,pearson.com
- `linkedin_to_exclude` (`string`, optional): Comma-separated LinkedIn company URLs to leave out of the results. Example: https://www.linkedin.com/company/amazon
- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `query` (`array`, optional): Filter conditions; a company must match every condition. Each condition names an attribute (for example about.industries, about.totalEmployees, locations.headquarters.country.code, technologies.active, finances.revenue or ai.search), a sign (equals, exactEquals, notEquals, greater or lower), the values to compare against, and an operator (or / and) that decides whether a company must match any or all of those values. Industry, technology and location values are the slugs and codes returned by the industry, technology and location search tools; thecompaniesapi_generate_search_query turns a plain-English description into these conditions. Example: [{"attribute": "about.industries", "operator": "or", "sign": "equals", "values": ["computer-software"]}, {"attribute": "locations.headquarters.country.code", "operator": "or", "sign": "equals", "values": ["us", "gb"]}]
- `search` (`string`, optional): Optional text matched against company names or domains (see search_fields). Example: pay
- `search_fields` (`array`, optional): Which fields the search text matches against: about.name (company name), domain.domain (website domain), or both. Example: ["about.name"]
- `simplified` (`boolean`, optional): Set to true to return a reduced company profile that costs no credits (the free plan limits how many). Defaults to false, which returns the full profile.
- `size` (`integer`, optional): Number of results per page, from 1 to 100. Defaults to 10. Example: 25
- `sort_by` (`string`, optional): Company field to sort results by, such as meta.score (relevance score), about.totalEmployees, about.yearFounded, analytics.monthlyVisitors or finances.revenue. Use with sort_order. Example: about.totalEmployees. One of: `about.businessType`, `about.industries`, `about.industry`, `about.name`, `about.totalEmployees`, `about.yearFounded`, `analytics.monthlyVisitors`, `apps`, `codes.naics`, `codes.sic`, `contacts`, `domain.domain`, `domain.tld`, `finances.revenue`, `locations.headquarters.city.code`, `locations.headquarters.country.code`, `locations.headquarters.county.code`, `locations.headquarters.state.code`, `meta.score`, `meta.syncedAt`, `socials`, `technologies.active`, `urls`.
- `sort_order` (`string`, optional): Sort direction for sort_by: asc or desc. Example: desc. One of: `asc`, `desc`.

Example input: `{}`

### `thecompaniesapi_search_companies_by_name`

Search Companies by Name · Read-only

Find companies by name, optionally limited to some countries.
Returns matching company profiles with pagination info. Several companies can share a name, so check the domain and location of each result. Each returned company costs 1 credit unless simplified is true.
Use this to resolve a company name to its domain and profile. Use thecompaniesapi_get_company when you already have the domain, and thecompaniesapi_search_companies for filter-based search.

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

Inputs:

- `name` (`string`, required): Company name to search for. Example: Stripe
- `countries` (`string`, optional): Comma-separated two-letter country codes, in lowercase, to limit results to. Example: us,gb,fr
- `exact_words_match` (`boolean`, optional): When true (the API default), every searched word must appear in the name: 'Bank of' matches Bank of America but 'Bank of A' does not. Set to false for looser matching.
- `lists_to_exclude` (`string`, optional): Comma-separated IDs of your lists whose companies should be left out of the results. Example: 3920,3925
- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `simplified` (`boolean`, optional): Set to true to return a reduced company profile that costs no credits (the free plan limits how many). Defaults to false, which returns the full profile.
- `size` (`integer`, optional): Number of results per page, from 1 to 25. Defaults to 1. Example: 25
- `sort_by` (`string`, optional): Company field to sort results by, such as meta.score (relevance score), about.totalEmployees, about.yearFounded, analytics.monthlyVisitors or finances.revenue. Use with sort_order. Example: about.totalEmployees. One of: `about.businessType`, `about.industries`, `about.industry`, `about.name`, `about.totalEmployees`, `about.yearFounded`, `analytics.monthlyVisitors`, `apps`, `codes.naics`, `codes.sic`, `contacts`, `domain.domain`, `domain.tld`, `finances.revenue`, `locations.headquarters.city.code`, `locations.headquarters.country.code`, `locations.headquarters.county.code`, `locations.headquarters.state.code`, `meta.score`, `meta.syncedAt`, `socials`, `technologies.active`, `urls`.
- `sort_order` (`string`, optional): Sort direction for sort_by: asc or desc. Example: desc. One of: `asc`, `desc`.

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

### `thecompaniesapi_search_companies_by_prompt`

Search Companies by Prompt · Read-only

Search companies with a plain-English description, such as 'SaaS companies in the United States with more than 100 employees'.
Returns matching company profiles with pagination info. Each returned company costs 1 credit unless simplified is true.
Use this when the user describes the companies in words. Use thecompaniesapi_search_companies for exact filter conditions, and thecompaniesapi_generate_search_query to see or reuse the conditions a description maps to.

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

Inputs:

- `prompt` (`string`, required): Plain-English description of the companies to find. Example: SaaS companies in the United States with more than 100 employees
- `lists_to_exclude` (`string`, optional): Comma-separated IDs of your lists whose companies should be left out of the results. Example: 3920,3925
- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `similarity` (`number`, optional): Similarity threshold from 0 to 2 (API default 1.875). Higher values keep only closer matches. Example: 1.875
- `simplified` (`boolean`, optional): Set to true to return a reduced company profile that costs no credits (the free plan limits how many). Defaults to false, which returns the full profile.
- `size` (`integer`, optional): Number of results per page, from 1 to 50. Defaults to 10. Example: 25
- `sort_by` (`string`, optional): Company field to sort results by, such as meta.score (relevance score), about.totalEmployees, about.yearFounded, analytics.monthlyVisitors or finances.revenue. Use with sort_order. Example: about.totalEmployees. One of: `about.businessType`, `about.industries`, `about.industry`, `about.name`, `about.totalEmployees`, `about.yearFounded`, `analytics.monthlyVisitors`, `apps`, `codes.naics`, `codes.sic`, `contacts`, `domain.domain`, `domain.tld`, `finances.revenue`, `locations.headquarters.city.code`, `locations.headquarters.country.code`, `locations.headquarters.county.code`, `locations.headquarters.state.code`, `meta.score`, `meta.syncedAt`, `socials`, `technologies.active`, `urls`.
- `sort_order` (`string`, optional): Sort direction for sort_by: asc or desc. Example: desc. One of: `asc`, `desc`.

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

### `thecompaniesapi_search_continents`

Search Continents · Read-only

Search continents by name in The Companies API's location data.
Returns continents with their name and code, and the number of companies headquartered there, with pagination info.
Use this to find the continent code for a locations.headquarters.continent.code condition in thecompaniesapi_search_companies. Use thecompaniesapi_search_countries for a country.

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

Inputs:

- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `search` (`string`, optional): Text to match against continent names. Example: Europe
- `size` (`integer`, optional): Number of results per page, from 1 to 20. Defaults to 20. Example: 20
- `sort_by` (`string`, optional): Sort results by the number of companies in each place (counts.companies). Use with sort_order. Example: counts.companies. One of: `counts.companies`.
- `sort_order` (`string`, optional): Sort direction for sort_by: asc or desc. Example: desc. One of: `asc`, `desc`.

Example input: `{}`

### `thecompaniesapi_search_counties`

Search Counties · Read-only

Search counties by name in The Companies API's location data.
Returns counties with their name and code, and the number of companies headquartered there, with pagination info.
Use this to find the county code for a locations.headquarters.county.code condition in thecompaniesapi_search_companies. Use thecompaniesapi_search_cities for a city.

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

Inputs:

- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `search` (`string`, optional): Text to match against county names. Example: Santa Clara
- `size` (`integer`, optional): Number of results per page, from 1 to 20. Defaults to 20. Example: 20
- `sort_by` (`string`, optional): Sort results by the number of companies in each place (counts.companies). Use with sort_order. Example: counts.companies. One of: `counts.companies`.
- `sort_order` (`string`, optional): Sort direction for sort_by: asc or desc. Example: desc. One of: `asc`, `desc`.

Example input: `{}`

### `thecompaniesapi_search_countries`

Search Countries · Read-only

Search countries by name in The Companies API's location data.
Returns countries with their name and code, and the number of companies headquartered there, with pagination info.
Use this to find the country code for a locations.headquarters.country.code condition in thecompaniesapi_search_companies. Use thecompaniesapi_search_states for a state or region.

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

Inputs:

- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `search` (`string`, optional): Text to match against country names. Example: France
- `size` (`integer`, optional): Number of results per page, from 1 to 20. Defaults to 20. Example: 20
- `sort_by` (`string`, optional): Sort results by the number of companies in each place (counts.companies). Use with sort_order. Example: counts.companies. One of: `counts.companies`.
- `sort_order` (`string`, optional): Sort direction for sort_by: asc or desc. Example: desc. One of: `asc`, `desc`.

Example input: `{}`

### `thecompaniesapi_search_industries`

Search Industries · Read-only

Search the industries companies are tagged with, by name.
Returns industries with their name, slug and number of companies, sorted by company count, with pagination info. Free.
Use this to find the industry slug for an about.industries condition in thecompaniesapi_search_companies. Use thecompaniesapi_search_similar_industries to widen a set of industries.

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

Inputs:

- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `search` (`string`, optional): Text to match against industry names. Omit to list all industries. Example: software
- `size` (`integer`, optional): Number of results per page, from 1 to 100. Defaults to 25. Example: 25

Example input: `{}`

### `thecompaniesapi_search_similar_companies`

Search Similar Companies · Read-only

Find companies similar to one or more companies you name by domain, such as lookalikes of your best customers or a competitor set.
Returns similar company profiles with pagination info. Each returned company costs 1 credit unless simplified is true.
Use this to build a lookalike list from example domains. Use thecompaniesapi_search_companies for filter-based search.

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

Inputs:

- `domains` (`array`, required): Domains of up to 100 example companies to find lookalikes of. Example: ["crisp.chat", "intercom.com"]
- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `proximity` (`string`, optional): How close the results must be to the examples: close, near or far. Example: close. One of: `close`, `near`, `far`.
- `simplified` (`boolean`, optional): Set to true to return a reduced company profile that costs no credits (the free plan limits how many). Defaults to false, which returns the full profile.
- `size` (`integer`, optional): Number of results per page, from 1 to 100. Defaults to 10. Example: 25
- `sort_by` (`string`, optional): Company field to sort results by, such as meta.score (relevance score), about.totalEmployees, about.yearFounded, analytics.monthlyVisitors or finances.revenue. Use with sort_order. Example: about.totalEmployees. One of: `about.businessType`, `about.industries`, `about.industry`, `about.name`, `about.totalEmployees`, `about.yearFounded`, `analytics.monthlyVisitors`, `apps`, `codes.naics`, `codes.sic`, `contacts`, `domain.domain`, `domain.tld`, `finances.revenue`, `locations.headquarters.city.code`, `locations.headquarters.country.code`, `locations.headquarters.county.code`, `locations.headquarters.state.code`, `meta.score`, `meta.syncedAt`, `socials`, `technologies.active`, `urls`.
- `sort_order` (`string`, optional): Sort direction for sort_by: asc or desc. Example: desc. One of: `asc`, `desc`.

Example input: `{"domains":["crisp.chat","intercom.com"]}`

### `thecompaniesapi_search_similar_industries`

Search Similar Industries · Read-only

Find industries related to one or more industries you name.
Returns related industries with their name, slug and number of companies, with pagination info.
Use this to widen an industry filter. Use thecompaniesapi_search_industries to look up an industry by name.

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

Inputs:

- `industries` (`array`, required): Industry names or slugs to find related industries for. Example: ["saas", "fintech"]
- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `size` (`integer`, optional): Number of results per page, from 1 to 100. Defaults to 25. Example: 25

Example input: `{"industries":["saas","fintech"]}`

### `thecompaniesapi_search_states`

Search States · Read-only

Search states by name in The Companies API's location data.
Returns states with their name and code, and the number of companies headquartered there, with pagination info.
Use this to find the state or region code for a locations.headquarters.state.code condition in thecompaniesapi_search_companies. Use thecompaniesapi_search_cities for a city.

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

Inputs:

- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `search` (`string`, optional): Text to match against state or region names. Example: California
- `size` (`integer`, optional): Number of results per page, from 1 to 20. Defaults to 20. Example: 20
- `sort_by` (`string`, optional): Sort results by the number of companies in each place (counts.companies). Use with sort_order. Example: counts.companies. One of: `counts.companies`.
- `sort_order` (`string`, optional): Sort direction for sort_by: asc or desc. Example: desc. One of: `asc`, `desc`.

Example input: `{}`

### `thecompaniesapi_search_technologies`

Search Technologies · Read-only

Search the technologies detected on company websites, such as Shopify, HubSpot or Stripe, by name.
Returns technologies with their name, slug, categories, vendor, website and number of companies using them, with pagination info.
Use this to find the technology slug for a technologies.active condition in thecompaniesapi_search_companies.

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

Inputs:

- `page` (`integer`, optional): Page of results to return, starting at 1. Defaults to 1. Example: 2
- `search` (`string`, optional): Text to match against technology names. Example: shopify
- `size` (`integer`, optional): Number of results per page, from 1 to 100. Defaults to 25. Example: 25

Example input: `{}`

### `thecompaniesapi_ask_company`

Ask About Company · Write

Ask an AI question about a company, identified by its domain, and get a structured answer.
Returns the answer (output values, explanation and confidence score) inside the prompt object, plus the model used and the credit cost.
Use this for a specific fact that is not in the standard profile, such as which products a company sells. Use thecompaniesapi_get_company_context for a general overview.

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

Inputs:

- `domain` (`string`, required): Company website domain, without protocol or path. Example: stripe.com
- `question` (`string`, required): The question to answer about the company. Example: What products does this company sell?
- `explain` (`boolean`, optional): Set to true to include an explanation of how the answer was reached. Defaults to false.
- `fields` (`array`, optional): Structured fields the answer must fill. Each field needs a key and a type (string, number, boolean, or array|string, array|number, array|boolean), and can add a description and a fixed set of allowed values. Omit to get a free-form answer. Example: [{"key": "products", "type": "array|string", "description": "The products the company sells"}]
- `model` (`string`, optional): AI model size: small (cheaper, faster) or large (more capable). Example: large. One of: `small`, `large`.

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

### `thecompaniesapi_create_list`

Create List · Write

Create a company list, either empty, filled from filter conditions, or filled with lookalikes of example domains.
Returns the new list with its ID.
Use this to save a segment. Add or remove specific companies afterwards with thecompaniesapi_toggle_companies_in_list.

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

Inputs:

- `name` (`string`, required): Name of the list, up to 255 characters. Example: EU fintech prospects
- `dynamic` (`boolean`, optional): Set to true to keep adding new companies that match the conditions over time. Defaults to false.
- `mail_frequency` (`string`, optional): How often The Companies API emails you about new companies in the list: disabled, daily, weekly or monthly. Example: weekly. One of: `disabled`, `daily`, `weekly`, `monthly`.
- `max_companies` (`integer`, optional): Maximum number of companies the list may hold. Example: 500
- `query` (`array`, optional): Filter conditions; a company must match every condition. Each condition names an attribute (for example about.industries, about.totalEmployees, locations.headquarters.country.code, technologies.active, finances.revenue or ai.search), a sign (equals, exactEquals, notEquals, greater or lower), the values to compare against, and an operator (or / and) that decides whether a company must match any or all of those values. Industry, technology and location values are the slugs and codes returned by the industry, technology and location search tools; thecompaniesapi_generate_search_query turns a plain-English description into these conditions. Example: [{"attribute": "about.industries", "operator": "or", "sign": "equals", "values": ["computer-software"]}, {"attribute": "locations.headquarters.country.code", "operator": "or", "sign": "equals", "values": ["us", "gb"]}] When set, the list is filled with matching companies.
- `similar_domains` (`array`, optional): Domains of example companies; the list is filled with lookalikes of them. Example: ["stripe.com", "adyen.com"]

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

### `thecompaniesapi_generate_search_query`

Generate Search Query · Write

Turn a plain-English description of companies into the filter conditions the search tools take.
Returns the generated conditions (in response.query), the number of matching companies and the credit cost, inside a prompt record.
Use this to build or inspect conditions for thecompaniesapi_search_companies, thecompaniesapi_count_companies or thecompaniesapi_create_list. Use thecompaniesapi_search_companies_by_prompt to search directly from a description.

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

Inputs:

- `prompt` (`string`, required): Plain-English description of the companies. Example: Fintech startups in France with 10 to 50 employees
- `model` (`string`, optional): AI model size: small (cheaper, faster) or large (more capable). Example: large. One of: `small`, `large`.

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

### `thecompaniesapi_request_action`

Request Action · Write

Start an asynchronous job, such as enriching many domains at once or enriching or asking a question across a list, or estimate its credit cost first.
Returns the created actions with their IDs and status (or the estimate when estimate is true).
Use this for bulk work that is too large for one call. Poll progress with thecompaniesapi_list_actions; for single companies use thecompaniesapi_get_company or thecompaniesapi_ask_company.

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

Inputs:

- `domains` (`array`, optional): Domains to process, for enrich-companies and ask-domain. Example: ["pearson.com", "united.com"]
- `estimate` (`boolean`, optional): Set to true to get the credit cost without running the job. Defaults to false.
- `fields` (`array`, optional): Structured fields the answer must fill. Each field needs a key and a type (string, number, boolean, or array|string, array|number, array|boolean), and can add a description and a fixed set of allowed values. Omit to get a free-form answer. Example: [{"key": "products", "type": "array|string", "description": "The products the company sells"}]
- `job` (`string`, optional): The job to run: enrich-companies (enrich the given domains), enrich-list (enrich every company in list_id), ask-domain (answer question for the given domains), ask-list (answer question for every company in list_id) or cleanup-list (clean up list_id). Example: enrich-companies. One of: `enrich-companies`, `enrich-list`, `ask-domain`, `ask-list`, `cleanup-list`.
- `list_id` (`integer`, optional): List to process, for enrich-list, ask-list and cleanup-list. Example: 4210
- `question` (`string`, optional): Question to answer for each company, for ask-domain and ask-list. Example: Does this company sell to enterprises?
- `type` (`string`, optional): Action type. Leave as jobs:request (the default) to request a job. Example: jobs:request. One of: `jobs:request`, `companies:added`. Default: `jobs:request`.

Example input: `{}`

### `thecompaniesapi_retry_action`

Retry Action · Write

Retry an asynchronous action that failed.
Returns the action with its new status.
Use this after thecompaniesapi_list_actions shows a failed action.

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

Inputs:

- `action_id` (`integer`, required): ID of the failed action. thecompaniesapi_list_actions returns action IDs. Example: 98765

Example input: `{"action_id":98765}`

### `thecompaniesapi_toggle_companies_in_list`

Add or Remove Companies in List · Write

Add companies to or remove companies from one of your lists, by domain or company ID.
Returns the updated list.
Use this to curate a list by hand. Use thecompaniesapi_update_list to change the list's conditions.

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

Inputs:

- `action` (`string`, required): attach adds the companies to the list; detach removes them. Example: attach. One of: `attach`, `detach`.
- `list_id` (`integer`, required): ID of the list. thecompaniesapi_list_lists returns list IDs. Example: 4210
- `company_ids` (`array`, optional): Numeric The Companies API company IDs to add or remove. Provide domains or company_ids. Example: [123456]
- `domains` (`array`, optional): Domains of the companies to add or remove. Provide domains or company_ids. Example: ["apple.com", "stripe.com"]
- `refresh` (`boolean`, optional): Set to true to re-enrich the companies as they are added.

Example input: `{"action":"attach","list_id":4210}`

### `thecompaniesapi_update_list`

Update List · Write

Update a company list's name, filter conditions, size cap, dynamic flag or email frequency, or resync its companies.
Returns the updated list.
Use this to change a list's settings. Use thecompaniesapi_toggle_companies_in_list to add or remove specific companies.

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

Inputs:

- `list_id` (`integer`, required): ID of the list. thecompaniesapi_list_lists returns list IDs. Example: 4210
- `dynamic` (`boolean`, optional): Set to true to keep adding new matching companies over time, or false to stop.
- `mail_frequency` (`string`, optional): How often The Companies API emails you about new companies in the list: disabled, daily, weekly or monthly. Example: weekly. One of: `disabled`, `daily`, `weekly`, `monthly`.
- `max_companies` (`integer`, optional): Maximum number of companies the list may hold, from 0 to 1000000. Example: 500
- `name` (`string`, optional): New name for the list, up to 255 characters. Example: EU fintech prospects
- `query` (`array`, optional): Filter conditions; a company must match every condition. Each condition names an attribute (for example about.industries, about.totalEmployees, locations.headquarters.country.code, technologies.active, finances.revenue or ai.search), a sign (equals, exactEquals, notEquals, greater or lower), the values to compare against, and an operator (or / and) that decides whether a company must match any or all of those values. Industry, technology and location values are the slugs and codes returned by the industry, technology and location search tools; thecompaniesapi_generate_search_query turns a plain-English description into these conditions. Example: [{"attribute": "about.industries", "operator": "or", "sign": "equals", "values": ["computer-software"]}, {"attribute": "locations.headquarters.country.code", "operator": "or", "sign": "equals", "values": ["us", "gb"]}]
- `resync` (`boolean`, optional): Set to true to re-run the list's conditions and refresh its companies.

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

### `thecompaniesapi_delete_list`

Delete List · Destructive

Delete one of your company lists. This cannot be undone.
Returns the deleted list.
Use thecompaniesapi_toggle_companies_in_list instead to remove only some companies.

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

Inputs:

- `list_id` (`integer`, required): ID of the list. thecompaniesapi_list_lists returns list IDs. Example: 4210

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

## 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 |
