Skip to main content

KYB Check V2

KYB (Know Your Business) Check is a robust service designed to provide real-time access to official registry data from a wide range of countries and states. This service enables businesses to retrieve up-to-date and accurate information using company names or registration numbers, facilitating confident decision-making, regulatory compliance, and thorough due diligence.

What's New in Version 2 (V2):

  • Optimized Response Time: Our V2 endpoints are enhanced to deliver faster data retrieval, reducing latency and ensuring real-time responses to your requests.

  • Instant Data Availability: When performing a company search, V2 instantly returns available company data, providing immediate access to critical information. More detailed and updated data will be retrieved in the background through the new /v2/kyb endpoint via the GET method.

  • Improved Error Handling: V2 introduces more informative error messages and precise status codes, making it easier to diagnose and resolve potential issues.

This updated version streamlines the process, enhancing the overall efficiency and reliability of the KYB check service.

kyb-flow-diagram-light

Requests

"Requests" refer to the different HTTP methods used to interact with the API. Each request includes details such as endpoint URLs, required parameters, headers, and the structure of the request body. These details are necessary to initiate communication with the API and ensure proper functionality. Examples of requests often include sample payloads and expected inputs for successful interactions.

Supported Countries Listing

Description:

"Supported Countries Listing" provides a comprehensive list of countries along with the states that fall under them, where specific services are available. Each entry includes the country name, country code, a list of states (if applicable), and the supported services within that region. This helps users identify both country-wide and state-specific eligibility for various compliance checks and verification processes.

Method Call:   GET

API:

https://api.thekyb.com/v2/countries
GET /v2/countries HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

Description:
This API enables users to search for companies using "company name" or "registration number" as search parameters. You can use this API to search for companies in single country. It directly accesses and fetches data from the official registries of the selected country. Additionally, the "search_type" parameter allows further refinement of the search using values like "start_with", "contains" or "fuzzy" for companies filtering.

Method Call:   POST

API:

https://api.thekyb.com/v2/kyb
ParameterDescription
nameType: String
Required: Yes (if registration_number not given)
Minimum: 3 characters
Maximum: 128 characters.
Description: Name parameter contains the name of the company that is being searched.This parameter requires a company name.
registration_numberType: String
Required: Yes (if name not given)
Minimum: 1 character
Maximum: 255 characters.
Description: This parameter contains the registration number of the company that is being searched.
country_codesType: Array
Required: Yes
Description: This parameter enables you to search for companies in specific countries or states using their respective codes. For example, enter the country code ['gb'] to search in the United Kingdom, or ['us_oh'] to search in Ohio, United States.
Note: Only one country or state can be searched at a time, allowing you to efficiently narrow down your search.
search_typeType: String
Required: No
Default: contains
Between: contains, start_with or fuzzy
The search_type offers three distinct modes: start with, contains, and fuzzy.
start_with: Returns a list of companies whose names begin with the characters entered by the user. For example, if you search for "Apple," the API will return companies whose names start with "Apple".
contains: Searches for companies that have the provided keyword anywhere in their names. For example, searching for "tech" will return companies that include "tech" at any position in their name.
fuzzy: Allows for approximate matches and handles minor misspellings in the search input. This search mode automatically adjusts for typos and close matches, ensuring relevant results are returned. For example, a search for "Mircrosoft" will still return a list of companies that includes "Microsoft".
ttlType: Integer
Required: No
Description: This parameter specifies the time-to-live (TTL) value in seconds for the KYB request, with a minimum of 60 in seconds and no defined maximum limit.
If the request can be resolved before the TTL expires, the results will be delivered immediately. However, if the TTL is reached, the request will be finalized, and only the data received from the official registry up to that point will be provided. No further data will be available for this request in the future.
POST /v2/kyb HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

{
"country_codes": ["gb"],
"name": "Testing Company",
"search_type": "contains"
}

Company Search Results

