Skip to main content

KYB Check

info

We are pleased to share KYB Check Version 2, which offers faster data retrieval, improved performance, and streamlined functionality for a smoother experience.
We recommend integrating KYB Check v2 to make the most of these enhancements in your compliance management.

Introducing the groundbreaking solution known as KYB Check, a service that offers real-time data retrieval from official registries. This service grants businesses immediate access to information sourced from the official registries of various countries and states.

By using this service, companies can easily collect accurate and up-to-date information by searching with company names or registration numbers. Unlike traditional methods that rely on outdated databases, this service ensures that the information is current and reliable. This empowers businesses to confidently make informed decisions. Whether verifying the credibility of potential partners, assessing compliance, or conducting due diligence, the KYB Check service offers a seamless and efficient way to utilize official registries. This promotes transparency and enhances risk management.

kyb-flow-diagram-light
info

The response for the Enhanced Company Profile from the KYB Check service may take up to 30 minutes to be fully processed.

Request​

"Requests" refer to the various HTTP methods used for interacting with the API, providing details on endpoint URLs, parameters, headers, request bodies, and examples.

Listing the Available Countries​

Description:
The "Listing Available Countries" API serves as a valuable resource for users to explore and understand the geographic coverage of the product. By providing a comprehensive list of covered countries and associated details, users can gain a clear picture of the product's global availability and make informed decisions regarding its usage in various regions.

Method Call:   GET

API:

https://api.thekyb.com/api/countries/read
GET /api/countries/read 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 "search" (company name) and/or "registration_number" as search parameters. You must provide at least one of search or registration_number. Both can be provided simultaneously. 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/api/search
ParameterDescription
searchType: String
Required: Yes (if registration_number not given)
Minimum: 3 character
Maximum: 128 characters.
Description: Search parameter contains the name of the company that is being searched.This parameter requires a company name.
registration_numberType: String
Required: Yes (if search not given)
Description: This parameter contains the registration number of the company that is being searched.
country_namesType: Array
Required: Yes
Description: The parameter to search for companies in a specific country. Just input the country name, like ['united_kingdom'] for the United Kingdom or ['united_states.ohio'] for a specific state like Ohio. This way, you can easily customize your search for a particular country or explore all options.
search_typeType: String
Required: Optional
Default: contains
Between: contains, start_with or fuzzy
"The search_type offers three distinct modes: 'start with,' 'contains,' and 'fuzzy.'
start_with: option in the search functionality, the API will return a list of companies whose names begin with the characters provided by the user. For instance, if the user inputs "Apple," the API will display all companies whose names start with "Apple".
contains: option, the search will encompass companies that have the provided keywords anywhere within their names. This means the API will return companies that contain the specified keywords in any part of their name, not just at the beginning.
fuzzy: option allows for searching exact word matches with the company's name in any order.
servicesType: Array
Required: Yes
Description: This parameter defines the services provided by The KYB. To perform a KYB Check, ensure that the ["kyb_check"] service is included in the services parameter.
ttlType: Integer
Required: Optional
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 /api/search HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

{
"search": "Testing company",
"country_names": ["united_kingdom"],
"search_type": "start_with",
"services": ["kyb_check"]
}

Retrieving Companies’ Profiles​

Description:
When users perform a search using the API, the system will retrieve a list of companies from the official registries that match the provided search criteria. For instance, if a user searches for the company name "Apple" within the United States, the API will display all the companies registered in the United States that match the search term "Apple". This API breaks down the data into smaller, manageable pieces called "pages". Each page contains a limited number of results, which is determined by the "limit" value. By specifying the "page" number and "limit" value in the request, users can access different segments of the data retrieved by the request ID. This approach is helpful for handling large datasets more efficiently, as it allows users to retrieve data in smaller chunks, one page at a time, rather than getting the entire dataset all at once.

Method Call:   GET

API:

https://api.thekyb.com/api/readKybResponse?request_id=REQUEST_ID&page=PAGE&limit=LIMIT
ParameterDescription
request_idType: String
Required: Yes
Description: This is the unique request ID of request and can be generated by performing a "search" request.
pageType: String
Required: Optional
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: Optional
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 /api/readKybResponse?request_id=REQUEST_ID&page=PAGE&limit=LIMIT HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

Enhanced Company Profile​

Description:
This API provides users the ability to select their desired company from the list of companies displayed on a page after search is performed. Each listed company profile includes registration details and a unique "company_id". This "company_id" serves as a special code to uniquely identify each company in the dataset.
To access detailed information about a specific company, users can extract the "company_id" from the results. With this "company_id" in hand, users can then use it along with the original "request_id" (which initiated the data retrieval process) to retrieve the comprehensive profile of the chosen company.

