cURL
curl --request GET --fail-with-body --max-time 30 \
"${AMLOK_API_BASE_URL}/v1/configuration" \
--header "Authorization: Bearer ${AMLOK_API_KEY}" \
--header 'Accept: application/json'import os
import requests
headers = {'Accept': 'application/json'}
headers["Authorization"] = "Bearer " + os.environ["AMLOK_API_KEY"]
response = requests.request('GET', os.environ["AMLOK_API_BASE_URL"] + '/v1/configuration', headers=headers, timeout=30, allow_redirects=False)
response.raise_for_status()
print(response.json())
const headers = {"Accept": "application/json"};
headers.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;
const response = await fetch(process.env.AMLOK_API_BASE_URL + "/v1/configuration", {
method: "GET", headers, redirect: "error", signal: AbortSignal.timeout(30000)
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
console.log(await response.json());
{
"data": {
"products": [
"insights",
"signal"
],
"embedding_version_ids": [
"embed_synthetic"
],
"application_schemas": [
{
"id": "app_schema_synthetic",
"version": "1",
"json_schema": {
"type": "object",
"required": [
"annual_revenue"
],
"properties": {
"annual_revenue": {
"type": "string",
"pattern": "^[0-9]+\\.[0-9]{2}$"
}
},
"additionalProperties": false
}
},
{
"id": "consumer_app_schema_synthetic",
"version": "1",
"json_schema": {
"type": "object",
"required": [
"gross_monthly_income",
"monthly_debt_payments"
],
"properties": {
"gross_monthly_income": {
"type": "string",
"pattern": "^[0-9]+\\.[0-9]{2}$"
},
"monthly_debt_payments": {
"type": "string",
"pattern": "^[0-9]+\\.[0-9]{2}$"
}
},
"additionalProperties": false
}
}
],
"pricing_schemas": [
{
"id": "pricing_synthetic",
"version": "1",
"json_schema": {
"type": "object",
"required": [
"rate_type",
"annual_interest_rate",
"amortization_months",
"fees"
],
"properties": {
"rate_type": {
"const": "fixed"
},
"annual_interest_rate": {
"type": "string"
},
"amortization_months": {
"type": "integer",
"minimum": 1
},
"fees": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false
}
}
],
"cadences": [
{
"id": "cadence_synthetic",
"description": "Illustrative daily schedule; use your provisioned cadence."
}
],
"dimensions": [
{
"key": "dscr",
"description": "Eligible cash flow divided by complete existing and proposed debt service over comparable periods.",
"unit": "ratio",
"calculation_version": "cashflow-dscr-synthetic-v1",
"borrower_types": [
"business"
]
},
{
"key": "debt_to_income",
"description": "Eligible monthly debt payments divided by established gross monthly income. Missing inputs yield unavailable, never zero.",
"unit": "ratio",
"calculation_version": "consumer-dti-synthetic-v1",
"borrower_types": [
"person"
]
}
],
"integration_ids": [
"bank_synthetic"
],
"operational_profile": {
"id": "development-example",
"version": "1",
"max_json_bytes": 1048576,
"max_upload_bytes": 20971520,
"max_document_pages": 200,
"allowed_document_mime_types": [
"application/pdf",
"image/png",
"image/jpeg",
"image/webp"
],
"document_types": [
"financial_statement",
"bank_statement",
"identity_document",
"business_registration",
"tax_return",
"lending_terms",
"risk_policy",
"other"
],
"session_ttl_seconds": 900,
"download_ttl_seconds": 300,
"snapshot_ttl_seconds": 3600,
"data_feed_retention_seconds": 2592000,
"event_retention_seconds": 2592000,
"export_retention_seconds": 86400,
"poll_min_interval_seconds": 5,
"poll_max_interval_seconds": 60,
"webhook_timeout_seconds": 10,
"webhook_max_body_bytes": 65536,
"webhook_rotation_overlap_seconds": 86400,
"rate_limits": [
{
"group": "reads",
"requests": 120,
"window_seconds": 60
},
{
"group": "commands",
"requests": 30,
"window_seconds": 60
},
{
"group": "uploads",
"requests": 10,
"window_seconds": 60
}
]
},
"embedding_versions": [
{
"id": "embed_synthetic",
"name": "Synthetic borrower Hub",
"integration_ids": [
"bank_synthetic"
],
"consent_purposes": [
"credit_assessment",
"continuous_monitoring"
],
"allowed_embed_origins": [
"https://institution.example.com"
],
"allowed_return_urls": [
"https://institution.example.com/connected"
],
"hub_origin": "https://borrower.example.com"
}
],
"sandbox": {
"scenario_ids": [
"happy_path",
"source_reauthorization",
"document_required",
"missing_financial_input",
"restricted_report",
"provider_failure",
"insufficient_credits",
"monitoring_alert",
"payment_return",
"export_failure"
],
"test_integration_id": "bank_synthetic"
}
},
"meta": {
"request_id": "req_synthetic",
"schema_version": "1.0.0",
"environment": "sandbox"
}
}{
"error": {
"code": "validation_error",
"message": "Validation error.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "unauthenticated",
"message": "Unauthenticated.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "forbidden",
"message": "Forbidden.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "not_found",
"message": "Not found.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "invalid_state",
"message": "Invalid state.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "cursor_expired",
"message": "Cursor expired.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "rate_limited",
"message": "Rate limited.",
"retryable": true,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "temporarily_unavailable",
"message": "Temporarily unavailable.",
"retryable": true,
"request_id": "req_synthetic",
"field": null
}
}Configuration
Get configuration
Discover the approved schemas, products, integration IDs, embedding versions and monitoring cadences available to this API key.
GET
/
v1
/
configuration
cURL
curl --request GET --fail-with-body --max-time 30 \
"${AMLOK_API_BASE_URL}/v1/configuration" \
--header "Authorization: Bearer ${AMLOK_API_KEY}" \
--header 'Accept: application/json'import os
import requests
headers = {'Accept': 'application/json'}
headers["Authorization"] = "Bearer " + os.environ["AMLOK_API_KEY"]
response = requests.request('GET', os.environ["AMLOK_API_BASE_URL"] + '/v1/configuration', headers=headers, timeout=30, allow_redirects=False)
response.raise_for_status()
print(response.json())
const headers = {"Accept": "application/json"};
headers.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;
const response = await fetch(process.env.AMLOK_API_BASE_URL + "/v1/configuration", {
method: "GET", headers, redirect: "error", signal: AbortSignal.timeout(30000)
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
console.log(await response.json());
{
"data": {
"products": [
"insights",
"signal"
],
"embedding_version_ids": [
"embed_synthetic"
],
"application_schemas": [
{
"id": "app_schema_synthetic",
"version": "1",
"json_schema": {
"type": "object",
"required": [
"annual_revenue"
],
"properties": {
"annual_revenue": {
"type": "string",
"pattern": "^[0-9]+\\.[0-9]{2}$"
}
},
"additionalProperties": false
}
},
{
"id": "consumer_app_schema_synthetic",
"version": "1",
"json_schema": {
"type": "object",
"required": [
"gross_monthly_income",
"monthly_debt_payments"
],
"properties": {
"gross_monthly_income": {
"type": "string",
"pattern": "^[0-9]+\\.[0-9]{2}$"
},
"monthly_debt_payments": {
"type": "string",
"pattern": "^[0-9]+\\.[0-9]{2}$"
}
},
"additionalProperties": false
}
}
],
"pricing_schemas": [
{
"id": "pricing_synthetic",
"version": "1",
"json_schema": {
"type": "object",
"required": [
"rate_type",
"annual_interest_rate",
"amortization_months",
"fees"
],
"properties": {
"rate_type": {
"const": "fixed"
},
"annual_interest_rate": {
"type": "string"
},
"amortization_months": {
"type": "integer",
"minimum": 1
},
"fees": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false
}
}
],
"cadences": [
{
"id": "cadence_synthetic",
"description": "Illustrative daily schedule; use your provisioned cadence."
}
],
"dimensions": [
{
"key": "dscr",
"description": "Eligible cash flow divided by complete existing and proposed debt service over comparable periods.",
"unit": "ratio",
"calculation_version": "cashflow-dscr-synthetic-v1",
"borrower_types": [
"business"
]
},
{
"key": "debt_to_income",
"description": "Eligible monthly debt payments divided by established gross monthly income. Missing inputs yield unavailable, never zero.",
"unit": "ratio",
"calculation_version": "consumer-dti-synthetic-v1",
"borrower_types": [
"person"
]
}
],
"integration_ids": [
"bank_synthetic"
],
"operational_profile": {
"id": "development-example",
"version": "1",
"max_json_bytes": 1048576,
"max_upload_bytes": 20971520,
"max_document_pages": 200,
"allowed_document_mime_types": [
"application/pdf",
"image/png",
"image/jpeg",
"image/webp"
],
"document_types": [
"financial_statement",
"bank_statement",
"identity_document",
"business_registration",
"tax_return",
"lending_terms",
"risk_policy",
"other"
],
"session_ttl_seconds": 900,
"download_ttl_seconds": 300,
"snapshot_ttl_seconds": 3600,
"data_feed_retention_seconds": 2592000,
"event_retention_seconds": 2592000,
"export_retention_seconds": 86400,
"poll_min_interval_seconds": 5,
"poll_max_interval_seconds": 60,
"webhook_timeout_seconds": 10,
"webhook_max_body_bytes": 65536,
"webhook_rotation_overlap_seconds": 86400,
"rate_limits": [
{
"group": "reads",
"requests": 120,
"window_seconds": 60
},
{
"group": "commands",
"requests": 30,
"window_seconds": 60
},
{
"group": "uploads",
"requests": 10,
"window_seconds": 60
}
]
},
"embedding_versions": [
{
"id": "embed_synthetic",
"name": "Synthetic borrower Hub",
"integration_ids": [
"bank_synthetic"
],
"consent_purposes": [
"credit_assessment",
"continuous_monitoring"
],
"allowed_embed_origins": [
"https://institution.example.com"
],
"allowed_return_urls": [
"https://institution.example.com/connected"
],
"hub_origin": "https://borrower.example.com"
}
],
"sandbox": {
"scenario_ids": [
"happy_path",
"source_reauthorization",
"document_required",
"missing_financial_input",
"restricted_report",
"provider_failure",
"insufficient_credits",
"monitoring_alert",
"payment_return",
"export_failure"
],
"test_integration_id": "bank_synthetic"
}
},
"meta": {
"request_id": "req_synthetic",
"schema_version": "1.0.0",
"environment": "sandbox"
}
}{
"error": {
"code": "validation_error",
"message": "Validation error.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "unauthenticated",
"message": "Unauthenticated.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "forbidden",
"message": "Forbidden.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "not_found",
"message": "Not found.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "invalid_state",
"message": "Invalid state.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "cursor_expired",
"message": "Cursor expired.",
"retryable": false,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "rate_limited",
"message": "Rate limited.",
"retryable": true,
"request_id": "req_synthetic",
"field": null
}
}{
"error": {
"code": "temporarily_unavailable",
"message": "Temporarily unavailable.",
"retryable": true,
"request_id": "req_synthetic",
"field": null
}
}Discover the approved schemas, products, integration IDs, embedding versions and monitoring cadences available to this API key. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read. operational_profile and embedding_versions are required discovery; sandbox is null in Live. Never infer production quotas from synthetic examples.
Examples use synthetic IDs. Replace them with values returned by your environment.
Authorizations
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.
Response
Successful response.