Skip to main content
Use this when you need live LinkedIn data — for example, companies actively hiring, recently funded, or matching specific Sales Navigator criteria. The Company Realtime Search API lets you search companies in real-time through LinkedIn Sales Navigator. Unlike the standard Company Search which queries Crustdata’s indexed database, this endpoint fetches live results directly from Sales Navigator. Every request goes to the same endpoint:
POST https://api.crustdata.com/company/professional_network/search/live
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

ParameterTypeRequiredDescription
filtersarrayYes*Array of Sales Navigator filter objects. Each has field, type, and value.
professional_network_search_urlstringYes*A LinkedIn Sales Navigator search URL.
pageintegerYes (with filters)Page number (1–65). Each page returns up to 25 results.
* Provide either filters or professional_network_search_url, not both.

Response body

FieldTypeDescription
companiesarrayCompany profiles matching the search.
total_display_countstringTotal matching companies (e.g., "32K+").

Rate limits and credits

Current platform behavior — not specified in the OpenAPI contract:
  • Rate limit: 60 requests per minute.
  • Credits: 1 credit per company returned.
  • Page limit: Up to ~65 pages (up to ~1,625 results). Split broad queries into smaller filter sets if you need more.

You can search using either:
  1. A Sales Navigator search URL — paste a URL directly from your browser.
  2. Structured filters — define filter criteria in your request body.
You must provide one or the other, not both.
SearchRealtime Search
Data sourceCrustdata indexed databaseLinkedIn Sales Navigator (live)
Filter syntax{ "field": "dotpath", "type": "op", "value": ... }[{ "field": "ENUM_TYPE", "type": "in", "value": [...] }]
Filter field namesDot-path fields like locations.hq_countryLinkedIn enums like REGION, INDUSTRY
Country valuesISO3 codes ("USA", "GBR")Full names ("United States")
Operators=, !=, >, <, =>, =<, in, not_in, is_null, is_not_null, (.), [.]in, not_in
Boolean logicNested and/or groupsMultiple filters combined with implicit AND
PaginationCursor-based (cursor + next_cursor)Page-based (page 1–65, 25 results per page)
Response shape{ companies, next_cursor, total_count, query }{ companies, total_display_count }
Field selectionfields parameter to choose response fieldsNot supported — returns all available fields
Best forStructured segmentation, large-scale list building, precise filtersLive prospecting, hiring signals, funding events
Use Company Search when you need precise structured filters, field selection, and cursor-based pagination over Crustdata’s indexed data. Use Realtime Search when you want live LinkedIn Sales Navigator results — for example, companies actively hiring or with recent funding events.

Search by Sales Navigator URL

If you already have a LinkedIn Sales Navigator search URL, pass it directly.
curl --request POST \
  --url https://api.crustdata.com/company/professional_network/search/live \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "professional_network_search_url": "https://www.linkedin.com/sales/search/company?query=..."
  }'
The response has the same shape as structured filter searches:
Response
{
    "companies": [
        {
            "basic_info": {
                "name": "Example Company",
                "professional_network_url": "https://www.linkedin.com/company/example/",
                "primary_domain": "example.com"
            },
            "headcount": { "total": 150 }
        }
    ],
    "total_display_count": "500+"
}

Search by structured filters

Use the filters array to define search criteria programmatically. Each filter has a field, type (operator), and value.

Find mid-size tech companies

This search finds companies with 51–200 employees in the Technology industry.
curl --request POST \
  --url https://api.crustdata.com/company/professional_network/search/live \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": [
      {
        "field": "COMPANY_HEADCOUNT",
        "type": "in",
        "value": ["51-200"]
      },
      {
        "field": "INDUSTRY",
        "type": "in",
        "value": ["Technology, Information and Internet"]
      }
    ],
    "page": 1
  }'
Response trimmed to one company for clarity. The API returns up to 25 companies per page.
The OpenAPI spec defines year_founded as a nullable string (e.g., "1998"). However, actual API responses may return this field as an integer (e.g., 1998). Handle both types in your integration.

Understanding the response

Every realtime search response has two fields:
  • companies — an array of company profiles matching your search. Each profile includes basic info, headcount, taxonomy, location, revenue estimates, and decision-maker counts.
  • total_display_count — the total number of matching companies across all pages (as a string, e.g., "32K+"). This is approximate — LinkedIn does not provide exact counts for large result sets.

How to interpret results

  • total_display_count is a string: Values like "32K+" mean approximately 32,000+ matches. Parse as an approximate indicator, not an exact count.
  • Empty companies array: No more results for this page. Stop paginating.
  • Field names differ from indexed Search: Realtime results use professional_network_url (not profile_url) and professional_network_id (not linkedin_id).

More filter examples

Large companies outside the US with revenue 1M1M–500M

curl --request POST \
  --url https://api.crustdata.com/company/professional_network/search/live \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": [
      {
        "field": "COMPANY_HEADCOUNT",
        "type": "in",
        "value": ["1,001-5,000", "5,001-10,000", "10,001+"]
      },
      {
        "field": "ANNUAL_REVENUE",
        "type": "in",
        "value": ["1-500"]
      },
      {
        "field": "REGION",
        "type": "not_in",
        "value": ["United States"]
      }
    ],
    "page": 1
  }'
