Companies API Reference
UK company data from Companies House. Search, lookup, filter, and browse SIC codes.
Base URL: https://api.govdata.dev/v1
Company Search
/v1/companies/search
Waiting for request...
Search for UK companies by name. Returns paginated results ranked by relevance.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q |
string | Yes | Search query (min 2 characters) |
status |
string | No | Filter by status: active, dissolved |
page |
integer | No | Page number (default: 1) |
per_page |
integer | No | Results per page (default: 25, max: 100) |
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.govdata.dev/v1/companies/search?q=ACME"
uri = URI("https://api.govdata.dev/v1/companies/search?q=ACME") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer YOUR_API_KEY" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
response = requests.get( "https://api.govdata.dev/v1/companies/search", headers={"Authorization": "Bearer YOUR_API_KEY"}, params={"q": "ACME"} )
const url = new URL("https://api.govdata.dev/v1/companies/search"); url.searchParams.set("q", "ACME"); const response = await fetch(url, { headers: { "Authorization": "Bearer YOUR_API_KEY" } });
Response
{ "data": [ { "company_number": "12345678", "company_name": "ACME WIDGETS LTD", "company_status": "active", "company_type": "ltd", "date_of_creation": "2020-01-15", "registered_office_address": { "postal_code": "EC2R 6EA", "locality": "London" }, "sic_codes": ["62012", "62020"] } ], "meta": { "api_version": "v1", "licence": "Open Government Licence v3.0", "source": "Companies House", "source_url": "https://download.companieshouse.gov.uk", "query": "ACME" }, "pagination": { "total": 1, "page": 1, "per_page": 25, "total_pages": 1 } }
Company Lookup
/v1/companies/
Waiting for request...
Retrieve full details for a specific company by its Companies House number.
Parameters
| Parameter | Type | Description |
|---|---|---|
company_number |
string (path) | 8-digit Companies House number (e.g., 12345678) |
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.govdata.dev/v1/companies/12345678
uri = URI("https://api.govdata.dev/v1/companies/12345678") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer YOUR_API_KEY" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
response = requests.get( "https://api.govdata.dev/v1/companies/12345678", headers={"Authorization": "Bearer YOUR_API_KEY"} )
const response = await fetch("https://api.govdata.dev/v1/companies/12345678", { headers: { "Authorization": "Bearer YOUR_API_KEY" } });
Response
{ "data": { "company_number": "12345678", "company_name": "ACME WIDGETS LTD", "company_status": "active", "company_type": "ltd", "date_of_creation": "2020-01-15", "date_of_cessation": null, "registered_office_address": { "address_line_1": "123 Test St", "locality": "London", "postal_code": "EC2R 6EA", "country": "United Kingdom" }, "sic_codes": [ { "code": "62012", "description": "Business and domestic software development" }, { "code": "62020", "description": "Information technology consultancy activities" } ], "accounts": { "next_due": "2027-01-15", "last_made_up_to": null }, "confirmation_statement": { "next_due": "2027-01-15" }, "jurisdiction": "england-wales", "uri": "/company/12345678" }, "meta": { "api_version": "v1", "licence": "Open Government Licence v3.0", "source": "Companies House", "source_url": "https://download.companieshouse.gov.uk" } }
Company Listing
/v1/companies
Waiting for request...
List and filter UK companies by status, SIC code, or postcode area.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
status |
string | No | Filter by status: active, dissolved |
sic_code |
string | No | Filter by SIC code (e.g., 62012) |
postcode |
string | No | Filter by postcode area (e.g., EC2R) |
page |
integer | No | Page number (default: 1) |
per_page |
integer | No | Results per page (default: 25, max: 100) |
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.govdata.dev/v1/companies?status=active&sic_code=62012"
uri = URI("https://api.govdata.dev/v1/companies?status=active&sic_code=62012") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer YOUR_API_KEY" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
response = requests.get( "https://api.govdata.dev/v1/companies", headers={"Authorization": "Bearer YOUR_API_KEY"}, params={"status": "active", "sic_code": "62012"} )
const url = new URL("https://api.govdata.dev/v1/companies"); url.searchParams.set("status", "active"); url.searchParams.set("sic_code", "62012"); const response = await fetch(url, { headers: { "Authorization": "Bearer YOUR_API_KEY" } });
Response
{ "data": [ { "company_number": "12345678", "company_name": "ACME WIDGETS LTD", "company_status": "active", "company_type": "ltd", "date_of_creation": "2020-01-15", "registered_office_address": { "postal_code": "EC2R 6EA", "locality": "London" }, "sic_codes": ["62012", "62020"] } ], "meta": { "api_version": "v1", "licence": "Open Government Licence v3.0", "source": "Companies House", "source_url": "https://download.companieshouse.gov.uk" }, "pagination": { "total": 1, "page": 1, "per_page": 25, "total_pages": 1 } }
SIC Codes
/v1/companies/sic-codes
Waiting for request...
List all UK Standard Industrial Classification (SIC) codes. Optionally filter by section letter.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
section |
string | No | Filter by section letter (e.g., J for Information and Communication) |
page |
integer | No | Page number (default: 1) |
per_page |
integer | No | Results per page (default: 25, max: 100) |
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.govdata.dev/v1/companies/sic-codes?section=J"
uri = URI("https://api.govdata.dev/v1/companies/sic-codes?section=J") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer YOUR_API_KEY" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
response = requests.get( "https://api.govdata.dev/v1/companies/sic-codes", headers={"Authorization": "Bearer YOUR_API_KEY"}, params={"section": "J"} )
const url = new URL("https://api.govdata.dev/v1/companies/sic-codes"); url.searchParams.set("section", "J"); const response = await fetch(url, { headers: { "Authorization": "Bearer YOUR_API_KEY" } });
Response
{ "data": [ { "code": "62011", "description": "Ready-made interactive leisure and entertainment software development", "section": "J" }, { "code": "62012", "description": "Business and domestic software development", "section": "J" }, { "code": "62020", "description": "Information technology consultancy activities", "section": "J" } ], "meta": { "api_version": "v1", "licence": "Open Government Licence v3.0", "source": "Companies House", "source_url": "https://download.companieshouse.gov.uk" }, "pagination": { "total": 3, "page": 1, "per_page": 25, "total_pages": 1 } }
/v1/companies/sic-codes/
Waiting for request...
Look up a specific SIC code and its description.
Parameters
| Parameter | Type | Description |
|---|---|---|
code |
string (path) | SIC code (e.g., 62012) |
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.govdata.dev/v1/companies/sic-codes/62012
uri = URI("https://api.govdata.dev/v1/companies/sic-codes/62012") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer YOUR_API_KEY" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
response = requests.get( "https://api.govdata.dev/v1/companies/sic-codes/62012", headers={"Authorization": "Bearer YOUR_API_KEY"} )
const response = await fetch("https://api.govdata.dev/v1/companies/sic-codes/62012", { headers: { "Authorization": "Bearer YOUR_API_KEY" } });
Response
{ "data": { "code": "62012", "description": "Business and domestic software development", "section": "J", "section_description": "Information and Communication" }, "meta": { "api_version": "v1", "licence": "Open Government Licence v3.0", "source": "Companies House", "source_url": "https://download.companieshouse.gov.uk" } }
Company Statistics
/v1/companies/statistics
No parameters required.
Waiting for request...
Aggregate statistics about UK companies. No parameters required.
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.govdata.dev/v1/companies/statistics
uri = URI("https://api.govdata.dev/v1/companies/statistics") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer YOUR_API_KEY" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
response = requests.get( "https://api.govdata.dev/v1/companies/statistics", headers={"Authorization": "Bearer YOUR_API_KEY"} )
const response = await fetch("https://api.govdata.dev/v1/companies/statistics", { headers: { "Authorization": "Bearer YOUR_API_KEY" } });
Response
{ "data": { "total_companies": 5200000, "by_status": { "active": 4800000, "dissolved": 350000 }, "by_type": { "ltd": 4200000, "plc": 7500, "llp": 65000 }, "incorporations_this_month": 45000, "incorporations_this_year": 520000, "data_as_of": "2026-02-01" }, "meta": { "api_version": "v1", "licence": "Open Government Licence v3.0", "source": "Companies House", "source_url": "https://download.companieshouse.gov.uk" } }
Company data is sourced from the Companies House bulk data product and updated monthly. Contains public sector information licensed under the Open Government Licence v3.0.