UK Companies House API
Project description
Companies House API Python Client
Async Python client for the Companies House API with type-safe Pydantic models, automatic pagination, and comprehensive error handling.
Features
- Async-first with
httpx - Type-safe Pydantic models
- Automatic pagination handling
- Optional rate limiting
- 98%+ test coverage
Installation
pip install ch-api
Quick Start
Example of getting company information:
>>> async def get_company_example(client):
... company = await client.get_company_profile("09370755")
... return company is not None
>>> run_async_func(get_company_example)
True
Key Endpoints
- Company:
get_company_profile(),get_officer_list(),get_company_psc_list(),get_company_charges(),get_company_filing_history() - Search:
search_companies(),search_officers(),search_disqualified_officers() - Sandbox:
create_test_company()(TEST_API_SETTINGS only)
Pagination
List endpoints return MultipageList[T] with .data (list) and .pagination metadata:
>>> async def search_example(client):
... results = await client.search_companies("tech", result_count=1)
... return len(results.data) >= 1
>>> run_async_func(search_example)
True
Rate Limiting
The API allows 600 requests per 5 minutes. Use an async rate limiter:
>>> from asyncio_throttle import Throttler # doctest: +SKIP
Error Handling
>>> import httpx # doctest: +SKIP
Advanced Usage
Sandbox Environment
>>> from ch_api import Client, api_settings # doctest: +SKIP
Custom HTTP Session
>>> import httpx # doctest: +SKIP
Requirements
- Python 3.11+
- httpx >= 0.28.1
- pydantic >= 2.12.5
Documentation
License
MIT License - See LICENSE file for details
Contributing
Please see CONTRIBUTING for development guidelines.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ch_api-1.2.2.tar.gz.
File metadata
- Download URL: ch_api-1.2.2.tar.gz
- Upload date:
- Size: 408.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.26.8 CPython/3.13.13 Linux/6.17.0-1010-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c00506730287d811d122907ba0042a4949f755bc494bd85308c126b5a46f2785
|
|
| MD5 |
f36b24004cbf704eefc18704f960c652
|
|
| BLAKE2b-256 |
9b9272597047e878cb6f557d3e833075d2eb2bdc65204490902fb779678d6e55
|
File details
Details for the file ch_api-1.2.2-py3-none-any.whl.
File metadata
- Download URL: ch_api-1.2.2-py3-none-any.whl
- Upload date:
- Size: 82.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.26.8 CPython/3.13.13 Linux/6.17.0-1010-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd4e1d298f568e80faf0e89ca78f8a07de499bb3561d701491126586f5300a6f
|
|
| MD5 |
e5ecfc939da9bd169e24324588ad8368
|
|
| BLAKE2b-256 |
5d8b068785104e289f683d2bed00485ee31224cae321444bbddc91aed93fef86
|