TheDocumentation Index
Fetch the complete documentation index at: https://docs.topograph.co/llms.txt
Use this file to discover all available pages before exploring further.
/v2/company endpoint is the single entry point for company data. One request, one or more datapoints, one response (plus webhooks or polling for progressive updates). Use it for KYB compliance, due diligence, fraud prevention, or customer onboarding.
The same endpoint supports two modes:
- Verification (default) returns live data from the official register.
- Onboarding (
mode: "onboarding") returns the fastest available source for the requested datapoint, subject to a 10-second per-datapoint deadline.
Available Data Points
When retrieving company data, you can request the following datapoints (availability varies by country):company: core company information (name, address, status, legal form, activities)legalRepresentatives: directors, managers, and signing officersotherKeyPersons: auditors, supervisory board members, and similar roles (when the register exposes them separately)establishments: branches and secondary locationsshareholders: shareholder structure and ownership percentagesultimateBeneficialOwners: information about beneficial ownersavailableDocuments: list of available official documents (always free)
companyProfile datapoint is still supported. For billing it expands to company + legalRepresentatives; many countries still return related sections (e.g. other key persons) inside that legacy response—see the migration guide to request them explicitly.
You can request multiple data points in a single request by including them in the dataPoints array:
Choosing a Mode
Addmode: "onboarding" to pick the fastest available source for every requested datapoint. Omit it (or pass mode: "verification") to get live data directly from the register.
authoritative flag in dataStatus tells you whether the data came from the official register or from a cached/private source. In onboarding mode each datapoint has a 10-second deadline and will fail with onboarding_timeout if the fast source is slower than that. Read Verification vs Onboarding Mode for the full comparison.
Onboarding mode replaces the legacy
/v2/onboarding endpoint. It supports any combination of datapoints, not just companyProfile.Pricing and Deduplication
Each data block has a fixed price per country. A 24-hour deduplication window ensures that requesting the same block for the same company within 24 hours incurs no additional charge. Some documents are included at no extra cost when the corresponding data block is purchased. For example, the trade register extract is free when thecompany block is already purchased.
For full pricing details, see Prices & Caching.
Retrieving Documents
You can request specific documents by passing their IDs in thedocuments array. Discover those IDs first through the availableDocuments datapoint, then reuse the returned IDs in a follow-up request.
To understand how document URLs, signed URL refresh, and PDF post-processing behave, read the Document Retrieval Guide.
Understanding the Response
Request Object
The response includes arequest object that provides metadata about your request and the status of each requested data point and document:
dataStatus field is particularly important as it indicates:
- Whether data is immediately available (
succeeded) - If retrieval is still in progress (
in_progress) - If an intermediate AI enrichment result is available while live retrieval continues (
enriching) - If there were any errors (
failed)
Currently, error messages are generic. We are working on providing more
detailed and specific error messages in future updates.
Asynchronous Data Retrieval
The time to availability of requested data might vary from seconds or milliseconds, to hours or days in rare cases. Nevertheless, all data retrieval is treated asynchronously. The initial response will indicatein_progress status in the dataStatus object, which will later be updated.
Progressive Data Delivery
Data is delivered progressively through webhooks as it becomes available. This can happen:- At the data point level (e.g.,
companyarrives beforeultimateBeneficialOwners) - Within a single data point (e.g., basic company info arrives before legal representatives)
Webhook Delivery
Webhooks deliver updates in a standardized format:A webhook is always delivered, even for very fast jobs, to ensure consistency
in your data processing pipeline.
Polling Alternative
Instead of using webhooks, you can poll the API using therequestId from the initial response:
- Call
GET /v2/company/{requestId}with therequestIdfrom the initial response - The response will contain the latest available data
- Data won’t be rebilled when using
requestId - The state will match the original request
- Maximum rate: 10 requests per second
- Recommended interval: Every 3 seconds
- Continue polling until all requested data points show
succeededorfailedstatus
The legacy approach of polling via
POST /v2/company with {"requestId": "..."} in the body still works but GET /v2/company/{requestId} is preferred.For detailed information about our credit-based billing system and how our
caching optimizes costs and performance, please see our Pricing &
Caching documentation.
Example Request
For country-specific information on:
- Available data points
- Document types
- Expected response times