← APIs / Companies House — UK Company Register
Verified

Companies House — UK Company Register

Apiosk Basicsby Apiosk Basics · General

The official register of every company incorporated in the United Kingdom, from Companies House. Search the register by company name, officer name or disqualified officer; resolve a company number; and pull the full public record for any UK company — registered office address, company status and type, incorporation and dissolution dates, SIC codes, accounts and confirmation-statement due dates, its officers (directors, secretaries, LLP members), its persons with significant control and beneficial owners, its complete filing history, its registered charges and mortgages, its insolvency history, its accounting exemptions and its UK establishments. Also follows one director across every company they have ever been appointed to, and returns disqualification orders in full. Read-only public data, published under the Open Government Licence v3.0.

dataapi
Price per request
$0.05
About

Companies House is the UK's statutory registrar: every limited company, LLP and overseas establishment in England, Wales, Scotland and Northern Ireland is on it by law, which makes this the authoritative answer to "does this UK company exist, who runs it, who really owns it, and is it in trouble". `/company` is the flagship: give it an eight-character company number (they are zero-padded — Tesco PLC is `00445790`, and Scottish and Northern Irish numbers carry an `SC` or `NI` prefix) and you get the profile; add a sub-resource to reach the twenty other per-company records behind the same number — `officers` for the current and resigned board, `persons-with-significant-control` and the beneficial-owner variants for who ultimately controls it (the UK's answer to UBO screening), `filing-history` for every document ever filed with its category and date, `charges` for secured lending against the company, `insolvency` for administration, liquidation and receivership history, `registers` for which statutory registers are held at Companies House rather than at the company, `uk-establishments` for the branches of an overseas company, and `exemptions` for accounting exemptions claimed. Four searches sit alongside it: `/search/companies` by name, `/search/officers` by person, `/search/disqualified-officers` for people banned from directorship, and `/search` across all three at once. `/advanced-search/companies` is the screening tool — filter the whole register by SIC code, company status, company type, location, and incorporation or dissolution date windows, which is how you build a list rather than look one thing up. `/officers` takes an officer id from any officer list and returns that person's entire appointment history across every UK company, which is the primitive for director-network and conflict-of-interest work. `/alphabetical-search/companies` and `/dissolved-search/companies` cover the ordered name index and the dissolved register. Upstream is free but keyed; Apiosk holds the key and meters per call, so an agent needs no Companies House registration of its own. Contains public sector information licensed under the Open Government Licence v3.0.