Method Call:   GET

API:

https://api.thekyb.com/api/companies/read?company_id=COMPANY_ID&request_id=REQUEST_ID
ParameterDescription
company_idRequired: Yes
Type: String
Description: The "company_id" acts like a special code or label assigned to each company, allowing easy and precise access to detailed information about that particular company. It serves as a key to unlock the specific profile or data associated with the company within the API's stored records.
request_idRequired: Yes
Type: String
Description: This is the unique Request ID of request and can be generated by performing a "search" request.
GET /api/companies/read?company_id=COMPANY_ID&request_id=REQUEST_ID HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

AML For Company​

Description:
This API enables users to submit an AML request for a company. With our AML verification service, businesses can proactively safeguard themselves against the threats posed by money laundering and illegal activities.

Method Call:   POST

API:

https://api.thekyb.com/api/performCompanyAml
ParameterDescription
company_idRequired: Yes
Type: String
Description: The "company_id" parameter is the unique code for the company you're checking for Anti-Money Laundering (AML) activity.
request_idRequired: Yes
Type: String
Description: The "request_id" parameter is a string identifier that must be included in the request. This ID uniquely identifies the specific AML verification request being made.
POST /api/performCompanyAml HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

{
"company_id": "COMPANY_ID",
"request_id": "REQUEST_ID"
}

AML For Person​

Description:
This API enables users to seamlessly submit AML requests for individuals, leveraging our robust verification service to efficiently screen against sanction lists and regulatory databases, ensuring compliance with ease.

info

Our AML service checks individuals, including company person or all company officers.

Method Call:   POST

API:

https://api.thekyb.com/api/performOfficersAml
ParameterDescription
company_idRequired: Yes
Type: String
Description: The "company_id" parameter is the unique code for the company you're checking for Anti-Money Laundering (AML) activity.
request_idRequired: Yes
Type: String
Description: The "request_id" parameter is a string identifier that must be included in the request. This ID uniquely identifies the specific AML verification request being made.
person_nameRequired: Optional
Type: String
Description: The "person_name" parameter is a string identifier that must be included in the request. This parameter identifies the specific AML verification request being made. It is required when creating an AML service request for a specific person.person.
POST /api/performOfficersAml HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

{
"company_id": "COMPANY_ID",
"request_id": "REQUEST_ID",
"person_name":"PERSON_NAME"
}

Response​

The KYB Verification API offers two types of responses when a verification request is made: an HTTP response and a callback response. Both responses are presented in JSON format with an application/json header. The response header also includes a Key Signature, which is utilized for verifying the authenticity of the response source.

Listing the Available Countries​

Description:
The "Listing Available Countries" response serves as a valuable resource for users to explore and understand the geographic coverage of the product. By providing a comprehensive list of covered countries and associated details, users can gain a clear picture of the product's global availability and make informed decisions regarding its usage in various regions.

API:

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

Response:

{
"error": false,
"message": "countries fetched successfully",
"data": {
"countries": [
{
"country_name": "united_kingdom",
"states": [],
"country_code": "gb",
"flag_url": "https://api.thekyb.com/uploads/countries/gb.png"
},
{
"country_name": "united_states",
"states": [
"alabama",
"alaska",
"arizona",
"arkansas",
"california",
...
],
"country_code": "us",
"flag_url": "https://api.thekyb.com/uploads/countries/us.png"
},
...
]
}
}

Response Parameters:

ParameterDescription
errorThe "error" parameter can have a value of either "true" or "false." In the current scenario, since there were no errors during the request processing, the value of "error" is "false." However, in situations where errors occur, such as missing required parameters or criteria not being met, the value of the "error" parameter will change to "true."
messageThe "message" field in API response formats provides a descriptive text or notification intended to convey additional information or instructions to the API consumer. It is commonly used to communicate relevant details about the response, such as success messages, error messages, or any other informative content that aids in understanding the outcome of the API request. The "message" field helps provide context and guidance to the API consumer regarding the status or result of the API operation.
dataThe "data" field in API documentation refers to the main payload or content of the API response. It contains the actual information, results, or entities being transmitted back to the API consumer. The structure and format of the "data" field depend on the specific API and the nature of the response.
data.countriesThe "data.countries" key within the API response provides users with a comprehensive list of countries covered in the search results. It facilitates a clear understanding of the geographic scope of the retrieved companies.
data.*.country_nameThe "data.*.country_name" key in the API response provides users with countries’ name from which the companies were sourced. This valuable information aids users in analyzing the geographical scope of the search results.
data.*.statesThe "data.*.states" key in the API response provides users with details about the states or regions associated with the companies retrieved from specific countries.
data.*.country_codeThe two-letter country code associated with the country (for example, "gb", "us").
data.*.flag_urlURL of the country flag image returned by the API (for example, "https://api.thekyb.com/uploads/countries/gb.png").

