IntroductionQuickstartAuthenticationPaginationRate Limit

Search endpoints

Job Search POSTCompany Search POSTTechnographics POST

Account endpoints

Get Credit Balance GETGet Credits Consumption GET

Other

TheirStack TheirStack Logo
DocumentationAPI ReferenceWebhooksDatasetsMCPGuides

Company Search

This endpoint lets you search for companies by technology stack, hiring signals, and firmographics. It returns a list of companies that match the search criteria, along with the jobs and technology objects for each company that match the filters you've passed.

It consumes 3 API credits for each company returned in the response.

Useful resources: Preview data mode, Free count mode

The response includes both company data and any matching jobs or technologies based on your filters.

POST
/v1/companies/search

Authorization

Bearer
AuthorizationBearer <token>

In: header

Request Body

application/json

  • expand_technology_slugs
    array<string>
    default: []

    Specify technology slugs to include detailed technology usage information for each company. The response will include a 'technologies_found' field containing metrics like confidence score, ranking, and job count for each specified technology. Note: If a technology is not listed for a company, it means that company does not use that technology. This feature is useful for enriching company data with their technology stack details.

  • order_by
    array<ColumnSortCompanySearch>
    default: [{"desc":true,"field":"confidence"},{"desc":true,"field":"num_jobs_found"},{"desc":true,"field":"num_jobs"},{"desc":true,"field":"num_jobs"},{"desc":true,"field":"employee_count"}]

    List of column objects. You can pass several columns to order by, in order of priority. Only field is required, desc is True by default

  • company_name_or
    array<string>
    default: [][]["Google","Facebook","Apple"]

    Only return companies that match these names exactly, case-sensitively. This filter acts as an OR filter, so if you pass more than one company name, it will return companies that match any of the names.

  • company_name_case_insensitive_or
    array<string>
    default: [][]["google","stripe"]

    Only return companies that match these names exactly, case-insensitively.

  • company_id_or
    array<string>
    default: [][]["1234567890","1234567891"]

    Only return companies that match these IDs exactly. This filter acts as an OR filter, so if you pass more than one company ID, it will return companies that match any of the IDs.

  • company_domain_or
    array<string>
    default: [][]["google.com","stripe.com"]["https://www.google.com/","https://stripe.com/"]["[email protected] ","[email protected]"]

    Only return companies that match these domains exactly. It accepts full urls (https://www.google.com/) and emails ([email protected]). This filter acts as an OR filter, so if you pass more than one company domain, it will return companies that match any of the domains.

  • company_domain_not
    array<string>
    default: [][]["google.com","stripe.com"]["https://www.google.com/","https://stripe.com/"]["[email protected] ","[email protected]"]

    Only return companies that don't match these domains exactly. It accepts full urls (https://www.google.com/) and emails ([email protected]).

  • company_name_not
    array<string>
    default: [][]["Google","Facebook","Apple"]

    Only return companies that don't match these names exactly, case-sensitively.

  • company_name_partial_match_or
    array<string>
    default: [][]["google","stripe"]

    Company names. Will return companies whose name contain any of the the substrings passed here, case-insensitively. For example, if you pass "google", it will return "Google", "Google LLC", "Google Inc", etc.

  • company_name_partial_match_not
    array<string>
    default: [][]["google","stripe"]

    Company names. Will return companies whose name doesn't contain any of the the substrings passed here, case-insensitively. For example, if you pass 'google', it will exclude 'Google', 'Google LLC', 'Google Inc', etc.

  • company_linkedin_url_or
    array<string>
    default: [][]["https://www.linkedin.com/company/google/"]

    Return companies whose LinkedIn URL matches any of the slugs passed here. Can also pass full LinkedIn company URLs.

  • blur_company_data
    boolean
    default: false

    Enable preview mode to return blurred data without consuming API credits. When enabled, sensitive company fields (name, domain, URLs, descriptions) and job-specific fields (description, URLs) are blurred. This mode is useful for sales software integrations to show data previews to end users. Not available when filtering by company identifiers (company_name, company_domain, company_linkedin_url, company_id). Learn more about here

  • property_exists_or
    array<string>
    default: [][]["domain","linkedin_url"]

    Return companies that have any of these fields not null. For example, if you pass ['domain', 'linkedin_url'], it will return companies that have a domain OR a linkedin_url set.

    • domain
    • linkedin_url
  • property_exists_and
    array<string>
    default: [][]["domain","linkedin_url"]

    Return companies that have all of these fields not null. For example, if you pass ['domain', 'linkedin_url'], it will return companies that have both domain AND linkedin_url set.

    • domain
    • linkedin_url
  • offset
    integer
    0 <= valuedefault: 00

    Number of results to skip. Required for offset-based pagination.

  • page
    integer
    0 <= valuedefault: 00

    Page number. Required when using page-based pagination.

  • limit
    integer
    1 <= valuedefault: 2525

    Number of results per page

  • cursor
    stringnullable

    Cursor for pagination

  • company_description_pattern_or
    array<string>
    default: []

    Case-insensitive patterns to match in the company description. Will return companies that match any of the patterns.

  • company_description_pattern_not
    array<string>
    default: []

    Case-insensitive patterns to match in the company description. Will return companies that match any of the patterns.

  • company_description_pattern_accent_insensitive
    booleannullable
    default: falsenulltruefalse

    Set to True to make company description searches accent insensitive. For example, "á" will match "a" as well.

  • min_revenue_usd
    integernullable
    null

    Minimum company revenue, in USD

  • max_revenue_usd
    integernullable
    null

    Maximum company revenue, in USD

  • min_employee_count
    integernullable
    null100

    Minimum number of employees in a company

  • max_employee_count
    integernullable
    null100

    Maximum number of employees in a company

  • min_employee_count_or_null
    integernullable
    null100

    Minimum number of employees in a company. If we don't have company size information, we will return it as well.

  • max_employee_count_or_null
    integernullable
    null100

    Maximum number of employees in a company. If we don't have company size information, we will return it as well.

  • min_funding_usd
    integernullable
    null1000000000

    Minimum company funding, in USD

  • max_funding_usd
    integernullable
    null1000000000

    Maximum company funding, in USD

  • funding_stage_or
    array<string>
    default: []

    Funding stages of companies returned. Possible values: ['angel', 'convertible_note', 'debt_financing', 'equity_crowdfunding', 'other', 'private_equity', 'seed', 'series_a', 'series_b', 'series_c', 'series_d', 'series_e', 'series_f', 'series_g', 'series_h', 'venture_round_not_specified', 'series_i', 'series_j', 'undisclosed', 'series_unknown', 'pre_seed', 'post_ipo_secondary', 'post_ipo_equity', 'post_ipo_debt', 'non_equity_assistance', 'late_vc', 'initial_coin_offering', 'growth_equity_vc', 'grant', 'early_vc', 'corporate_round', 'secondary_market', 'product_crowdfunding']

  • industry_or
    array<string>
    default: []
    deprecated

    Names of industries, case-insensitive. Results will only include companies that belong to any of the industries specified in this parameter. Available values: GET /v0/catalog/industries

    WARNING: Deprecated parameter. Use the industry_id_or field instead. 
  • industry_not
    array<string>
    default: []
    deprecated

    Names of industries, case-insensitive. Results will exclude companies that belong to any of the industries specified in this parameter. Available values: GET /v0/catalog/industries

    WARNING: Deprecated parameter. Use the industry_id_not field instead. 
  • industry_id_or
    array<integer>
    default: []

    Industry codes. You can use any of LinkedIn's Industry Codes V2 or GET /v0/catalog/industries

  • industry_id_not
    array<integer>
    default: []

    Industry ids to exclude.You can use any of LinkedIn's Industry Codes V2 or GET /v0/catalog/industries

  • company_tags_or
    array<string>
    default: []

    Return companies that match any of these keywords

  • company_type
    stringnullable

    Filter by company type.

    • recruiting_agency
    • direct_employer
    • all
  • company_investors_or
    array<string>
    default: []

    Investors of the company

  • company_investors_partial_match_or
    array<string>
    default: []

    Investors of the company. Will return companies for which any of their investors contains any of the substrings passed here. For example, if you pass 'andree', all funds that match it (like 'Andreessen Horowitz', 'Andreessen Horowitz LLC', etc).

  • company_technology_slug_or
    array<string>
    default: []

    Will return jobs from companies that that have mentioned any of these technologies in their jobs (not necessarily in the jobs returned). Case sensitive. Pass slugs. Check out all the technologies we track at GET /v0/catalog/technologies

  • company_technology_slug_and
    array<string>
    default: []

    Will return jobs from companies that that have mentioned all of these technologies in their jobs (not necessarily in the jobs returned). Case sensitive. Pass slugs. Check out all the technologies we track at GET /v0/catalog/technologies

  • company_technology_slug_not
    array<string>
    default: []

    Will return jobs from companies that that haven't mentioned any of these technologies in their jobs. Case sensitive. Pass slugs. Check out all the technologies we track at GET /v0/catalog/technologies

  • only_yc_companies
    booleannullable
    default: false

    Only return YC companies

  • company_location_pattern_or
    array<string>
    default: []

    Return companies whose city matches any of the patterns passed here. Case insensitive. For example, if you pass 'san francisco', it will return companies whose city is 'San Francisco', 'San Francisco Bay Area', etc.

  • company_country_code_or
    array<string>
    default: []

    Return companies whose HQ country code is any of the ones passed here, case sensitive. Pass ISO2 country codes.

  • company_country_code_not
    array<string>
    default: []

    Return companies whose HQ country code is not any of the ones passed here, case sensitive. Pass ISO2 country codes.

  • company_list_id_or
    array<integer>
    default: []

    Return companies that belong to any of the company lists passed here

  • company_list_id_not
    array<integer>
    default: []

    Return companies that don't belong to any of the company lists passed here

  • company_linkedin_url_exists
    booleannullable
    null
    deprecated

    (Use property_exists_or / property_exists_and instead) Only return companies with a LinkedIn URL

  • revealed_company_data
    booleannullable
    null
    deprecated

    This field is deprecated and has no effect.

  • last_funding_round_date_lte
    stringnullable
    datenull2025-05-25

    Only return companies whose last funding round date is before or on this date. Format: 'YYYY-MM-DD'

  • last_funding_round_date_gte
    stringnullable
    datenull2025-05-25

    Only return companies whose last funding round date is after or on this date. Format: 'YYYY-MM-DD'

  • include_total_results
    boolean
    default: false

    When enabled, calculates and returns total_results and total_companies fields in the response. WARNING: This significantly slows down responses as it requires reading the entire dataset. Recommended usage: enable only for the initial request to get totals, then disable for subsequent pagination requests.

  • job_filters
    objectnullable
  • tech_filters
    objectnullable
  • [key: string]
    never

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.theirstack.com/v1/companies/search" \  -H "Content-Type: application/json" \  -d '{    "order_by": [      {        "desc": true,        "field": "employee_count"      }    ],    "page": 0,    "limit": 25,    "company_country_code_or": [      "US"    ]  }'
{
  "metadata": {
    "total_results": 2034,
    "truncated_results": 0,
    "truncated_companies": 0,
    "total_companies": 1045
  },
  "data": [
    {
      "id": "google",
      "name": "Google",
      "domain": "google.com",
      "industry": "internet",
      "country": "United States",
      "country_code": "string",
      "employee_count": 7543,
      "logo": "https://example.com/logo.png",
      "num_jobs": 746,
      "num_technologies": 746,
      "possible_domains": [],
      "url": "google.com",
      "industry_id": 0,
      "linkedin_url": "http://www.linkedin.com/company/google",
      "num_jobs_last_30_days": 34,
      "num_jobs_found": 23,
      "yc_batch": "W21",
      "apollo_id": "5b839bd0324d4445051f9a5a",
      "linkedin_id": "string",
      "url_source": "string",
      "is_recruiting_agency": true,
      "founded_year": 2019,
      "annual_revenue_usd": 189000000,
      "annual_revenue_usd_readable": "189M",
      "total_funding_usd": 500000,
      "last_funding_round_date": "2020-01-01",
      "last_funding_round_amount_readable": "$1.2M",
      "employee_count_range": "1001-5000",
      "long_description": "Google is a California-based multinational technology company that offers internet-related services such as a search engine, online advertising and cloud computing.",
      "seo_description": "string",
      "city": "Mountain View",
      "postal_code": "28040",
      "company_keywords": [
        "string"
      ],
      "alexa_ranking": 1,
      "publicly_traded_symbol": "GOOG",
      "publicly_traded_exchange": "NASDAQ",
      "investors": [
        "string"
      ],
      "funding_stage": "angel",
      "has_blurred_data": false,
      "technology_slugs": [
        "kafka",
        "elasticsearch"
      ],
      "technology_names": [
        "Kafka",
        "Elasticsearch"
      ],
      "technologies_found": [],
      "jobs_found": []
    }
  ]
}
{
  "request_id": null,
  "error": {
    "code": "E-001",
    "title": "Not allowed exception",
    "description": "string"
  }
}
{
  "request_id": null,
  "error": {
    "code": "E-001",
    "title": "Not allowed exception",
    "description": "string"
  }
}
{
  "request_id": null,
  "error": {
    "code": "E-001",
    "title": "Not allowed exception",
    "description": "string"
  }
}
{
  "request_id": null,
  "error": {
    "code": "E-001",
    "title": "Not allowed exception",
    "description": "string"
  }
}

How is this guide?

Last updated on

Job Search POST

This endpoint lets you search for jobs posted on thousands of websites and filter by multiple filters, such as job titles, companies, locations, company attributes, dates and many more.

Technographics POST

This endpoint lists the technologies used by a company. For each technology, it returns the confidence level (`low`, `medium`, `high`), the number of jobs that mention the technology, and the first and last dates it was mentioned.