OpenAPI 3.1 مباشر

وثائق API

طلبات جاهزة للنسخ واستجابات واقعية ومخططات كاملة لـ AML والأسعار والفوترة.

13عمليات
4أقسام
3.1OpenAPI
KEY

المصادقة

أرسل مفتاح API مع كل طلب محمي. تتطلب العمليات المدفوعة أيضاً Idempotency-Key فريداً.

تستخدم جميع عمليات API طريقة POST. يعيد الطلب المعالج HTTP 200؛ تحقّق دائماً من error في JSON مع code وmessage وstatus. استخدم POST /api/v1/rates/get للأسعار. تم وسم POST /api/v1/rate بأنه Deprecated مع الحفاظ على الطلبات والاستجابات والأخطاء والفوترة الحالية، دون موعد إزالة محدد.

عنوان APIhttps://platform.safio.ioHeaderX-API-Key: sk_safio_...BillableIdempotency-Key: order-2026-000001
01 · بداية سريعة

نفّذ أول فحص AML

انسخ المثال واستبدل مفتاح API والعنوان. يعيد Safio قيمة check_id لمتابعة النتيجة.

POST/api/v1/aml/checks/create
Code examples
curl --request POST \
  --url 'https://platform.safio.io/api/v1/aml/checks/create' \
  --header 'X-API-Key: sk_safio_...' \
  --header 'Idempotency-Key: order-2026-000001' \
  --header 'Content-Type: application/json' \
  --data '{
  "subject": {
    "type": "address",
    "value": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH"
  },
  "network": "tron",
  "asset": "USDT",
  "product": "screen",
  "lookback_days": 90,
  "callback_url": "https://hooks.customer.example/aml/completed"
}'
OpenAPI 3.1

Endpoints

13 عمليات · System · Rates · AML · Billing

POSTSystem

/api/v1/health

Health

Service health endpoint. Public, unauthenticated availability check. GET is retained for existing provider monitors; POST is the documented RPC operation. Both methods use the same response. Infrastructure probes use GET /health and GET /readiness.

health_api_v1_health_post

Request body

This operation has no request body.

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": {
    "status": "ok"
  },
  "error": null
}
Schema6 حقول
FieldTypeالوصف
dataاختياريobject | null
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
POSTRatesAPI keyIdempotent

/api/v1/rates/get

Get Rate

get_rate_api_v1_rates_get_post

Headers & parameters

Idempotency-Keyheaderstringمطلوب

Stable unique key preventing duplicate rate charges.

Request body

مطلوب
Request
{
  "from_currency": "USDT",
  "to_currency": "RUB",
  "max_age_seconds": 60
}
Schema5 حقول
FieldTypeالوصف
from_currencyمطلوبstring
to_currencyمطلوبstring
max_age_secondsاختياريinteger | nullMax staleness in seconds
min_updated_atاختياريdate-time | nullMin acceptable update timestamp
sourceاختياريstring | nullOptional configured rate route alias.

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": {
    "from_currency": "USDT",
    "to_currency": "RUB",
    "rate": 82.41,
    "median_rate": 82.39,
    "min_rate": 82.18,
    "max_rate": 82.63,
    "sample_count": 7,
    "updated_at": "2026-08-31T10:15:23Z",
    "valid_until": "2026-08-31T10:16:23Z",
    "billing": {
      "enabled": true,
      "amount": "0.0003",
      "currency": "USD",
      "balance_after": "80.1997",
      "waived": false
    },
    "reused": false
  },
  "error": null
}
Schema22 حقول
FieldTypeالوصف
dataاختياريRateResponse | null
from_currencyمطلوبstring
to_currencyمطلوبstring
rateمطلوبnumber
median_rateمطلوبnumber
min_rateمطلوبnumber
max_rateمطلوبnumber
sample_countمطلوبinteger
updated_atمطلوبdate-time
valid_untilمطلوبdate-time
billingمطلوبBillingChargeResponse
enabledمطلوبboolean
amountمطلوبstring
currencyمطلوبstring
balance_afterمطلوبstring | null
waivedاختياريbooleanTrue when a reserved AML charge was automatically returned because the purchased result was not delivered with contractually sufficient coverage.
reusedاختياريbooleanTrue when the same Idempotency-Key returned the stored response without a second charge.
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
POSTRatesDeprecatedAPI keyIdempotent

