Skip to main content

UK Companies House API

Project description

Companies House API Python Client

CI License: MIT PyPI version

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ch_api-1.1.0.tar.gz (402.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ch_api-1.1.0-py3-none-any.whl (76.8 kB view details)

Uploaded Python 3

File details

Details for the file ch_api-1.1.0.tar.gz.

File metadata

  • Download URL: ch_api-1.1.0.tar.gz
  • Upload date:
  • Size: 402.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.8 CPython/3.13.13 Linux/6.17.0-1010-azure

File hashes

Hashes for ch_api-1.1.0.tar.gz
Algorithm Hash digest
SHA256 fff03727f3115dcfdcc0f15108a6639f27deef03087792baf0b98c20923df278
MD5 075632516ea01a91d61a7d9a9e5d2e73
BLAKE2b-256 cfd8b882d63229b394ef2667f9fd7a8cd8189da9fe90177df71c81358319ad82

See more details on using hashes here.

File details

Details for the file ch_api-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: ch_api-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 76.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.8 CPython/3.13.13 Linux/6.17.0-1010-azure

File hashes

Hashes for ch_api-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b9e7dce1b8b75ac85931c4e60e3fc2c91186ec6554a161f912321a0970a1944
MD5 c27d3095c735b29dc8b7e092970869f5
BLAKE2b-256 513cf90e9704ddfa3f739964fc68f89b9936ea8d36cd18d6947319f1dde649e1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page