Description:
When a user performs a company search through the API, it retrieves matching companies from official registries based on the search criteria. For example, searching for "Testing Company" in the United Kingdom will return all registered companies with that name. The results are paginated, with the number of results per page controlled by the "limit" value. Users can specify the "page" number and "limit" in the request to navigate through the data associated with a specific kyb_request_id, enabling efficient handling of large datasets.

Method Call:   GET

API:

https://api.thekyb.com/v2/kyb?kyb_request_id=KYB_REQUEST_ID&page=PAGE&limit=LIMIT
ParameterDescription
kyb_request_idType: String
Required: Yes
Description: This is the unique ID for the KYB request, generated when performing a "company search" request. You can obtain it from the kyb_request_id field in the kyb_request object of the "company search" response.
pageType: String
Required: No
Default: 1
Description: Page attribute tells the page number of the retrieved result.The page number can be specified using the "page" query parameter.
limitType: String
Required: No
Default: 25
Description: The "limit" key refers to a parameter that allows users to specify the maximum number of results or records they want to receive from a request. This parameter is particularly useful when dealing with large datasets or when users only need a specific number of items from the API response.
For example, if the API provides a paginated response with 100 records per page, a user can set the "limit" key to 10 if they only want to receive the first 10 results. This way, the API will return a subset of the data containing the first 10 records, making the response more focused and efficient.
GET /v2/kyb?kyb_request_id=KYB_REQUEST_ID&page=PAGE&limit=LIMIT HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

Detailed Company Insights

Description:

"Detailed Company Insights" offers in-depth information about a company retrieved from official registries. This includes key details such as company name, registration number, status, type, and more. These insights help users assess the legitimacy and operational standing of a business, providing essential data for due diligence and compliance checks.
To obtain detailed information about a company, you need to access the endpoint provided below with the kyb_response_id. This kyb_response_id can be obtained from the kyb_response_id field in the kyb_responses of the Company Search Results.

Method Call:   GET

API:

https://api.thekyb.com/v2/kyb/KYB_RESPONSE_ID
ParameterDescription
kyb_response_idRequired: Yes
Type: String
Description: A unique identifier for the KYB response associated with a specific company. This ID is essential for retrieving detailed company insights from the API. It can be obtained from the kyb_response_id field in the kyb_responses array of the Company Search Results, ensuring users can access relevant data for due diligence and compliance checks. You must provide the kyb_response_id in the URL parameter when making the API request.
GET  /v2/kyb/KYB_RESPONSE_ID HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

Responses

"Responses" provide detailed information about the result of an API request, including status codes, response bodies, and the accompanying data. They indicate whether the request was successful or encountered an error and include relevant messages or data in structured formats, typically JSON. Response examples often feature success messages, error details, and data relevant to the specific request made.

Supported Countries Listing

Description:
The "Supported Countries Listing" response provides an overview of countries where API services are available, including country names, codes, and the compliance services offered. This allows users to understand the geographical coverage of the API services.

API:

https://api.thekyb.com/v2/countries

Response:

{
"error": false,
"message": "countries fetched successfully",
"data": [
{
"name": "botswana",
"code": "BW",
"services": ['kyb']
},
{
"name": "sudan",
"code": "SD",
"services": ['kyb']
},
{
"name": "united_states",
"state_name": "alabama",
"code": "US_AL",
"services": ['kyb']
},
...
]
}

Response Parameters:

ParameterDescription
errorIndicates whether the operation was successful. A value of false means the service was executed without errors.
messageA brief message summarizing the outcome of the request, such as confirmation of successful data retrieval.
dataAn array containing the list of countries or states supported for KYB checks and other services.
data.*.nameThe name of the country or state where KYB or other services are available (e.g., "botswana", "sudan").
data.*.codeThe country or state code in ISO 3166-1 alpha-2 format (e.g., "BW" for Botswana, "SD" for Sudan, "US_AL" for Alabama).
data.*.servicesAn array of services available in the respective country or state (e.g., 'kyb'). This field lists the compliance services offered.
data.*.state_nameThe name of the state within a country, applicable when the country has specific states listed.

