OpenAPI 3.1 LIVE

Documentation API

Requêtes prêtes à copier, réponses réalistes et schémas complets pour AML, taux et facturation.

13opérations
4groupes
3.1OpenAPI
KEY

Authentification

Envoyez la clé API avec chaque requête protégée. Les opérations facturées exigent aussi une Idempotency-Key unique.

Toutes les opérations API utilisent POST. Une requête traitée renvoie HTTP 200 : vérifiez error dans le JSON (code, message, status). Utilisez POST /api/v1/rates/get. POST /api/v1/rate est Deprecated et conserve ses requêtes, réponses, erreurs et facturation ; aucune suppression n’est programmée.

URL de basehttps://platform.safio.ioHeaderX-API-Key: sk_safio_...BillableIdempotency-Key: order-2026-000001
01 · Démarrage rapide

Lancez votre premier contrôle AML

Copiez l’exemple, remplacez la clé API et l’adresse. Safio renvoie un check_id pour suivre le résultat.

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 opérations · 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 champs
FieldTypeDescription
datafacultatifobject | null—
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | null—
POSTRatesAPI keyIdempotent

/api/v1/rates/get

Get Rate

get_rate_api_v1_rates_get_post

Headers & parameters

Idempotency-Keyheaderstringrequis

Stable unique key preventing duplicate rate charges.

Request body

requis
Request
{
  "from_currency": "USDT",
  "to_currency": "RUB",
  "max_age_seconds": 60
}
Schema5 champs
FieldTypeDescription
from_currencyrequisstring—
to_currencyrequisstring—
max_age_secondsfacultatifinteger | nullMax staleness in seconds
min_updated_atfacultatifdate-time | nullMin acceptable update timestamp
sourcefacultatifstring | 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 champs
FieldTypeDescription
datafacultatifRateResponse | null—
from_currencyrequisstring—
to_currencyrequisstring—
raterequisnumber—
median_raterequisnumber—
min_raterequisnumber—
max_raterequisnumber—
sample_countrequisinteger—
updated_atrequisdate-time—
valid_untilrequisdate-time—
billingrequisBillingChargeResponse—
enabledrequisboolean—
amountrequisstring—
currencyrequisstring—
balance_afterrequisstring | null—
waivedfacultatifbooleanTrue when a reserved AML charge was automatically returned because the purchased result was not delivered with contractually sufficient coverage.
reusedfacultatifbooleanTrue when the same Idempotency-Key returned the stored response without a second charge.
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | 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-Keyheaderstringrequis

Stable unique key preventing duplicate rate charges.

Request body

requis
Request
{
  "from_currency": "USDT",
  "to_currency": "RUB",
  "max_age_seconds": 60
}
Schema5 champs
FieldTypeDescription
from_currencyrequisstring—
to_currencyrequisstring—
max_age_secondsfacultatifinteger | nullMax staleness in seconds
min_updated_atfacultatifdate-time | nullMin acceptable update timestamp
sourcefacultatifstring | 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 champs
FieldTypeDescription
datafacultatifRateResponse | null—
from_currencyrequisstring—
to_currencyrequisstring—
raterequisnumber—
median_raterequisnumber—
min_raterequisnumber—
max_raterequisnumber—
sample_countrequisinteger—
updated_atrequisdate-time—
valid_untilrequisdate-time—
billingrequisBillingChargeResponse—
enabledrequisboolean—
amountrequisstring—
currencyrequisstring—
balance_afterrequisstring | null—
waivedfacultatifbooleanTrue when a reserved AML charge was automatically returned because the purchased result was not delivered with contractually sufficient coverage.
reusedfacultatifbooleanTrue when the same Idempotency-Key returned the stored response without a second charge.
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | 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 champs
FieldTypeDescription
datafacultatifAmlCapabilitiesResponse | null—
default_productrequisAmlProduct—
productsrequisAnalysisLevelCapabilityResponse[]—
productrequisAmlProduct—
default_lookback_daysrequisinteger—
allowedrequisboolean—
evidence_accessfacultatifboolean—
networksrequisNetworkCapabilityResponse[]—
networkrequisAmlNetwork—
assetsrequisAmlAsset[]—
address_productsrequisAmlProduct[]Products both permitted for this key and configured for an address on this network.
transaction_productsrequisAmlProduct[]Products both permitted for this key and configured for a transaction on this network.
default_address_productrequisAmlProduct | null—
default_transaction_productrequisAmlProduct | null—
notesrequisstring[]—
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | 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-Keyheaderstringrequis

Stable unique key used to prevent duplicate checks and charges.

Request body