/api/v1/rate

Get Rate

Deprecated compatibility method. Use POST /api/v1/rates/get. Existing request, response, error and billing semantics are preserved.

get_rate_api_v1_rate_post

Headers & parameters

Idempotency-Keyheaderstringمطلوب

Stable unique key preventing duplicate rate charges.

Request body

مطلوب
Request
{
  "from_currency": "USDT",
  "to_currency": "RUB",
  "max_age_seconds": 60
}
Schema5 حقول
FieldTypeالوصف
from_currencyمطلوبstring
to_currencyمطلوبstring
max_age_secondsاختياريinteger | nullMax staleness in seconds
min_updated_atاختياريdate-time | nullMin acceptable update timestamp
sourceاختياريstring | nullOptional configured rate route alias.

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": {
    "from_currency": "USDT",
    "to_currency": "RUB",
    "rate": 82.41,
    "median_rate": 82.39,
    "min_rate": 82.18,
    "max_rate": 82.63,
    "sample_count": 7,
    "updated_at": "2026-08-31T10:15:23Z",
    "valid_until": "2026-08-31T10:16:23Z",
    "billing": {
      "enabled": true,
      "amount": "0.0003",
      "currency": "USD",
      "balance_after": "80.1997",
      "waived": false
    },
    "reused": false
  },
  "error": null
}
Schema22 حقول
FieldTypeالوصف
dataاختياريRateResponse | null
from_currencyمطلوبstring
to_currencyمطلوبstring
rateمطلوبnumber
median_rateمطلوبnumber
min_rateمطلوبnumber
max_rateمطلوبnumber
sample_countمطلوبinteger
updated_atمطلوبdate-time
valid_untilمطلوبdate-time
billingمطلوبBillingChargeResponse
enabledمطلوبboolean
amountمطلوبstring
currencyمطلوبstring
balance_afterمطلوبstring | null
waivedاختياريbooleanTrue when a reserved AML charge was automatically returned because the purchased result was not delivered with contractually sufficient coverage.
reusedاختياريbooleanTrue when the same Idempotency-Key returned the stored response without a second charge.
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
POSTAMLAPI key

/api/v1/aml/capabilities/get

Show capabilities available to this API key

Returns allowed paid products and configured network availability. Use this before presenting product choices to a customer.

aml_capabilities_api_v1_aml_capabilities_get_post

Request body

This operation has no request body.

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": {
    "default_product": "screen",
    "products": [
      {
        "product": "exact_sanctions",
        "default_lookback_days": 90,
        "allowed": true,
        "evidence_access": false
      },
      {
        "product": "screen",
        "default_lookback_days": 90,
        "allowed": true,
        "evidence_access": false
      },
      {
        "product": "enhanced",
        "default_lookback_days": 180,
        "allowed": true,
        "evidence_access": false
      },
      {
        "product": "investigation",
        "default_lookback_days": 730,
        "allowed": true,
        "evidence_access": true
      }
    ],
    "networks": [
      {
        "network": "tron",
        "assets": [
          "TRX",
          "USDT"
        ],
        "address_products": [
          "exact_sanctions",
          "screen",
          "enhanced",
          "investigation"
        ],
        "transaction_products": [
          "screen",
          "enhanced",
          "investigation"
        ],
        "default_address_product": "screen",
        "default_transaction_product": "screen"
      }
    ],
    "notes": [
      "Products combine API-key entitlement with configured network capability.",
      "Runtime upstream health is evaluated when a check executes."
    ]
  },
  "error": null
}
Schema20 حقول
FieldTypeالوصف
dataاختياريAmlCapabilitiesResponse | null
default_productمطلوبAmlProduct
productsمطلوبAnalysisLevelCapabilityResponse[]
productمطلوبAmlProduct
default_lookback_daysمطلوبinteger
allowedمطلوبboolean
evidence_accessاختياريboolean
networksمطلوبNetworkCapabilityResponse[]
networkمطلوبAmlNetwork
assetsمطلوبAmlAsset[]
address_productsمطلوبAmlProduct[]Products both permitted for this key and configured for an address on this network.
transaction_productsمطلوبAmlProduct[]Products both permitted for this key and configured for a transaction on this network.
default_address_productمطلوبAmlProduct | null
default_transaction_productمطلوبAmlProduct | null
notesمطلوبstring[]
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
POSTAMLAPI keyIdempotent

