UK Companies House Scraper
Pricing
from $3.00 / 1,000 results
Go to Apify Store
UK Companies House Scraper
Scrape company data from the official UK Companies House register. Get company details, officers, directors, and filing history. Search by name or company number. Clean JSON output. Supports PostgreSQL persistence. Free API key required from developer.company-information.service.gov.uk.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Ivo Sandoval
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape company data from the UK Companies House register — details, officers, filing history.
Data Source
- URL: https://find-and-update.company-information.service.gov.uk/
- API docs: https://developer.company-information.service.gov.uk/api/docs/
- Rate limits: 600 requests / 5 minutes
- Auth required: Yes — free API key from https://developer.company-information.service.gov.uk/
Output Schema
| Field | Type | Description |
|---|---|---|
| company_number | string | Unique company identifier (e.g. "00445790") |
| company_name | string | Registered company name |
| company_status | string | Active, dissolved, liquidation, etc. |
| type | string | ltd, plc, llp, etc. |
| date_of_creation | string | ISO date of incorporation |
| date_of_cessation | string | ISO date of dissolution (if applicable) |
| registered_office_address | string | Full registered address |
| sic_codes | array | Standard Industrial Classification codes |
| officers | array | List of officers (if include_officers=true) |
| filing_history | array | Filing history entries (if include_filing_history=true) |
Example Output
{"company_number": "00445790","company_name": "TESCO PLC","company_status": "active","type": "plc","date_of_creation": "1947-11-27","registered_office_address": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, AL7 1GA, United Kingdom","sic_codes": ["47110"],"officers": [{"name": "MURPHY, Ken","officer_role": "director","appointed_on": "2020-10-01","nationality": "Irish"}]}
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Companies House API key (Basic Auth) |
| search_query | string | No | Company name or number to search |
| company_numbers | array | No | Specific company numbers to fetch |
| include_officers | boolean | No | Fetch officers (default: true) |
| include_filing_history | boolean | No | Fetch filings (default: false) |
| max_results | integer | No | Max results (default: 100, max: 10000) |
| database_url | string | No | PostgreSQL URL for persistence |
| proxy_configuration | object | No | Apify proxy config |
Database
- Database name:
datamon_uk_companies - Tables:
companies,officers,filings - Upsert key:
company_number(companies), replace strategy (officers/filings)
Pricing (Apify Store)
- Model: Pay-per-event (PPE)
- Price: $3 / 1,000 results
Development
# Local runner (no Apify dependency)cd actors/uk-companies-housepython3 -m venv .venv && source .venv/bin/activatepip install -r requirements.txt# Test without DBCOMPANIES_HOUSE_API_KEY="your_key" python runner.py --search-query "tesco" --max-results 5 --no-db# Test with DB persistenceDATABASE_URL="postgresql+asyncpg://user:pass@host:5432/datamon_uk_companies" \COMPANIES_HOUSE_API_KEY="your_key" \python runner.py --search-query "tesco" --max-results 10# Fetch specific companiesCOMPANIES_HOUSE_API_KEY="your_key" \python runner.py --company-numbers 00000006,00445790 --no-db# Apify runapify run --purge
Status
- Scraper implementation
- Database models + migrations
- Input/output schemas
- Local runner (runner.py)
- DB persistence (persist.py)
- Apify Store listing