requis
Request
{
  "subject": {
    "type": "address",
    "value": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH"
  },
  "network": "tron",
  "asset": "USDT",
  "product": "screen",
  "lookback_days": 90,
  "callback_url": "https://hooks.customer.example/aml/completed"
}
Schema10 champs
FieldTypeDescription
subjectrequisAmlSubjectRequest—
typerequisSubjectType—
valuerequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
productfacultatifAmlProduct | 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_daysfacultatifinteger | nullOptional historical window. When omitted, the selected level uses its advertised default: exact_sanctions/screen=90, enhanced=180, investigation=730 days. Explicit Investigation requests with the current product scope support up to 1825 days; other products and legacy requests retain the 730-day maximum.
risk_model_idfacultatifuuid | nullPublished customer risk model to evaluate alongside the Safio score.
allow_product_upgradefacultatifbooleanWhen true, Safio may raise the requested product to the minimum product required by risk_model_id. No silent upgrade occurs when false.
callback_urlfacultatifstring | 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 champs
FieldTypeDescription
datafacultatifAmlCheckAcceptedResponse | null—
check_idrequisuuid—
statusrequisstring—
stagerequisstring—
status_endpointrequisstring—
report_endpointrequisstring—
productrequisAmlProduct—
lookback_daysrequisinteger—
callback_statusrequisstring | null—
created_atrequisdate-time—
reusedrequisbooleanTrue when the same Idempotency-Key returned the original check.
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | 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-Keyheaderstringrequis

Stable key for the complete batch.

Request body

requis
Request
{
  "items": [
    {
      "subject": {
        "type": "address",
        "value": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH"
      },
      "network": "tron",
      "asset": "USDT",
      "product": "screen",
      "client_reference": "customer-001"
    }
  ]
}
Schema12 champs
FieldTypeDescription
itemsrequisAmlBulkCheckItemRequest[]—
subjectrequisAmlSubjectRequest—
typerequisSubjectType—
valuerequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
productfacultatifAmlProduct | 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_daysfacultatifinteger | nullOptional historical window. When omitted, the selected level uses its advertised default: exact_sanctions/screen=90, enhanced=180, investigation=730 days. Explicit Investigation requests with the current product scope support up to 1825 days; other products and legacy requests retain the 730-day maximum.
risk_model_idfacultatifuuid | nullPublished customer risk model to evaluate alongside the Safio score.
allow_product_upgradefacultatifbooleanWhen true, Safio may raise the requested product to the minimum product required by risk_model_id. No silent upgrade occurs when false.
callback_urlfacultatifstring | nullOptional HTTPS webhook URL. It must match a callback URL pattern configured by an administrator for this API key.
client_referencefacultatifstring | 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 champs
FieldTypeDescription
datafacultatifAmlBulkCheckAcceptedResponse | null—
batch_idrequisuuid—
acceptedrequisinteger—
rejectedrequisinteger—
itemsrequisAmlBulkCheckAcceptedItemResponse[]—
indexrequisinteger—
client_referencerequisstring | null—
checkfacultatifAmlCheckAcceptedResponse | null—
check_idrequisuuid—
statusrequisstring—
stagerequisstring—
status_endpointrequisstring—
report_endpointrequisstring—
productrequisAmlProduct—
lookback_daysrequisinteger—
callback_statusrequisstring | null—
created_atrequisdate-time—
reusedrequisbooleanTrue when the same Idempotency-Key returned the original check.
errorfacultatifobject | null—
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | 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

requis
Request
{
  "ids": [
    "c4e5295c-8f4a-4db2-980f-0e782b63811f"
  ]
}
Schema1 champs
FieldTypeDescription
idsrequisuuid[]—

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 champs
FieldTypeDescription
datafacultatifAmlBulkCheckResponse | null—
itemsrequisAmlBulkCheckResultItemResponse[]—
idrequisuuid—
checkfacultatifAmlCheckResponse | null—
check_idrequisuuid—
subjectrequisAmlSubjectResponse—
networkrequisAmlNetwork—
assetrequisAmlAsset—
statusrequisstring—
stagerequisstring—
productrequisAmlProduct—
lookback_daysrequisintegerActivity window purchased for this check.
created_atrequisdate-time—
started_atrequisdate-time | null—
completed_atrequisdate-time | null—
deadline_atrequisdate-time | nullCurrent processing-attempt deadline, when the check is running.
status_endpointrequisstring—
report_endpointrequisstring—
callback_statusrequisstring | null—
callback_attemptsrequisinteger—
processing_attemptsrequisintegerNumber of worker attempts, including automatic recovery.
processing_time_msfacultatifinteger | nullCompleted wall-clock processing time for the latest attempt.
queue_time_msfacultatifinteger | nullTime from durable request creation until a worker started it.
total_time_msfacultatifinteger | nullCompleted end-to-end time from request creation to final result.
stage_durations_msfacultatifobjectSource-neutral processing time accumulated by public stage.
resultrequisAmlProductResultResponse | null—
errorrequisobject | null—
errorfacultatifobject | null—
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | null—
POSTAMLAPI key

/api/v1/aml/checks/get

Get an asynchronous AML check

get_aml_check_api_v1_aml_checks_get_post

Request body