/api/v1/aml/checks/create

Queue an asynchronous AML check

Reserves the selected AML price and returns immediately. Reusing the same Idempotency-Key with the same payload returns the original check without a second charge. An optional HTTPS callback must match this key's administrator-configured callback URL patterns.

create_aml_check_api_v1_aml_checks_create_post

Headers & parameters

Idempotency-Keyheaderstringمطلوب

Stable unique key used to prevent duplicate checks and charges.

Request body

مطلوب
Request
{
  "subject": {
    "type": "address",
    "value": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH"
  },
  "network": "tron",
  "asset": "USDT",
  "product": "screen",
  "lookback_days": 90,
  "callback_url": "https://hooks.customer.example/aml/completed"
}
Schema10 حقول
FieldTypeالوصف
subjectمطلوبAmlSubjectRequest
typeمطلوبSubjectType
valueمطلوبstring
networkمطلوبAmlNetwork
assetمطلوبAmlAsset
productاختياريAmlProduct | nullPurchased AML product. Technical engine depths are not public tariff names. Defaults to screen. Deprecated analysis_level/depth input is accepted during migration but omitted from the public schema.
lookback_daysاختياريinteger | nullOptional historical window. When omitted, the selected level uses its advertised default: exact_sanctions/screen=90, enhanced=180, investigation=730 days.
risk_model_idاختياريuuid | nullPublished customer risk model to evaluate alongside the Safio score.
allow_product_upgradeاختياريbooleanWhen true, Safio may raise the requested product to the minimum product required by risk_model_id. No silent upgrade occurs when false.
callback_urlاختياريstring | nullOptional HTTPS webhook URL. It must match a callback URL pattern configured by an administrator for this API key.

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": {
    "check_id": "c4e5295c-8f4a-4db2-980f-0e782b63811f",
    "status": "queued",
    "stage": "queued",
    "status_endpoint": "/api/v1/aml/checks/get",
    "report_endpoint": "/api/v1/aml/checks/report.pdf",
    "product": "screen",
    "lookback_days": 90,
    "callback_status": "pending",
    "created_at": "2026-08-31T10:15:23Z",
    "reused": false
  },
  "error": null
}
Schema16 حقول
FieldTypeالوصف
dataاختياريAmlCheckAcceptedResponse | null
check_idمطلوبuuid
statusمطلوبstring
stageمطلوبstring
status_endpointمطلوبstring
report_endpointمطلوبstring
productمطلوبAmlProduct
lookback_daysمطلوبinteger
callback_statusمطلوبstring | null
created_atمطلوبdate-time
reusedمطلوبbooleanTrue when the same Idempotency-Key returned the original check.
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
POSTAMLAPI keyIdempotent

/api/v1/aml/checks/bulk/create

Queue up to 100 AML checks in one request

Each item keeps independent validation, billing and status. Replaying the same batch Idempotency-Key is safe because item keys are deterministic.

create_bulk_aml_checks_api_v1_aml_checks_bulk_create_post

Headers & parameters

Idempotency-Keyheaderstringمطلوب

Stable key for the complete batch.

Request body

