# List legal entities

> The entities.list operation: GET /api/v1/entities in the REST API and the entities_list tool in the MCP server.

Lists the organization's legal entities, newest first. An organization-level request sees every entity;
a request inside one entity (an entity-scoped member, or an entity API key) sees only that entity.
Paginate with `limit` (1–100, default 10) and `starting_after` (the `next_cursor` of the previous page).

## At a glance

- **REST:** `GET /api/v1/entities`
- **MCP tool:** `entities_list`
- **Operation ID:** `entities.list`
- **Scope:** Organization, or one of its legal entities or brands
- **Permission:** `entities:read`
- **Risk tier:** `read`
- **Dry run:** Not supported
- **Idempotency:** Not needed (read only)
- **Modes:** Test and live
- **Pagination:** `limit` (at most 100) and `starting_after`
- **Authentication:** API key with the `entities:read` scope
- **Since:** M1

## Request

### Query parameters

| Field            | Type               | Required | Description |
| ---------------- | ------------------ | -------- | ----------- |
| `limit`          | integer (1 to 100) | No       |             |
| `starting_after` | `ent_…` ID         | No       |             |

## Response

`200 OK` with a JSON object, a page of the list (newest first):

| Field                                        | Type                                                          | Description |
| -------------------------------------------- | ------------------------------------------------------------- | ----------- |
| `object`                                     | `"list"`                                                      |             |
| `data`                                       | array of object                                               |             |
| `data[].id`                                  | `ent_…` ID                                                    |             |
| `data[].object`                              | `"legal_entity"`                                              |             |
| `data[].orgId`                               | `org_…` ID                                                    |             |
| `data[].slug`                                | string                                                        |             |
| `data[].legalName`                           | string                                                        |             |
| `data[].tradingName`                         | string or null                                                |             |
| `data[].establishment`                       | object                                                        |             |
| `data[].establishment.country`               | string                                                        |             |
| `data[].establishment.subdivision`           | string or null                                                |             |
| `data[].establishment.address`               | object                                                        |             |
| `data[].establishment.address.line1`         | string                                                        |             |
| `data[].establishment.address.line2`         | string or null                                                |             |
| `data[].establishment.address.city`          | string                                                        |             |
| `data[].establishment.address.postalCode`    | string or null                                                |             |
| `data[].establishment.address.region`        | string or null                                                |             |
| `data[].establishment.address.country`       | string                                                        |             |
| `data[].establishment.companyRegistryId`     | string                                                        |             |
| `data[].establishment.euVatEstablished`      | boolean                                                       |             |
| `data[].homeTaxId`                           | object                                                        |             |
| `data[].homeTaxId.type`                      | string                                                        |             |
| `data[].homeTaxId.value`                     | string                                                        |             |
| `data[].verification`                        | object                                                        |             |
| `data[].verification.status`                 | one of `unverified`, `pending_review`, `verified`, `rejected` |             |
| `data[].verification.method`                 | one of `vies`, `hmrc`, `ch_uid`, `document`                   |             |
| `data[].verification.checkedAt`              | date-time or null                                             |             |
| `data[].defaultCurrency`                     | string                                                        |             |
| `data[].timezone`                            | string                                                        |             |
| `data[].invoiceSettings`                     | object                                                        |             |
| `data[].invoiceSettings.numberFormat`        | string                                                        |             |
| `data[].invoiceSettings.sequenceResetYearly` | boolean                                                       |             |
| `data[].invoiceSettings.language`            | string                                                        |             |
| `data[].invoiceSettings.bilingual`           | string or null                                                |             |
| `data[].invoiceSettings.footerText`          | string or null                                                |             |
| `data[].invoiceSettings.bankTransfer`        | object or null                                                |             |
| `data[].status`                              | one of `onboarding`, `active`, `suspended`, `archived`        |             |
| `data[].createdAt`                           | date-time                                                     |             |
| `data[].updatedAt`                           | date-time                                                     |             |
| `has_more`                                   | boolean                                                       |             |
| `next_cursor`                                | `ent_…` ID or null                                            |             |

## Examples

### The first page

```http
GET /api/v1/entities?limit=10
Authorization: Bearer or_test_…
```

Response (`200`):