Company Search

Description:
The "Company Search" response provides detailed information about the companies that match the search parameters. It returns a list of companies retrieved from the official registries of the selected country based on the search criteria provided.
Additionally, the response includes pagination information to handle cases where the search returns multiple results, offering details on the total number of records, pages, and current page data.

API:

https://api.thekyb.com/v2/kyb

Response:

{
"error": false,
"message": "service created successfully",
"data": {
"kyb_request": {
"kyb_request_id": "670773bfc1bcfdba9c013",
"country_codes": [
"GB"
],
"registration_number": null,
"reference_id": "kyb-wJpYE17285416",
"name": "Testing Company",
"search_type": "contains",
"status": "pending",
"services": [
"kyb_check"
]
},
"kyb_responses": [
{
"kyb_response_id": "670773bfc1bcfdfba9c01",
"country_code": "GB",
"name": "Testing Company",
"registration_number": "12345",
"type": "Private Limited Company",
"status": "active",
"risk_level": "low_risk",
"verification_status": "verified",
"fetch_status": "pending"
}
],
"pagination": {
"total": 1,
"per_page": 25,
"current_page": 1,
"last_page": 1,
"from": 1,
"to": 1
}
}
}

Response Parameters:

ParameterDescription
errorIndicates the success of the operation. A value of false confirms that the service executed without errors.
messageA concise message summarizing the outcome of the request, confirming that the service was created successfully.
data.kyb_requestThis object contains details about the specific KYB request initiated by the user.
data.kyb_request.kyb_request_idA unique identifier assigned to the specific KYB request.
data.kyb_request.country_codesAn array of ISO 3166-1 alpha-2 country codes (e.g., "GB") specifying the countries in which the KYB check is conducted.
data.kyb_request.registration_numberThe registration number of the company, which may be null if not applicable.
data.kyb_request.reference_idA unique reference identifier assigned to the KYB request, used for tracking the specific request.
data.kyb_request.nameThe name utilized to identify the company being queried.
data.kyb_request.search_typeIndicates the nature of the search (e.g., "contains"), providing clarity on how the search text is processed and matched against records.
data.kyb_request.statusThe current status of the data retrieval process for the kyb request.
"status": "pending" indicates that the request is still in progress.
"status": "resolved" indicates request has been completed.
data.kyb_request.servicesAn array detailing the specific services requested (e.g., "kyb_check"), indicating the type of compliance checks to be performed.
data.kyb_responsesAn array containing detailed responses regarding the company that underwent the KYB check, providing insights into its verification status.
data.kyb_responses.*.kyb_response_idThe unique identifier for each specific KYB response record, facilitating easy reference within the response array.
data.kyb_responses.*.country_codeThe country code associated with the company record, indicating the country from which the information is retrieved.
data.kyb_responses.*.nameThe officially registered name of the company as found in the corresponding registry, crucial for identification and compliance verification.
data.kyb_responses.*.registration_numberThe unique registration number assigned to the company by the appropriate registry, serving as a primary identifier within regulatory systems.
data.kyb_responses.*.statusThe current legal status of the company (e.g., "active" for operational companies, "dissolved" for companies that are no longer legally registered).
data.kyb_responses.*.risk_levelThe assessed level of risk associated with the company based on available data, indicating potential concerns for due diligence purposes (e.g., "low", "medium", "high", "unknown").
data.kyb_responses.*.verification_statusThe status of the verification process for the company, indicating whether the company has been successfully verified against the provided information (e.g., "verified", "failed", "unknown").
data.kyb_responses.*.fetch_statusThe current status of the data retrieval process for the company.
"fetch_status": "pending" indicates that the company data is still in progress.
"fetch_status": "resolved" indicates complete data of this company has been fetched.
data.paginationContains pagination details for the response data, essential for navigating through multiple records if available.
data.pagination.totalThe total count of records available across all pages, helping users understand the overall dataset size.
data.pagination.per_pageThe number of records returned per page (e.g., 25), guiding users on the volume of data they are viewing at one time.
data.pagination.current_pageIndicates the current page number of the response, assisting users in tracking their place in the pagination.
data.pagination.last_pageRepresents the total number of pages available for the results, allowing users to see the extent of the dataset.
data.pagination.fromThe starting index of the current page in the overall dataset, providing context for the records being viewed.
data.pagination.toThe ending index of the current page in the overall dataset, completing the range of records available in that specific view.