Base URL
https://gateway.apiosk.com/companies-house
Technical Specs
Auth Methodbasic
Response FormatJSON
Endpoints12
Endpoints
MethodPathDescriptionCost
GET /advanced-search/companies Screen the whole UK register with filters rather than looking one company up. Combine a name fragment with SIC codes (what the company does), company status (active, dissolved, liquidation, administration), company type and subtype, a location, and windows on the incorporation date or the dissolution date — then page through up to 5000 results at a time. This is how you build a list: every active UK company in a given industry incorporated since a date, every company dissolved in a window, every company of a given legal form in a place. company_name_excludes drops the false positives a name fragment drags in. The result items are the same company records the name search returns, so each carries a company number that goes straight into /company.
$0.05 default
View details
GET /alphabetical-search/companies Walk the UK company register in alphabetical order from a given name. Unlike the relevance-ranked name search, this returns the companies that sit around the search term in the register's own alphabetical index, and pages forwards and backwards from a position rather than by offset — pass the ordered_alpha_key_with_id of a result to search_above or search_below to continue in either direction. Use it to enumerate names in a range, to check what is registered immediately either side of a proposed company name, or to walk a slice of the register deterministically without relevance ranking reordering the results underneath you.
$0.03 default
View details
GET /company The full public record of one UK company from the official Companies House register, by company number. On its own it returns the company profile: registered name and any previous names, company number, status (active, dissolved, liquidation, administration), company type, date of incorporation and of dissolution, registered office address and whether it is in dispute, SIC codes for what the company does, accounts and confirmation-statement made-up and due dates, and flags for whether the company has charges, insolvency history or persons with significant control. Add a sub_resource to reach the same company's other records without a second lookup: officers (current and resigned directors, secretaries and LLP members, with dates of birth to month precision, nationality, occupation and appointment/resignation dates), persons-with-significant-control and the beneficial-owner variants (who ultimately owns or controls the company, their nature of control, and the ownership percentage bands — the UK's statutory UBO disclosure), persons-with-significant-control-statements (where the company states why no PSC is recorded), filing-history (every document ever filed, with its type, category, date and description), charges (registered mortgages and secured lending, with status and the persons entitled), insolvency (administration, liquidation and receivership cases with their practitioners), registered-office-address on its own, registers (which statutory registers are held at Companies House rather than at the company), exemptions (accounting exemptions claimed), and uk-establishments (the UK branches of an overseas company). Company numbers are eight characters and zero-padded — Tesco PLC is 00445790 — and Scottish and Northern Irish companies carry SC and NI prefixes.
$0.05 default
View details
GET /disqualified-officers/corporate The full disqualification record of one banned CORPORATE officer — a company or other body corporate that has itself been disqualified from acting as a director — by officer id from the disqualified-officer search. Returns the same structure as the natural-person record: the dates the disqualification runs from and to, whether it was a court order or an undertaking, the Act and section relied on, the case identifier, the reasons, the companies the conduct related to, and any permissions to act. Corporate disqualifications are rarer than individual ones and are held in a separate index, which is why this is a different call from /disqualified-officers/natural — use the kind on the search hit to pick between them.
$0.03 default
View details
GET /disqualified-officers/natural The full disqualification record of one banned individual, by officer id from the disqualified-officer search. Returns each disqualification against the person: the dates it runs from and to, whether it was imposed by court order or accepted by undertaking, the section of the Company Directors Disqualification Act relied on, the case identifier, the reasons given, the company the conduct related to, and any permissions to act granted by a court despite the ban. This is the evidence behind a hit, not just the hit — what a compliance file needs to record why a person is disqualified and until when. For a disqualified corporate body use /disqualified-officers/corporate instead.
$0.03 default
View details
GET /dissolved-search/companies Search only the companies that have been dissolved. The main company search covers dissolved companies too, but this index is dedicated to them and, uniquely, can search on a company's PREVIOUS names — set search_type to previous-name-dissolved to find a company under a name it traded under before it was renamed and then dissolved, which the live-register search cannot do. search_type also accepts alphabetical (walk the dissolved index in name order, paging with search_above and search_below) and best-match (relevance-ranked, paging with start_index). Each hit carries the company number, the date of cessation and the previous names, so a dissolved entity can be traced back to the record that closed.
$0.03 default
View details
GET /officers Every UK company one person has ever been an officer of. Give an officer id — from /search/officers, or from any company's officer list — and get that individual's complete appointment history: each company by name and number, the role held (director, secretary, LLP member), when they were appointed and when they resigned, their nationality, occupation and country of residence, and their date of birth to month precision. This is the director-network primitive: it turns one name into the full set of UK companies that person is connected to, which is what conflict-of-interest checks, related-party analysis and shell-company mapping are built on. Companies House does not merge people, so one human being may hold several officer ids where their name or address was recorded differently — cross-check the date of birth and address before treating two ids as the same person.
$0.05 default
View details
GET /persons-with-significant-control The notification history of one person with significant control, by PSC id. A company's PSC list gives who controls it today; this returns the sequence of notifications filed about a single PSC — when the control was notified, its nature (ownership of shares in the 25-50%, 50-75% or 75-100% band, voting rights, the right to appoint or remove directors, significant influence), and when it ceased. Use it to establish WHEN control changed rather than only who holds it now, which is the question that matters for beneficial-ownership history and for dating a change of control. The psc_id is only ever obtained from a company's persons-with-significant-control list; it cannot be derived from a name.
$0.03 default
View details
GET /search Search the whole Companies House register in one call — companies, officers and disqualified officers together — and get back a single ranked result set with each hit labelled by which index it came from. The call to make when you have a name and do not yet know whether it belongs to a company or to a person: a search for a founder's name returns both the companies whose name contains it and the officer records for the person. Each hit carries a title, a description, an address snippet and the self link to the full record, so a second call can go straight to /company or /officers with the identifier the hit supplies.
$0.05 default
View details
GET /search/companies Find a UK company by name and get its company number. The standard way in to everything else here: search the Companies House register by full or partial company name, and each hit comes back with the company number, its status (active, dissolved, liquidation), its type, its date of incorporation, its registered address snippet and the link to its full profile. Matching is relevance-ranked, not exact, so a trading name or a fragment works; filter on status yourself if you only want companies still trading. Feed the company_number from a hit straight into /company.
$0.05 default
View details
GET /search/disqualified-officers Search the UK register of disqualified directors by name. Returns people who have been banned by a court or by undertaking from acting as a company director, with the officer id needed to read the full order. This is the adverse-media-free, statutory version of a directorship check: a hit here means a UK court or the Insolvency Service has formally disqualified this person. Take the officer id from a hit to /disqualified-officers/natural or /disqualified-officers/corporate for the disqualification period, the reasons, the case reference and the company the conduct related to. A clean search is evidence of absence only within this register — it says nothing about disqualifications in other jurisdictions.
$0.05 default
View details
GET /search/officers Find a company officer by name across the whole UK register. Search directors, company secretaries and LLP members by full or partial name and get back each matching officer with their officer id, their date of birth to month precision, their address snippet, how many appointments they currently hold and how many they have resigned from. The officer id from a hit is the input to /officers, which returns that person's entire appointment history — so this is the first half of "which UK companies is this person involved in". Note that Companies House does not deduplicate people: the same individual can appear under several officer ids if their name or address was recorded differently on different appointments.
$0.05 default
View details
Endpoint documentation
GET/advanced-search/companies
$0.05 default
Description

