Skip to main content
Use this when you want to explore a market, build a target account list, or segment companies by criteria like geography, industry, revenue, funding, or headcount. The Company Search API lets you find companies by domain, country, industry, revenue, funding, headcount, and more. This page walks you through the basics: your first search, the response shape, and combining filters, then folds in worked example recipes you can copy, paste, and adapt. For the operator list, field catalog, and validation rules, see Search reference. Every request goes to the same endpoint:
Replace YOUR_API_KEY in each example with your actual API key. All requests require the x-api-version: 2025-11-01 header.

Request body

Looking for the list of fields you can filter on? See Searchable fields in the search reference for the full table of filters.field values (with sortable flags). Use Autocomplete to discover valid values for fields like basic_info.industries, taxonomy.professional_network_industry, or locations.country.

Response body

Rate limits and credits

Pricing: 0.03 credits per result returned. A request with no results does not consume credits.
  • Rate limit: 30 requests per minute.
Search results are intentionally lightweight so you can explore and segment companies at a low credit cost. When you need the full company profile, use Company Enrich.

Examples

or/nested logic, well-funded-by-country, recently founded.

Pagination & sorting

Cursor-based pagination and sort rules for stable ordering.

Reference

Operators, searchable fields, response fields, validation, errors.

Your first search: find a company by domain

The simplest search finds a company by its exact primary domain. You pass a single filter with the = operator.

Understanding the response

Every search response has three fields:
  • companies — an array of matching company records. Each record contains the fields you requested in fields.
  • next_cursor — a pagination token. Pass it in the next request to get the next page. null means there are no more pages.
  • total_count — how many companies match your filters across the full database (may be null for very broad queries).

How to interpret results

  • next_cursor is null: You have reached the last page. No more results.
  • total_count is null: The exact count is too expensive to compute for this query. Use next_cursor to determine if more pages exist.
  • Empty companies array: No companies matched your filters. Broaden your filters or check values with Autocomplete.

Controlling which fields come back

The fields parameter lets you pick exactly which fields to include. This keeps your responses small and focused. If you omit fields, the API returns all available fields for each company.

Combine filters with and

Real searches need more than one criterion. Wrap multiple conditions inside an op: "and" group to require all of them. This search finds software development companies headquartered in the USA, sorted by headcount (largest first).
Response trimmed for clarity.
The key difference from the first example: instead of a single filters object, you now have a group with op: "and" and a conditions array. Every condition must match for a company to be included. For or and nested logic, or for finding well-funded or recently founded companies, see the Examples below. To walk through large result sets, see Pagination and sorting.

Examples

Worked recipes you can copy, paste, and adapt. Each example is a full working request. For the core walkthrough (first search, combining filters with and), see the sections above. For the operator list, field catalog, and validation rules, see Search reference.
Use op: "or" when a company should match any condition. You can also nest and/or groups for complex queries.This search finds companies that are either in the software development industry or have over $5M in total investment, AND are headquartered in the USA.
The outer and requires both conditions: the inner or matches either software development companies or well-funded companies, and the outer condition restricts to US-headquartered companies.
This is a common pattern for sales and investor research: find companies in a specific market with significant funding. This search finds US-based companies with over $10M in total investment, sorted by funding (highest first).
Response trimmed for clarity.
Combine estimated revenue bounds with the latest funding round type, date, and amount. You can also require an investor to appear in the company’s funding history.This search finds companies whose estimated revenue range is entirely between 1Mand1M and 50M, whose latest round was Series A or Series B on or after 2025-01-01, whose latest round raised at least $5M, and that list Sequoia Capital as an investor.
funding.investors contains known investors across the company’s funding history. Combining it with funding.last_* filters means the company has that investor and its latest round matches the other conditions. It does not mean that investor participated in the latest round.
Use comparison operators like > and < on numeric or date fields. This search finds companies founded after 2020, sorted by headcount.
Response trimmed for clarity.
Filter on roles.distribution.<function> to find companies by the number of employees in a specific function — for example, companies with a large engineering team. Combine it with an industry or location filter to narrow the result.
Response trimmed for clarity.
roles.distribution.<function> is filter-only — you can filter on it, but it is not returned in the search response (requesting it in fields returns 400). Select headcount.total or other returnable fields instead. The valid function names are listed in the searchable fields reference.
Filter on the dotted period path headcount.growth_percent.6m to find companies whose 6-month headcount growth exceeds a threshold. The same shape applies to .1m, .3m, .12m and to headcount.growth_absolute.* for absolute employee deltas.
The dotted period paths (headcount.growth_percent.6m, etc.) are filterable but not sortable — passing one as a sorts.field returns 400 "Unsupported columns". Sort on headcount.total (or another sortable field) and use the growth filter to narrow the population.
/company/search returns the growth map under period keys 1m, 3m, 6m, 12m. The same underlying data is also returned by /company/enrich, but with different keys (mom, qoq, six_months, yoy, two_years).
Pass a known company’s crustdata_company_id to competitors.company_ids (or its domains to competitors.websites) to pull the companies Crustdata tracks as its competitors. Here, competitors of OpenAI (631466).
Response trimmed for clarity.
competitors.company_ids and competitors.websites are filter-only — you can filter on them, but they are not returned in the response (passing one in fields returns 400 "Invalid fields"). Select returnable fields like headcount.total instead.
Filter on funding.investors to find every company an investor has backed. This search finds Sequoia Capital portfolio companies, sorted by total funding.
Response trimmed for clarity. Request funding.investors in fields to see the company’s all-time investor list. This field does not identify participants in a specific funding round.
Combine basic_info.company_type with an industry and a country filter — a common first step in alumni or talent-flow workflows. This search finds UK universities, ranked by headcount.
Response trimmed for clarity.
Filter on locations.country with ISO 3-alpha codes (USA, GBR, CAN, IND). This search finds Canada-headquartered companies with more than 100 employees.
Response trimmed for clarity. locations.country accepts both ISO 3166-1 alpha-3 codes ("USA", "CAN") and full country names ("United States", "Canada") — either form matches the same companies, so ISO-3 filters like the one above keep working unchanged. Response values are the normalized full country names. See Normalized location facets.
The geo_distance filter finds companies whose headquarters is within a specific distance of a point. Apply it to the locations.headquarters field.This search finds companies with more than 100 employees headquartered within 50 km of Palo Alto.
The value is an object whose centre is given as either a location string (geocoded server-side) or an explicit lat_lng pair (which skips geocoding). If both are supplied, lat_lng wins. distance is required and must be positive; unit is optional and defaults to km (also accepts mi, miles, m, meters, ft, feet). See the geo_distance reference for the full value-object table.

