API docs

Company data as JSON, no key required.

Three read-only endpoints mirror the website. Responses use the same permanent IDs and the same field names as the Coragrid public API, so moving to a full Coragrid credential later needs no data migration.

View as MarkdownAgent setup

Basics

Base URL
https://api.companyregistryapi.com. Each path below appends to it.
OpenAPI
https://companyregistryapi.com/api/openapi.json, an OpenAPI 3.2 document of these endpoints.
Authentication
None.
Rate limit
60 requests per minute per client address, with bursts up to the same number. Over the limit you receive 429 with a Retry-After header.
CORS
Browser requests from any origin are allowed for GET.
Errors
RFC 9457 problem documents with Content-Type: application/problem+json and a stable code field.
Attribution
Show “Powered by Coragrid” wherever you display the data.

GET /v1/companies/{company_id}

One company by permanent ID. Redirected records return the requested handle and the canonical ID in lifecycle.canonical_id; split records list lifecycle.successor_ids.

curl "https://api.companyregistryapi.com/v1/companies/<company_id>"
const response = await fetch(  "https://api.companyregistryapi.com/v1/companies/<company_id>",);const { data: company } = await response.json();
import requestscompany = requests.get("https://api.companyregistryapi.com/v1/companies/<company_id>").json()["data"]

GET /v1/companies/{company_id}/officers

Current officers with source attribution: the publishing system, its URL when known, and the observation time.

curl "https://api.companyregistryapi.com/v1/companies/<company_id>/officers"
const response = await fetch(  "https://api.companyregistryapi.com/v1/companies/<company_id>/officers",);const { data: officers } = await response.json();
import requestsofficers = requests.get("https://api.companyregistryapi.com/v1/companies/<company_id>/officers").json()["data"]

Problem codes

CodeStatusMeaning
invalid_request400A parameter is missing or malformed; detail names it.
not_found404No company is visible under that ID.
rate_limited429Retry after the number of seconds in Retry-After.
upstream_error502The company data service rejected the request; retryable.
upstream_busy503The company data service is busy; retry after the seconds in Retry-After.
upstream_unavailable503Company data is temporarily unavailable; retryable.

With a Coragrid key

A Coragrid API key reads the same companies, with the same IDs, from the Coragrid API: search by description, higher limits and the cgd command line. How to get a key.

cgd
# With a Coragrid API key: cgd auth logincgd --json companies search --query "example robotics" \  --country FI --limit 5# An id from the search resultsid=<company_id>cgd --json companies get $idcgd --json companies officers $id