# UK Business Check (Bulk)

`POST /uk_business_checks`

- Live: `POST https://gdapi.globaldata.net.au/api/v2/uk_business_checks`
- Sandbox: `POST https://sandbox-gdapi.globaldata.net.au/api/v2/uk_business_checks`

Checks up to 50 UK companies in a single synchronous request. Each item in `requests` is looked up exactly as `/uk_business_check` would, and the results are returned in the same order with the caller's `check_id` echoed back for correlation.

## Per-item errors

A problem with one item does not fail the batch. Items that fail carry an `error` string and an empty `match`, and are not billed:

- `The number is not a valid UK company number.` - the number is not 8 alphanumeric characters.
- `Companies House service is currently unavailable.` - Companies House could not be reached for that item.

Items where the number is valid but Companies House holds no record return `"match": []` with no `error`, and are billed as an attempt.

## Rate limits

Each item may require up to three Companies House requests. Batches are processed sequentially, so large batches take proportionally longer to respond.

## Sandbox Environment

Uses the same deterministic fixture set as `/uk_business_check`.

## Request body

| Field | Type | Description |
|-------|------|-------------|
| `requests` | array of objects [1..50 items] | **Required.** |
| `requests[].check_id` | string [max 255 characters] | Optional caller-supplied identifier, echoed back on the matching result. Example: `entity-uuid-1` |
| `requests[].number` | string [max 255 characters] | **Required.** The 8-character UK Companies House company number. Example: `01234567` |

**Sample request**

```json
{
    "requests": [
        {
            "check_id": "entity-uuid-1",
            "number": "01234567"
        }
    ]
}
```

## Responses

### 200 Batch complete. Inspect each result for `error`.

Content type: `application/json`

| Field | Type | Description |
|-------|------|-------------|
| `message` | string | Example: `Ok` |
| `api_reference` | string (uuid) | Audit reference for this call. Example: `fe4291ca-d831-4760-96df-c9cb03b3cd95` |
| `results` | array of objects |  |
| `results[].check_id` | string or null | Example: `entity-uuid-1` |
| `results[].error` | string | Present only when this item could not be checked. Example: `The number is not a valid UK company number.` |
| `results[].match` | one of 2 shapes | One of: UK Business Check match; Empty array. The matched company, or an empty array `[]` when not found or on error. Empty array: Returned in place of an empty object for backward compatibility. When the associated object has no data, the API returns an empty array `[]` instead of an empty object `{}`. Clients should treat `[]` as equivalent to `{}` for these fields. This shape exists for backward compatibility and will not be removed. (array [max 0 items]) |
| `results[].match (UK Business Check match).company_number` | string | Example: `01234567` |
| `results[].match (UK Business Check match).company_name` | string | Example: `ACME TRADING LIMITED` |
| `results[].match (UK Business Check match).company_status` | string | Companies House status, e.g. `active`, `dissolved`, `liquidation`, `dormant`. Example: `active` |
| `results[].match (UK Business Check match).company_status_detail` | string or null |  |
| `results[].match (UK Business Check match).type` | string | Companies House company type, e.g. `ltd`, `plc`, `llp`. Example: `ltd` |
| `results[].match (UK Business Check match).jurisdiction` | string or null | Example: `england-wales` |
| `results[].match (UK Business Check match).date_of_creation` | string (date) or null | Example: `2001-03-14` |
| `results[].match (UK Business Check match).date_of_cessation` | string (date) or null |  |
| `results[].match (UK Business Check match).registered_office_address` | object |  |
| `results[].match (UK Business Check match).registered_office_address.address_line_1` | string or null | Example: `1 High St` |
| `results[].match (UK Business Check match).registered_office_address.address_line_2` | string or null |  |
| `results[].match (UK Business Check match).registered_office_address.locality` | string or null | Example: `London` |
| `results[].match (UK Business Check match).registered_office_address.region` | string or null |  |
| `results[].match (UK Business Check match).registered_office_address.postal_code` | string or null | Example: `SW1A 1AA` |
| `results[].match (UK Business Check match).registered_office_address.country` | string or null | Example: `England` |
| `results[].match (UK Business Check match).previous_company_names` | array of objects |  |
| `results[].match (UK Business Check match).previous_company_names[].name` | string | Example: `ACME LIMITED` |
| `results[].match (UK Business Check match).previous_company_names[].effective_from` | string (date) or null | Example: `1998-01-01` |
| `results[].match (UK Business Check match).previous_company_names[].ceased_on` | string (date) or null | Example: `2001-03-14` |
| `results[].match (UK Business Check match).sic_codes` | array of strings | SIC codes as plain strings. |
| `results[].match (UK Business Check match).officers` | array of objects | Officers appointed or resigned within the last 12 months. Long-standing officers with no change in that period are omitted. Active officers are listed first. |
| `results[].match (UK Business Check match).officers[].officer_id` | string or null | Companies House officer appointment identifier. Can be passed to `/company_house_officer_report`. Example: `abc123` |
| `results[].match (UK Business Check match).officers[].name` | string | Example: `SMITH, John` |
| `results[].match (UK Business Check match).officers[].officer_role` | string | Example: `director` |
| `results[].match (UK Business Check match).officers[].appointed_on` | string (date) or null | Example: `2020-05-01` |
| `results[].match (UK Business Check match).officers[].resigned_on` | string (date) or null |  |
| `results[].match (UK Business Check match).filing_history` | array of objects | Filings made within the last 12 months, newest first (from the 100 most recent filings on record). |
| `results[].match (UK Business Check match).filing_history[].transaction_id` | string | Example: `MzQ1NjAwMQ` |
| `results[].match (UK Business Check match).filing_history[].document_id` | string or null | Identifier for `/company_house_document/{documentId}`; null when no document is available. Example: `8j9Kx2` |
| `results[].match (UK Business Check match).filing_history[].date` | string (date) | Example: `2026-06-30` |
| `results[].match (UK Business Check match).filing_history[].type` | string | Companies House form type, e.g. `AA`, `CS01`, `AP01`. Example: `AA` |
| `results[].match (UK Business Check match).filing_history[].category` | string | Example: `accounts` |
| `results[].match (UK Business Check match).filing_history[].description` | string | Example: `accounts-with-accounts-type-micro-entity` |

