curl -X GET 'https://verification.didit.me/v3/businesses/?limit=50' \
-H 'x-api-key: YOUR_API_KEY'import requests
resp = requests.get(
'https://verification.didit.me/v3/businesses/',
headers={'x-api-key': 'YOUR_API_KEY'},
params={'limit': 50},
)
resp.raise_for_status()
page = resp.json()
for biz in page['results']:
print(biz['vendor_data'], biz['status'])const url = new URL('https://verification.didit.me/v3/businesses/');
url.searchParams.set('limit', '50');
const page = await fetch(url, {
headers: { 'x-api-key': process.env.DIDIT_API_KEY },
}).then((r) => r.json());
console.log(page.count, page.results.length);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/businesses/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/businesses/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/businesses/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/businesses/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"didit_internal_id": "a1b2c3d4-e5f6-4890-abcd-ef1234567890",
"vendor_data": "company-123",
"display_name": null,
"legal_name": "Acme Trading Ltd",
"registration_number": "12345678",
"country_code": "GB",
"effective_name": "Acme Trading Ltd",
"status": "ACTIVE",
"session_count": 2,
"approved_count": 1,
"declined_count": 0,
"in_review_count": 1,
"features": {
"KYB": "Approved"
},
"features_list": [
{
"feature": "KYB",
"status": "Approved"
}
],
"last_session_at": "2026-03-15T10:30:00Z",
"last_activity_at": "2026-03-15T10:30:00Z",
"first_session_at": "2026-01-10T08:00:00Z",
"tags": [
{
"uuid": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"name": "VIP",
"color": "#2567FF"
}
],
"created_at": "2026-01-10T08:00:00Z"
}
]
}{
"detail": "You do not have permission to perform this action."
}{
"detail": "Request was throttled. Expected available in 30 seconds."
}List Businesses
List businesses Didit assembles from KYB sessions sharing the same vendor_data (free-form string, NOT a UUID), plus businesses created via the API. Paginated, ordered by last_session_at desc. This endpoint does not support filtering or search parameters — fetch pages and filter client-side.
curl -X GET 'https://verification.didit.me/v3/businesses/?limit=50' \
-H 'x-api-key: YOUR_API_KEY'import requests
resp = requests.get(
'https://verification.didit.me/v3/businesses/',
headers={'x-api-key': 'YOUR_API_KEY'},
params={'limit': 50},
)
resp.raise_for_status()
page = resp.json()
for biz in page['results']:
print(biz['vendor_data'], biz['status'])const url = new URL('https://verification.didit.me/v3/businesses/');
url.searchParams.set('limit', '50');
const page = await fetch(url, {
headers: { 'x-api-key': process.env.DIDIT_API_KEY },
}).then((r) => r.json());
console.log(page.count, page.results.length);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/businesses/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/businesses/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/businesses/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/businesses/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"didit_internal_id": "a1b2c3d4-e5f6-4890-abcd-ef1234567890",
"vendor_data": "company-123",
"display_name": null,
"legal_name": "Acme Trading Ltd",
"registration_number": "12345678",
"country_code": "GB",
"effective_name": "Acme Trading Ltd",
"status": "ACTIVE",
"session_count": 2,
"approved_count": 1,
"declined_count": 0,
"in_review_count": 1,
"features": {
"KYB": "Approved"
},
"features_list": [
{
"feature": "KYB",
"status": "Approved"
}
],
"last_session_at": "2026-03-15T10:30:00Z",
"last_activity_at": "2026-03-15T10:30:00Z",
"first_session_at": "2026-01-10T08:00:00Z",
"tags": [
{
"uuid": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"name": "VIP",
"color": "#2567FF"
}
],
"created_at": "2026-01-10T08:00:00Z"
}
]
}{
"detail": "You do not have permission to perform this action."
}{
"detail": "Request was throttled. Expected available in 30 seconds."
}Overview
Returns a paginated list of Business entities for the authenticated application.When to use it
- Sync your business table to an external BI or warehouse.
- Analyst queues — filter by
status=FLAGGEDto drive a review inbox. - Search by
display_name,legal_name,registration_number, orvendor_data.
Filters and pagination
| Query parameter | Description |
|---|---|
status | ACTIVE, FLAGGED, or BLOCKED. |
search | Substring match on display name, legal name, registration, vendor_data. |
country_code | ISO 3166-1 alpha-3 country of incorporation. |
created_after, created_before | Creation date window. |
last_activity_after, last_activity_before | Activity window. |
page_size | 1–200. Default 50. |
cursor | Pagination cursor. |
Notes
vendor_datamay benullif the originating session or transaction did not provide one.- Cursor-based pagination — persist the
nextcursor between calls. - See the Business data model for every field.
Permissions
Role must grantlist:businesses.
Related
Authorizations
Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is missing, wrong, revoked or expired; 403 means the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.
Query Parameters
Page size. Defaults to 50 when omitted. There is no enforced maximum, but keep pages small for latency.
x >= 1Zero-based offset of the first record to return. Prefer following the next URL from the previous page over computing this by hand.
x >= 0Response
Paginated list of businesses with status, session counts, and feature breakdown.
Number of matching rows — exact up to 100, capped at 100 beyond that for performance. Do not use it to detect the last page; rely on next being null instead.
Absolute URL of the next page, or null on the last page.
Absolute URL of the previous page, or null on the first page.
Show child attributes
Show child attributes