مطلوب
Request
{
  "items": [
    {
      "subject": {
        "type": "address",
        "value": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH"
      },
      "network": "tron",
      "asset": "USDT",
      "product": "screen",
      "client_reference": "customer-001"
    }
  ]
}
Schema12 حقول
FieldTypeالوصف
itemsمطلوبAmlBulkCheckItemRequest[]
subjectمطلوبAmlSubjectRequest
typeمطلوبSubjectType
valueمطلوبstring
networkمطلوبAmlNetwork
assetمطلوبAmlAsset
productاختياريAmlProduct | nullPurchased AML product. Technical engine depths are not public tariff names. Defaults to screen. Deprecated analysis_level/depth input is accepted during migration but omitted from the public schema.
lookback_daysاختياريinteger | nullOptional historical window. When omitted, the selected level uses its advertised default: exact_sanctions/screen=90, enhanced=180, investigation=730 days.
risk_model_idاختياريuuid | nullPublished customer risk model to evaluate alongside the Safio score.
allow_product_upgradeاختياريbooleanWhen true, Safio may raise the requested product to the minimum product required by risk_model_id. No silent upgrade occurs when false.
callback_urlاختياريstring | nullOptional HTTPS webhook URL. It must match a callback URL pattern configured by an administrator for this API key.
client_referenceاختياريstring | nullCustomer identifier echoed in every bulk response.

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": null,
  "error": {
    "code": "invalid_request",
    "message": "The request could not be processed.",
    "status": 400
  }
}
Schema24 حقول
FieldTypeالوصف
dataاختياريAmlBulkCheckAcceptedResponse | null
batch_idمطلوبuuid
acceptedمطلوبinteger
rejectedمطلوبinteger
itemsمطلوبAmlBulkCheckAcceptedItemResponse[]
indexمطلوبinteger
client_referenceمطلوبstring | null
checkاختياريAmlCheckAcceptedResponse | null
check_idمطلوبuuid
statusمطلوبstring
stageمطلوبstring
status_endpointمطلوبstring
report_endpointمطلوبstring
productمطلوبAmlProduct
lookback_daysمطلوبinteger
callback_statusمطلوبstring | null
created_atمطلوبdate-time
reusedمطلوبbooleanTrue when the same Idempotency-Key returned the original check.
errorاختياريobject | null
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
POSTAMLAPI key

/api/v1/aml/checks/bulk/get

Get up to 100 AML check results in one request

get_bulk_aml_checks_api_v1_aml_checks_bulk_get_post

Request body

مطلوب
Request
{
  "ids": [
    "c4e5295c-8f4a-4db2-980f-0e782b63811f"
  ]
}
Schema1 حقول
FieldTypeالوصف
idsمطلوبuuid[]

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": null,
  "error": {
    "code": "http_error",
    "message": "Missing or invalid API key.",
    "status": 401
  }
}
Schema33 حقول
FieldTypeالوصف
dataاختياريAmlBulkCheckResponse | null
itemsمطلوبAmlBulkCheckResultItemResponse[]
idمطلوبuuid
checkاختياريAmlCheckResponse | null
check_idمطلوبuuid
subjectمطلوبAmlSubjectResponse
networkمطلوبAmlNetwork
assetمطلوبAmlAsset
statusمطلوبstring
stageمطلوبstring
productمطلوبAmlProduct
lookback_daysمطلوبintegerActivity window purchased for this check.
created_atمطلوبdate-time
started_atمطلوبdate-time | null
completed_atمطلوبdate-time | null
deadline_atمطلوبdate-time | nullCurrent processing-attempt deadline, when the check is running.
status_endpointمطلوبstring
report_endpointمطلوبstring
callback_statusمطلوبstring | null
callback_attemptsمطلوبinteger
processing_attemptsمطلوبintegerNumber of worker attempts, including automatic recovery.
processing_time_msاختياريinteger | nullCompleted wall-clock processing time for the latest attempt.
queue_time_msاختياريinteger | nullTime from durable request creation until a worker started it.
total_time_msاختياريinteger | nullCompleted end-to-end time from request creation to final result.
stage_durations_msاختياريobjectSource-neutral processing time accumulated by public stage.
resultمطلوبAmlProductResultResponse | null
errorمطلوبobject | null
errorاختياريobject | null
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
POSTAMLAPI key

/api/v1/aml/checks/get

Get an asynchronous AML check

get_aml_check_api_v1_aml_checks_get_post

Request body

