DataLedger API
Programmatic access to structured UK company financial data, PSC beneficial ownership records, and full corporate group structures. Balance sheets, P&L where disclosed, pre-calculated ratios, and ownership chains for almost 3 million UK companies with electronic filings - from 5 million+ total records.
No card required · Instant access · Takes 30 seconds
Skip building Companies House infrastructure
Structured, validated financial data, PSC beneficial ownership, and corporate group structures through a simple REST API. No parsing XBRL, no cleaning PSC filings, no pipeline to maintain.
Real-time access
Query UK company data as new filings are processed. No delays, no batch updates.
PSC beneficial owners
Individual and corporate PSC records with pre-computed control flags. Filter search by age, owner type, and nature of control.
Ownership chains
Traverse corporate group structures upward to the ultimate parent or downward through all subsidiaries in a single request.
Pre-calculated ratios
Debt-to-equity, debt-to-asset, assets growth rate, net assets growth rate - already done for every record.
Structured and verified
Clean JSON responses with quality flags. 2.8 million records carry DataLedger's verification flag.
Advanced filtering
Filter by financial ratios, growth indicators, employee counts, SIC codes, location, PSC age, and ownership type.
Almost 3M with financials
Almost 3 million UK companies with electronic financial data. 5 million+ total records available for lookup.
Overseas parents included
Ownership chains include overseas ultimate parents with their raw registration number and country of registration.
Credits roll over
Unused credits from monthly plans roll over every month. One-time purchases never expire.
Up and running in minutes
Three endpoints. Authenticate with x-api-key header on every request. Flags on the company profile endpoint are additive - combine as needed.
# Basic profile - 1 credit curl -X GET "https://api.dataledger.uk/v1/companies/12345678" \ -H "x-api-key: YOUR_API_KEY" # Full balance sheet and P&L - 2 credits curl -X GET "https://api.dataledger.uk/v1/companies/12345678?financials=true" \ -H "x-api-key: YOUR_API_KEY" # Profile + PSC beneficial owners - 3 credits curl -X GET "https://api.dataledger.uk/v1/companies/12345678?financials=true&people=true" \ -H "x-api-key: YOUR_API_KEY" # Full corporate group: financials + PSC + parent chain + subsidiaries - 10 credits curl -X GET "https://api.dataledger.uk/v1/companies/12345678?financials=true&people=true&parents=true&children=true" \ -H "x-api-key: YOUR_API_KEY"
# Active tech companies in Westminster with assets over £1M - 1 credit curl -X GET "https://api.dataledger.uk/v1/companies/search?isActive=true&sic=62020&localAuthority=Westminster&minTotalAssets=1000000" \ -H "x-api-key: YOUR_API_KEY" # Owner-managed businesses only (no corporate PSC) - 1 credit curl -X GET "https://api.dataledger.uk/v1/companies/search?isActive=true&individualOwnerOnly=true&sic=62020" \ -H "x-api-key: YOUR_API_KEY" # PE-backed or group-owned companies - 1 credit curl -X GET "https://api.dataledger.uk/v1/companies/search?isActive=true&hasCorporateOwner=true&minTotalAssets=5000000" \ -H "x-api-key: YOUR_API_KEY"
# Resolve partial name to company number - 25 calls = 1 credit curl -X GET "https://api.dataledger.uk/v1/companies/autocomplete?name=acme&limit=5" \ -H "x-api-key: YOUR_API_KEY"
Financials, ownership, and corporate structure in one API
Each company profile is the central record. Use flags to pull in the layers you need - PSC beneficial owners, the parent chain up to the ultimate owner, and subsidiaries downward through the group. Flags are additive on a single request.
people=true to retrieve beneficial owner records including name, age, nationality, postcode, and nature of control. Individual PSC owners terminate the parent chain traversal at that node.
Example 2 (right): A corporate group with a parent and subsidiaries - use parents=true to traverse upward to the ultimate owner, and children=true to retrieve all subsidiaries downward. Each ownership edge includes depth, company numbers, and whether the parent is the ultimate parent in the known chain.
Core API endpoints
Three endpoints covering lookup, search, and autocomplete. The company profile endpoint accepts four additive flags. Most workflows combine all three endpoints.
Resolve a partial company name to a Companies House number. Minimum 3 characters. Ideal for search-as-you-type in forms or lookup tools.
ParametersPartial company name to search for
Number of results to return
Returns array of objects with companyNumber and companyName
Filter for lists of companies. Combine any number of criteria. At least one filter is required. Use meta=true to get a total count before fetching results. Paginate with limit and offset.
Standard Industrial Classification code e.g. 62020 for IT consultancy
Postcode prefix e.g. SW1, or local authority name e.g. Westminster. 354 valid local authority values covering England, Scotland, Wales, and Northern Ireland.
Filter by company status. isActive=true returns active companies and those with a proposal to strike off.
Incorporation date range
Employee count range
Financial threshold filters
Filter by cash and bank balances from the most recent balance sheet
Leverage ratio filters
Growth rate filters. Decimals: 0.1 = 10% growth.
Recommended when using financial filters - limits results to companies with P&L data available
Filter to electronically submitted accounts only - recommended for best data quality
Returns only companies with at least one corporate entity as a PSC. Useful for identifying PE-backed companies, group subsidiaries, and M&A deal sourcing. Cannot be combined with individualOwnerOnly.
Returns only companies where all PSC records are individuals - no corporate owners. Useful for identifying owner-managed businesses. Cannot be combined with hasCorporateOwner.
Filter by the age of individual PSC holders, calculated from their year of birth. Applies to individual PSCs only.
Pagination controls
If true, returns only the total count of matching companies without fetching full results. Useful for estimating result size before a full query.
meta=true first to check result size, then add hasPLFigures=true with financial filters for the best data quality. Use isElectronicSubmission=true for consistent structured data.Retrieve a full company profile by 8-digit Companies House number. Flags are additive - combine as needed. Credits are summed. Maximum 10 credits for a fully-flagged request.
Flag credit costs| Flag | Cost | What it adds |
|---|---|---|
| base request | 1 credit | Company profile with financial summary - totals, ratios, growth rates |
| financials=true | +1 credit | Full balance sheet line items and complete P&L statement |
| people=true | +2 credits | All current PSC records - individual and corporate beneficial owners with control flags |
| parents=true | +3 credits | Full corporate ownership chain traversed upward to the ultimate parent |
| children=true | +3 credits | All known subsidiaries traversed downward from this company |
| all flags combined | 10 credits max | Complete record with financials, PSC owners, parent chain, and subsidiaries |
PSC identity and type. isCorporate: true identifies corporate PSCs (company owned by another company).
Demographic fields for individual PSCs. Year of birth only - month is not exposed.
Pre-computed control flags derived from the raw naturesOfControl array. No need to parse the strings yourself.
Distance from the queried company. Depth 1 is the direct parent or direct subsidiary.
The ownership edge. parentCompanyNumber is null for individuals, overseas entities, or where the registration number could not be matched.
True when the parent does not itself appear as a child in any PSC record - the top of the known ownership chain.
Populated for overseas corporate parents where parentCompanyNumber is null.
financials=true. Add people=true when you need to identify or display beneficial owners. The parents and children traversals are priced to reflect the recursive chain resolution.Full documentation with schemas and examples at api.dataledger.uk/docs/v1
Credit-based pricing
Pay for what you use. Credits roll over on monthly plans and never expire on one-time purchases.
Credit usage| Endpoint / Flag | Cost |
|---|---|
| Autocomplete | 25 calls = 1 credit |
| Company Search | 1 credit per request |
| Company Profile (base) | 1 credit |
| + financials=true | +1 credit |
| + people=true (PSC beneficial owners) | +2 credits |
| + parents=true (ownership chain upward) | +3 credits |
| + children=true (subsidiaries downward) | +3 credits |
| All flags combined maximum | 10 credits |
Frequently asked questions
How do API credits work?
Credits are consumed per request. Autocomplete costs 25 calls per credit. Search costs 1 credit per request. Company profile starts at 1 credit and increases with flags: financials=true adds 1, people=true adds 2, parents=true adds 3, children=true adds 3. Maximum 10 credits for a fully-flagged request. Monthly plan credits roll over. One-time purchases never expire.
What PSC data is available?
Add people=true to any company profile request to retrieve all current PSC records. Each record includes name, kind (individual or corporate), date notified, year of birth (individuals only), nationality, country of residence, postcode, the raw natures of control array, and pre-computed boolean flags for each type of control. isCorporate: true identifies corporate PSCs.
How do parent and subsidiary traversal work?
Add parents=true to traverse the corporate ownership chain upward from a company to the ultimate parent. Add children=true to retrieve all known subsidiaries downward. Each result is an ownership edge with a depth field indicating distance from the queried company. Traversal follows corporate PSC links - individual PSC owners terminate the chain at that node. Overseas ultimate parents are included with their raw registration number and country.
Can I filter search results by ownership type?
Yes. Use hasCorporateOwner=true to find companies with at least one corporate PSC - useful for identifying PE-backed companies and group subsidiaries. Use individualOwnerOnly=true to find companies owned exclusively by individuals - useful for targeting owner-managed SMEs. These two filters cannot be combined with each other.
What happens when I run out of credits?
API access stops until you top up or upgrade. No credits are charged on failed requests. Check the X-API-Key-Details header in every response to monitor your remaining credits in real time.
What data is in every API response?
Every company profile includes balance sheet data (assets, liabilities, equity) for current and previous year, company metadata (SIC codes, employees, address, incorporation date), pre-calculated financial ratios, and growth indicators. P&L data is included where the company is required to disclose it. Add financials=true for complete line items, people=true for PSC owners, parents=true for the ownership chain, and children=true for subsidiaries.
How do I authenticate?
Use the x-api-key header (lowercase) on every request. Get your key from hub.dataledger.uk.
What is the difference between basic and detailed financial profiles?
Basic (1 credit): financial summary with totals, pre-calculated ratios, and growth rates. Detailed with financials=true (2 credits): adds full balance sheet line items (intangibles, property, current assets breakdown, creditors, provisions, cash in bank) and full P&L details (turnover, gross profit, operating profit, wages). Default to basic unless you specifically need line items.
Do all companies have turnover data?
No. Most UK SMEs are not required to publish turnover or profit figures. Every company has balance sheet data. Use hasPLFigures=true in search to filter for companies with P&L data available.
Can I use the API for commercial purposes?
Yes. All paid plans include commercial use rights. Use in products, services, internal tools, or as part of your own offerings.
What response format does the API use?
JSON. Consistent field names throughout. Financial prefixes: c = current year, p = previous year. Growth rates returned as decimals (0.1 = 10%). Ownership chain results are ordered by depth from the queried company.
Is there a free trial?
Yes. Sign up at hub.dataledger.uk and get 25 free credits immediately. No card required. Use them to test all endpoints and validate your integration.
How often is data updated?
DataLedger processes Companies House filings daily. When you query a company you get the most recent filing available. No batch delays.
What if I need more than 500k credits per month?
The Enterprise Unlimited plan at £4,000/month covers typical usage of 500k-2M credits per month. Contact contact@dataledger.uk for higher volume requirements.
Ready to start building?
Get 25 free credits and start querying UK company data in minutes. No card required.
Supported by
Explore more UK company data resources.
Learn more about structured Companies House financial data, ownership intelligence, APIs, and company analysis.