```json
{
  "object": "list",
  "data": [
    {
      "id": "ent_01m4tx5nj8emwbyf7y9vcf47x2",
      "object": "legal_entity",
      "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
      "slug": "acme-hr",
      "legalName": "Acme Digital d.o.o.",
      "tradingName": null,
      "establishment": {
        "country": "HR",
        "subdivision": null,
        "address": {
          "line1": "Ilica 1",
          "line2": null,
          "city": "Zagreb",
          "postalCode": "10000",
          "region": null,
          "country": "HR"
        },
        "companyRegistryId": "080000000",
        "euVatEstablished": true
      },
      "homeTaxId": {
        "type": "eu_vat",
        "value": "HR12345678901"
      },
      "verification": {
        "status": "unverified",
        "method": "vies",
        "checkedAt": null
      },
      "defaultCurrency": "EUR",
      "timezone": "Europe/Zagreb",
      "invoiceSettings": {
        "numberFormat": "{series}-{year}-{seq:06}",
        "sequenceResetYearly": true,
        "language": "en",
        "bilingual": null,
        "footerText": null,
        "bankTransfer": null
      },
      "status": "onboarding",
      "createdAt": "2026-10-13T12:00:00.000Z",
      "updatedAt": "2026-10-13T12:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}
```

### One per page

```http
GET /api/v1/entities?limit=1
Authorization: Bearer or_test_…
```

Response (`200`):

```json
{
  "object": "list",
  "data": [
    {
      "id": "ent_01m4tx5nj8emwbyf7y9vcf47x3",
      "object": "legal_entity",
      "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
      "slug": "acme-de",
      "legalName": "Acme GmbH",
      "tradingName": null,
      "establishment": {
        "country": "HR",
        "subdivision": null,
        "address": {
          "line1": "Ilica 1",
          "line2": null,
          "city": "Zagreb",
          "postalCode": "10000",
          "region": null,
          "country": "HR"
        },
        "companyRegistryId": "080000000",
        "euVatEstablished": true
      },
      "homeTaxId": {
        "type": "eu_vat",
        "value": "HR12345678901"
      },
      "verification": {
        "status": "unverified",
        "method": "vies",
        "checkedAt": null
      },
      "defaultCurrency": "EUR",
      "timezone": "Europe/Zagreb",
      "invoiceSettings": {
        "numberFormat": "{series}-{year}-{seq:06}",
        "sequenceResetYearly": true,
        "language": "en",
        "bilingual": null,
        "footerText": null,
        "bankTransfer": null
      },
      "status": "onboarding",
      "createdAt": "2026-10-13T12:00:00.000Z",
      "updatedAt": "2026-10-13T12:00:00.000Z"
    }
  ],
  "has_more": true,
  "next_cursor": "ent_01m4tx5nj8emwbyf7y9vcf47x3"
}
```

## Errors

| Code                                                                                   | HTTP status | When                                      | What to do                                                                      |
| -------------------------------------------------------------------------------------- | ----------- | ----------------------------------------- | ------------------------------------------------------------------------------- |
| [`validation_failed`](https://ownrecord.io/docs/reference/errors.md#validation_failed) | 400         | `limit` or `starting_after` is malformed. | Fix the fields listed in `details.issues` and send the request again.           |
| [`permission_denied`](https://ownrecord.io/docs/reference/errors.md#permission_denied) | 403         | You can't see legal entities here.        | Ask an organization owner or admin for a role or scope that allows this action. |

It can also return these [common errors](https://ownrecord.io/docs/reference.md#common-errors): [`api_version_unsupported`](https://ownrecord.io/docs/reference/errors.md#api_version_unsupported), [`authentication_required`](https://ownrecord.io/docs/reference/errors.md#authentication_required), [`api_key_invalid`](https://ownrecord.io/docs/reference/errors.md#api_key_invalid), [`resource_not_found`](https://ownrecord.io/docs/reference/errors.md#resource_not_found), [`dry_run_not_supported`](https://ownrecord.io/docs/reference/errors.md#dry_run_not_supported), [`rate_limited`](https://ownrecord.io/docs/reference/errors.md#rate_limited), [`internal_error`](https://ownrecord.io/docs/reference/errors.md#internal_error).
