Bulk company search export page
Same filters as GET /companies, with page size up to 500 (vs 100 on the standard list). Contact emails are included when available. For large pulls, page with cursor (cursor = last row entity_id). Large offset values get slow. Each page consumes 1 monthly quota request.
Request
- Base URL: https://compabase.com/api/v1
- URL: https://compabase.com/api/v1/companies/export
- Auth: one of:
- API key in header X-API-Key
- HTTP bearer
Query parameters
Free-text search (company name and identifiers). Digits are treated as a possible KRS/NIP/REGON lookup. Whitespace is trimmed. Matching strategy: - identifier-like numeric input: identifier lookup path is used first. For 10-digit numeric values, exact match is attempted against KRS (registry_number) and NIP; an exact match is also attempted against REGON as stored in the index. For other numeric lengths, prefix matching is used for those identifier fields. - textual input: case-insensitive substring match on company name (ILIKE %q%). Numeric lookup has priority over text-name matching when q contains only digits. Example: q=0000028860 is treated as identifier lookup (not generic relevance search).
Keyword filter with OR semantics. Pass a comma-separated list, or repeat the parameter. Each keyword must be at least 2 characters after trimming. Empty tokens are ignored. Duplicate tokens may appear and are not guaranteed to be deduplicated server-side. Mixing repeated params and CSV is supported (e.g. keywords=a,b&keywords=c).
Page size for bulk export (max 500).
Zero-based row offset for classic offset pagination. Client contract: use either offset or cursor (not both). If both are provided, the server returns 400 CONFLICTING_PARAMETERS.
Optional cursor for pagination: entity_id of the last row from the previous page. Cursor paging is ordered by entity_id ascending. Use it for deep paging/export-style traversal. Do not combine with offset; if both are sent, request fails with 400 CONFLICTING_PARAMETERS. When present, the server may return pagination.total: -1 and include pagination.cursor for the next page.
PKD code (Polish business activity classification). Case-insensitive; trimmed and uppercased server-side. By default only the primary PKD (primary_only=true) is matched; set primary_only=false to match any code in all_pkd_codes.
Boolean filter syntax is accepted (true/false). Semantics: true (default) means pkd matches primary_pkd only. false means pkd can match any entry in all_pkd_codes.
Boolean filter syntax is accepted (true/false). Semantics: true applies positive filter (only companies with email). false is syntactically valid and treated as no filter.
Boolean filter syntax is accepted (true/false). Semantics: true applies positive filter (only companies with website). false is syntactically valid and treated as no filter.
Boolean filter syntax is accepted (true/false). Semantics: true applies positive filter (only active companies). false is syntactically valid and treated as no filter.
Minimum total revenue (revenue_total). Currency depends on currency query param (PLN/USD/EUR). If currency is omitted, PLN is used. Values are in full currency units (not thousands), e.g. 1000000 = one million PLN. Evaluated against the latest indexed financial snapshot per company. Companies with null in the selected revenue column do not match this filter.
Maximum total revenue threshold in full units. Currency depends on currency query param (PLN/USD/EUR). If currency is omitted, PLN is used. If revenue_min > revenue_max, the API returns 400 with code INVALID_RANGE. Evaluated against the latest indexed financial snapshot per company. Companies with null in the selected revenue column do not match this filter.
Response
One page of companies (same shape as GET /companies).
Changes
No recorded changes to this operation across all 1 revision of this API.