مطلوب
Request
{
  "id": "c4e5295c-8f4a-4db2-980f-0e782b63811f"
}
Schema1 حقول
FieldTypeالوصف
idمطلوبuuid

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": {
    "check_id": "c4e5295c-8f4a-4db2-980f-0e782b63811f",
    "status": "completed",
    "stage": "completed",
    "product": "screen",
    "lookback_days": 90,
    "created_at": "2026-08-31T10:15:23Z",
    "started_at": "2026-08-31T10:15:24Z",
    "completed_at": "2026-08-31T10:15:27Z",
    "deadline_at": null,
    "status_endpoint": "/api/v1/aml/checks/get",
    "report_endpoint": "/api/v1/aml/checks/report.pdf",
    "callback_status": "delivered",
    "callback_attempts": 1,
    "processing_attempts": 1,
    "processing_time_ms": 2480,
    "queue_time_ms": 120,
    "total_time_ms": 2600,
    "stage_durations_ms": {
      "screening": 920,
      "graph_analysis": 1080,
      "report_compilation": 480
    },
    "result": {
      "product": "screen",
      "subject": {
        "type": "address",
        "value": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH",
        "network": "tron",
        "asset": "USDT"
      },
      "risk_score": 18,
      "risk_level": "low",
      "decision": "allow",
      "triggered_rules": [],
      "categories": [
        {
          "category": "sanctions",
          "assessment_status": "not_detected",
          "exposure_type": "none",
          "min_confirmed_hops": null,
          "path_status": "not_applicable",
          "exposure_amount_usd": null,
          "exposure_share": null,
          "directions": [],
          "context_signal_count": 0,
          "warning": null
        }
      ],
      "coverage": [
        {
          "category": "sanctions",
          "status": "not_detected",
          "directions": [],
          "lookback_days": 90
        }
      ],
      "coverage_status": "complete",
      "lookback_days": 90,
      "route_summaries": [],
      "evidence_available": false,
      "policy_version": "aml-policy-2026-08",
      "dataset_revision": "2026-08-31T10:00:00Z",
      "billing": {
        "enabled": true,
        "amount": "0.25",
        "currency": "USD",
        "balance_after": "79.95",
        "waived": false
      },
      "warnings": []
    },
    "error": null
  },
  "error": null
}
Schema87 حقول
FieldTypeالوصف
dataاختياريAmlCheckResponse | null
check_idمطلوبuuid
subjectمطلوبAmlSubjectResponse
typeمطلوبSubjectType
valueمطلوبstring
networkمطلوبAmlNetwork
assetمطلوبAmlAsset
statusمطلوبstring
stageمطلوبstring
productمطلوبAmlProduct
lookback_daysمطلوبintegerActivity window purchased for this check.
created_atمطلوبdate-time
started_atمطلوبdate-time | null
completed_atمطلوبdate-time | null
deadline_atمطلوبdate-time | nullCurrent processing-attempt deadline, when the check is running.
status_endpointمطلوبstring
report_endpointمطلوبstring
callback_statusمطلوبstring | null
callback_attemptsمطلوبinteger
processing_attemptsمطلوبintegerNumber of worker attempts, including automatic recovery.
processing_time_msاختياريinteger | nullCompleted wall-clock processing time for the latest attempt.
queue_time_msاختياريinteger | nullTime from durable request creation until a worker started it.
total_time_msاختياريinteger | nullCompleted end-to-end time from request creation to final result.
stage_durations_msاختياريobjectSource-neutral processing time accumulated by public stage.
resultمطلوبAmlProductResultResponse | null
productمطلوبAmlProduct
subjectمطلوبAmlProductSubjectResponse
typeمطلوبSubjectType
valueمطلوبstring
networkمطلوبAmlNetwork
assetمطلوبAmlAsset
risk_scoreاختياريinteger | nullSafio decision-support risk points backed by confirmed evidence. Null when the available coverage cannot support a defensible numeric result. This value is not a probability of criminal activity.
risk_levelمطلوبRiskLevel
decisionمطلوبstring
triggered_rulesمطلوبstring[]
categoriesمطلوبAmlCategoryAssessmentResponse[]
categoryمطلوبRiskCategory
assessment_statusمطلوبstring
exposure_typeمطلوبstring
min_confirmed_hopsاختياريinteger | null
path_statusمطلوبstring
exposure_amount_usdاختياريstring | nullDocumented USDT exposure amount or path-capacity upper bound. Null for non-USDT assets and when exposure is not attributable to an amount.
exposure_shareاختياريnumber | null
directionsاختياريExposureDirection[]
context_signal_countاختياريinteger
warningاختياريstring | null
coverageمطلوبAmlCoverageItemResponse[]
categoryمطلوبRiskCategory
statusمطلوبstring
directionsاختياريExposureDirection[]
lookback_daysمطلوبinteger
coverage_statusمطلوبstring
lookback_daysمطلوبinteger
route_summariesاختياريAmlRouteSummaryResponse[] | nullAggregated confirmed routes available to Enhanced and Investigation.
categoryمطلوبRiskCategory
directionمطلوبExposureDirection
confirmed_hopsمطلوبinteger
exposure_typeمطلوبstring
exposure_amount_usdاختياريstring | null
exposure_shareاختياريnumber | null
first_observed_atاختياريdate-time | null
last_observed_atاختياريdate-time | null
entity_nameاختياريstring | nullPresent only when the API key permits downstream entity disclosure.
evidence_availableاختياريboolean
policy_versionمطلوبstring
dataset_revisionمطلوبstring
billingمطلوبBillingChargeResponse
enabledمطلوبboolean
amountمطلوبstring
currencyمطلوبstring
balance_afterمطلوبstring | null
waivedاختياريbooleanTrue when a reserved AML charge was automatically returned because the purchased result was not delivered with contractually sufficient coverage.
warningsمطلوبstring[]
customer_riskاختياريCustomerRiskResultResponse | nullResult calculated with the customer's published model. Safio's proprietary score remains in risk_score and is evaluated independently.
model_idمطلوبuuid
model_nameمطلوبstring
model_versionمطلوبinteger
scoreاختياريinteger | null
risk_levelمطلوبRiskLevel
decisionمطلوبstring
triggered_rulesمطلوبstring[]
errorمطلوبobject | null
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
POSTAMLAPI key