Company Search​

Description:
Whenever a user performs the company search request from official business registries a unique id called "request_id" will be generated and the request_id will be shown in the response.

API:

https://api.thekyb.com/api/search

Response:

{
"request_id": "REQUEST_ID",
"service_id": "SERVICE_ID"
}

Response Parameters:

ParameterDescription
request_idThis is the unique request ID of request and can be generated by performing a "search" request.
service_idThis is the unique service ID of service and can be generated by performing a "search" request.

Error Response:

{
"error": true,
"message": "Invalid country names: United_kingdom",
"data": {}
}

Error Response Parameters:

ParameterDescription
errortrue when the request fails (for example, invalid country names or missing required parameters).
messageHuman-readable error description (for example, "Invalid country names: United_kingdom").
dataResponse payload; typically an empty object {} on failure.

Retrieving Companies’ Profiles​

Description:
When users perform a search using the request API then in the response, the system will retrieve a list of companies from the official registries that match the provided search criteria so users can view the companies’ profiles.
For example, if a user searches for the company name "Apple" within the United States, the API will display all the companies registered in the United States that match the search term "Apple".

API:

https://api.thekyb.com/api/readKybResponse?request_id=REQUEST_ID&page=PAGE&limit=LIMIT

Response:

Company Profile Response Data
{
"error": false,
"message": "request data fetched successfully",
"data": {
"kyb_request": {
"country_codes": [],
"registration_number": null,
"request_random_id": "REQUEST_RANDOM_ID",
"service_id": "SERVICE_ID",
"search_type": "contains",
"status": "resolved",
"services": [
"kyb_check"
],
"extensive_data": [],
"search_text": "COMPANY_NAME",
"_id": "REQUEST_ID"
},
"services_in_progress": [],
"services_completed": [],
"resolved_percentage": 100,
"fetched_countries_with_states": [
{
"country_name": "united_kingdom",
"states": []
}
],
"fetched_countries": [
"united_kingdom"
],
"secondary_source": true,
"request_status": "resolved",
"kyb_request_data": [
{
"name": "COMPANY_NAME",
"registration_number": "REGISTRATION_NUMBER",
"registration_date": "YYYY-MM-DD",
"type": "COMPANY_TYPE",
"status": "active",
"risk_level": "low risk",
"verification_status": "verified",
"extensive_data": [
"Officers",
"Financial Performance",
"Filing History",
"Branches",
"Change History",
"Announcements",
"Additional Information",
"Documents"
],
"id": "COMPANY_ID",
"request_id": "REQUEST_ID"
}
],
"pagination": {
"total": 1,
"per_page": 10,
"current_page": 1,
"last_page": 1,
"from": 1,
"to": 1
}
}
}

Response Parameters:

