Skip to main content

Analysis

Analyze blockchain wallet addresses for risk scoring, transaction patterns, and compliance data.

All endpoints in this section are accessible with an API key.


Analyze Wallet

Submits a wallet address for analysis. The analysis runs asynchronously — you'll receive a jobId to track progress.

GET /api/analysis/{wallet}

Rate limit: 3 requests/minute

Path parameters:

ParameterTypeDescription
walletstringBlockchain wallet address (EVM 0x... or TRON T...)

Query parameters:

ParameterTypeDefaultDescription
depthinteger1Analysis depth (1-5)
minAmountUsdnumberMinimum transaction amount in USD to include
networkstringethereumSingle network to analyze
networksstringComma-separated list of networks (overrides network)

Supported networks: ethereum, polygon, bnb, arbitrum, base, tron

Example:

curl -H "X-API-Key: ak_live_your_key_here" \
"https://mvp.amlyou.com/api/analysis/0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18?networks=ethereum,polygon&depth=2"

Response 202 Accepted:

{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "pending"
}

Use the returned jobId to poll for results via Get Job Status.


Get Job Status

Check the status of an analysis job. Poll this endpoint until the status is completed or failed.

GET /api/analysis/jobs/{jobID}

Rate limit: 12 requests/minute

Path parameters:

ParameterTypeDescription
jobIDUUIDThe job ID returned by the analyze endpoint

Example:

curl -H "X-API-Key: ak_live_your_key_here" \
https://mvp.amlyou.com/api/analysis/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890

Response 200 OK (pending):

{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "pending"
}

Response 200 OK (completed):

{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"reportId": "f1e2d3c4-b5a6-7890-abcd-ef1234567890"
}

Job statuses: pending, processing, completed, failed


Check Address Analyzed

Check whether a wallet address has already been analyzed on given networks, and the cost of running a new analysis.

GET /api/analysis/check/{wallet}

Rate limit: 12 requests/minute

Path parameters:

ParameterTypeDescription
walletstringBlockchain wallet address

Query parameters:

ParameterTypeDefaultDescription
networkstringethereumSingle network to check
networksstringComma-separated list of networks

Example:

curl -H "X-API-Key: ak_live_your_key_here" \
"https://mvp.amlyou.com/api/analysis/check/0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18?networks=ethereum,polygon"

Response 200 OK:

{
"networks": {
"ethereum": {
"analyzed": true,
"cost": 10
},
"polygon": {
"analyzed": false,
"cost": 5
}
},
"totalCost": 15
}
tip

Use this endpoint before submitting an analysis to check the cost upfront. Previously analyzed addresses cost more to update (10 credits) than new analyses (5 credits).


Get Aggregated Report

Returns an aggregated report combining results from multiple networks for a single wallet address.

GET /api/analysis/aggregated/{wallet}

Rate limit: 12 requests/minute

Path parameters:

ParameterTypeDescription
walletstringBlockchain wallet address

Query parameters:

ParameterTypeRequiredDescription
networksstringYesComma-separated list of networks

Example:

curl -H "X-API-Key: ak_live_your_key_here" \
"https://mvp.amlyou.com/api/analysis/aggregated/0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18?networks=ethereum,polygon"

Response 200 OK:

{
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18",
"overallRiskScore": 25,
"networks": {
"ethereum": {
"riskScore": 20,
"analyzed": true
},
"polygon": {
"riskScore": 30,
"analyzed": true
}
}
}
note

All requested networks must have been analyzed beforehand. Use Analyze Wallet first if needed.


Billing

Each analysis request consumes tokens from your account balance. The billing flow:

  1. Freeze — Tokens are reserved before analysis begins
  2. Spend — Reserved tokens are consumed on success
  3. Unfreeze — Reserved tokens are returned if analysis fails

If you have insufficient balance, the API returns:

{
"error": {
"code": "insufficient_balance",
"message": "Insufficient token balance to perform this analysis. Please top up your account."
}
}

Error Responses

StatusCodeDescription
400invalid_addressThe wallet address format is invalid
402insufficient_balanceNot enough tokens to perform analysis
404address_not_foundNo data found for this address
429rate_limit_exceededToo many requests (see Rate Limits)
500analysis_failedInternal error during analysis