Search Companies
Search the Crustdata company database using structured filters, a natural-language query, or both. Ranked search supports hybrid, lexical, and semantic retrieval with cursor pagination: up to 100 results per page and 1,000 candidate positions per search. Ranked cursors expire 20 minutes after the initial search. The first 100 candidates are reranked; later results use retrieval ranking without another reranking pass. Filter-only search supports complex AND/OR filter logic, cursor-based pagination, sorting, and field selection. Only indexed fields are searchable; use /company/enrich for non-indexed fields like news, people, or web_traffic.
Pricing: 0.03 credits per result, plus a per-result charge for each premium group you filter on or receive (taxonomy 0.1; followers, headcount, funding, hiring, software_reviews and maps 0.2; technographics 1, filter side only). Filtering and receiving bill independently and sorting is free. Premium groups are returned when you name them in fields or when your plan includes them at no charge, so a plain request costs the base price. Your account’s prices are on /account/endpoints.
Default rate-limit is 30 requests per minute. Send an email to gtm@crustdata.co to discuss higher limits if needed for your use case.
Authorizations
API key passed as a Bearer token in the Authorization header.
Headers
API version to use. This endpoint currently requires 2025-11-01.
2025-11-01 "2025-11-01"
Body
Structured filters, ranked search, pagination, sorting, and field selection
Request body for searching the company database. Supply at least one of filters or search.
Search filters. Required when search is omitted. When combined with ranked search, filters are hard constraints applied before retrieval.
- Option 1
- Option 2
Pagination cursor from the previous response's next_cursor. For ranked search, keep query, mode, filters and API version unchanged; limit and authorized fields may change. Cursors expire 20 minutes after the initial ranked search. Restart without cursor if the cursor or cached search is no longer valid.
"H4sIAJj5zGkC_xXMMQ7CMAxA0..."
Results per page. The maximum is 1000 for filter-only search and 100 for ranked search. Ranked search covers at most 1000 candidate positions across pages.
1 <= x <= 1000Sort directives applied to filter-only results. Not supported with ranked search.
Fields to return in the response. Use dot-notation for nested fields (e.g., "basic_info.name", "headcount.total"). Each company always includes crustdata_company_id, even when you do not request it. Every requested field is in the response, and a field with no data for the company is null. When a requested group has no data, the whole group is null, even if you asked for one of its sub-fields. Valid top-level groups for search: basic_info, revenue, headcount, funding, hiring, locations, taxonomy, followers, social_profiles, software_reviews, metadata, updated_at, indexed_at, crustdata_company_id. Some groups are filter-only and cannot be selected here (for example roles, skills, seo, competitors), and groups not in the search index (for example news, people, web_traffic, employee_reviews) are rejected. Use /company/enrich for those.
Response
Companies matching the search criteria
Paginated response from the /company/search endpoint.