ParameterDescription
errorThe "error" parameter can have a value of either "true" or "false." In the current scenario, since there were no errors during the request processing, the value of "error" is "false." However, in situations where errors occur, such as missing required parameters or criteria not being met, the value of the "error" parameter will change to "true".
messageThe "message" field in API response formats provides a descriptive text or notification intended to convey additional information or instructions to the API consumer. It is commonly used to communicate relevant details about the response, such as success messages, error messages, or any other informative content that aids in understanding the outcome of the API request. The "message" field helps provide context and guidance to the API consumer regarding the status or result of the API operation.
dataThe "data" field in API documentation refers to the main payload or content of the API response. It contains the actual information, results, or entities being transmitted back to the API consumer. The structure and format of the "data" field depend on the specific API and the nature of the response.
data.kyb_requestContains the details of the KYB request, including search parameters, status, services, and related request information.
data.kyb_request.country_codesArray of country codes associated with the KYB request.
data.kyb_request.statusStatus of the KYB request (for example, "resolved").
data.kyb_request.extensive_dataArray of extensive-data options associated with the KYB request.
data.services_in_progressArray of services that are still in progress for this request.
data.services_completedArray of services that have completed for this request.
data.resolved_percentageThe "resolved_percentage" parameter in this API represents the percentage of completion for the search process within the selected countries. For example, if a user chooses to search for data in 5 countries, and the API successfully retrieves results from 4 out of those 5 countries, the "resolved_percentage" will be calculated as 80%. This parameter provides valuable feedback to users, indicating the progress and completeness of the search across the specified countries, enabling efficient tracking and analysis of search results.
data.fetched_countries_with_statesThe "fetched_countries_with_states" parameter offers information on the states within the selected country, if applicable. The API's results are determined by the company registration address, specifically focusing on companies officially registered within the available states of the chosen country. This feature ensures that the retrieved data aligns with the specified states, providing accurate and relevant company information for users.
data.fetched_countriesThe "fetched_countries" key includes the names of all countries where the company is officially registered.
data.secondary_sourceThis parameter shows that certain company profiles originate from a secondary data source.
data.request_statusThe current status of the KYB Check request.
"request_status": "pending" indicates that the request is still in progress and has not yet been completed.
"request_status": "resolved" indicates completion of service request.
data.kyb_request_dataThe key "kyb_request_data" shows the companies matching the search criteria, including name, registration number, registration date, type, status, risk level, verification status, extensive_data, company id, and request_id. Fields with no value for a company (for example, registration_date) are left out of that company's object.
data.paginationdata.pagination is used to control and navigate through large result sets when retrieving paginated data.
data.pagination.total"pagination.total" refers to the total number of results or items available in a paginated API response. This value indicates the overall count of items that match the search criteria or data retrieval request.
data.pagination.per_page"data.pagination.per_page" refers to the number of data items or results displayed per page during pagination. This value indicates how many data entries or companies’ profiles are presented to the user in a single page of the API response.
data.pagination.current_page"data.pagination.current_page" represents the page number of the current set of data being displayed. This value indicates which specific page of the API response the user is currently viewing. As the user navigates through the paginated results, the "current_page" parameter helps keep track of their progress within the dataset, enabling efficient access to different segments of the data.
data.pagination.last_pageIn the API response, "data.pagination.last_page" indicates the page number of the last page available in the paginated results. This value helps users understand the total number of pages in the response and facilitates easy navigation through the complete dataset. When users reach the last page, they know they have accessed all the available data items within the paginated response.
data.pagination.from"data.pagination.from" shows the position of the first data item on the current page of the API response. It helps users know where the displayed data starts within the complete dataset. For example in the above response the value of pagination.from is 1.
data.pagination.toIn the API response, "data.pagination.to" represents the position of the last data item displayed on the current page. It helps users understand where the displayed data ends within the complete dataset, making it easier to keep track of the data range being shown on the current page of the paginated results.

Enhanced Company Profile​

Description:
This response provides users the ability to view their desired company’s detailed profile from the list of companies displayed on a page after search is performed. Each listed company profile includes registration details and a unique "company_id." This "company_id" serves as a special code to uniquely identify each company in the dataset.
To access detailed information about a specific company, users can extract the "company_id" from the results. With this "company_id" in hand, users can then use it along with the original "request_id" (which initiated the data retrieval process) to receive the comprehensive profile of the selected company in response.

API:

https://api.thekyb.com/api/companies/read?company_id=COMPANY_ID&request_id=REQUEST_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".

info

Some fields are conditional. company_aml_request_id, company_aml_ongoing_monitoring, company_aml_request_status, and company_aml_status are returned only when the aml_for_company service has been executed for the requested entity. accounts_detail and confirmation_statement_detail populate only when relevant registry data is present.

Response (without AML):