Platform-specific behavior: The LinkedIn Sales Navigator platform may accept additional operators like between with object values (e.g., {"min": 1, "max": 500}) and a sub_filter parameter for ANNUAL_REVENUE. These are not part of the Crustdata OpenAPI spec. If you rely on platform-specific behavior, be aware it may change without notice.

Companies hiring on LinkedIn

curl --request POST \
  --url https://api.crustdata.com/company/professional_network/search/live \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": [
      {
        "field": "INDUSTRY",
        "type": "in",
        "value": ["Technology, Information and Internet"]
      },
      {
        "field": "JOB_OPPORTUNITIES",
        "type": "in",
        "value": ["Hiring on Linkedin"]
      }
    ],
    "page": 1
  }'

Recently funded companies

curl --request POST \
  --url https://api.crustdata.com/company/professional_network/search/live \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": [
      {
        "field": "ACCOUNT_ACTIVITIES",
        "type": "in",
        "value": ["Funding events in past 12 months"]
      }
    ],
    "page": 1
  }'

Paginate through results

Use the page parameter to walk through pages of results. Each page returns up to 25 companies. First page: set page to 1. Next page: increment page by 1 and repeat the same request.
curl --request POST \
  --url https://api.crustdata.com/company/professional_network/search/live \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": [
      {
        "field": "COMPANY_HEADCOUNT",
        "type": "in",
        "value": ["51-200"]
      }
    ],
    "page": 2
  }'
Continue incrementing page until the companies array comes back empty.

Filter object schema

Each filter in the filters array must have this shape:
KeyTypeRequiredDescription
fieldstringYesA Sales Navigator filter type (see table below).
typestringYesOperator: "in" or "not_in".
valuestring or string[]YesA string or array of strings matching the filter field’s expected values.
All filters in the array are combined with implicit AND logic. Nested or groups are not supported in Realtime Search — use indexed Search for complex boolean queries.

Available filter fields

FieldDescriptionOperatorsExample values
INDUSTRYLinkedIn industryin, not_in"Software Development"
COMPANY_HEADCOUNTEmployee count rangein, not_in"51-200", "1,001-5,000"
REGIONGeographic regionin, not_in"United States", "Europe"
COMPANY_HEADQUARTERSHQ locationin, not_inCity or country names
ANNUAL_REVENUERevenue rangein, not_in"1-500" (string values per the spec)
NUM_OF_FOLLOWERSLinkedIn follower countin, not_inFollower count ranges
FORTUNEFortune listin"Fortune 500"
DEPARTMENT_HEADCOUNTDepartment sizein, not_inDepartment headcount ranges
DEPARTMENT_HEADCOUNT_GROWTHDept growth ratein, not_inGrowth rate ranges
COMPANY_HEADCOUNT_GROWTHHeadcount growthin, not_inGrowth rate ranges
KEYWORD_COMPANYKeyword searchinAny keyword string
ACCOUNT_ACTIVITIESCompany activitiesin"Funding events in past 12 months"
JOB_OPPORTUNITIESHiring activityin"Hiring on Linkedin"
Filter values use LinkedIn’s vocabulary, not Crustdata’s indexed values. For example, regions use full names like "United States", not ISO3 codes like "USA". There is no autocomplete endpoint for Realtime Search values — refer to LinkedIn Sales Navigator for valid options.

Supported operators

OperatorDescriptionUse with
inValue is in listMost filter fields
not_inValue is not in listREGION, INDUSTRY, etc.

Response fields

Each company in the response includes these sections:
SectionKey fieldsDescription
basic_infoname, professional_network_url, primary_domain, description, year_founded, industriesCore identity and profile
headcounttotalTotal employee count
taxonomylinkedin_industryLinkedIn industry classification
locationshq_country, hq_city, hq_state, headquartersHeadquarters location
revenueestimated.lower_bound_usd, estimated.upper_bound_usdRevenue range estimate
peopledecision_makers_countNumber of decision makers

Validation rules

RuleBehavior
filters or professional_network_search_urlProvide one or the other, not both. Sending both returns an error.
page with filtersRequired when using filters. Range: 1–65.
page with URLNot required. URL-mode returns the first page of results.
Empty resultsReturns 200 with an empty companies array.

Errors

400 — Invalid filter key
{
    "error": {
        "type": "invalid_request",
        "message": "'filter_type' is not supported. Use 'field' instead.",
        "metadata": []
    }
}
401 — Invalid API key
{
    "message": "Invalid API key in request"
}

API reference summary

DetailValue
EndpointPOST /company/professional_network/search/live
AuthBearer token + x-api-version: 2025-11-01
Requestfilters array OR professional_network_search_url (mutually exclusive), plus page (1–65)
Response{ companies, total_display_count }
PaginationPage-based. 25 results per page. Increment page until companies is empty.
Empty result200 with "companies": []
Errors400 (bad filter/URL), 401 (bad auth), 500 (server error)
Filter vocabulary comes from LinkedIn Sales Navigator. There is no autocomplete endpoint for Realtime Search values.
For shared conventions, error handling, and retry guidance, see Conventions. See the full API reference for the complete OpenAPI schema.

What to do next

  • Search Crustdata’s database — use Company Search to query indexed company data with more filter options and sorting.
  • Enrich a company — use Company Enrich to get a detailed profile for a known company.
  • See more examples — browse company examples for ready-to-copy patterns.
  • Full API reference — see the OpenAPI spec for the complete request/response schema.