canonical: https://jentic.com/apis/opencorporates.com/opencorporates

# OpenCorporates API

OpenCorporates is the world's largest open database of companies and corporate data, covering more than 200 million companies across hundreds of jurisdictions. The API exposes search and retrieval over companies, officers, filings, statements, and industry codes, plus a jurisdictions index and account introspection. Specialised statement-search endpoints expose subsequent registrations, alternate registrations, and gazette notices, which power compliance and corporate-relationship investigations. The dataset is sourced from official company registers worldwide and is licensed for transparency and journalism use cases as well as commercial research.

## For AI agents

Search the world's largest open company database to find companies, officers, filings, and statements across hundreds of jurisdictions, including gazette notices and registration changes.

## Scope

Does not handle credit scoring, payment processing, or sanctions screening directly - use for open company-registry, officer, and statement search only.

## Capabilities

- Search companies globally or within a specific jurisdiction with `/companies/search`
- Retrieve a company record by jurisdiction code and company number with `/companies/{jurisdiction_code}/{company_number}`
- List filings registered against a company including filing dates and types
- Search officers across jurisdictions to identify directors, secretaries, and beneficial owners
- Find subsequent and alternate registrations to trace company restructuring and merger trails
- Search gazette notices for insolvency, dissolution, and statutory publication signals
- Look up the jurisdictions index to discover supported registers and their coverage

## Use cases

### KYC and Onboarding Verification

Verify the existence and status of corporate counterparties during onboarding by calling `/companies/search` to locate the entity and `/companies/{jurisdiction_code}/{company_number}` for the canonical record. Pair with `/officers/search` to identify directors and beneficial owners against KYC lists. OpenCorporates covers more than 200 million entities worldwide, which is wider coverage than most national-only registers.

Example prompt: GET `/companies/search`?q=ACME+LIMITED&jurisdiction_code=gb and pull the canonical record for the top match via `/companies/gb/{company_number}.`

### Investigative Journalism and Compliance

Trace corporate networks and surface restructurings, dissolutions, and gazette publications using `/statements/subsequent_registrations/search`, `/statements/alternate_registrations/search`, and `/statements/gazette_notices/search.` These endpoints turn unstructured statutory publications into queryable records, which is valuable for investigative journalism, AML, and sanctions investigations.

Example prompt: GET `/statements/gazette_notices/search`?q=insolvency&jurisdiction_code=gb&date_gte=2026-01-01 and return all UK gazette notices since the start of the year.

### Sales and Account Enrichment

Enrich CRM accounts with canonical company numbers, registered addresses, and officer lists by querying `/companies/search` and `/companies/{jurisdiction_code}/{company_number}.` The API normalises corporate forms across jurisdictions, which is more reliable than scraping individual registers when accounts span multiple countries.

Example prompt: For each CRM account, call `/companies/search`?q={account_name}&jurisdiction_code={country_code} and write back the canonical company number and registered address.

### AI Agent Corporate Research

Through Jentic, an AI agent can answer corporate-research questions across hundreds of jurisdictions with a single tool surface. The agent searches for the right OpenCorporates operation, loads its schema, and executes the request with the api_token injected from your Jentic One instance, removing the need to maintain bespoke per-jurisdiction scrapers.

Example prompt: Through Jentic, search for 'find a company by name', load GET `/companies/search`, and execute it with q='Apple' and jurisdiction_code='us_ca'.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/companies/search` | Search companies by name and jurisdiction |
| GET | `/companies/{jurisdiction_code}/{company_number}` | Retrieve a specific company record |
| GET | `/companies/{jurisdiction_code}/{company_number}/filings` | List filings for a company |
| GET | `/officers/search` | Search officers across jurisdictions |
| GET | `/officers/{id}` | Retrieve an officer record |
| GET | `/statements/gazette_notices/search` | Search gazette notice statements |
| GET | `/statements/subsequent_registrations/search` | Search subsequent registration statements |
| GET | `/filings/{id}` | Retrieve a specific filing record |

## Key resources

- **Companies** — Search and retrieve company records across jurisdictions
- **Officers** — Search officers and retrieve their directorships
- **Filings** — Inspect filings registered against a company
- **Statements** — Search subsequent registrations, alternate registrations, and gazette notices
- **Jurisdictions** — List supported jurisdictions and their coverage
- **Industry Codes** — Retrieve industry-classification codes used by registers
- **Account** — Introspect the calling API account and its quota

## Why Jentic

- **Setup:** Wiring the OpenCorporates API by hand means managing the api_token, appending it to the query string on every call, and pairing jurisdiction codes with company numbers yourself. Through Jentic you install once, import the OpenCorporates API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The API puts the company and officer ids in the URL path (`/companies/{jurisdiction_code}/{company_number}`, `/officers/{id}`), so a rule can pin your agent to per-company work: it can read a company record and its filings. You choose the operations it may call, so officer and statement searches are not included unless you add them.
- **Credential handling:** Your OpenCorporates api_token is stored once, encrypted, by your own Jentic One instance and injected into the api_token query parameter at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'find a company by name in a jurisdiction' or 'search gazette notices for insolvency', and Jentic returns the matching company, officer, or statement operation with its parameter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Clearbit API** — Firmographic and technographic enrichment based on company domains.
- **FullContact API** — Person and company enrichment with contact-level data.
- **ShipEngine API** — Address validation and shipping for verified corporate accounts.

## FAQ

### What authentication does the OpenCorporates API use?

The spec defines an API key scheme called apiToken where the token is passed as the api_token query parameter on every request. Through Jentic, the api_token is stored encrypted in your Jentic One instance and injected into the URL at request time, so the raw token never enters the agent's prompt context or logs.

### Can I search for a company by name through this API?

Yes. GET `/companies/search` accepts a q parameter and supports filters such as jurisdiction_code, current_status, company_type, and incorporation_date ranges. The response is a paginated list of canonical company records that can be drilled into via `/companies/{jurisdiction_code}/{company_number}.`

### What are the rate limits for the OpenCorporates API?

OpenCorporates enforces tier-based monthly call limits rather than per-second rate limits - the active limits are reflected on the calling api_token. Use GET /account to introspect the current account's plan and remaining quota, and design integrations to cache canonical company records aggressively.

### How do I look up a specific company through Jentic?

Search Jentic for 'retrieve a company by jurisdiction and registration number', load GET `/companies/{jurisdiction_code}/{company_number}`, and execute it with the path parameters (e.g., gb and 12345678). Jentic injects the api_token from your Jentic One instance and returns the parsed company record.

### Is the OpenCorporates API free?

OpenCorporates offers free access for transparency-aligned uses (journalism, civil society, academic research) subject to attribution. Commercial use requires a paid plan with monthly call quotas - pricing is published on opencorporates.com and depends on call volume and entitlements such as bulk data.

### Can I find merger or restructuring records?

Yes. The `/statements/subsequent_registrations/search` endpoint surfaces records where one company's registration is succeeded by another, and `/statements/alternate_registrations/search` exposes alternate-registration relationships. Combine with `/statements/gazette_notices/search` to pick up insolvency or dissolution publications around the same period.

### Can I limit what my agent is allowed to do with the OpenCorporates API?

Yes. Because you run Jentic One yourself, you decide which OpenCorporates operations your agent may call, and your own rules govern the credentials it uses. Since the company and officer ids sit in the URL path (for example `/companies/{jurisdiction_code}/{company_number}` and `/officers/{id}`), you can pin the agent to per-company work so it only reads a company record and its filings. Officer search and the statement searches are left out unless you explicitly allow them.