Enhanced Company Response Data (without AML)
{
"error": false,
"message": "company data fetched successfully",
"data": {
"name": "COMPANY_NAME",
"registration_number": "REGISTRATION_NUMBER",
"registration_date": "",
"status": "active",
"type": "COMPANY_TYPE",
"description": "",
"incorporation_date": null,
"industries": null,
"tax_number": null,
"dissolution_date": null,
"inactive_date": null,
"meta_detail": {},
"contacts_detail": [
{
"type": "website_link",
"value": "https://example.com",
"enriched": false,
"is_primary_link": false,
"source": "",
"meta_detail": []
}
],
"previous_names_detail": [
{
"company_name": "PREVIOUS_COMPANY_NAME",
"update_date": "YYYY-MM-DD",
"meta_detail": {},
"source": ""
}
],
"addresses_detail": [
{
"address": "COMPANY_ADDRESS",
"type": "Principal Place of Business",
"meta_detail": {},
"source": ""
}
],
"announcements_detail": [],
"people_detail": [],
"additional_detail": [
{
"type": "Current Names Detail",
"data": [
{
"name": "COMPANY_NAME",
"update_date": "YYYY-MM-DD",
"name_used_as": "Registered"
}
],
"source": ""
}
],
"parent_companies": [],
"branches": [],
"beneficial_owners_detail": [],
"company_extra_detail": {},
"identifiers": [],
"capital_stock_information": [],
"industries_detail": [],
"ownership_structure": {},
"financial_detail": {},
"risk_level": "low risk",
"verification_status": "verified",
"registries_detail": [
{
"name": "REGISTRY_NAME",
"source_type": "official"
}
],
"last_updated_at": null,
"people_network_detail": {},
"request_status": "resolved",
"primary_source": false,
"company_fetched_data_status": "resolved",
"favorite": "false",
"secondary_source": false,
"company_registration_period": "",
"company_incorporation_period": "",
"years_since_dissolution": "",
"similar_companies": [
{
"_id": "COMPANY_ID",
"name": "SIMILAR_COMPANY_NAME",
"country_name": "united_kingdom",
"request_id": "REQUEST_ID",
"country_flag": "https://api.thekyb.com/uploads/countries/gb.png"
}
],
"people_designation_detail": [],
"people_nationality_detail": [],
"filings_detail": [],
"key_figure_table": [],
"overview_financial_close_table": [],
"company_industries_keywords": [],
"solidity": {},
"profit_margin": {},
"cash_flow": {},
"financial_statement_period_table": [],
"income_statement_table": [],
"wages_table": [],
"balance_sheet_table": [],
"country_name": "united_kingdom",
"country_flag": "https://api.thekyb.com/uploads/countries/gb.png",
"jurisdiction_code": "GB",
"key_figures_meters_graphs": [],
"organization_structure": [],
"people_detail_graph": [],
"affiliated_companies": [],
"working_on_files": false,
"services_in_progress": [],
"services_completed": [],
"ownership_shares_detail": [],
"voting_shares_detail": [],
"request_id": "REQUEST_ID",
"_id": "COMPANY_ID"
}
}

Response (with AML):

note

The following sample includes AML fields. These keys are returned only when the aml_for_company service has been executed for the requested entity.

Enhanced Company Response Data (with AML)
{
"error": false,
"message": "company data fetched successfully",
"data": {
"name": "COMPANY_NAME",
"registration_number": "REGISTRATION_NUMBER",
"registration_date": "",
"status": "active",
"type": "COMPANY_TYPE",
"description": "",
"incorporation_date": null,
"industries": null,
"tax_number": null,
"dissolution_date": null,
"inactive_date": null,
"meta_detail": {},
"contacts_detail": [
{
"type": "website_link",
"value": "https://example.com",
"enriched": false,
"is_primary_link": false,
"source": "",
"meta_detail": []
}
],
"previous_names_detail": [
{
"company_name": "PREVIOUS_COMPANY_NAME",
"update_date": "YYYY-MM-DD",
"meta_detail": {},
"source": ""
}
],
"addresses_detail": [
{
"address": "COMPANY_ADDRESS",
"type": "Principal Place of Business",
"meta_detail": {},
"source": ""
}
],
"announcements_detail": [],
"people_detail": [],
"additional_detail": [
{
"type": "Current Names Detail",
"data": [
{
"name": "COMPANY_NAME",
"update_date": "YYYY-MM-DD",
"name_used_as": "Registered"
}
],
"source": ""
}
],
"parent_companies": [],
"branches": [],
"beneficial_owners_detail": [],
"company_extra_detail": {},
"identifiers": [],
"capital_stock_information": [],
"industries_detail": [],
"ownership_structure": {},
"financial_detail": {},
"risk_level": "low risk",
"verification_status": "verified",
"registries_detail": [
{
"name": "REGISTRY_NAME",
"source_type": "official"
}
],
"last_updated_at": null,
"people_network_detail": {},
"request_status": "resolved",
"primary_source": false,
"company_fetched_data_status": "resolved",
"favorite": "false",
"secondary_source": false,
"company_registration_period": "",
"company_incorporation_period": "",
"years_since_dissolution": "",
"similar_companies": [
{
"_id": "COMPANY_ID",
"name": "SIMILAR_COMPANY_NAME",
"country_name": "united_kingdom",
"request_id": "REQUEST_ID",
"country_flag": "https://api.thekyb.com/uploads/countries/gb.png"
}
],
"people_designation_detail": [],
"people_nationality_detail": [],
"filings_detail": [],
"key_figure_table": [],
"overview_financial_close_table": [],
"company_industries_keywords": [],
"solidity": {},
"profit_margin": {},
"cash_flow": {},
"financial_statement_period_table": [],
"income_statement_table": [],
"wages_table": [],
"balance_sheet_table": [],
"country_name": "united_kingdom",
"country_flag": "https://api.thekyb.com/uploads/countries/gb.png",
"jurisdiction_code": "GB",
"key_figures_meters_graphs": [],
"organization_structure": [],
"people_detail_graph": [],
"affiliated_companies": [],
"working_on_files": false,
"services_in_progress": [],
"services_completed": [],
"ownership_shares_detail": [],
"voting_shares_detail": [],
"request_id": "REQUEST_ID",
"_id": "COMPANY_ID",
"company_aml_request_id": "AML_REQUEST_ID",
"company_aml_ongoing_monitoring": false,
"company_aml_request_status": "resolved",
"company_aml_status": "clear"
}
}

