curl --request PATCH --fail-with-body --max-time 30 \
"${AMLOK_API_BASE_URL}/v1/monitors/mon_example" \
--header "Authorization: Bearer ${AMLOK_API_KEY}" \
--header "Accept: application/json" \
--header 'If-Match: "3"' \
--header 'Content-Type: application/json' \
--data '{
"status": "paused"
}'import os
import requests
base_url = os.environ["AMLOK_API_BASE_URL"].rstrip("/")
headers = {'Accept': 'application/json',
'If-Match': '"3"',
'Content-Type': 'application/json'}
headers["Authorization"] = "Bearer " + os.environ["AMLOK_API_KEY"]
response = requests.request(
"PATCH", base_url + "/v1/monitors/mon_example",
headers=headers, timeout=30, allow_redirects=False,
json={'status': 'paused'},
)
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",
"If-Match": "\"3\"",
"Content-Type": "application/json"
};
headers.Authorization = `Bearer ${apiKey}`;
const response = await fetch(baseUrl.replace(/\/$/, "") + "/v1/monitors/mon_example", {
method: "PATCH", headers,
redirect: "error", signal: AbortSignal.timeout(30000),
body: JSON.stringify({
"status": "paused"
}),
});
if (!response.ok) throw new Error(`AMLOK returned HTTP ${response.status}`);
console.log(await response.json());{
"data": {
"id": "mon_example",
"object": "monitor",
"subject_id": "biz_example",
"created_at": "2026-10-23T14:00:00Z",
"updated_at": "2026-10-23T14:00:00Z",
"record_version": 4,
"source_refs": [],
"data_status": "partial",
"missing_fields": [],
"schema_version": "1.4.2",
"client_reference": "app-1029",
"baseline_snapshot_id": "rsk_original",
"resource_types": [
"bank_transaction",
"lien"
],
"attribute_keys": [
"operating_inflows"
],
"status": "paused",
"cadence": "daily",
"ruleset_version": "monitor-v1",
"last_evaluated_at": null,
"next_evaluation_at": null,
"blocked_reason": null,
"monitoring_period_id": "monitoring_period_example"
},
"meta": {
"request_id": "req_example",
"schema_version": "1.4.2",
"generated_at": "2026-10-23T14:00:00Z",
"data_status": "partial"
}
}Update monitor
Change monitoring configuration with optimistic concurrency.
Required scope: monitoring:write. Only explicit supplied fields change; null-clearing rules validated. 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. Signal charges the full agreed monthly rate once per borrower/business/workspace at 00:00 UTC on the first day of the month, before monitoring proceeds. First activation during a month charges the full monthly rate immediately, without proration; the next charge is at the next month boundary. Repeated monitor creation, pauses, resumes, checks and reassessments do not add charges in an already paid period. Insufficient credits block monitoring without a debit or debt; funding resumes only the current period after its single successful charge, without charging missed inactive months. User-paused monitoring remains paused until the user resumes it. Account cancellation stops processing and all further deductions immediately.
curl --request PATCH --fail-with-body --max-time 30 \
"${AMLOK_API_BASE_URL}/v1/monitors/mon_example" \
--header "Authorization: Bearer ${AMLOK_API_KEY}" \
--header "Accept: application/json" \
--header 'If-Match: "3"' \
--header 'Content-Type: application/json' \
--data '{
"status": "paused"
}'import os
import requests
base_url = os.environ["AMLOK_API_BASE_URL"].rstrip("/")
headers = {'Accept': 'application/json',
'If-Match': '"3"',
'Content-Type': 'application/json'}
headers["Authorization"] = "Bearer " + os.environ["AMLOK_API_KEY"]
response = requests.request(
"PATCH", base_url + "/v1/monitors/mon_example",
headers=headers, timeout=30, allow_redirects=False,
json={'status': 'paused'},
)
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",
"If-Match": "\"3\"",
"Content-Type": "application/json"
};
headers.Authorization = `Bearer ${apiKey}`;
const response = await fetch(baseUrl.replace(/\/$/, "") + "/v1/monitors/mon_example", {
method: "PATCH", headers,
redirect: "error", signal: AbortSignal.timeout(30000),
body: JSON.stringify({
"status": "paused"
}),
});
if (!response.ok) throw new Error(`AMLOK returned HTTP ${response.status}`);
console.log(await response.json());{
"data": {
"id": "mon_example",
"object": "monitor",
"subject_id": "biz_example",
"created_at": "2026-10-23T14:00:00Z",
"updated_at": "2026-10-23T14:00:00Z",
"record_version": 4,
"source_refs": [],
"data_status": "partial",
"missing_fields": [],
"schema_version": "1.4.2",
"client_reference": "app-1029",
"baseline_snapshot_id": "rsk_original",
"resource_types": [
"bank_transaction",
"lien"
],
"attribute_keys": [
"operating_inflows"
],
"status": "paused",
"cadence": "daily",
"ruleset_version": "monitor-v1",
"last_evaluated_at": null,
"next_evaluation_at": null,
"blocked_reason": null,
"monitoring_period_id": "monitoring_period_example"
},
"meta": {
"request_id": "req_example",
"schema_version": "1.4.2",
"generated_at": "2026-10-23T14:00:00Z",
"data_status": "partial"
}
}monitoring:write
Change monitoring configuration with optimistic concurrency.
Required scope: monitoring:write. Only explicit supplied fields change; null-clearing rules validated. 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. Signal charges the full agreed monthly rate once per borrower/business/workspace at 00:00 UTC on the first day of the month, before monitoring proceeds. First activation during a month charges the full monthly rate immediately, without proration; the next charge is at the next month boundary. Repeated monitor creation, pauses, resumes, checks and reassessments do not add charges in an already paid period. Insufficient credits block monitoring without a debit or debt; funding resumes only the current period after its single successful charge, without charging missed inactive months. User-paused monitoring remains paused until the user resumes it. Account cancellation stops processing and all further deductions immediately.
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.
Current quoted record version returned as ETag. A stale version returns 412.
Path Parameters
Tenant-visible resource identifier.
Body
active, paused, cancelled ID from GET /v1/configuration cadences. Invalid IDs return 422 validation_error. Source freshness is not guaranteed by this schedule.
1Tracked calculated attributes.
Approved ID from GET /v1/configuration rulesets; validate attributes and resource types against it.
1