curl --request GET --fail-with-body --max-time 30 \
"${AMLOK_API_BASE_URL}/v1/bills?limit=100&cursor=cur_example&subject_id=biz_example&connection_id=cnn_example&fields=id%2Cobject%2Cupdated_at&include=provenance&due_before=2026-10-22" \
--header "Authorization: Bearer ${AMLOK_API_KEY}" \
--header "Accept: application/json"import os
import requests
base_url = os.environ["AMLOK_API_BASE_URL"].rstrip("/")
headers = {'Accept': 'application/json'}
headers["Authorization"] = "Bearer " + os.environ["AMLOK_API_KEY"]
response = requests.request(
"GET", base_url + "/v1/bills?limit=100&cursor=cur_example&subject_id=biz_example&connection_id=cnn_example&fields=id%2Cobject%2Cupdated_at&include=provenance&due_before=2026-10-22",
headers=headers, timeout=30, allow_redirects=False,
)
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"
};
headers.Authorization = `Bearer ${apiKey}`;
const response = await fetch(baseUrl.replace(/\/$/, "") + "/v1/bills?limit=100&cursor=cur_example&subject_id=biz_example&connection_id=cnn_example&fields=id%2Cobject%2Cupdated_at&include=provenance&due_before=2026-10-22", {
method: "GET", headers,
redirect: "error", signal: AbortSignal.timeout(30000),
});
if (!response.ok) throw new Error(`AMLOK returned HTTP ${response.status}`);
console.log(await response.json());List bills
List authorized bill records.
Required scope: accounting:read. Source, module, country, consent and contracted permissions determine population.
curl --request GET --fail-with-body --max-time 30 \
"${AMLOK_API_BASE_URL}/v1/bills?limit=100&cursor=cur_example&subject_id=biz_example&connection_id=cnn_example&fields=id%2Cobject%2Cupdated_at&include=provenance&due_before=2026-10-22" \
--header "Authorization: Bearer ${AMLOK_API_KEY}" \
--header "Accept: application/json"import os
import requests
base_url = os.environ["AMLOK_API_BASE_URL"].rstrip("/")
headers = {'Accept': 'application/json'}
headers["Authorization"] = "Bearer " + os.environ["AMLOK_API_KEY"]
response = requests.request(
"GET", base_url + "/v1/bills?limit=100&cursor=cur_example&subject_id=biz_example&connection_id=cnn_example&fields=id%2Cobject%2Cupdated_at&include=provenance&due_before=2026-10-22",
headers=headers, timeout=30, allow_redirects=False,
)
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"
};
headers.Authorization = `Bearer ${apiKey}`;
const response = await fetch(baseUrl.replace(/\/$/, "") + "/v1/bills?limit=100&cursor=cur_example&subject_id=biz_example&connection_id=cnn_example&fields=id%2Cobject%2Cupdated_at&include=provenance&due_before=2026-10-22", {
method: "GET", headers,
redirect: "error", signal: AbortSignal.timeout(30000),
});
if (!response.ok) throw new Error(`AMLOK returned HTTP ${response.status}`);
console.log(await response.json());accounting:read
List authorized bill records.
Required scope: accounting:read. Source, module, country, consent and contracted permissions determine population.
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.
Query Parameters
Page size. Default 100, maximum 200.
1 <= x <= 200Opaque AMLOK cursor. Preserve the original filters.
Filter to one authorized business or person where applicable.
Inclusive normalized update time.
Exclusive normalized update time.
Filter one authorized source connection.
Filter by this resource status.
draft, open, partially_paid, paid, void, uncollectible, unknown Comma-separated top-level field names. Required identity and metadata always remain. Selected objects are complete; nested paths and wildcards are unsupported. Unknown fields return 400 validation_error.
Comma-separated optional expansions: provenance, missing_fields. No unrestricted graph traversal.
Exclusive due-date boundary; unknown dates do not match.
Optional synchronization-checkpoint ID. Freezes this collection at the checkpoint boundary; cursor binds the snapshot. Unsupported or expired snapshots return 410.