requis
Request
{
  "id": "c4e5295c-8f4a-4db2-980f-0e782b63811f"
}
Schema1 champs
FieldTypeDescription
idrequisuuid—

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
}
Schema183 champs
FieldTypeDescription
datafacultatifAmlCheckResponse | null—
check_idrequisuuid—
subjectrequisAmlSubjectResponse—
typerequisSubjectType—
valuerequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
statusrequisstring—
stagerequisstring—
productrequisAmlProduct—
lookback_daysrequisintegerActivity window purchased for this check.
created_atrequisdate-time—
started_atrequisdate-time | null—
completed_atrequisdate-time | null—
deadline_atrequisdate-time | nullCurrent processing-attempt deadline, when the check is running.
status_endpointrequisstring—
report_endpointrequisstring—
callback_statusrequisstring | null—
callback_attemptsrequisinteger—
processing_attemptsrequisintegerNumber of worker attempts, including automatic recovery.
processing_time_msfacultatifinteger | nullCompleted wall-clock processing time for the latest attempt.
queue_time_msfacultatifinteger | nullTime from durable request creation until a worker started it.
total_time_msfacultatifinteger | nullCompleted end-to-end time from request creation to final result.
stage_durations_msfacultatifobjectSource-neutral processing time accumulated by public stage.
resultrequisAmlProductResultResponse | null—
productrequisAmlProduct—
subjectrequisAmlProductSubjectResponse—
typerequisSubjectType—
valuerequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
risk_scorefacultatifinteger | 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_levelrequisRiskLevel—
risk_scopefacultatifstring—
asset_assessmentfacultatifAmlAssetRiskResponse | null—
risk_scorefacultatifinteger | null—
risk_levelrequisRiskLevel—
decisionrequisstring—
coverage_statusrequisstring—
assetrequisAmlAsset—
wallet_riskfacultatifAmlWalletRiskResponse | null—
risk_scorefacultatifinteger | null—
risk_levelrequisRiskLevel—
decisionrequisstring—
coverage_statusfacultatifstring—
assets_reviewedfacultatifAmlAsset[]—
networks_reviewedfacultatifAmlNetwork[]—
finding_assetsfacultatifAmlAsset[]—
categoriesfacultatifRiskCategory[]—
verified_finding_countrequisinteger—
exact_match_countfacultatifinteger—
participant_countrequisinteger—
small_inbound_onlyfacultatifboolean—
policy_versionrequisstring—
decisionrequisstring—
triggered_rulesrequisstring[]—
categoriesrequisAmlCategoryAssessmentResponse[]—
categoryrequisRiskCategory—
assessment_statusrequisstring—
exposure_typerequisstring—
min_confirmed_hopsfacultatifinteger | null—
path_statusrequisstring—
exposure_amount_usdfacultatifstring | nullDocumented USDT exposure amount or path-capacity upper bound. Null for non-USDT assets and when exposure is not attributable to an amount.
exposure_sharefacultatifnumber | null—
directionsfacultatifExposureDirection[]—
context_signal_countfacultatifinteger—
warningfacultatifstring | null—
coveragerequisAmlCoverageItemResponse[]—
categoryrequisRiskCategory—
statusrequisstring—
directionsfacultatifExposureDirection[]—
lookback_daysrequisinteger—
coverage_statusrequisstring—
lookback_daysrequisinteger—
route_summariesfacultatifAmlRouteSummaryResponse[] | nullAggregated confirmed routes available to Enhanced and Investigation.
categoryrequisRiskCategory—
directionrequisExposureDirection—
confirmed_hopsrequisinteger—
exposure_typerequisstring—
exposure_amount_usdfacultatifstring | null—
exposure_sharefacultatifnumber | null—
first_observed_atfacultatifdate-time | null—
last_observed_atfacultatifdate-time | null—
entity_namefacultatifstring | nullPresent only when the API key permits downstream entity disclosure.
evidence_availablefacultatifboolean—
policy_versionrequisstring—
dataset_revisionrequisstring—
billingrequisBillingChargeResponse—
enabledrequisboolean—
amountrequisstring—
currencyrequisstring—
balance_afterrequisstring | null—
waivedfacultatifbooleanTrue when a reserved AML charge was automatically returned because the purchased result was not delivered with contractually sufficient coverage.
warningsrequisstring[]—
activity_summaryfacultatifAmlActivitySummaryResponse | nullSource-neutral amounts and dates from the immutable subject activity. Transaction amounts exclude fees and are not an attributed illicit amount. Address directional totals remain protected.
transaction_amountfacultatifstring | nullGross sum of observed value-transfer events; internal hops may count the same value more than once.
value_transfer_countfacultatifinteger | null—
first_transfer_atfacultatifdate-time | null—
last_transfer_atfacultatifdate-time | null—
timestamp_statusfacultatifstring—
assessment_summaryfacultatifstring[]Deterministic explanation of confirmed findings and coverage; not an analyst opinion.
ownership_boundariesfacultatifAmlOwnershipBoundarySummaryResponse[]—
finding_idrequisstring—
kindrequisstring—
labelrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
candidate_categoryrequisRiskCategory—
directionrequisExposureDirection—
summaryrequisstring—
source_refrequisstring—
source_as_ofrequisstring—
policy_versionrequisstring—
score_effectfacultatif"none"—
observed_transfer_countrequisinteger—
asset_restrictionsfacultatifAmlAssetRestrictionResponse[]—
networkrequisAmlNetwork—
assetrequisAmlAsset—
canonical_contractrequisstring—
issuerrequisstring—
issuer_designated_atrequisstring—
restrictionrequis"blocked_token_under_current_us_sanctions"—
statement_atrequisstring—
source_refrequisstring—
source_sha256requisstring—
issuer_source_refrequisstring—
issuer_source_sha256requisstring—
contract_source_refrequisstring—
observed_atrequisdate-time—
policy_versionrequisstring—
wallet_explicitly_listed_by_authorityfacultatiffalse—
score_effectfacultatifstring—
risk_score_floorfacultatifinteger | null—
asset_transaction_banfacultatifAmlAssetTransactionBanResponse | null—
asset_transaction_ban_statusfacultatifstring—
asset_transaction_ban_error_typefacultatifstring | null—
supporting_publication_statusfacultatifstring—
supporting_publication_error_typefacultatifstring | null—
supporting_publicationsfacultatifAmlAssetPublicationResponse[]—
decision_effectfacultatifstring—
applicable_movement_countfacultatifinteger—
decision_basisfacultatifstring | null—
summaryrequisstring—
behavioral_review_statusfacultatifstring—
behavioral_networks_reviewedfacultatifAmlNetwork[]—
behavioral_assets_reviewedfacultatifAmlAsset[]—
behavioral_findingsfacultatifAmlBehavioralSummaryResponse[]Receipt-confirmed activity observations. They do not add risk points or establish illicit funds, intent or common control.
finding_idrequisstring—
kindrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
summaryrequisstring—
verified_transaction_countrequisinteger—
verified_transfer_countrequisinteger—
elapsed_secondsfacultatifinteger | null—
amount_ratiofacultatifstring | null—
score_effectfacultatif"none"—
policy_versionrequisstring—
participant_profile_summaryfacultatifAmlParticipantProfileSummaryResponse[]Receipt-verified participant-profile routes retained in the analysis window. They contribute to overall wallet risk and remain separate from selected-transfer provenance, exposure amounts and transfer-only risk points.
networkfacultatifAmlNetwork | null—
assetrequisAmlAsset—
categoryrequisRiskCategory—
directionrequisExposureDirection—
verified_route_countrequisinteger—
before_transactionrequisinteger—
after_transactionrequisinteger—
overlapping_transactionrequisinteger—
first_observed_atrequisdate-time—
last_observed_atrequisdate-time—
customer_riskfacultatifCustomerRiskResultResponse | nullResult calculated with the customer's published model. Safio's proprietary score remains in risk_score and is evaluated independently.
model_idrequisuuid—
model_namerequisstring—
model_versionrequisinteger—
scorefacultatifinteger | null—
risk_levelrequisRiskLevel—
decisionrequisstring—
triggered_rulesrequisstring[]—
errorrequisobject | null—
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | 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