Response Parameters:

ParameterDescription
errortrue or false. false indicates the request completed without errors.
messageDescriptive status message for the API response.
dataMain company profile payload returned by the API.
data._idUnique company identifier (COMPANY_ID).
data.request_idUnique request identifier associated with the company profile.
data.nameRegistered company name.
data.registration_numberCompany registration number.
data.registration_dateCompany registration date, when available.
data.statusCurrent company status (for example, "active").
data.typeCompany type or legal form.
data.country_nameCountry where the company is registered.
data.country_flagURL of the country flag image.
data.jurisdiction_codeJurisdiction code (for example, "GB").
data.descriptionCompany description, when available.
data.incorporation_dateIncorporation date, when available.
data.industriesIndustry information, when available.
data.tax_numberTax number, when available.
data.dissolution_dateDissolution date, when available.
data.inactive_dateInactive date, when available.
data.favoriteIndicates whether the company is marked as favorite.
data.meta_detailAdditional registry-specific details about the company. The keys depend on the country's registry, so they differ between companies (for example contract_date, activity and update_date for Argentina). It is {} when the registry provides no extra details.
data.contacts_detailContact details such as website or phone number. Each item has type, value, enriched (boolean), is_primary_link (boolean), source ("primary", "secondary" or "") and meta_detail.
data.contacts_detail[].enrichedIndicates whether the contact value has been enriched.
data.contacts_detail[].is_primary_linkIndicates whether the contact is the primary link.
data.contacts_detail[].sourceSource of the contact information.
data.previous_names_detailPrevious company names. Each item has company_name, update_date and meta_detail, plus status and source when available. Empty keys are left out.
data.previous_names_detail[].sourceSource of the previous name record.
data.addresses_detailCompany address records. Each item has address and type, plus description, meta_detail and source when available. Empty keys are left out.
data.addresses_detail[].sourceSource of the address record.
data.announcements_detailCompany announcements, when available.
data.people_detailPeople associated with the company.
data.additional_detailAdditional structured company details. Each item has type, data and, when available, source. The keys inside data[] depend on type. For example, "Current Names Detail" entries have name, update_date and name_used_as.
data.additional_detail[].sourceSource of the additional detail record.
data.parent_companiesParent company records, when available. Keys depend on the registry, for example name, company_number, country_name and country_flag. meta_detail and source appear when available. Empty keys are left out.
data.branchesBranch records, when available. Same item format as parent_companies. meta_detail and source appear only when they have a value.
data.beneficial_owners_detailBeneficial owner records, when available.
data.company_extra_detailExtra company detail object.
data.identifiersCompany identifiers, when available.
data.capital_stock_informationCapital stock information, when available.
data.industries_detailDetailed industry records, when available.
data.ownership_structureOwnership structure object.
data.financial_detailFinancial detail object.
data.risk_levelRisk level assigned to the company.
data.verification_statusVerification status of the company profile.
data.registries_detailRegistry sources for the company.
data.last_updated_atTimestamp of the last update, when available.
data.people_network_detailPeople network detail object.
data.people_detail_graphPeople detail graph data.
data.organization_structureOrganization structure data.
data.affiliated_companiesAffiliated company records.
data.similar_companiesSimilar company records. Each item has _id, name, country_name, request_id and country_flag.
data.similar_companies[]._idUnique identifier of the similar company.
data.similar_companies[].request_idRequest ID associated with the similar company.
data.similar_companies[].country_flagCountry flag URL for the similar company.
data.people_designation_detailPeople designation detail records.
data.people_nationality_detailPeople nationality detail records.
data.filings_detailFiling records, when available.
data.key_figure_tableKey figure table data.
data.key_figures_meters_graphsKey figures meters and graphs data.
data.overview_financial_close_tableOverview financial close table data.
data.financial_statement_period_tableFinancial statement period table data.
data.income_statement_tableIncome statement table data.
data.balance_sheet_tableBalance sheet table data.
data.wages_tableWages table data.
data.company_industries_keywordsIndustry keywords associated with the company.
data.soliditySolidity metrics object.
data.profit_marginProfit margin metrics object.
data.cash_flowCash flow metrics object.
data.request_statusStatus of the company profile request.
data.primary_sourceIndicates whether the profile is from a primary source.
data.secondary_sourceIndicates whether the profile is from a secondary source.
data.company_fetched_data_statusFetch status of the company data.
data.company_registration_periodHow long ago the company was registered, for example "more than 3 years". It is an empty string when registration_date is not available.
data.company_incorporation_periodHow long ago the company was incorporated. It is an empty string when incorporation_date is not available.
data.years_since_dissolutionHow long ago the company was dissolved. It is an empty string when dissolution_date is not available.
data.ownership_shares_detailOwnership shares detail records.
data.voting_shares_detailVoting shares detail records.
data.working_on_filesIndicates whether file processing is in progress.
data.services_in_progressServices currently in progress.
data.services_completedServices that have completed.
data.company_aml_request_idOptional / Conditional. AML request ID. Returned only when the aml_for_company service has been executed for the requested entity.
data.company_aml_ongoing_monitoringOptional / Conditional. Type: Boolean. Whether ongoing AML monitoring is turned on for the company. Returned only when the aml_for_company service has been executed for the requested entity.
data.company_aml_request_statusOptional / Conditional. AML request status. Returned only when the aml_for_company service has been executed for the requested entity.
data.company_aml_statusOptional / Conditional. AML status for the company. Returned only when the aml_for_company service has been executed for the requested entity and company_aml_request_status is "resolved".
data.accounts_detailOptional / Conditional. Accounts detail object with last_account, next_account and due_by_date. Returned only when the registry provides accounts data; otherwise the key is left out.
data.confirmation_statement_detailOptional / Conditional. Confirmation statement detail object with last_account, next_account and due_by_date. Returned only when the registry provides confirmation statement data; otherwise the key is left out.

