curl --request POST --fail-with-body --max-time 30 \
"${AMLOK_API_BASE_URL}/v1/businesses" \
--header "Authorization: Bearer ${AMLOK_API_KEY}" \
--header "Accept: application/json" \
--header 'Idempotency-Key: idem_example_1001' \
--header 'Content-Type: application/json' \
--data '{
"legal_name": "Example Manufacturing Inc.",
"client_reference": "app-1029",
"incorporation_country": "CA"
}'import os
import requests
base_url = os.environ["AMLOK_API_BASE_URL"].rstrip("/")
headers = {'Accept': 'application/json',
'Idempotency-Key': 'idem_example_1001',
'Content-Type': 'application/json'}
headers["Authorization"] = "Bearer " + os.environ["AMLOK_API_KEY"]
response = requests.request(
"POST", base_url + "/v1/businesses",
headers=headers, timeout=30, allow_redirects=False,
json={'legal_name': 'Example Manufacturing Inc.',
'client_reference': 'app-1029',
'incorporation_country': 'CA'},
)
response.raise_for_status()
print(response.json())
const baseUrl = process.env.AMLOK_API_BASE_URL;
const apiKey = process.env.AMLOK_API_KEY;
if (!baseUrl || !apiKey) throw new Error("Configure AMLOK_API_BASE_URL and AMLOK_API_KEY");
const headers = {
"Accept": "application/json",
"Idempotency-Key": "idem_example_1001",
"Content-Type": "application/json"
};
headers.Authorization = `Bearer ${apiKey}`;
const response = await fetch(baseUrl.replace(/\/$/, "") + "/v1/businesses", {
method: "POST", headers,
redirect: "error", signal: AbortSignal.timeout(30000),
body: JSON.stringify({
"legal_name": "Example Manufacturing Inc.",
"client_reference": "app-1029",
"incorporation_country": "CA"
}),
});
if (!response.ok) throw new Error(`AMLOK returned HTTP ${response.status}`);
console.log(await response.json());{
"data": {
"id": "biz_example",
"object": "business",
"subject_id": "biz_example",
"created_at": "2026-10-23T14:00:00Z",
"updated_at": "2026-10-23T14:00:00Z",
"record_version": 1,
"source_refs": [
{
"provider_id": "CLIENT",
"retrieved_at": "2026-10-23T14:00:00Z"
}
],
"data_status": "partial",
"missing_fields": [],
"schema_version": "1.4.2",
"client_reference": "app-1029",
"legal_name": "Example Manufacturing Inc.",
"trade_names": [
"Example Works"
],
"former_names": [],
"registration_number": "REG-EXAMPLE",
"registration_jurisdiction": "CA-ON",
"incorporation_country": "CA",
"incorporation_date": "2018-04-09",
"legal_form": "corporation",
"legal_status": null,
"raw_legal_status": "Active",
"tax_identifiers": [],
"lei": null,
"registered_address": {
"city": "Toronto",
"country": "CA"
},
"operating_addresses": [],
"website": "https://example.com",
"email": "contact@example.com",
"phone": "+14165550100",
"industry_codes": [],
"business_description": "Industrial component fabrication",
"employee_count": 35,
"fiscal_year_end": "12-31",
"reporting_currency": "CAD",
"is_registry_sourced": false,
"registry_retrieved_at": null,
"last_annual_return_date": "2026-04-01",
"ownership_complete": false
},
"meta": {
"request_id": "req_example",
"schema_version": "1.4.2",
"generated_at": "2026-10-23T14:00:00Z",
"data_status": "partial"
}
}Create business
Create a client-asserted business profile.
Required scope: identity:write. Does not represent successful registry verification. Once account cancellation is submitted, processing and usage deductions stop immediately. Reject new operational commands with 409 invalid_state; pending work is cancelled without another debit. Read-only reporting remains available until workspace deletion. Accepted commands have a durable request receipt. Full response replay lasts 24 hours; afterward the same key and target return 409 idempotency_result_expired without re-execution. Different payloads return 409 idempotency_conflict. Use GET /v1/request-receipts/lookup to find the original resource. The fingerprint includes the resolved target path and intended payload; a key used on another target is rejected rather than replayed onto it. Pre-execution validation or insufficient-credit rejection creates no accepted receipt.
curl --request POST --fail-with-body --max-time 30 \
"${AMLOK_API_BASE_URL}/v1/businesses" \
--header "Authorization: Bearer ${AMLOK_API_KEY}" \
--header "Accept: application/json" \
--header 'Idempotency-Key: idem_example_1001' \
--header 'Content-Type: application/json' \
--data '{
"legal_name": "Example Manufacturing Inc.",
"client_reference": "app-1029",
"incorporation_country": "CA"
}'import os
import requests
base_url = os.environ["AMLOK_API_BASE_URL"].rstrip("/")
headers = {'Accept': 'application/json',
'Idempotency-Key': 'idem_example_1001',
'Content-Type': 'application/json'}
headers["Authorization"] = "Bearer " + os.environ["AMLOK_API_KEY"]
response = requests.request(
"POST", base_url + "/v1/businesses",
headers=headers, timeout=30, allow_redirects=False,
json={'legal_name': 'Example Manufacturing Inc.',
'client_reference': 'app-1029',
'incorporation_country': 'CA'},
)
response.raise_for_status()
print(response.json())
const baseUrl = process.env.AMLOK_API_BASE_URL;
const apiKey = process.env.AMLOK_API_KEY;
if (!baseUrl || !apiKey) throw new Error("Configure AMLOK_API_BASE_URL and AMLOK_API_KEY");
const headers = {
"Accept": "application/json",
"Idempotency-Key": "idem_example_1001",
"Content-Type": "application/json"
};
headers.Authorization = `Bearer ${apiKey}`;
const response = await fetch(baseUrl.replace(/\/$/, "") + "/v1/businesses", {
method: "POST", headers,
redirect: "error", signal: AbortSignal.timeout(30000),
body: JSON.stringify({
"legal_name": "Example Manufacturing Inc.",
"client_reference": "app-1029",
"incorporation_country": "CA"
}),
});
if (!response.ok) throw new Error(`AMLOK returned HTTP ${response.status}`);
console.log(await response.json());{
"data": {
"id": "biz_example",
"object": "business",
"subject_id": "biz_example",
"created_at": "2026-10-23T14:00:00Z",
"updated_at": "2026-10-23T14:00:00Z",
"record_version": 1,
"source_refs": [
{
"provider_id": "CLIENT",
"retrieved_at": "2026-10-23T14:00:00Z"
}
],
"data_status": "partial",
"missing_fields": [],
"schema_version": "1.4.2",
"client_reference": "app-1029",
"legal_name": "Example Manufacturing Inc.",
"trade_names": [
"Example Works"
],
"former_names": [],
"registration_number": "REG-EXAMPLE",
"registration_jurisdiction": "CA-ON",
"incorporation_country": "CA",
"incorporation_date": "2018-04-09",
"legal_form": "corporation",
"legal_status": null,
"raw_legal_status": "Active",
"tax_identifiers": [],
"lei": null,
"registered_address": {
"city": "Toronto",
"country": "CA"
},
"operating_addresses": [],
"website": "https://example.com",
"email": "contact@example.com",
"phone": "+14165550100",
"industry_codes": [],
"business_description": "Industrial component fabrication",
"employee_count": 35,
"fiscal_year_end": "12-31",
"reporting_currency": "CAD",
"is_registry_sourced": false,
"registry_retrieved_at": null,
"last_annual_return_date": "2026-04-01",
"ownership_complete": false
},
"meta": {
"request_id": "req_example",
"schema_version": "1.4.2",
"generated_at": "2026-10-23T14:00:00Z",
"data_status": "partial"
}
}identity:write
Create a client-asserted business profile.
Required scope: identity:write. Does not represent successful registry verification. Once account cancellation is submitted, processing and usage deductions stop immediately. Reject new operational commands with 409 invalid_state; pending work is cancelled without another debit. Read-only reporting remains available until workspace deletion. Accepted commands have a durable request receipt. Full response replay lasts 24 hours; afterward the same key and target return 409 idempotency_result_expired without re-execution. Different payloads return 409 idempotency_conflict. Use GET /v1/request-receipts/lookup to find the original resource. The fingerprint includes the resolved target path and intended payload; a key used on another target is rejected rather than replayed onto it. Pre-execution validation or insufficient-credit rejection creates no accepted receipt.
Product scope · Processing lifecycle · ErrorsAuthorizations
Server-to-server API key bound to exactly one workspace, institution tenant and environment. No caller-supplied workspace override is accepted. Do not use in public browser code.
Headers
Optional caller correlation ID; the response includes AMLOK request_id.
Reuse for retries of the same intended command and identical payload. Retention: 24 hours.
Body
Client-asserted legal name.
1Optional caller-owned correlation identifier.
1Company or registry registration identifier.
1Country of formation.
1