/api/v1/aml/checks/evidence/get

Open protected Investigation evidence

Requires aml:evidence:read and the analyst role. Every view is audited and returns a single-use, short-lived PDF export token.

get_aml_check_evidence_api_v1_aml_checks_evidence_get_post

Request body

مطلوب
Request
{
  "id": "c4e5295c-8f4a-4db2-980f-0e782b63811f"
}
Schema1 حقول
FieldTypeالوصف
idمطلوبuuid

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": {
    "check_id": "c4e5295c-8f4a-4db2-980f-0e782b63811f",
    "audit_id": "6b3af902-4d30-4d70-88d7-7b265ec1be49",
    "product": "investigation",
    "subject": {
      "type": "address",
      "value": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH",
      "network": "tron",
      "asset": "USDT"
    },
    "generated_at": "2026-08-31T10:15:28Z",
    "lookback_days": 730,
    "linked_identities": [
      {
        "address": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH",
        "kind": "unclassified"
      }
    ],
    "paths": [
      {
        "category": "sanctions",
        "risk_address": "TJ9pA2j7j3gHhR4u89xExampleAddress",
        "entity_name": "Example sanctioned entity",
        "direction": "received",
        "confirmed_hops": 2,
        "amount": "1250.50",
        "amount_basis": "path_capacity_upper_bound",
        "steps": [
          {
            "source": "TJ9pA2j7j3gHhR4u89xExampleAddress",
            "destination": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH",
            "transaction": "f0d4c3b2a190exampletransaction",
            "network": "tron",
            "asset": "USDT",
            "amount": "1250.50",
            "depth": 1,
            "timestamp": "2026-08-28T08:41:00Z",
            "direction": "received",
            "channel": "direct",
            "role": "value",
            "initiator": null
          }
        ]
      }
    ],
    "contextual_signals": [],
    "coverage": [
      {
        "category": "sanctions",
        "status": "detected",
        "directions": [
          "received"
        ],
        "lookback_days": 730
      }
    ],
    "analyst_notes": [
      "One confirmed inbound route requires manual review."
    ],
    "policy_version": "aml-policy-2026-08",
    "dataset_revision": "2026-08-31T10:00:00Z",
    "export_token": "ev_4J6YmpZ9xK2rN7qW5cT8bH3sF1dL0aPc",
    "export_endpoint": "/api/v1/aml/checks/evidence/report.pdf",
    "export_expires_at": "2026-08-31T10:20:28Z"
  },
  "error": null
}
Schema72 حقول
FieldTypeالوصف
dataاختياريAmlEvidenceResponse | null
check_idمطلوبuuid
audit_idمطلوبuuid
productمطلوب"investigation"
subjectمطلوبAmlProductSubjectResponse
typeمطلوبSubjectType
valueمطلوبstring
networkمطلوبAmlNetwork
assetمطلوبAmlAsset
generated_atمطلوبdate-time
lookback_daysمطلوبinteger
linked_identitiesمطلوبAmlEvidenceIdentityResponse[]
addressمطلوبstring
kindمطلوبstring
node_activityاختياريAmlEvidenceNodeActivityResponse[]Observed transaction-flow denominator for graph nodes. Values are deduplicated from the immutable screening trace and are not wallet balances.
addressمطلوبstring
observed_inflowمطلوبstring
observed_outflowمطلوبstring
observed_amountمطلوبstringLargest observed inbound or outbound value in the immutable screening window. This is not the current on-chain balance.
screened_transaction_transfersاختياريAmlEvidenceSubjectTransferResponse[]Economic transfers that belong to the screened transaction subject. Empty when the screened subject is an address.
sourceمطلوبstring
destinationمطلوبstring
transactionمطلوبstring
networkمطلوبAmlNetwork
assetمطلوبAmlAsset
amountمطلوبstring
timestampاختياريdate-time | null
channelمطلوبstring
roleمطلوبstring
initiatorاختياريstring | null
pathsمطلوبAmlEvidencePathResponse[]
categoryمطلوبRiskCategory
risk_addressمطلوبstring
entity_nameمطلوبstring | nullPresent only when the analyst key also has the aml:entity:read downstream-disclosure scope.
directionمطلوبExposureDirection
confirmed_hopsمطلوبinteger
amountمطلوبstring | null
amount_basisمطلوبstring
stepsمطلوبAmlEvidenceTransferResponse[]
sourceمطلوبstring
destinationمطلوبstring
transactionمطلوبstring
networkمطلوبAmlNetwork
assetمطلوبAmlAsset
amountمطلوبstring
depthمطلوبinteger
timestampمطلوبdate-time
directionمطلوبExposureDirection
channelمطلوبstring
roleمطلوبstring
initiatorاختياريstring | null
contextual_signalsمطلوبAmlEvidenceContextResponse[]
categoryمطلوبRiskCategory
directionمطلوبExposureDirection
countمطلوبinteger
warningمطلوبstring
coverageمطلوبAmlCoverageItemResponse[]
categoryمطلوبRiskCategory
statusمطلوبstring
directionsاختياريExposureDirection[]
lookback_daysمطلوبinteger
analyst_notesمطلوبstring[]
policy_versionمطلوبstring
dataset_revisionمطلوبstring
export_tokenمطلوبstring
export_endpointمطلوبstring
export_expires_atمطلوبdate-time
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
POSTAMLAPI key