AML For Company​

Description:
The "AML for company" request response will provide the detailed information of the aml for company. Once your request results are ready for delivery, we will notify you.

Here are the keys "company_aml_request_id", "company_aml_request_status", and "company_aml_status" provided in detail "Enhanced Company Response". You can use them to check the AML results for the company.

info

After completing the service, you can access the status of your request at the specified endpoint. Here is "Enhanced Company Response" for your request.

API:

https://api.thekyb.com/api/performCompanyAml

Response:

{
"error": false,
"message": "Kyb Company Aml Started",
"data": {
"aml_request_id": "AML_REQUEST_ID"
}
}

Response Parameters:

ParameterDescription
errorThe "error" parameter can have a value of either "true" or "false." In the current scenario, since there were no errors during the request processing, the value of "error" is "false." However, in situations where errors occur, such as missing required parameters or criteria not being met, the value of the "error" parameter will change to "true."
messageThe "message" field in API response formats provides a descriptive text or notification intended to convey additional information or instructions to the API consumer. It is commonly used to communicate relevant details about the response, such as success messages, error messages, or any other informative content that aids in understanding the outcome of the API request. The "message" field helps provide context and guidance to the API consumer regarding the status or result of the API operation.
dataThe "data" field in API documentation refers to the main payload or content of the API response. It contains the actual information, results, or entities being transmitted back to the API consumer. The structure and format of the "data" field depend on the specific API and the nature of the response.
data.aml_request_idThe "data.aml_request_id" key within the API response provides the unique request id for your request.

AML For Person​

Description:
The "AML for person" request queues an AML screening for every eligible company officer and beneficial owner (or only for person_name, if you send it). The response comes back immediately and contains the queued requests in the "aml_for_people_requests" array. Each request starts with status: "pending". The screening itself runs in the background, and we will notify you when the results are ready.

A person is skipped if they already have a pending AML request, or a resolved one with a match_status of "potential match" or "no match", for this company. If your account has a limited number of AML requests left, only that many people are queued.

Use the _id of each item to match it with the "aml_request_id" key in the "people_detail" and "beneficial_owners_detail" objects of the "Enhanced Company Response". Those objects also carry "aml_request_status" and "aml_status" once the screening is complete. All requests from one call share the same batch_id.

info