**Sample response**

```json
{
    "message": "Ok",
    "api_reference": "fe4291ca-d831-4760-96df-c9cb03b3cd95",
    "results": [
        {
            "check_id": "entity-uuid-1",
            "error": "The number is not a valid UK company number.",
            "match": {
                "company_number": "01234567",
                "company_name": "ACME TRADING LIMITED",
                "company_status": "active",
                "company_status_detail": null,
                "type": "ltd",
                "jurisdiction": "england-wales",
                "date_of_creation": "2001-03-14",
                "date_of_cessation": null,
                "registered_office_address": {
                    "address_line_1": "1 High St",
                    "address_line_2": null,
                    "locality": "London",
                    "region": null,
                    "postal_code": "SW1A 1AA",
                    "country": "England"
                },
                "previous_company_names": [
                    {
                        "name": "ACME LIMITED",
                        "effective_from": "1998-01-01",
                        "ceased_on": "2001-03-14"
                    }
                ],
                "sic_codes": [
                    "62012",
                    "62020"
                ],
                "officers": [
                    {
                        "officer_id": "abc123",
                        "name": "SMITH, John",
                        "officer_role": "director",
                        "appointed_on": "2020-05-01",
                        "resigned_on": null
                    }
                ],
                "filing_history": [
                    {
                        "transaction_id": "MzQ1NjAwMQ",
                        "document_id": "8j9Kx2",
                        "date": "2026-06-30",
                        "type": "AA",
                        "category": "accounts",
                        "description": "accounts-with-accounts-type-micro-entity"
                    }
                ]
            }
        }
    ]
}
```

Standard error responses: 400, 401, 402, 403, 429, 5XX (see [Common error responses](/docs/reference/general/common-error-responses.md))