Screen the whole UK register with filters rather than looking one company up. Combine a name fragment with SIC codes (what the company does), company status (active, dissolved, liquidation, administration), company type and subtype, a location, and windows on the incorporation date or the dissolution date — then page through up to 5000 results at a time. This is how you build a list: every active UK company in a given industry incorporated since a date, every company dissolved in a window, every company of a given legal form in a place. company_name_excludes drops the false positives a name fragment drags in. The result items are the same company records the name search returns, so each carries a company number that goes straight into /company.

Pricing
$0.05 default
Parameters
{
  "properties": {
    "company_name_excludes": {
      "description": "Drop companies whose name includes this text. Use it to strip the false positives a broad name fragment brings in.",
      "type": "string"
    },
    "company_name_includes": {
      "description": "The company name must include this text. Required here — an advanced search with no filter at all returns the head of the entire register.",
      "type": "string"
    },
    "company_status": {
      "description": "Restrict to companies in these statuses. Repeatable / comma-separated, e.g. active, dissolved, liquidation, administration, receivership, voluntary-arrangement.",
      "type": "string"
    },
    "company_subtype": {
      "description": "Restrict to a company subtype, e.g. community-interest-company.",
      "type": "string"
    },
    "company_type": {
      "description": "Restrict to these legal forms. Repeatable / comma-separated, e.g. ltd, plc, llp, private-limited-guarant-nsc, oversea-company.",
      "type": "string"
    },
    "dissolved_from": {
      "description": "Only companies dissolved on or after this date, ISO yyyy-mm-dd.",
      "format": "date",
      "type": "string"
    },
    "dissolved_to": {
      "description": "Only companies dissolved on or before this date, ISO yyyy-mm-dd.",
      "format": "date",
      "type": "string"
    },
    "incorporated_from": {
      "description": "Only companies incorporated on or after this date, ISO yyyy-mm-dd.",
      "format": "date",
      "type": "string"
    },
    "incorporated_to": {
      "description": "Only companies incorporated on or before this date, ISO yyyy-mm-dd.",
      "format": "date",
      "type": "string"
    },
    "location": {
      "description": "Restrict to companies whose registered office is in this location — a town, city or region.",
      "type": "string"
    },
    "sic_codes": {
      "description": "Restrict to companies carrying these SIC codes — the UK Standard Industrial Classification of what the company does, e.g. 62012 for business and domestic software development. Repeatable / comma-separated.",
      "type": "string"
    },
    "size": {
      "description": "How many results to return, 1 to 5000.",
      "type": "integer"
    },
    "start_index": {
      "description": "The offset into the whole result set that this page starts at.",
      "type": "integer"
    }
  },
  "required": [
    "company_name_includes"
  ],
  "type": "object"
}
Example response
{
  "etag": "a1b2c3",
  "hits": 312,
  "items": [
    {
      "company_name": "EXAMPLE SOFTWARE LTD",
      "company_number": "12345678",
      "company_status": "active",
      "company_type": "ltd",
      "date_of_creation": "2019-06-11",
      "links": {
        "company_profile": "/company/12345678"
      },
      "sic_codes": [
        "62012"
      ]
    }
  ],
  "kind": "search#advanced-search",
  "top_hit": {
    "company_name": "EXAMPLE SOFTWARE LTD",
    "company_number": "12345678",
    "company_status": "active",
    "company_type": "ltd",
    "date_of_creation": "2019-06-11",
    "links": {
      "company_profile": "/company/12345678"
    },
    "registered_office_address": {
      "locality": "Manchester",
      "postal_code": "M1 1AA"
    },
    "sic_codes": [
      "62012"
    ]
  },
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1."
}
GET/alphabetical-search/companies
$0.03 default
Description

Walk the UK company register in alphabetical order from a given name. Unlike the relevance-ranked name search, this returns the companies that sit around the search term in the register's own alphabetical index, and pages forwards and backwards from a position rather than by offset — pass the ordered_alpha_key_with_id of a result to search_above or search_below to continue in either direction. Use it to enumerate names in a range, to check what is registered immediately either side of a proposed company name, or to walk a slice of the register deterministically without relevance ranking reordering the results underneath you.

