---
title: "Get companies by CNAE sector code"
method: GET
path: "/api/v1/sector/{cnae}/companies"
tags: ["Sectors", "Companies"]
---

# Get companies by CNAE sector code

`GET /api/v1/sector/{cnae}/companies`

## Request

- Base URL: `https://openmercantil.es`
- URL: `https://openmercantil.es/api/v1/sector/{cnae}/companies`
- Auth: one of:
  - none
  - API key in header `X-API-Key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/openmercantil/apis/openmercantil-public-api/docs/api/v1/sector/:cnae/companies/get.ts> (a function with typed inputs; its response is checked against the schema)

Return companies belonging to a given CNAE (Clasificación Nacional de Actividades Económicas) sector. CNAE codes 1-4 digits (eg. 62 = programación, 6201 = programación informática).

## Path parameters

- `cnae` string, required

## Query parameters

- `limit` integer
- `offset` integer
- `sort` 'acts' | 'recent' | 'oldest' | 'name'
- `province` string

## Response `200`

Companies in sector

- SectorCompaniesResponse
  - `code` string, required
  - `count` integer, nullable, required
  - `count_status` 'precomputed' | 'not_precomputed', required
  - `limit` integer, required
  - `offset` integer, required
  - `sort` string, required
  - `items` CompanySearchItem[], required
    - `slug` string, required
    - `name` string, required
    - `cif` string, required
    - `acts_count` integer, required
    - `last_seen` string, nullable
    - `province` string, nullable
    - `cnae_code` string, nullable
    - `cnae_section` string, nullable
    - `capital_cents` integer, nullable
    - `first_seen` string, nullable
    - `matched_alias` string: Present only when an exact safe alias was matched; slug is always canonical.
    - `aliases` string[]

## Other responses

- `400`: Invalid request
- `422`: The query is lexically valid but outside a documented numeric or length bound, or uses an unsupported indexed combination.
- `429`: Rate limit exceeded
- `503`: Required sector-company index unavailable

## Changes

- **2026-07-26** `996f96a11758`: 1 breaking, 17 info
  - for the `query` request parameter `limit`, default value was changed from `50` to `20`
  - api operation id `getSectorByCnaeCompanies` was added
  - the endpoint scheme security `apiKey` was added to the API
  - the endpoint scheme security `bearerAuth` was added to the API
  - …14 more

[Operation history](https://skmtc.dev/openmercantil/apis/openmercantil-public-api/changes/api/v1/sector/:cnae/companies/get.md)

---

[API](https://skmtc.dev/openmercantil/apis/openmercantil-public-api.md) - [All operations](https://skmtc.dev/openmercantil/apis/openmercantil-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openmercantil/apis/openmercantil-public-api/revisions/601ff6123c86?raw)
