Skip to main content
Worked examples for Company Search. Each example is a full working request you can copy, paste, and adapt. For the core walkthrough (first search, combining filters with and), see Company Search. For the operator list, field catalog, and validation rules, see Search reference.
Replace YOUR_API_KEY in each example with your actual API key. All requests require the x-api-version: 2025-11-01 header.

Use or and nested logic

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.
curl --request POST \
  --url https://api.crustdata.com/company/search \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": {
      "op": "and",
      "conditions": [
        {
          "op": "or",
          "conditions": [
            {
              "field": "taxonomy.professional_network_industry",
              "type": "=",
              "value": "Software Development"
            },
            {
              "field": "funding.total_investment_usd",
              "type": ">",
              "value": 5000000
            }
          ]
        },
        {
          "field": "locations.country",
          "type": "=",
          "value": "USA"
        }
      ]
    },
    "sorts": [{"field": "headcount.total", "order": "desc"}],
    "limit": 2,
    "fields": [
      "crustdata_company_id",
      "basic_info.name",
      "headcount.total",
      "taxonomy.professional_network_industry",
      "funding.total_investment_usd"
    ]
  }'
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.

Find well-funded companies in a country

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).
curl --request POST \
  --url https://api.crustdata.com/company/search \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": {
      "op": "and",
      "conditions": [
        {
          "field": "locations.country",
          "type": "in",
          "value": ["USA"]
        },
        {
          "field": "funding.total_investment_usd",
          "type": ">",
          "value": 10000000
        }
      ]
    },
    "sorts": [{"field": "funding.total_investment_usd", "order": "desc"}],
    "limit": 2,
    "fields": [
      "crustdata_company_id",
      "basic_info.name",
      "basic_info.primary_domain",
      "locations.country",
      "funding.total_investment_usd",
      "headcount.total"
    ]
  }'
Response trimmed for clarity.

Find recently founded companies

Use comparison operators like > and < on numeric or date fields. This search finds companies founded after 2020, sorted by headcount.
curl --request POST \
  --url https://api.crustdata.com/company/search \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": {
      "field": "basic_info.year_founded",
      "type": ">",
      "value": 2020
    },
    "sorts": [{"field": "headcount.total", "order": "desc"}],
    "limit": 2,
    "fields": [
      "crustdata_company_id",
      "basic_info.name",
      "basic_info.year_founded",
      "headcount.total",
      "locations.country"
    ]
  }'
Response trimmed for clarity.

Find companies by team size in a function

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.
curl --request POST \
  --url https://api.crustdata.com/company/search \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": {
      "op": "and",
      "conditions": [
        { "field": "taxonomy.professional_network_industry", "type": "=", "value": "Software Development" },
        { "field": "roles.distribution.engineering", "type": ">", "value": 1000 }
      ]
    },
    "fields": ["basic_info.name", "basic_info.primary_domain", "headcount.total"],
    "sorts": [{ "field": "headcount.total", "order": "desc" }],
    "limit": 3
  }'
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.

Find high-growth mid-size companies

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.
curl --request POST \
  --url https://api.crustdata.com/company/search \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": {
      "op": "and",
      "conditions": [
        { "field": "headcount.growth_percent.6m", "type": ">", "value": 15 },
        { "field": "headcount.total", "type": ">", "value": 200 },
        { "field": "headcount.total", "type": "<", "value": 2000 }
      ]
    },
    "fields": ["basic_info.name", "basic_info.primary_domain", "headcount.total", "headcount.growth_percent"],
    "sorts": [{ "field": "headcount.total", "order": "desc" }],
    "limit": 2
  }'
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).

Next steps