Company Search Results

Description:
The "Company Search Results" response provides detailed information about companies matching the search criteria. Each record includes key details such as registration number and status, aiding in the evaluation of the business's legitimacy.
The response also contains pagination information, including the total number of records, records per page, and the current page, facilitating efficient navigation through the results.

API:

https://api.thekyb.com/v2/kyb?kyb_request_id=KYB_REQUEST_ID&page=PAGE&limit=LIMIT

Response:

Company Search Results Response Data
{
"error": false,
"message": "request data fetched successfully",
"data": {
"kyb_request": {
"kyb_request_id": "67050e233ee29858bc0011ec",
"country_codes": [
"GB"
],
"registration_number": null,
"reference_id": "kyb-zFpy417283845",
"name": "Testing Company",
"search_type": "contains",
"status": "pending",
"services": [
"kyb_check"
]
},
"kyb_responses": [
{
"kyb_response_id": "670773bfc1bcfdfba9c01",
"country_code": "GB",
"name": "Testing Company",
"registration_number": "12345",
"type": "Private Limited Company",
"status": "active",
"risk_level": "low",
"verification_status": "verified",
"fetch_status": "pending"
}
],
"pagination": {
"total": 1,
"per_page": 25,
"current_page": 1,
"last_page": 1,
"from": 1,
"to": 1
}
}
}

Response Parameters:

ParameterDescription
errorIndicates the success of the operation. A value of false confirms that the service executed without errors.
messageA concise message summarizing the outcome of the request, confirming that the service was created successfully.
data.kyb_requestThis object contains details about the specific KYB request initiated by the user.
data.kyb_request.kyb_request_idA unique identifier assigned to the specific KYB request.
data.kyb_request.country_codesAn array of ISO 3166-1 alpha-2 country codes (e.g., "GB") specifying the countries in which the KYB check is conducted.
data.kyb_request.registration_numberThe registration number of the company, which may be null if not applicable.
data.kyb_request.reference_idA unique reference identifier assigned to the KYB request, used for tracking the specific request.
data.kyb_request.nameThe name utilized to identify the company being queried.
data.kyb_request.search_typeIndicates the nature of the search (e.g., "contains"), providing clarity on how the search text is processed and matched against records.
data.kyb_request.statusThe current status of the data retrieval process for the kyb request.
"status": "pending" indicates that the request is still in progress.
"status": "resolved" indicates request has been completed.
data.kyb_request.servicesAn array detailing the specific services requested (e.g., "kyb_check"), indicating the type of compliance checks to be performed.
data.kyb_responsesAn array containing detailed responses regarding the company that underwent the KYB check, providing insights into its verification status.
data.kyb_responses.*.kyb_response_idThe unique identifier for each specific KYB response record, facilitating easy reference within the response array.
data.kyb_responses.*.country_codeThe country code associated with the company record, indicating the country from which the information is retrieved.
data.kyb_responses.*.nameThe officially registered name of the company as found in the corresponding registry, crucial for identification and compliance verification.
data.kyb_responses.*.registration_numberThe unique registration number assigned to the company by the appropriate registry, serving as a primary identifier within regulatory systems.
data.kyb_responses.*.statusThe current legal status of the company (e.g., "active" for operational companies, "dissolved" for companies that are no longer legally registered).
data.kyb_responses.*.risk_levelThe assessed level of risk associated with the company based on available data, indicating potential concerns for due diligence purposes (e.g., "low", "medium", "high", "unknown").
data.kyb_responses.*.verification_statusThe status of the verification process for the company, indicating whether the company has been successfully verified against the provided information (e.g., "verified", "failed", "unknown").
data.kyb_responses.*.fetch_statusThe current status of the data retrieval process for the company.
"fetch_status": "pending" indicates that the company data is still in progress.
"fetch_status": "resolved" indicates complete data of this company has been fetched.
data.paginationContains pagination details for the response data, essential for navigating through multiple records if available.
data.pagination.totalThe total count of records available across all pages, helping users understand the overall dataset size.
data.pagination.per_pageThe number of records returned per page (e.g. 25), guiding users on the volume of data they are viewing at one time.
data.pagination.current_pageIndicates the current page number of the response, assisting users in tracking their place in the pagination.
data.pagination.last_pageRepresents the total number of pages available for the results, allowing users to see the extent of the dataset.
data.pagination.fromThe starting index of the current page in the overall dataset, providing context for the records being viewed.
data.pagination.toThe ending index of the current page in the overall dataset, completing the range of records available in that specific view.

