---
title: "Query and export companies with rich filtering. Filter by industry, headcount, location, tags, custom_attrs, or external"
method: GET
path: "/api/v1/companies"
tags: ["companies"]
---

# Query and export companies with rich filtering. Filter by industry, headcount, location, tags, custom_attrs, or external

`GET /api/v1/companies`

## Request

- Base URL: `https://crispy.sh`
- URL: `https://crispy.sh/api/v1/companies`
- Auth: HTTP bearer

## Query parameters

- `list_id` string: Scope to a company list (kind='companies') by list ID.
- `industry` string[]: Filter by industry tags (TEXT[] containment — all must match).
- `headcount_min` number: Minimum employee count (inclusive).
- `headcount_max` number: Maximum employee count (inclusive).
- `location` string: ilike filter on headquarters city or country (e.g. 'London' or 'UK').
- `has_employees_in_my_network` boolean: true = only companies with at least one contact linked via company_id in your account.
- `custom_attrs` object: JSONB containment filter on custom_attrs (e.g. {tier: 'A'}).
- `external_ids_match` object: JSONB containment filter on external_ids (e.g. {hubspot_company_id: 'hs-123'}).
- `tags` string[]: Any-match filter on tags (OR).
- `format` 'json' | 'csv': Response format (default json).
- `limit` number: Results per page (default 100, max 1000).
- `cursor` string: Pagination cursor from previous response.

## Response `200`

Success

## Other responses

- `401`: Missing or expired API key
- `403`: Insufficient key scope or permission denied
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/crispy/apis/crispy-rest-api.md) · [All operations](https://skmtc.dev/crispy/apis/crispy-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crispy/apis/crispy-rest-api/revisions/6bed0974d9ce?raw)