Pricing
$0.03 default
Parameters
{
  "properties": {
    "q": {
      "description": "The company name to position the alphabetical window at.",
      "type": "string"
    },
    "search_above": {
      "description": "The ordered_alpha_key_with_id of a result, to page to names above it in the index.",
      "type": "string"
    },
    "search_below": {
      "description": "The ordered_alpha_key_with_id of a result, to page to names below it in the index.",
      "type": "string"
    },
    "size": {
      "description": "How many results to return, 1 to 100.",
      "type": "integer"
    }
  },
  "required": [
    "q"
  ],
  "type": "object"
}
Example response
{
  "items": [
    {
      "company_name": "EXAMPLE SOFTWARE LTD",
      "company_number": "12345678",
      "company_status": "active",
      "links": {
        "company_profile": "/company/12345678"
      },
      "ordered_alpha_key_with_id": "EXAMPLESOFTWARE:12345678"
    }
  ],
  "kind": "search#alphabetical-search",
  "top_hit": {
    "company_name": "EXAMPLE SOFTWARE LTD",
    "company_number": "12345678",
    "company_status": "active",
    "links": {
      "company_profile": "/company/12345678"
    },
    "ordered_alpha_key_with_id": "EXAMPLESOFTWARE:12345678"
  },
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1."
}
GET/company
$0.05 default
Description

The full public record of one UK company from the official Companies House register, by company number. On its own it returns the company profile: registered name and any previous names, company number, status (active, dissolved, liquidation, administration), company type, date of incorporation and of dissolution, registered office address and whether it is in dispute, SIC codes for what the company does, accounts and confirmation-statement made-up and due dates, and flags for whether the company has charges, insolvency history or persons with significant control. Add a sub_resource to reach the same company's other records without a second lookup: officers (current and resigned directors, secretaries and LLP members, with dates of birth to month precision, nationality, occupation and appointment/resignation dates), persons-with-significant-control and the beneficial-owner variants (who ultimately owns or controls the company, their nature of control, and the ownership percentage bands — the UK's statutory UBO disclosure), persons-with-significant-control-statements (where the company states why no PSC is recorded), filing-history (every document ever filed, with its type, category, date and description), charges (registered mortgages and secured lending, with status and the persons entitled), insolvency (administration, liquidation and receivership cases with their practitioners), registered-office-address on its own, registers (which statutory registers are held at Companies House rather than at the company), exemptions (accounting exemptions claimed), and uk-establishments (the UK branches of an overseas company). Company numbers are eight characters and zero-padded — Tesco PLC is 00445790 — and Scottish and Northern Irish companies carry SC and NI prefixes.