Detailed Company Insights

Description:
The Detailed Company Insights response provides comprehensive information about a specific company retrieved from official registries. It includes crucial details such as the company name, registration number, status, type, and more. This data allows users to assess the legitimacy and operational standing of the business effectively.

API:

https://api.thekyb.com/v2/kyb/KYB_RESPONSE_ID

Sample Company Response:

Here you can conveniently download the sample company response for The KYB Sample Company.

Additionally, you can retrieve the response via an API. Simply company search for "The KYB Sample Company" with the registration number "kyb000000" in the "United Kingdom" using a search type that "starts with".

Response:

Detailed Company Insights Response Data
{
"error": false,
"message": "company data fetched successfully",
"data": {
"kyb_response_id": "",
"kyb_request_id": "",
"name": "",
"registration_number": "",
"registration_date": "",
"status": "",
"type": "",
"country_code": "",
"description": "",
"incorporation_date": "",
"industries": "",
"tax_number": "",
"dissolution_date": "",
"inactive_date": "",
"fetch_status": "",
"risk_level": "",
"verification_status": "",
"company_aml_request_id": "",
"company_aml_request_status": "",
"company_aml_status": "",
"last_updated_at": ""
"meta_detail": {},
"contacts_detail": [
{
"type": "",
"value": "",
"meta_detail": {}
}
],
"previous_names_detail": [
{
"company_name": "",
"update_date": "",
"meta_detail": {}
}
],
"documents_detail": [
{
"uid": "",
"title": "",
"date": "",
"description": "",
"document_code": "",
"document_type": "",
"document_url": "",
"document_status": "",
"document_requested": false,
"price": "",
"price_without_service_charges": "",
"service_charges": "",
"deliver_time": "",
"document_not_found": false,
"meta_detail": {},
"previous_document_detail": {
"previous_document_id": "",
"uid": "",
"requested_at": "",
"submitted_at": "",
"price": "",
"price_without_service_charges": "",
"service_charges": ""
},
"own_document_available": {
"own_document_id": "",
"uid": "",
"document_url": "",
"submitted_at": "",
"requested_at": ""
}
}
],
"addresses_detail": [
{
"address": "",
"type": "",
"description": "",
"meta_detail": {}
}
],
"announcements_detail": [
{
"date": "",
"title": "",
"description": "",
"meta_detail": {}
}
],
"people_detail": [
{
"name": "",
"status": "",
"address": "",
"postal_address": "",
"designation": "",
"appointment_date": "",
"termination_date": "",
"nationality": "",
"email": "",
"phone_number": "",
"fax_number": "",
"employment_status": "",
"aml_request_status": "",
"aml_status": "",
"aml_request_id": ""
"meta_detail": {},
"similar_people": [
{
"name": "",
"address": "",
"designation": "",
"nationality": "",
"appointment_date": "",
"termination_date": "",
"meta_detail": {
"occupation": "",
"current_status": "",
"date_of_birth": "",
"company": {
"name": "",
"jurisdiction_code": "",
"company_number": ""
}
}
}
],
}
],
"beneficial_owners_detail": [
{
"name": "",
"email": "",
"status": "",
"address": "",
"designation": "",
"postal_address": "",
"phone_number": "",
"fax_number": "",
"appointment_date": "",
"legal_authority": "",
"legal_form": "",
"nationality": "",
"termination_date": "",
"ceased_on": "",
"employment_status": "",
"aml_request_status": "",
"aml_status": "",
"aml_request_id": ""
"meta_detail": {},
"shares_detail": {
"voting_min_shares": "",
"voting_max_shares": "",
"ownership_min_shares": "",
"ownership_max_shares": ""
},
}
],
"parent_companies": [
{
"entity_type": "",
"name": "",
"company_number": "",
"jurisdiction_code": "",
"country_name": "",
"type": "",
"country_flag": "",
"meta_detail": {}
}
],
"branches": [
{
"entity_type": "",
"name": "",
"company_number": "",
"jurisdiction_code": "",
"start_date": "",
"home_company_name": "",
"home_company_jurisdiction_code": "",
"home_company_number": "",
"country_name": "",
"state_name": "",
"type": "",
"status": "",
"dissolution_date": "",
"registration_date": "",
"industries": "",
"address": "",
"country_flag": ""
}
],
"accounts_detail": {
"last_account": "",
"next_account": "",
"due_by_date": ""
},
"confirmation_statement_detail": {
"last_account": "",
"next_account": "",
"due_by_date": ""
},
"identifiers": [
{
"identifier_type": "",
"identifier_code": "",
"identifier_number": ""
}
],
"capital_stock_information": [
{
"capital_class": "",
"capital_number": "",
"capital_per_value": "",
"meta_detail": {}
}
],
"industries_detail": [
{
"code": "",
"name": "",
"description": "",
"meta_detail": {}
}
],
"ownership_structure": {
"id": "",
"name": "",
"children": [
{
"name": "",
"percentage": "",
"active": false,
"meta_detail": {}
}
]
},
"financial_detail": {
"total_capital": "",
"fiscal_year": "",
"fiscal_year_end": "",
"fiscal_year_start": "",
"fixed_assets": "",
"total_net_assets": "",
"currency": "",
"financial_years": "",
"annual_return_due_date": "",
"financial_statement_due_date": "",
"liability": "",
"total_number_of_shares": "",
"have_extensive_shareholding": "",
"ordinary_shareholder_signatures": "",
"has_more_than_one_class_of_share": "",
"per_share_value": "",
"key_figure_readings": [
{
"data": {
"current": "",
"graph_up": false,
"last_year": "",
"last_year_value": "",
"status": ""
},
"type": ""
}
],
"insights": [
{
"type": "",
"data_type": "",
"figures": [
{
"key_figure": "",
"data": [
{
"year": "",
"value": ""
}
]
}
]
}
]
},
"registries_detail": [
{
"name": "",
"source_type": ""
}
],
"additional_detail": [
{
"type": "",
"data": [
{
"key_1": "",
"key_2": ""
}
]
}
],
}
}

Response Parameters:

ParameterDescription
errorIndicates whether an error occurred during the request. A value of false means no errors were encountered.
messageA message summarizing the outcome of the request, typically indicating success or details about any errors.
dataThe main data object returned in the response, containing relevant information pertaining to the company, such as company profiles, status updates, and other details retrieved from the search.