Skip to main content
Requirements
  • API key pair
  • Enough balance or limit for each charge type the call uses: registry search, and registry report for the full report. If a charge type isn’t set up on your account, the call returns 403 “Action not allowed due to lack of funds or exceeded limit.”

The Government Registry API lets you search for companies and order company reports sourced directly from official government registries. Use it to verify company existence, retrieve registration details, and download structured reports. Country coverage depends on the endpoint: A country that search accepts isn’t necessarily accepted by the full report endpoint — sending it there returns 400.
GET https://ivs.idenfy.com/api/v2/gov-checks-coverage returns the current country list for each check type. It needs no API key.
A typical flow:
  1. Search for the company.
  2. Take externalCompanyId from the chosen result.
  3. Pass it as dataId to the full report or lite report endpoint.

GOV Registry

Authorization: API key pair Method: GET Endpoint: https://ivs.idenfy.com/api/v2/gov-registers-documents/search/
countryCode is required, and so is at least one of companyName or registryNumber. Sending neither returns 400 “Either company name or registry number must be provided.”
For BD, BR, FI, ID, MA, PH, TT, US-IL, US-NY and US-SC you can’t search by registryNumber — companyName is required. This limit applies only to accounts on the older response format (see Response formats).
region
  • Used only for the US and Canada. It isn’t required — without it, the search runs at country level.
  • For the US, it must be a supported state code (the 2-letter postal code, e.g. CA). Any other value returns 400.
  • For Canada, the value isn’t checked against a list.
Billing: every search call is charged as one registry search, even when it finds no companies.

Response Formats

The response is an array of up to 10 companies. Each company’s externalCompanyId is the dataId you pass to the report endpoints. Two response formats exist. Which one your account gets is set per account — the iDenfy integrations team can confirm yours.

Order GOV Registers Company Report

Authorization: API key pair Method: POST Endpoint: https://ivs.idenfy.com/api/v2/gov-registers-documents/report/
The full report returns a JSON data file and a PDF report. It accepts only these 36 countries: AE, AT, AU, BE, BR, CN, CY, DE, DK, EE, ES, FI, FR, GB, GG, GI, GR, IE, IN, IT, JE, JP, LU, LV, MK, MT, MY, NL, NO, NZ, SE, SG, SI, TW, US, ZA dataId
  • With dataId, the report is ordered directly — no search runs and no search is charged.
  • Without dataId, a search runs first and is charged as a registry search. If no company matches, the call returns 404 “Company not found.” If several match, the best match is picked.
Billing: one registry report charge, plus one registry search charge when dataId is left out.

Order GOV Registers Lite Report

Authorization: API key pair Method: POST Endpoint: https://ivs.idenfy.com/api/v2/gov-registers-documents/lite-report/
The lite report accepts the same countries as search — including countries the full report doesn’t cover, such as LT. It returns a JSON data file only, with no PDF. Billing: the lite report has no charge of its own — it’s covered by the earlier search. Your account still needs registry search balance to call it.

Retrieve Specific GOV Registry Document

Authorization: API key pair Method: GET Endpoint: https://ivs.idenfy.com/api/v2/gov-registers-documents/{id}/ : Report's unique number
Returns only your own account’s reports. Another account’s id returns 404. Besides the company data, the response includes:
  • lite — true for lite reports.
  • checkedCompanyName and checkedRegistrationNumber — the values you searched with.
Response example

Retrieve All GOV Register Documents

Authorization: API key pair Method: GET Endpoint: https://ivs.idenfy.com/api/v2/gov-registers-documents/
Returns only your own account’s reports, with the same fields as Retrieve Specific GOV Registry Document. Use the checkedAt query parameter to filter by date range. It takes one value: two dates separated by a comma, e.g. checkedAt=2026-01-01,2026-02-01.
  • Either side can be left empty for an open range, e.g. checkedAt=2026-01-01, or checkedAt=,2026-02-01.
  • A date on its own means midnight UTC at the start of that day, so the end date’s own day isn’t included. The example above covers January 1–31.
Response example

Errors