The AML results are not part of this response. After the service completes, you can get them at the endpoint below. Here is "Enhanced Company Response" for your request.

API:

https://api.thekyb.com/api/performOfficersAml

Response:

{
"error": false,
"message": "Performing Aml on Officers",
"data": {
"aml_for_people_requests": [
{
"user_id": "USER_ID",
"search_name": "john doe",
"aml_modified_name": "john doe",
"company_id": "COMPANY_ID",
"service_id": "SERVICE_ID",
"kyb_response_id": "KYB_RESPONSE_ID",
"fuzziness": "90",
"entity_type": ["Person", "Company", "Organization"],
"categories": [
"PEP Level 1",
"PEP Level 2",
"PEP Level 3",
"PEP Level 4",
"Fitness and Probity",
"SIP",
"Warnings and Regulatory Enforcement",
"Sanctions",
"SIE",
"Insolvency"
],
"country_names": [],
"country_codes": [],
"unique_identifier": "",
"birth_incorporation_date": "",
"services": ["kyb_check", "aml_for_people"],
"exact_search": false,
"rca_search": false,
"alias_search": false,
"ongoing_monitoring": false,
"request_type": "for_people",
"batch_id": "BATCH_ID",
"status": "pending",
"updated_at": "2026-01-01T00:00:00.000000Z",
"created_at": "2026-01-01T00:00:00.000000Z",
"_id": "AML_REQUEST_ID",
"for_single_person": true
}
]
}
}

Response Parameters:

ParameterDescription
errorfalse when the AML requests were queued. true when the request failed, for example when required parameters are missing or no eligible people were found.
messageA short description of the result. On success it is "Performing Aml on Officers".
dataThe response payload.
data.aml_for_people_requestsAn array with one object for each person queued for AML screening.
data.aml_for_people_requests[]._idThe unique ID of the AML request. It matches aml_request_id in the person's entry in the "Enhanced Company Response".
data.aml_for_people_requests[].batch_idAn ID shared by all AML requests created in the same call.
data.aml_for_people_requests[].statusThe processing status of the request. It is always "pending" in this response.
data.aml_for_people_requests[].search_nameThe name being screened, in lowercase.
data.aml_for_people_requests[].aml_modified_nameThe name sent for screening, with prefixes (such as titles) removed.
data.aml_for_people_requests[].request_typeThe type of AML request. It is always "for_people" for this endpoint.
data.aml_for_people_requests[].kyb_response_idThe ID of the company (company_id) the person belongs to.
data.aml_for_people_requests[].service_idThe ID of the KYB service used for the request.
data.aml_for_people_requests[].user_idThe ID of the user who made the request.
data.aml_for_people_requests[].company_idThe ID of the account the user belongs to.
data.aml_for_people_requests[].servicesThe services enabled on the KYB service.
data.aml_for_people_requests[].entity_typeThe entity types screened against. These come from your AML preferences, or default to Person, Company and Organization.
data.aml_for_people_requests[].categoriesThe AML categories screened against. These come from your AML preferences, or the default categories.
data.aml_for_people_requests[].fuzzinessThe fuzzy-match threshold for name matching. The default is "90".
data.aml_for_people_requests[].exact_searchType: Boolean. Whether only exact name matches are returned.
data.aml_for_people_requests[].rca_searchType: Boolean. Whether relatives and close associates (RCA) are searched.
data.aml_for_people_requests[].alias_searchType: Boolean. Whether aliases are searched.
data.aml_for_people_requests[].ongoing_monitoringType: Boolean. Whether ongoing AML monitoring is turned on for this person.
data.aml_for_people_requests[].country_namesThe country names used to narrow the screening, if any.
data.aml_for_people_requests[].country_codesThe country codes used to narrow the screening, if any.
data.aml_for_people_requests[].unique_identifierA unique identifier for the person, if one was provided.
data.aml_for_people_requests[].birth_incorporation_dateThe person's date of birth, if one was provided.
data.aml_for_people_requests[].created_atWhen the AML request was created.
data.aml_for_people_requests[].updated_atWhen the AML request was last updated.
data.aml_for_people_requests[].for_single_personOptional / Conditional. Returned as true whenever the person_name parameter is included in the request, even if its value is empty. Not returned when person_name is left out.

Error Response (no eligible people):

This response comes back with HTTP status 422 when no people could be queued. This happens when the company has no officers or beneficial owners, when everyone has already been screened or is still pending, or when person_name matches nobody who can be screened.

{
"error": true,
"message": "No people were found to perform AML.",
"data": {}
}