/api/v1/aml/checks/evidence/report.pdf

Download a protected Investigation evidence report

Consumes the single-use export token returned by evidence/get.

get_aml_check_evidence_report_api_v1_aml_checks_evidence_report_pdf_post

Request body

مطلوب
Request
{
  "id": "c4e5295c-8f4a-4db2-980f-0e782b63811f",
  "export_token": "ev_4J6YmpZ9xK2rN7qW5cT8bH3sF1dL0aPc"
}
Schema2 حقول
FieldTypeالوصف
idمطلوبuuid
export_tokenمطلوبstring

Responses

2
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": null,
  "error": {
    "code": "http_error",
    "message": "Missing or invalid API key.",
    "status": 401
  }
}
Schema6 حقول
FieldTypeالوصف
dataمطلوبnull
errorمطلوبErrorBody
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/pdf
PDF

يتم إرجاع المستند الثنائي مع Content-Type: application/pdf.

POSTAMLAPI key

/api/v1/aml/checks/report.pdf

Download the completed AML report snapshot

Returns the PDF produced by the original asynchronous check. This endpoint does not rerun analysis and does not create another charge.

get_aml_check_report_api_v1_aml_checks_report_pdf_post

Request body

مطلوب
Request
{
  "id": "c4e5295c-8f4a-4db2-980f-0e782b63811f"
}
Schema1 حقول
FieldTypeالوصف
idمطلوبuuid

Responses

2
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": null,
  "error": {
    "code": "http_error",
    "message": "Missing or invalid API key.",
    "status": 401
  }
}
Schema6 حقول
FieldTypeالوصف
dataمطلوبnull
errorمطلوبErrorBody
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/pdf
PDF

يتم إرجاع المستند الثنائي مع Content-Type: application/pdf.

POSTAMLAPI key

/api/v1/aml/path-search

Search for a confirmed path to an address or category

