List legal entities
The entities.list operation: GET /api/v1/entities in the REST API and the entities_list tool in the MCP server.
GET
/api/v1/entitiesLists 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) andstarting_after - Authentication: API key with the
entities:readscope - 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 | 400 | limit or starting_after is malformed. | Fix the fields listed in details.issues and send the request again. |
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: api_version_unsupported, authentication_required, api_key_invalid, resource_not_found, dry_run_not_supported, rate_limited, internal_error.