requis
Request
{
  "id": "c4e5295c-8f4a-4db2-980f-0e782b63811f"
}
Schema1 champs
FieldTypeDescription
idrequisuuid—

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
}
Schema435 champs
FieldTypeDescription
datafacultatifAmlEvidenceResponse | null—
check_idrequisuuid—
audit_idrequisuuid—
productrequis"investigation"—
subjectrequisAmlProductSubjectResponse—
typerequisSubjectType—
valuerequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
generated_atrequisdate-time—
lookback_daysrequisinteger—
linked_identitiesrequisAmlEvidenceIdentityResponse[]—
addressrequisstring—
kindrequisstring—
node_activityfacultatifAmlEvidenceNodeActivityResponse[]Observed transaction-flow denominator for graph nodes. Values are deduplicated from the immutable screening trace and are not wallet balances.
addressrequisstring—
observed_inflowrequisstring—
observed_outflowrequisstring—
observed_amountrequisstringLargest observed inbound or outbound value in the immutable screening window. This is not the current on-chain balance.
screened_transaction_transfersfacultatifAmlEvidenceSubjectTransferResponse[]Economic transfers that belong to the screened transaction subject. Empty when the screened subject is an address.
sourcerequisstring—
destinationrequisstring—
transactionrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
amountrequisstring—
timestampfacultatifdate-time | null—
channelrequisstring—
rolerequisstring—
initiatorfacultatifstring | null—
observed_address_transfersfacultatifAmlEvidenceSubjectTransferResponse[]Observed economic transfers touching the screened address or its linked identities, deduplicated from the immutable analysis trace. These are activity records, not confirmed risk exposure or full wallet history.
sourcerequisstring—
destinationrequisstring—
transactionrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
amountrequisstring—
timestampfacultatifdate-time | null—
channelrequisstring—
rolerequisstring—
initiatorfacultatifstring | null—
pathsrequisAmlEvidencePathResponse[]—
categoryrequisRiskCategory—
risk_addressrequisstring—
entity_namerequisstring | nullPresent only when the analyst key also has the aml:entity:read downstream-disclosure scope.
directionrequisExposureDirection—
confirmed_hopsrequisinteger—
amountrequisstring | null—
amount_basisrequisstring—
stepsrequisAmlEvidenceTransferResponse[]—
sourcerequisstring—
destinationrequisstring—
transactionrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
amountrequisstring—
depthrequisinteger—
timestamprequisdate-time—
directionrequisExposureDirection—
channelrequisstring—
rolerequisstring—
initiatorfacultatifstring | null—
participant_rolefacultatifstring | null—
matched_amountfacultatifstring | null—
matched_transfersfacultatifAmlEvidenceSubjectTransferResponse[]—
sourcerequisstring—
destinationrequisstring—
transactionrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
amountrequisstring—
timestampfacultatifdate-time | null—
channelrequisstring—
rolerequisstring—
initiatorfacultatifstring | null—
contextual_signalsrequisAmlEvidenceContextResponse[]—
categoryrequisRiskCategory—
directionrequisExposureDirection—
countrequisinteger—
warningrequisstring—
participant_profilesfacultatifAmlEvidenceParticipantProfileResponse[]—
networkfacultatifAmlNetwork | null—
participantrequisstring—
assetrequisAmlAsset—
categoryrequisRiskCategory—
risk_addressrequisstring—
directionrequisExposureDirection—
timingrequisstring—
stepsrequisAmlEvidenceTransferResponse[]—
sourcerequisstring—
destinationrequisstring—
transactionrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
amountrequisstring—
depthrequisinteger—
timestamprequisdate-time—
directionrequisExposureDirection—
channelrequisstring—
rolerequisstring—
initiatorfacultatifstring | null—
ownership_boundariesfacultatifAmlOwnershipBoundaryEvidenceResponse[]—
finding_idrequisstring—
kindrequisstring—
labelrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
candidate_categoryrequisRiskCategory—
directionrequisExposureDirection—
summaryrequisstring—
source_refrequisstring—
source_as_ofrequisstring—
policy_versionrequisstring—
score_effectfacultatif"none"—
observed_transfer_countrequisinteger—
addressrequisstring—
risk_addressrequisstring—
stepsrequisAmlEvidenceTransferResponse[]—
sourcerequisstring—
destinationrequisstring—
transactionrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
amountrequisstring—
depthrequisinteger—
timestamprequisdate-time—
directionrequisExposureDirection—
channelrequisstring—
rolerequisstring—
initiatorfacultatifstring | null—
contract_code_sha256facultatifstring | null—
contract_code_observed_atfacultatifdate-time | null—
asset_restrictionsfacultatifAmlAssetRestrictionEvidenceResponse[]—
networkrequisAmlNetwork—
assetrequisAmlAsset—
canonical_contractrequisstring—
issuerrequisstring—
issuer_designated_atrequisstring—
restrictionrequis"blocked_token_under_current_us_sanctions"—
statement_atrequisstring—
source_refrequisstring—
source_sha256requisstring—
issuer_source_refrequisstring—
issuer_source_sha256requisstring—
contract_source_refrequisstring—
observed_atrequisdate-time—
policy_versionrequisstring—
wallet_explicitly_listed_by_authorityfacultatiffalse—
score_effectfacultatifstring—
risk_score_floorfacultatifinteger | null—
asset_transaction_banfacultatifAmlAssetTransactionBanResponse | null—
asset_namerequisstring—
jurisdictionrequis"EU"—
restriction_typerequis"asset_transaction_ban"—
restriction_applicable_fromrequisstring—
legal_basisrequisstring—
legal_annexrequisstring—
consolidation_celexrequisstring—
consolidated_as_ofrequisstring—
official_entity_source_refrequisstring—
official_response_sha256requisstring—
official_observed_atrequisdate-time—
official_metadata_source_refrequisstring—
official_metadata_response_sha256requisstring—
official_metadata_observed_atrequisdate-time—
asset_transaction_ban_statusfacultatifstring—
asset_transaction_ban_error_typefacultatifstring | null—
supporting_publication_statusfacultatifstring—
supporting_publication_error_typefacultatifstring | null—
supporting_publicationsfacultatifAmlAssetPublicationResponse[]—
source_refrequisstring—
response_sha256requisstring—
observation_sha256requisstring—
observed_atrequisdate-time—
decision_effectfacultatifstring—
applicable_movement_countfacultatifinteger—
decision_basisfacultatifstring | null—
summaryrequisstring—
movementsrequisAmlEvidenceSubjectTransferResponse[]—
sourcerequisstring—
destinationrequisstring—
transactionrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
amountrequisstring—
timestampfacultatifdate-time | null—
channelrequisstring—
rolerequisstring—
initiatorfacultatifstring | null—
proofsrequisAmlBehavioralProofResponse[]—
networkrequisAmlNetwork—
transactionrequisstring—
timestamprequisdate-time—
block_numberrequisinteger—
block_hashrequisstring | null—
initiatorrequisstring—
receipt_sha256requisstring—
statusrequis"confirmed_success"—
verification_basisfacultatifstring—
execution_trace_sha256facultatifstring | null—
chain_proofsfacultatifAmlChainProofResponse[]—
networkrequisAmlNetwork—
transactionrequisstring—
timestamprequisdate-time—
block_numberrequisinteger—
block_hashrequisstring | null—
initiatorrequisstring—
receipt_sha256requisstring—
statusrequis"confirmed_success"—
verification_basisfacultatifstring—
execution_trace_sha256facultatifstring | null—
assetrequisAmlAsset—
observation_hashrequisstring—
observed_atrequisdate-time—
attribution_sourcesfacultatifAmlAttributionSourceResponse[]—
networkrequisAmlNetwork—
addressrequisstring—
labelrequisstring—
categoriesrequisRiskCategory[]—
source_refrequisstring | null—
source_tierrequisstring—
confidencerequisnumber—
version_hashrequisstring—
evidencerequisobject—
chain_proof_statusfacultatifstring—
behavioral_review_statusfacultatifstring—
behavioral_networks_reviewedfacultatifAmlNetwork[]—
behavioral_assets_reviewedfacultatifAmlAsset[]—
behavioral_findingsfacultatifAmlBehavioralEvidenceResponse[]—
finding_idrequisstring—
kindrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
summaryrequisstring—
verified_transaction_countrequisinteger—
verified_transfer_countrequisinteger—
elapsed_secondsfacultatifinteger | null—
amount_ratiofacultatifstring | null—
score_effectfacultatif"none"—
policy_versionrequisstring—
participantrequisstring—
stepsrequisAmlEvidenceTransferResponse[]—
sourcerequisstring—
destinationrequisstring—
transactionrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
amountrequisstring—
depthrequisinteger—
timestamprequisdate-time—
directionrequisExposureDirection—
channelrequisstring—
rolerequisstring—
initiatorfacultatifstring | null—
proofsrequisAmlBehavioralProofResponse[]—
networkrequisAmlNetwork—
transactionrequisstring—
timestamprequisdate-time—
block_numberrequisinteger—
block_hashrequisstring | null—
initiatorrequisstring—
receipt_sha256requisstring—
statusrequis"confirmed_success"—
verification_basisfacultatifstring—
execution_trace_sha256facultatifstring | null—
behavioral_review_warningsfacultatifstring[]—
coveragerequisAmlCoverageItemResponse[]—
categoryrequisRiskCategory—
statusrequisstring—
directionsfacultatifExposureDirection[]—
lookback_daysrequisinteger—
analyst_notesrequisstring[]—
policy_versionrequisstring—
dataset_revisionrequisstring—
export_tokenrequisstring—
export_endpointrequisstring—
export_expires_atrequisdate-time—
assessmentfacultatifAmlProductResultResponse | nullImmutable screening result associated with this evidence export.
productrequisAmlProduct—
subjectrequisAmlProductSubjectResponse—
typerequisSubjectType—
valuerequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
risk_scorefacultatifinteger | 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_levelrequisRiskLevel—
risk_scopefacultatifstring—
asset_assessmentfacultatifAmlAssetRiskResponse | null—
risk_scorefacultatifinteger | null—
risk_levelrequisRiskLevel—
decisionrequisstring—
coverage_statusrequisstring—
assetrequisAmlAsset—
wallet_riskfacultatifAmlWalletRiskResponse | null—
risk_scorefacultatifinteger | null—
risk_levelrequisRiskLevel—
decisionrequisstring—
coverage_statusfacultatifstring—
assets_reviewedfacultatifAmlAsset[]—
networks_reviewedfacultatifAmlNetwork[]—
finding_assetsfacultatifAmlAsset[]—
categoriesfacultatifRiskCategory[]—
verified_finding_countrequisinteger—
exact_match_countfacultatifinteger—
participant_countrequisinteger—
small_inbound_onlyfacultatifboolean—
policy_versionrequisstring—
decisionrequisstring—
triggered_rulesrequisstring[]—
categoriesrequisAmlCategoryAssessmentResponse[]—
categoryrequisRiskCategory—
assessment_statusrequisstring—
exposure_typerequisstring—
min_confirmed_hopsfacultatifinteger | null—
path_statusrequisstring—
exposure_amount_usdfacultatifstring | nullDocumented USDT exposure amount or path-capacity upper bound. Null for non-USDT assets and when exposure is not attributable to an amount.
exposure_sharefacultatifnumber | null—
directionsfacultatifExposureDirection[]—
context_signal_countfacultatifinteger—
warningfacultatifstring | null—
coveragerequisAmlCoverageItemResponse[]—
categoryrequisRiskCategory—
statusrequisstring—
directionsfacultatifExposureDirection[]—
lookback_daysrequisinteger—
coverage_statusrequisstring—
lookback_daysrequisinteger—
route_summariesfacultatifAmlRouteSummaryResponse[] | nullAggregated confirmed routes available to Enhanced and Investigation.
categoryrequisRiskCategory—
directionrequisExposureDirection—
confirmed_hopsrequisinteger—
exposure_typerequisstring—
exposure_amount_usdfacultatifstring | null—
exposure_sharefacultatifnumber | null—
first_observed_atfacultatifdate-time | null—
last_observed_atfacultatifdate-time | null—
entity_namefacultatifstring | nullPresent only when the API key permits downstream entity disclosure.
evidence_availablefacultatifboolean—
policy_versionrequisstring—
dataset_revisionrequisstring—
billingrequisBillingChargeResponse—
enabledrequisboolean—
amountrequisstring—
currencyrequisstring—
balance_afterrequisstring | null—
waivedfacultatifbooleanTrue when a reserved AML charge was automatically returned because the purchased result was not delivered with contractually sufficient coverage.
warningsrequisstring[]—
activity_summaryfacultatifAmlActivitySummaryResponse | nullSource-neutral amounts and dates from the immutable subject activity. Transaction amounts exclude fees and are not an attributed illicit amount. Address directional totals remain protected.
transaction_amountfacultatifstring | nullGross sum of observed value-transfer events; internal hops may count the same value more than once.
value_transfer_countfacultatifinteger | null—
first_transfer_atfacultatifdate-time | null—
last_transfer_atfacultatifdate-time | null—
timestamp_statusfacultatifstring—
assessment_summaryfacultatifstring[]Deterministic explanation of confirmed findings and coverage; not an analyst opinion.
ownership_boundariesfacultatifAmlOwnershipBoundarySummaryResponse[]—
finding_idrequisstring—
kindrequisstring—
labelrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
candidate_categoryrequisRiskCategory—
directionrequisExposureDirection—
summaryrequisstring—
source_refrequisstring—
source_as_ofrequisstring—
policy_versionrequisstring—
score_effectfacultatif"none"—
observed_transfer_countrequisinteger—
asset_restrictionsfacultatifAmlAssetRestrictionResponse[]—
networkrequisAmlNetwork—
assetrequisAmlAsset—
canonical_contractrequisstring—
issuerrequisstring—
issuer_designated_atrequisstring—
restrictionrequis"blocked_token_under_current_us_sanctions"—
statement_atrequisstring—
source_refrequisstring—
source_sha256requisstring—
issuer_source_refrequisstring—
issuer_source_sha256requisstring—
contract_source_refrequisstring—
observed_atrequisdate-time—
policy_versionrequisstring—
wallet_explicitly_listed_by_authorityfacultatiffalse—
score_effectfacultatifstring—
risk_score_floorfacultatifinteger | null—
asset_transaction_banfacultatifAmlAssetTransactionBanResponse | null—
asset_transaction_ban_statusfacultatifstring—
asset_transaction_ban_error_typefacultatifstring | null—
supporting_publication_statusfacultatifstring—
supporting_publication_error_typefacultatifstring | null—
supporting_publicationsfacultatifAmlAssetPublicationResponse[]—
decision_effectfacultatifstring—
applicable_movement_countfacultatifinteger—
decision_basisfacultatifstring | null—
summaryrequisstring—
behavioral_review_statusfacultatifstring—
behavioral_networks_reviewedfacultatifAmlNetwork[]—
behavioral_assets_reviewedfacultatifAmlAsset[]—
behavioral_findingsfacultatifAmlBehavioralSummaryResponse[]Receipt-confirmed activity observations. They do not add risk points or establish illicit funds, intent or common control.
finding_idrequisstring—
kindrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
summaryrequisstring—
verified_transaction_countrequisinteger—
verified_transfer_countrequisinteger—
elapsed_secondsfacultatifinteger | null—
amount_ratiofacultatifstring | null—
score_effectfacultatif"none"—
policy_versionrequisstring—
participant_profile_summaryfacultatifAmlParticipantProfileSummaryResponse[]Receipt-verified participant-profile routes retained in the analysis window. They contribute to overall wallet risk and remain separate from selected-transfer provenance, exposure amounts and transfer-only risk points.
networkfacultatifAmlNetwork | null—
assetrequisAmlAsset—
categoryrequisRiskCategory—
directionrequisExposureDirection—
verified_route_countrequisinteger—
before_transactionrequisinteger—
after_transactionrequisinteger—
overlapping_transactionrequisinteger—
first_observed_atrequisdate-time—
last_observed_atrequisdate-time—
customer_riskfacultatifCustomerRiskResultResponse | nullResult calculated with the customer's published model. Safio's proprietary score remains in risk_score and is evaluated independently.
model_idrequisuuid—
model_namerequisstring—
model_versionrequisinteger—
scorefacultatifinteger | null—
risk_levelrequisRiskLevel—
decisionrequisstring—
triggered_rulesrequisstring[]—
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | 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

