List legal entities waiting for document review
The platform.verifications.list operation: GET /api/v1/platform/verifications in the REST API and the platform_verifications_list tool in the MCP server.
/api/v1/platform/verificationsThe verification queue (spec §39.1): legal entities whose tax ID couldn't be validated with VIES, HMRC or CH UID, so
their organization uploaded a company registry extract for review (verification.status: pending_review). Oldest
first, so the queue is worked in order. Each entry has the entity's registry facts (legal name, address, registry
ID, home tax ID), its organization and the documents uploaded for it (download them from the platform console).
status lists verified or rejected entities instead, for a look back. Decide with
platform.verifications.decide. Platform admins only.
At a glance
- REST:
GET /api/v1/platform/verifications - MCP tool:
platform_verifications_list - Operation ID:
platform.verifications.list - Scope: Platform
- Permission:
platform:write - 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
platform:writescope - Since: M12
Request
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
status | one of unverified, pending_review, verified, rejected | No | Which entities: pending_review (default), verified, rejected or unverified. |
limit | integer (1 to 100) | No | Page size, 1 to 100 (default 10). |
starting_after | ent_… ID | No | The next_cursor of the previous page. |
Response
200 OK with a JSON object, a page of the list (newest first):
| Field | Type | Description |
|---|---|---|
object | "list" | |
data | array of object | |
data[].object | "platform_entity_verification" | |
data[].org | object | |
data[].org.id | org_… ID | |
data[].org.slug | string | |
data[].org.name | string | |
data[].entity | object | |
data[].entity.id | ent_… ID | |
data[].entity.slug | string | |
data[].entity.legalName | string | |
data[].entity.tradingName | string or null | |
data[].entity.country | string | |
data[].entity.status | string | |
data[].entity.verification | object | |
data[].entity.verification.status | one of unverified, pending_review, verified, rejected | |
data[].entity.verification.method | one of vies, hmrc, ch_uid, document | |
data[].entity.verification.checkedAt | date-time or null | |
data[].entity.verification.reviewer | usr_… ID or null | |
data[].entity.verification.notes | string or null | |
data[].entity.verification.documentFileId | file_… ID or null | The registry extract under review (entities.registry_extract.upload). |
data[].entity.address | object | |
data[].entity.address.line1 | string | |
data[].entity.address.line2 | string or null | |
data[].entity.address.city | string | |
data[].entity.address.postalCode | string or null | |
data[].entity.address.region | string or null | |
data[].entity.address.country | string | |
data[].entity.companyRegistryId | string | |
data[].entity.homeTaxId | object | |
data[].entity.homeTaxId.type | string | |
data[].entity.homeTaxId.value | string | |
data[].waitingSince | date-time | |
data[].documents | array of object | |
data[].documents[].id | file_… ID | |
data[].documents[].filename | string or null | |
data[].documents[].kind | string | |
data[].documents[].contentType | string | |
data[].documents[].size | integer | |
data[].documents[].livemode | boolean | |
data[].documents[].underReview | boolean | The extract the entity's verification names (the latest upload). |
data[].documents[].createdAt | date-time | |
has_more | boolean | |
next_cursor | ent_… ID or null |
Examples
The queue
GET /api/v1/platform/verifications
Authorization: Bearer or_test_…
Response (200):
{
"object": "list",
"data": [
{
"object": "platform_entity_verification",
"org": {
"id": "org_01m5wvkry1e6w94sjxgme33fs6",
"slug": "nordwind",
"name": "Nordwind"
},
"entity": {
"id": "ent_01m5wvkry1e6w94sjxgme33fsg",
"slug": "nordwind-no",
"legalName": "Nordwind Software AS",
"tradingName": null,
"country": "NO",
"status": "onboarding",
"verification": {
"status": "pending_review",
"method": "document",
"checkedAt": null,
"reviewer": null,
"notes": null,
"documentFileId": "file_01m5wvkry1e6w94sjxgme33fsn"
},
"address": {
"line1": "Karl Johans gate 1",
"line2": null,
"city": "Oslo",
"postalCode": "0154",
"region": null,
"country": "NO"
},
"companyRegistryId": "923 456 789",
"homeTaxId": {
"type": "no_vat",
"value": "NO923456789MVA"
}
},
"waitingSince": "2026-11-02T13:10:00.000Z",
"documents": [
{
"id": "file_01m5wvkry1e6w94sjxgme33fsn",
"filename": "brreg-extract.pdf",
"kind": "registry_extract",
"contentType": "application/pdf",
"size": 184220,
"livemode": true,
"underReview": true,
"createdAt": "2026-11-02T13:09:41.000Z"
}
]
}
],
"has_more": false,
"next_cursor": null
}
Errors
| Code | HTTP status | When | What to do |
|---|---|---|---|
validation_failed | 400 | A filter or pagination value is invalid. | Fix the fields listed in details.issues and send the request again. |
permission_denied | 403 | You aren't a platform admin. | 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.