This API provides a unified interface to 30+ business registries and is designed to help automate KYB corporate processes.
It offers three endpoints:
/check_registration_number/check_business/get_resultTo verify a company is registered in its registration country business registry proceed as follows:
/check_registration_number endpoint to verify if the structure of the Business Registration ID (number or code depending on the country) is correct. This is designed to avoid calling the much more expensive /check_business endpoint if we can determine from the structure only that the Business Registration ID is invalid./check_business API endpoint. This API will return a /request_id parameter to be used as an input parameter to the /get_result API endpoint./get_result API endpoint.To retrieve the check result we need to allow the target registries and our backend some time. Indeed, many registries impose rate limits on checks. Our API knows what the constraints of the target business registry are and performs the checks accordingly.
The suggested result retrieval approach for the API under normal operation is the following:
/check_business endpoint before calling the /get_result endpoint. The API will return a result in 99% of cases after 10 seconds./check_business endpoint) if the previous /get_result call returns a "The result is not ready yet, please wait longer" message. The API will return a result in 99.5% of cases after 30 seconds./check_business endpoint) if the previous /get_result call returns a "The result is not ready yet, please wait longer" message. This is for cases where the API is processing large batches of checks and results are delayed due to rate limit constraints by either the target registry or our backend infrastructure./check_business endpoint) if the previous /get_result call returns a "The result is not ready yet, please wait longer" message. This is for cases where the API is under exceptionally high load and the processing queue is extremely large.If the /get_result API endpoint still returns a "The result is not ready yet, please wait longer" message after 24 hours contact our support team at https://open-automation.io/contact/ for assistance.
/check_registration_number/ endpointThis API endpoint is used to check if a Business Registration ID (BR_ID) has a valid structure. If the structure is valid, it can be used with the /check_business endpoint. If it is not, it will not make sense to call the /check_business endpoint as it will always return a "match" = 0 result.
Response sample
{
"br_id_valid": 0,
"message": "string",
}
"match" = 0/check_business API endpoint can be made/check_business endpointThis API endpoint queries the target country business registry data to verify the submitted company is indeed actively registered.
The API returns a "request_id" string identifier which can be used to retrieve the registry check once it is processed by the API backend.
Request sample
{
"registration_number": "35742739",
"business_name": "APPLE SLOVAKIA",
"country": "SK"
}
Response sample
{
"request_id": "1749407497620978713",
}
/get_result API endpoint/get_result endpointThis API endpoint is used to asynchronously retrieve the result of the business registry check.
The main result parameter is the "match" parameter.
Request sample
{
"request_id": "1749407497620978713"
}
Response sample
{
"match": 1,
"message": "Match / Found registration number in the national business registry",
"matching_details": ["100% <-- APPLE SLOVAKIA / APPLE SLOVAKIA", "40% <-- APPLE SLOVAKIA / APPLE COMPUTERS SLOVAKIA"],
}
/check_business API endpoint
# Global Biz Verify API full example code
# Step 1: Check if the business registration format is valid avoid useless business registry checks
curl \
-H "Authorization: Bearer <access-token--contact-us-for-test-tokens>" \
https://eu-central-1.global-biz-verify-api.open-automation.io/check_registration_number/SK/35742739
# Step 2: Request a buisiness registry check and get back a request_id
# or the result directly if it is ready immediately
curl \
-H "Authorization: Bearer <access-token--contact-us-for-test-tokens>" \
-H "Content-Type: application/json" \
-d '{"registration_number": "35742739", "business_name": "APPLE SLOVAKIA", "country": "SK"}' \
https://eu-central-1.global-biz-verify-api.open-automation.io/check_business
# Step 3: Get the result using the previously provided result_id
curl \
-H "Authorization: Bearer <access-token--contact-us-for-test-tokens<" \
-H "Content-Type: application/json" \
-d '{"request_id": "1749407497620978713"}' \
https://eu-central-1.global-biz-verify-api.open-automation.io/get_result
# Check the technical documentation for detailed exaplanation of the 3 endpoints
import requests
import time
# Replace this with your actual token
access_token = "<access-token--contact-us-for-test-tokens<"
headers = {
"Authorization": f"Bearer {access_token}"
}
# Step 1: Validate business registration format
country_code = "SK"
registration_number = "35742739"
response_step1 = requests.get(
f"https://eu-central-1.global-biz-verify-api.open-automation.io/check_registration_number/{country_code}/{registration_number}",
headers=headers
)
print("Step 1 - Registration Format Validation:")
print(response_step1.json())
# Step 2: Perform business registry check
headers_with_content_type = {
**headers,
"Content-Type": "application/json"
}
payload_step2 = {
"registration_number": "35742739",
"business_name": "APPLE SLOVAKIA",
"country": "SK"
}
response_step2 = requests.post(
"https://eu-central-1.global-biz-verify-api.open-automation.io/check_business",
headers=headers_with_content_type,
json=payload_step2
)
print("\nStep 2 - Business Check Request:")
step2_result = response_step2.json()
print(step2_result)
# Extract request_id if present
request_id = step2_result.get("request_id")
if request_id:
# Step 3: Get result using request_id
payload_step3 = {
"request_id": request_id
}
time.sleep(10)
response_step3 = requests.post(
"https://eu-central-1.global-biz-verify-api.open-automation.io/get_result",
headers=headers_with_content_type,
json=payload_step3
)
print("\nStep 3 - Get Result:")
print(response_step3.json())
else:
print("\nStep 3 skipped: No request_id returned; result might be immediate.")
# Check the technical documentation for detailed exaplanation of the 3 endpoints
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var accessToken = "<access-token--contact-us-for-test-tokens>";
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
// Step 1: Validate business registration format
var countryCode = "SK";
var registrationNumber = "35742739";
var step1Url = $"https://eu-central-1.global-biz-verify-api.open-automation.io/check_registration_number/{countryCode}/{registrationNumber}";
var responseStep1 = await client.GetAsync(step1Url);
var step1Json = await responseStep1.Content.ReadAsStringAsync();
Console.WriteLine("Step 1 - Registration Format Validation:");
Console.WriteLine(step1Json);
// Step 2: Perform business registry check
var step2Url = "https://eu-central-1.global-biz-verify-api.open-automation.io/check_business";
var payloadStep2 = new
{
registration_number = "35742739",
business_name = "APPLE SLOVAKIA",
country = "SK"
};
var step2Content = new StringContent(JsonSerializer.Serialize(payloadStep2), Encoding.UTF8, "application/json");
var responseStep2 = await client.PostAsync(step2Url, step2Content);
var step2Json = await responseStep2.Content.ReadAsStringAsync();
Console.WriteLine("\nStep 2 - Business Check Request:");
Console.WriteLine(step2Json);
// Parse step2 JSON and extract request_id
using var doc = JsonDocument.Parse(step2Json);
if (doc.RootElement.TryGetProperty("request_id", out var requestIdElement))
{
string requestId = requestIdElement.GetString();
// Step 3: Get result using request_id
var step3Url = "https://eu-central-1.global-biz-verify-api.open-automation.io/get_result";
var payloadStep3 = new
{
request_id = requestId
};
await Task.Delay(10000); // sleep for 10 seconds
var step3Content = new StringContent(JsonSerializer.Serialize(payloadStep3), Encoding.UTF8, "application/json");
var responseStep3 = await client.PostAsync(step3Url, step3Content);
var step3Json = await responseStep3.Content.ReadAsStringAsync();
Console.WriteLine("\nStep 3 - Get Result:");
Console.WriteLine(step3Json);
}
else
{
Console.WriteLine("\nStep 3 skipped: No request_id returned; result might be immediate.");
}
}
}
// Check the technical documentation for detailed exaplanation of the 3 endpoints