Search by explicit coordinates

Use lat_lng when you already have coordinates (for example, from a map picker) or you want to skip the geocoding step. The example below finds companies headquartered within 25 miles of latitude 37.4419, longitude -122.143 (Palo Alto).
The geo_exclude filter is the inverse of geo_distance — it removes companies headquartered inside the radius and keeps everyone else. Use it to carve out a metro you already cover, or to target companies outside a region.This search finds companies that are not headquartered within 100 km of London.
geo_exclude accepts the same value object as geo_distance (location or lat_lng, a required distance, and an optional unit), so you can also exclude a radius around explicit coordinates.
Filter on followers.count and followers.six_months_growth_percent to find companies with a large, fast-growing audience.
Response trimmed for clarity. followers.count is sortable; the follower-growth fields are filterable but not sortable.
Pass one or more exact primary domains to basic_info.primary_domain with the in operator to resolve known domains in a single call.
A widely shared domain (for example, a platform domain that many small profiles reuse) can return several low-headcount records alongside the primary company. To resolve a single best-match company from a domain, use Company Identify or Company Enrich with exact_match: true.
When you already have crustdata_company_id values (from a previous search or Identify call), fetch those exact records with the in operator. This is the most deterministic way to pull specific companies.
Use revenue.public_markets.ipo_date to find companies that went public in a date window, or revenue.acquisition_status to find acquired companies.Companies that IPO’d in 2020–2021 (1,000+ employees):
Acquired software companies:
Responses trimmed for clarity. revenue.acquisition_status matches the lowercase value "acquired".
Combine funding.last_round_type with funding.last_fundraise_date to find companies that recently raised a specific round. This search finds companies whose latest round was Series A/B/C and closed on or after 2024-01-01.
Response trimmed for clarity. Round-type values are lowercase with underscores (series_a, series_b). Use => / =< for date ranges — >= and <= are not supported.
Filter on taxonomy.categories and basic_info.markets for fine-grained segmentation. This search finds AI companies in the software-development industry, ranked by headcount.
Category and market values are case-sensitive for in. Use Autocomplete to find exact values — for example, the AI category is stored as "Artificial Intelligence (AI)". For public-market tags like "NASDAQ", filter on basic_info.markets.
Use the (.) fuzzy operator on basic_info.name to match name variants and tolerate typos, combined with a basic_info.company_type filter. This search finds privately held companies with “robotics” in the name.
Response trimmed for clarity. (.) is fuzzy (tolerates typos, ignores word order); use [.] for exact token matching.

What to do next

  • Paginate and sort — see Pagination and sorting to walk through all matching companies.
  • Look up operators and fields — see Search reference for operators, searchable fields, response fields, validation, and errors.
  • Enrich a company — use Company Enrich to get a detailed profile for a known company.
  • Discover filter values — use Company Autocomplete to find valid values for industries, categories, and countries before building search filters.