Pricing
$0.05 default
Parameters
{
  "properties": {
    "category": {
      "description": "filing-history only. One or more comma-separated categories to filter by, inclusive — e.g. accounts, capital, incorporation, officers, mortgage, resolution.",
      "type": "string"
    },
    "company_number": {
      "description": "The UK company registration number, eight characters, zero-padded — e.g. 00445790 for Tesco PLC. Scottish companies are prefixed SC, Northern Irish NI, limited partnerships LP, and overseas companies FC. Get one from /search/companies if you only have a name.",
      "type": "string",
      "x-parameter-location": "path"
    },
    "items_per_page": {
      "description": "List sub-resources only (officers, filing-history, charges, persons-with-significant-control). How many items to return on this page.",
      "type": "integer"
    },
    "order_by": {
      "description": "officers only. The field to order the officer list by.",
      "enum": [
        "appointed_on",
        "resigned_on",
        "surname"
      ],
      "type": "string"
    },
    "register_type": {
      "description": "officers only, and only when register_view is true. Which officer type the register view returns.",
      "enum": [
        "directors",
        "secretaries",
        "llp_members"
      ],
      "type": "string"
    },
    "register_view": {
      "description": "officers only. Set true to show register-specific information; when the register is held at Companies House only active officers are returned. Defaults to false.",
      "enum": [
        "true",
        "false"
      ],
      "type": "string"
    },
    "start_index": {
      "description": "List sub-resources only. The offset into the whole result set that this page starts at.",
      "type": "integer"
    },
    "sub_resource": {
      "description": "Which record of this company to return. Omit for the company profile itself.",
      "enum": [
        "registered-office-address",
        "officers",
        "registers",
        "charges",
        "filing-history",
        "insolvency",
        "exemptions",
        "uk-establishments",
        "persons-with-significant-control",
        "persons-with-significant-control-statements",
        "appointments"
      ],
      "type": "string",
      "x-parameter-location": "path"
    },
    "sub_resource_detail": {
      "description": "Only for persons-with-significant-control: which kind of PSC notification to fetch, immediately before the notification id.",
      "enum": [
        "individual",
        "corporate-entity",
        "legal-person",
        "super-secure",
        "individual-beneficial-owner",
        "corporate-entity-beneficial-owner",
        "legal-person-beneficial-owner",
        "super-secure-beneficial-owner"
      ],
      "type": "string",
      "x-parameter-location": "path"
    },
    "sub_resource_id": {
      "description": "The id of one item within the sub_resource: a charge id, a filing-history transaction id, a PSC statement id, an appointment id, or a PSC notification id. Every one of these ids comes out of the corresponding list call — none can be constructed.",
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "company_number"
  ],
  "type": "object"
}
Example response
{
  "accounts": {
    "last_accounts": {
      "made_up_to": "2026-02-28",
      "type": "full"
    },
    "next_due": "2026-11-30"
  },
  "company_name": "TESCO PLC",
  "company_number": "00445790",
  "company_status": "active",
  "confirmation_statement": {
    "next_due": "2026-07-27",
    "next_made_up_to": "2026-07-13"
  },
  "date_of_creation": "1947-11-27",
  "has_charges": true,
  "has_insolvency_history": false,
  "jurisdiction": "england-wales",
  "links": {
    "filing_history": "/company/00445790/filing-history",
    "officers": "/company/00445790/officers",
    "persons_with_significant_control_statements": "/company/00445790/persons-with-significant-control-statements",
    "self": "/company/00445790"
  },
  "registered_office_address": {
    "address_line_1": "Tesco House",
    "address_line_2": "Shire Park, Kestrel Way",
    "country": "England",
    "locality": "Welwyn Garden City",
    "postal_code": "AL7 1GA"
  },
  "sic_codes": [
    "47110"
  ],
  "type": "plc",
  "x-apiosk-unsampled": "Docs-derived, NOT observed. Every Companies House endpoint is keyed and no key was available when this row was written; a credential-free probe of /company/00445790 on 2026-09-06 returned 401 Empty Authorization header. Replace with a real capture once the upstream key is set."
}
GET/disqualified-officers/corporate
$0.03 default
Description

The full disqualification record of one banned CORPORATE officer — a company or other body corporate that has itself been disqualified from acting as a director — by officer id from the disqualified-officer search. Returns the same structure as the natural-person record: the dates the disqualification runs from and to, whether it was a court order or an undertaking, the Act and section relied on, the case identifier, the reasons, the companies the conduct related to, and any permissions to act. Corporate disqualifications are rarer than individual ones and are held in a separate index, which is why this is a different call from /disqualified-officers/natural — use the kind on the search hit to pick between them.

Pricing
$0.03 default
Parameters
{
  "properties": {
    "officer_id": {
      "description": "The disqualified corporate officer id, taken from a /search/disqualified-officers hit's self link. It cannot be constructed from a name.",
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "officer_id"
  ],
  "type": "object"
}
Example response
{
  "address": {
    "locality": "Leeds",
    "postal_code": "LS1 1AA"
  },
  "company_number": "11223344",
  "country_of_registration": "England",
  "disqualifications": [
    {
      "case_identifier": "7654321",
      "company_names": [
        "OLD EXAMPLE TRADING LTD"
      ],
      "disqualification_type": "court-order",
      "disqualified_from": "2023-11-02",
      "disqualified_until": "2028-11-01",
      "reason": {
        "act": "company-directors-disqualification-act-1986",
        "description_identifier": "order-or-undertaking-and-conduct-in-the-matter-of-a-company",
        "section": "6"
      }
    }
  ],
  "kind": "corporate-disqualification",
  "links": {
    "self": "/disqualified-officers/corporate/qWeRtYuIoPaSdFgH"
  },
  "name": "EXAMPLE HOLDINGS LIMITED",
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1."
}
GET/disqualified-officers/natural
$0.03 default
Description

The full disqualification record of one banned individual, by officer id from the disqualified-officer search. Returns each disqualification against the person: the dates it runs from and to, whether it was imposed by court order or accepted by undertaking, the section of the Company Directors Disqualification Act relied on, the case identifier, the reasons given, the company the conduct related to, and any permissions to act granted by a court despite the ban. This is the evidence behind a hit, not just the hit — what a compliance file needs to record why a person is disqualified and until when. For a disqualified corporate body use /disqualified-officers/corporate instead.

Pricing
$0.03 default
Parameters
{
  "properties": {
    "officer_id": {
      "description": "The disqualified officer id, taken from a /search/disqualified-officers hit's self link. It cannot be constructed from a name.",
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "officer_id"
  ],
  "type": "object"
}
Example response
{
  "address": {
    "locality": "London",
    "postal_code": "EC1A 1AA"
  },
  "date_of_birth": "1971-04-01",
  "disqualifications": [
    {
      "case_identifier": "1234567",
      "company_names": [
        "OLD EXAMPLE TRADING LTD"
      ],
      "disqualification_type": "undertaking",
      "disqualified_from": "2024-03-13",
      "disqualified_until": "2029-03-12",
      "reason": {
        "act": "company-directors-disqualification-act-1986",
        "description_identifier": "conduct-as-a-director-of-a-company-which-has-become-insolvent",
        "section": "7"
      }
    }
  ],
  "forename": "John",
  "kind": "natural-disqualification",
  "links": {
    "self": "/disqualified-officers/natural/zXcVbNmAsDfGhJkL"
  },
  "nationality": "British",
  "surname": "SMITH",
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1."
}
GET/dissolved-search/companies
$0.03 default
Description

Search only the companies that have been dissolved. The main company search covers dissolved companies too, but this index is dedicated to them and, uniquely, can search on a company's PREVIOUS names — set search_type to previous-name-dissolved to find a company under a name it traded under before it was renamed and then dissolved, which the live-register search cannot do. search_type also accepts alphabetical (walk the dissolved index in name order, paging with search_above and search_below) and best-match (relevance-ranked, paging with start_index). Each hit carries the company number, the date of cessation and the previous names, so a dissolved entity can be traced back to the record that closed.

Pricing
$0.03 default
Parameters
{
  "properties": {
    "q": {
      "description": "The dissolved company's name, or part of it, to search for.",
      "type": "string"
    },
    "search_above": {
      "description": "The ordered_alpha_key_with_id of a result, to page to names above it. Alphabetical search only.",
      "type": "string"
    },
    "search_below": {
      "description": "The ordered_alpha_key_with_id of a result, to page to names below it. Alphabetical search only.",
      "type": "string"
    },
    "search_type": {
      "description": "Which index to search. alphabetical walks the dissolved name index; best-match ranks by relevance; previous-name-dissolved searches names the company traded under before it was dissolved.",
      "enum": [
        "alphabetical",
        "best-match",
        "previous-name-dissolved"
      ],
      "type": "string"
    },
    "size": {
      "description": "How many results to return, 1 to 100.",
      "type": "integer"
    },
    "start_index": {
      "description": "The offset into the result set. Applies to the best-match and previous-name-dissolved search types.",
      "type": "integer"
    }
  },
  "required": [
    "q",
    "search_type"
  ],
  "type": "object"
}
Example response
{
  "items": [
    {
      "company_name": "OLD EXAMPLE TRADING LTD",
      "company_number": "09876543",
      "company_status": "dissolved",
      "date_of_cessation": "2021-03-16"
    }
  ],
  "kind": "search#dissolved",
  "top_hit": {
    "company_name": "OLD EXAMPLE TRADING LTD",
    "company_number": "09876543",
    "company_status": "dissolved",
    "date_of_cessation": "2021-03-16",
    "date_of_creation": "2011-08-02",
    "ordered_alpha_key_with_id": "OLDEXAMPLETRADING:09876543",
    "previous_company_names": [
      {
        "ceased_on": "2019-01-14",
        "effective_from": "2011-08-02",
        "name": "EXAMPLE TRADING LTD"
      }
    ]
  },
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1."
}
GET/officers
$0.05 default
Description

Every UK company one person has ever been an officer of. Give an officer id — from /search/officers, or from any company's officer list — and get that individual's complete appointment history: each company by name and number, the role held (director, secretary, LLP member), when they were appointed and when they resigned, their nationality, occupation and country of residence, and their date of birth to month precision. This is the director-network primitive: it turns one name into the full set of UK companies that person is connected to, which is what conflict-of-interest checks, related-party analysis and shell-company mapping are built on. Companies House does not merge people, so one human being may hold several officer ids where their name or address was recorded differently — cross-check the date of birth and address before treating two ids as the same person.

Pricing
$0.05 default
Parameters
{
  "properties": {
    "items_per_page": {
      "description": "The number of appointments to return per page.",
      "type": "integer"
    },
    "officer_id": {
      "description": "The Companies House officer id, an opaque token that comes from /search/officers or from a company's officer list. It cannot be constructed from a person's name.",
      "type": "string",
      "x-parameter-location": "path"
    },
    "start_index": {
      "description": "The offset into the whole result set that this page starts at.",
      "type": "integer"
    },
    "sub_resource": {
      "description": "Must be the literal appointments — it is the trailing segment of the upstream path /officers/{officer_id}/appointments. It is a separate parameter because each bound path value is percent-encoded as its own segment, so a slash cannot be carried inside officer_id.",
      "enum": [
        "appointments"
      ],
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "officer_id",
    "sub_resource"
  ],
  "type": "object"
}
Example response
{
  "date_of_birth": {
    "month": 4,
    "year": 1971
  },
  "is_corporate_officer": false,
  "items": [
    {
      "address": {
        "locality": "London",
        "postal_code": "EC1A 1AA"
      },
      "appointed_on": "2016-02-01",
      "appointed_to": {
        "company_name": "EXAMPLE SOFTWARE LTD",
        "company_number": "12345678",
        "company_status": "active"
      },
      "country_of_residence": "England",
      "links": {
        "company": "/company/12345678"
      },
      "nationality": "British",
      "occupation": "Director",
      "officer_role": "director",
      "resigned_on": "2021-09-30"
    }
  ],
  "items_per_page": 35,
  "name": "John Andrew SMITH",
  "start_index": 0,
  "total_results": 3,
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1."
}
GET/persons-with-significant-control
$0.03 default
Description

The notification history of one person with significant control, by PSC id. A company's PSC list gives who controls it today; this returns the sequence of notifications filed about a single PSC — when the control was notified, its nature (ownership of shares in the 25-50%, 50-75% or 75-100% band, voting rights, the right to appoint or remove directors, significant influence), and when it ceased. Use it to establish WHEN control changed rather than only who holds it now, which is the question that matters for beneficial-ownership history and for dating a change of control. The psc_id is only ever obtained from a company's persons-with-significant-control list; it cannot be derived from a name.

Pricing
$0.03 default
Parameters
{
  "properties": {
    "items_per_page": {
      "description": "The number of notifications to return per page.",
      "type": "integer"
    },
    "psc_id": {
      "description": "The person-with-significant-control id, an opaque token taken from a company's /company/{n}/persons-with-significant-control list. It cannot be constructed.",
      "type": "string",
      "x-parameter-location": "path"
    },
    "start_index": {
      "description": "The offset into the whole result set that this page starts at.",
      "type": "integer"
    },
    "sub_resource": {
      "description": "Must be the literal notifications — the trailing segment of the upstream path /persons-with-significant-control/{psc_id}/notifications. Declared separately because each bound path value is percent-encoded as its own segment.",
      "enum": [
        "notifications"
      ],
      "type": "string",
      "x-parameter-location": "path"
    }
  },
  "required": [
    "psc_id",
    "sub_resource"
  ],
  "type": "object"
}
Example response
{
  "items": [
    {
      "ceased_on": null,
      "country_of_residence": "England",
      "date_of_birth": {
        "month": 4,
        "year": 1971
      },
      "kind": "individual-person-with-significant-control",
      "links": {
        "self": "/company/12345678/persons-with-significant-control/individual/abcdef"
      },
      "name": "Mr John Andrew Smith",
      "nationality": "British",
      "natures_of_control": [
        "ownership-of-shares-75-to-100-percent",
        "voting-rights-75-to-100-percent"
      ],
      "notified_on": "2016-04-06"
    }
  ],
  "items_per_page": 25,
  "start_index": 0,
  "total_results": 1,
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1."
}
GET/search
$0.05 default
Description

Search the whole Companies House register in one call — companies, officers and disqualified officers together — and get back a single ranked result set with each hit labelled by which index it came from. The call to make when you have a name and do not yet know whether it belongs to a company or to a person: a search for a founder's name returns both the companies whose name contains it and the officer records for the person. Each hit carries a title, a description, an address snippet and the self link to the full record, so a second call can go straight to /company or /officers with the identifier the hit supplies.

Pricing
$0.05 default
Parameters
{
  "properties": {
    "items_per_page": {
      "description": "The number of search results to return per page.",
      "type": "integer"
    },
    "q": {
      "description": "The term being searched for — a company name, a person's name, or a fragment of either.",
      "type": "string"
    },
    "start_index": {
      "description": "The index of the first result item to return, for paging.",
      "type": "integer"
    }
  },
  "required": [
    "q"
  ],
  "type": "object"
}
Example response
{
  "items": [
    {
      "address_snippet": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, AL7 1GA",
      "company_number": "00445790",
      "company_status": "active",
      "description": "00445790 - Incorporated on 27 November 1947",
      "kind": "searchresults#company",
      "links": {
        "self": "/company/00445790"
      },
      "title": "TESCO PLC"
    }
  ],
  "items_per_page": 20,
  "kind": "search#all",
  "start_index": 0,
  "total_results": 42,
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1. The reference page for search-all documents the parameters but does not publish a worked response body, so this shape follows the common Companies House search envelope."
}
GET/search/companies
$0.05 default
Description

Find a UK company by name and get its company number. The standard way in to everything else here: search the Companies House register by full or partial company name, and each hit comes back with the company number, its status (active, dissolved, liquidation), its type, its date of incorporation, its registered address snippet and the link to its full profile. Matching is relevance-ranked, not exact, so a trading name or a fragment works; filter on status yourself if you only want companies still trading. Feed the company_number from a hit straight into /company.

Pricing
$0.05 default
Parameters
{
  "properties": {
    "items_per_page": {
      "description": "The number of search results to return per page.",
      "type": "integer"
    },
    "q": {
      "description": "The company name, or part of it, to search for.",
      "type": "string"
    },
    "start_index": {
      "description": "The index of the first result item to return, for paging.",
      "type": "integer"
    }
  },
  "required": [
    "q"
  ],
  "type": "object"
}
Example response
{
  "items": [
    {
      "address_snippet": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, AL7 1GA",
      "company_number": "00445790",
      "company_status": "active",
      "company_type": "plc",
      "date_of_creation": "1947-11-27",
      "description": "00445790 - Incorporated on 27 November 1947",
      "kind": "searchresults#company",
      "links": {
        "self": "/company/00445790"
      },
      "title": "TESCO PLC"
    }
  ],
  "items_per_page": 20,
  "kind": "search#companies",
  "start_index": 0,
  "total_results": 137,
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1."
}
GET/search/disqualified-officers
$0.05 default
Description

Search the UK register of disqualified directors by name. Returns people who have been banned by a court or by undertaking from acting as a company director, with the officer id needed to read the full order. This is the adverse-media-free, statutory version of a directorship check: a hit here means a UK court or the Insolvency Service has formally disqualified this person. Take the officer id from a hit to /disqualified-officers/natural or /disqualified-officers/corporate for the disqualification period, the reasons, the case reference and the company the conduct related to. A clean search is evidence of absence only within this register — it says nothing about disqualifications in other jurisdictions.

Pricing
$0.05 default
Parameters
{
  "properties": {
    "items_per_page": {
      "description": "The number of search results to return per page.",
      "type": "integer"
    },
    "q": {
      "description": "The disqualified officer's name, or part of it, to search for.",
      "type": "string"
    },
    "start_index": {
      "description": "The index of the first result item to return, for paging.",
      "type": "integer"
    }
  },
  "required": [
    "q"
  ],
  "type": "object"
}
Example response
{
  "items": [
    {
      "address_snippet": "1 High Street, London, EC1A 1AA",
      "date_of_birth": "1971-04-01",
      "description": "Disqualified until 12 March 2029",
      "kind": "searchresults#disqualified-officer",
      "links": {
        "self": "/disqualified-officers/natural/zXcVbNmAsDfGhJkL"
      },
      "title": "John Andrew SMITH"
    }
  ],
  "items_per_page": 20,
  "kind": "search#disqualified-officers",
  "start_index": 0,
  "total_results": 1,
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1."
}
GET/search/officers
$0.05 default
Description

Find a company officer by name across the whole UK register. Search directors, company secretaries and LLP members by full or partial name and get back each matching officer with their officer id, their date of birth to month precision, their address snippet, how many appointments they currently hold and how many they have resigned from. The officer id from a hit is the input to /officers, which returns that person's entire appointment history — so this is the first half of "which UK companies is this person involved in". Note that Companies House does not deduplicate people: the same individual can appear under several officer ids if their name or address was recorded differently on different appointments.

Pricing
$0.05 default
Parameters
{
  "properties": {
    "items_per_page": {
      "description": "The number of search results to return per page.",
      "type": "integer"
    },
    "q": {
      "description": "The officer's name, or part of it, to search for.",
      "type": "string"
    },
    "start_index": {
      "description": "The index of the first result item to return, for paging.",
      "type": "integer"
    }
  },
  "required": [
    "q"
  ],
  "type": "object"
}
Example response
{
  "items": [
    {
      "address_snippet": "1 High Street, London, EC1A 1AA",
      "appointment_count": 3,
      "date_of_birth": {
        "month": 4,
        "year": 1971
      },
      "description": "Total number of appointments 3",
      "kind": "searchresults#officer",
      "links": {
        "self": "/officers/zXcVbNmAsDfGhJkL/appointments"
      },
      "title": "John Andrew SMITH"
    }
  ],
  "items_per_page": 20,
  "kind": "search#officers",
  "start_index": 0,
  "total_results": 18,
  "x-apiosk-unsampled": "Docs-derived, NOT observed — see 2.1."
}