requis
Request
{
  "id": "c4e5295c-8f4a-4db2-980f-0e782b63811f",
  "export_token": "ev_4J6YmpZ9xK2rN7qW5cT8bH3sF1dL0aPc"
}
Schema2 champs
FieldTypeDescription
idrequisuuid—
export_tokenrequisstring—

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 champs
FieldTypeDescription
datarequisnull—
errorrequisErrorBody—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | null—
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/pdf
PDF

Document binaire renvoyé avec 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. Pass version=current to apply the current template to the same saved public assessment. The originally issued PDF and assessment remain unchanged.

get_aml_check_report_api_v1_aml_checks_report_pdf_post

Request body

requis
Request
{
  "id": "c4e5295c-8f4a-4db2-980f-0e782b63811f"
}
Schema2 champs
FieldTypeDescription
idrequisuuid—
versionfacultatifstringissued returns the original stored PDF. current applies the current document template to the saved assessment, without reanalysis or charging.

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 champs
FieldTypeDescription
datarequisnull—
errorrequisErrorBody—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | null—
200Processed RPC request. Inspect error in the response body; HTTP 200 does not imply business success.application/pdf
PDF

Document binaire renvoyé avec 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

requis
Request
{
  "source_address": "TPKvdDWMtkbmx1UXopGVyXGJi256uhXVuH",
  "target": {
    "risk_category": "sanctions"
  },
  "network": "tron",
  "asset": "USDT",
  "max_hops": 5,
  "lookback_days": 180
}
Schema15 champs
FieldTypeDescription
source_addressrequisstring—
targetrequisAmlPathTargetRequest—
addressfacultatifstring | null—
entity_categoryfacultatifEntityCategory | null—
risk_categoryfacultatifRiskCategory | null—
networkrequisAmlNetwork—
assetrequisAmlAsset—
max_hopsfacultatifinteger—
lookback_daysfacultatifinteger—
min_transfer_amountfacultatifnumber | string—
max_transfer_amountfacultatifnumber | string | null—
min_transfer_amount_usdfacultatifnumber | string | null—
max_transfer_amount_usdfacultatifnumber | string | null—
max_pathsfacultatifinteger—
modefacultatifstring—

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 champs
FieldTypeDescription
datafacultatifAmlPathSearchResponse | null—
statusrequisstring—
networkrequisAmlNetwork—
assetrequisAmlAsset—
source_addressrequisstring—
targetrequisAmlPathTargetRequest—
addressfacultatifstring | null—
entity_categoryfacultatifEntityCategory | null—
risk_categoryfacultatifRiskCategory | null—
max_hopsrequisinteger—
billable_depth_tierrequisinteger—
pathsrequisAmlPathResponse[]—
hopsrequisinteger—
path_capacityrequisstring—
first_observed_atrequisdate-time | null—
last_observed_atrequisdate-time | null—
matched_targetrequisAmlPathMatchResponse—
addressrequisstring—
entity_categoryfacultatifEntityCategory | null—
risk_categoryfacultatifRiskCategory | null—
entity_namefacultatifstring | null—
confidencefacultatifnumber | null—
source_tierfacultatifstring | null—
stepsrequisAmlPathTransferResponse[]—
sourcerequisstring—
destinationrequisstring—
transactionrequisstring—
assetrequisAmlAsset—
amountrequisstring—
timestamprequisdate-time | null—
coveragerequisAmlPathSearchCoverageResponse—
statusrequisstring—
reasonsrequisstring[]—
visited_addressesrequisinteger—
visited_transactionsrequisinteger—
warningsrequisstring[]—
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | 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 champs
FieldTypeDescription
datafacultatifBillingAccountResponse | null—
api_key_idrequisuuid—
enabledrequisboolean—
currencyrequisstring—
balancerequisstring—
complimentary_aml_checks_remainingfacultatifinteger—
aml_pricesrequisAmlPriceScheduleResponse—
exact_sanctionsrequisstring—
screenrequisstring—
enhancedrequisstring—
investigationrequisstring—
rate_pricerequisstringPrice of one successful POST /rate request.
tariff_plan_idrequisuuid | null—
tariff_plan_coderequisstring | null—
errorfacultatifErrorBody | null—
coderequisstring—
messagerequisstring—
statusfacultatifinteger | null—
extrafacultatifobject | null—