Searches the selected chain and asset up to 10 hops. Amount filters apply to every edge. A negative answer is conclusive only when coverage is complete.

search_aml_path_api_v1_aml_path_search_post

Request body

مطلوب
Request
{
  "source_address": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH",
  "target": {
    "risk_category": "sanctions"
  },
  "network": "tron",
  "asset": "USDT",
  "max_hops": 5,
  "lookback_days": 180
}
Schema15 حقول
FieldTypeالوصف
source_addressمطلوبstring
targetمطلوبAmlPathTargetRequest
addressاختياريstring | null
entity_categoryاختياريEntityCategory | null
risk_categoryاختياريRiskCategory | null
networkمطلوبAmlNetwork
assetمطلوبAmlAsset
max_hopsاختياريinteger
lookback_daysاختياريinteger
min_transfer_amountاختياريnumber | string
max_transfer_amountاختياريnumber | string | null
min_transfer_amount_usdاختياريnumber | string | null
max_transfer_amount_usdاختياريnumber | string | null
max_pathsاختياريinteger
modeاختياريstring

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": null,
  "error": {
    "code": "http_error",
    "message": "Missing or invalid API key.",
    "status": 401
  }
}
Schema41 حقول
FieldTypeالوصف
dataاختياريAmlPathSearchResponse | null
statusمطلوبstring
networkمطلوبAmlNetwork
assetمطلوبAmlAsset
source_addressمطلوبstring
targetمطلوبAmlPathTargetRequest
addressاختياريstring | null
entity_categoryاختياريEntityCategory | null
risk_categoryاختياريRiskCategory | null
max_hopsمطلوبinteger
billable_depth_tierمطلوبinteger
pathsمطلوبAmlPathResponse[]
hopsمطلوبinteger
path_capacityمطلوبstring
first_observed_atمطلوبdate-time | null
last_observed_atمطلوبdate-time | null
matched_targetمطلوبAmlPathMatchResponse
addressمطلوبstring
entity_categoryاختياريEntityCategory | null
risk_categoryاختياريRiskCategory | null
entity_nameاختياريstring | null
confidenceاختياريnumber | null
source_tierاختياريstring | null
stepsمطلوبAmlPathTransferResponse[]
sourceمطلوبstring
destinationمطلوبstring
transactionمطلوبstring
assetمطلوبAmlAsset
amountمطلوبstring
timestampمطلوبdate-time | null
coverageمطلوبAmlPathSearchCoverageResponse
statusمطلوبstring
reasonsمطلوبstring[]
visited_addressesمطلوبinteger
visited_transactionsمطلوبinteger
warningsمطلوبstring[]
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null
POSTBillingAPI key

/api/v1/billing/account

Show API-key balance and product prices

Returns the current balance, billing state, tariff, per-level AML prices and the price of one successful rate request for the authenticated API key.

billing_account_api_v1_billing_account_post

Request body

This operation has no request body.

Responses

1
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/json
Response
{
  "data": {
    "api_key_id": "abf3ce95-6b80-4181-995a-b04afe9adba4",
    "enabled": true,
    "currency": "USD",
    "balance": "80.20",
    "complimentary_aml_checks_remaining": 3,
    "aml_prices": {
      "exact_sanctions": "0.04",
      "screen": "0.25",
      "enhanced": "0.69",
      "investigation": "1.90"
    },
    "rate_price": "0.0003",
    "tariff_plan_id": "2bc8a33d-42e5-4d3b-8af4-a0ee56e96b28",
    "tariff_plan_code": "trial"
  },
  "error": null
}
Schema19 حقول
FieldTypeالوصف
dataاختياريBillingAccountResponse | null
api_key_idمطلوبuuid
enabledمطلوبboolean
currencyمطلوبstring
balanceمطلوبstring
complimentary_aml_checks_remainingاختياريinteger
aml_pricesمطلوبAmlPriceScheduleResponse
exact_sanctionsمطلوبstring
screenمطلوبstring
enhancedمطلوبstring
investigationمطلوبstring
rate_priceمطلوبstringPrice of one successful POST /rate request.
tariff_plan_idمطلوبuuid | null
tariff_plan_codeمطلوبstring | null
errorاختياريErrorBody | null
codeمطلوبstring
messageمطلوبstring
statusاختياريinteger | null
extraاختياريobject | null