---
title: "Api Companies"
method: GET
path: "/api/companies"
---

# Api Companies

`GET /api/companies`

## Request

- Base URL: `https://cuisor.ro`
- URL: `https://cuisor.ro/api/companies`
- Auth: one of:
  - none
  - HTTP bearer
  - API key in header `X-API-Key`

Companies matching a filter, ordered by turnover, largest first.

Keyset paginated: `next_cursor` present means another page exists, exactly, with no
count over the match set and no `truncated` flag that could disagree with reality.

Every filter is optional and they compose, which is the point: "restaurants registered
in Cluj in the last week" is one call, and so is "of these 40 CUIs, which are dissolved".

`sort=registered_desc` is what makes the first of those answerable at all. Under the
default order a company registered last month has no filed turnover yet and therefore
sits behind four million filers in the null tail.

## Query parameters

- `caen` string: One or more CAEN codes, comma separated
- `caen_query` string, nullable: Free text, e.g. 'coffee shops'. Resolved and echoed back
- `cui` string: One or more CUIs, comma separated. `RO` prefix and leading zeros are fine
- `judet` string, nullable
- `status` string, nullable
- `registered_after` string, nullable
- `registered_before` string, nullable
- `min_turnover` number, nullable
- `max_turnover` number, nullable
- `min_employees` integer, nullable
- `max_employees` integer, nullable
- `sort` string: turnover_desc (default) or registered_desc, newest registration first
- `limit` integer
- `cursor` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/cuisor/apis/cuisor-ro-api.md) · [All operations](https://skmtc.dev/cuisor/apis/cuisor-ro-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cuisor/apis/cuisor-ro-api/revisions/46b3e97da7dd?raw)
