API Documentation
From Global Ledger team ¶
Welcome
Welcome, developers, to the API documentation for Global Ledger API. This documentation serves as an authoritative guide for harnessing the power of our universal endpoints across multiple blockchains. Within this documentation, you will find well-detailed information regarding each of our endpoints. We provide a transaction or address scoring in both native coins and tokens, as well as balance retrievals in the same denominations. We also furnish instructions for webhook integration, inclusive of steps on creating webhooks, adding an address to it, and managing it efficiently (namely updating and deletion operations). To aid understanding, we have provided examples reflecting both successful responses across multiple chains and negative responses alike for reference. We welcome your feedback and encourage you to reach out through our support channels if you have questions or suggestions about this documentation or our API services.
Happy coding!
Supported Blockchains
-
Bitcoin (BTC)
-
Litecoin (LTC)
-
Bitcoin Satoshi Vision (BSV)
-
Ethereum (ETH)
-
Tron (TRX)
-
Binance Smart Chain (BNB)
-
Avalanche (AVAX)
The blockchain is indicated in the subdomain as a ticker
https://{ticker}.glprotocol.com/api/{endpoint}/{param}
Ticker
Ticker is a subdomain of the corresponding API.
-
blockchain tickers:
btc|ltc|bsv|eth|tron|bnb|avax -
system ticker:
access.common|common
Response wrapper
Each request to API is encased within a standardized wrapper, as per the documentation guidelines.
- Wrapper
- success: (boolean) - true if request was successfully processed
- data:
{any}(any) - response payload - response.errors:
{any}(any) - Error message. Only whensuccess: false
Entities ¶
Display entities within the cryptocurrency ecosystem. It contains data points and details about exchanges, wallet providers, DeFi platforms, and other related entities. To view an entity, you need to know its ID. Therefore, you should first search for the ID by name, and then request information on the specific entity.
By Name ¶
By NameGET/api-labeling/entity?name={name}&$project[name]=1&$project[type]=1&$project[id]=1
Retrieve list of entities filtered by name
- ticker:
common- The subdomain to system services
Example URI
- name
string(required) Example: .*bybit.*Regex filter for entity name
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"items": [
{
"type": {
"_id": "651d8a44e246cbd062b1f00e",
"name": "Exchange",
"score": 50
},
"id": "65ab88e58bc257cd15267c86",
"name": "Bybit",
"owner": "Bybit"
},
{
"type": {
"_id": "651d8a44e246cbd062b1f00e",
"name": "Exchange",
"score": 50
},
"id": "66f829885c9afc2c9a8760b3",
"name": "Bybit Cold Wallet",
"owner": "Bybit Cold Wallet"
},
{
"type": {
"_id": "652672e6b8ac18aaf5c52dc8",
"name": "Cybercrime / Hack",
"score": 100
},
"id": "67ba69e006c7efc512c20b9d",
"name": "Bybit Hack Feb 2025",
"owner": "Bybit Hack Feb 2025"
}
],
"count": 23
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"code": 401,
"success": false,
"path": "/api-labeling/entity?&$project[name]=1&$project[type]=1&$project[id]=1&name=.%2Abybit.%2A",
"method": "GET",
"timestamp": "4/6/2026, 10:55:21 PM",
"data": {
"messageType": "error",
"message": "User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By ID ¶
By IDGET/api-labeling/entity?ids[]={id}
Retrieve list of entities filtered by id
- ticker:
common- The subdomain to system services
Example URI
- id
string(required) Example: 65a8e2c98bc257cd15e58c41entity ID
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"items": [
{
"type": {
"_id": "61766e49820e13d2b95ded4e",
"name": "Low-risk exchange",
"score": 30
},
"tags": [],
"data": {
"legalName": "",
"isActive": true,
"KYCStatus": "required",
"isFiatCurrencyTrading": true,
"isPrivacyCoinsSupported": true,
"website": [
"https://www.binance.com"
],
"parentCompany": "",
"domicileCountry": null,
"status": "active",
"description": "<p>Binance is the world's largest crypto exchange...</p>",
"officeAddress": "",
"screenshots": [
{
"name": "65a8e2c98bc257cd15e58c41_GL_screen_1769117493288.png",
"image": "https://common.glprotocol.com/api-files/files/open/-65a8e2c98bc257cd15e58c41-GL-screen-1769117493288-5fb10795-f5f8-4e06-a797-c1112b564b2d.png"
}
],
"providedServices": [
"67ae16d806c7efc5129a1d9e"
],
"primaryOperationalRegions": [
"AR",
"UA",
"IN",
"TR"
],
"restrictedJurisdictions": [
"CA",
"MY",
"NL",
"US"
],
"languages": [
"English",
"Arabic"
],
"socialNetworkLinks": [
"https://twitter.com/binance"
],
"regulatoryCompliance": [
{
"country": "FR",
"localAuthority": "Autorité des Marchés Financiers (AMF)",
"licenseNumber": "E2022-037",
"licenseLink": "https://protectepargne.amf-france.org/acteurs-listes-blanches/psan/binance-france-sas",
"registeredName": "BINANCE France SAS",
"dates": {
"from": 1651536000000
},
"status": null,
"licenseType": "Crypto-Asset Service Provider",
"address": "10 Avenue Franklin D. Roosevelt, 75008 Paris, France "
}
],
"banks": [],
"paymentSystems": [],
"contacts": [
{
"contactName": "Changpeng Zhao",
"position": "Co-Founder & Former Chief Executive Officer (CEO)",
"emailAddress": "",
"contactLinks": [
"https://www.linkedin.com/in/cpzhao/"
]
}
],
"contactsDepartments": [
{
"departmentName": "Customer Support",
"departmentLinks": [
"https://www.binance.com/en/support"
]
}
],
"countries": [
"France",
"Italy"
]
},
"alias": [
{
"value": "binance"
}
],
"logo": "https://common.glprotocol.com/api-files/files/open/250x250_Binance_20Pool.png",
"updatedAt": "2026-03-31T06:11:45.817Z",
"creatorId": "6446322993556887abd82feb",
"id": "65a8e2c98bc257cd15e58c41",
"name": "Binance",
"owner": "Binance"
}
],
"count": 1
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"code": 401,
"success": false,
"path": "/api-labeling/entity?ids[]=65a8e2c98bc257cd15e58c41",
"method": "GET",
"timestamp": "4/6/2026, 10:55:10 PM",
"data": {
"messageType": "error",
"message": "User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Get Transaction Risk Score ¶
By Native Coin ¶
By Native CoinGET/api/report/tx_hash/{tx_hash}
Calculate and retrieve the risk score of a specific transaction by native coin (btc, eth, ltc, trx, bsv and etc.)
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- tx_hash
string(required) Example: 76a914db4d...88acThe transaction hash
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 251000000000000000,
"progress": 100,
"depth": 3,
"directTxCount": 10,
"totalFunds": 75,
"sources": [
{
"directTx": "0xbd54a...750bbec0407dc7dc04",
"tx_hash": "0x0fd34...dc61b8abc95021d17b",
"address": "0xca258d51a825c82d16ce54dc61b8abc95021d17b",
"depth": 3,
"funds": {
"name": "{TAG_NAME}",
"score": 50,
"default": true
},
"amount": 31643005583457000,
"share": 10,
"owner": "OWNER_NAME",
"listType": "Known sources",
"directStamp": 1697553611,
"timestamp": 1697525855
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number",
"description": "Amount of incoming transaction funds for calculation"
},
"progress": {
"type": "number",
"description": "Internal additional field"
},
"depth": {
"type": "number",
"description": "Maximum value of the depth of the found source"
},
"directTxCount": {
"type": "number",
"description": "Direct transaction count"
},
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
},
"sources": {
"type": "array",
"description": "Array with found sources"
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Transaction Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0
},
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/tx_hash/0000",
"method": "GET",
"timestamp": "1/12/2026, 12:58:21 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
}
}
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By Token ¶
By TokenGET/api/report/tx_hash/{tx_hash}?token={token}
Calculate and retrieve the risk score of a specific transaction by specific token of the smart contract.
- ticker:
eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- tx_hash
string(required) Example: 76a914db4d...88acThe transaction hash
- token
string(optional) Example: 0xdac17f958d2ee523a2206206994597c13d831ec7The blockchain token contract address.
supported- unified search of all supported tokens,- search by native coin,{token_contract_address}- search by specific token.
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 251000000000000000,
"progress": 100,
"depth": 3,
"directTxCount": 10,
"totalFunds": 75,
"sources": [
{
"directTx": "0xbd54a...750bbec0407dc7dc04",
"tx_hash": "0x0fd34...dc61b8abc95021d17b",
"address": "0xca258d51a825c82d16ce54dc61b8abc95021d17b",
"depth": 3,
"funds": {
"name": "{TAG_NAME}",
"score": 50,
"default": true
},
"amount": 31643005583457000,
"share": 10,
"owner": "OWNER_NAME",
"listType": "Known sources",
"directStamp": 1697553611,
"timestamp": 1697525855,
"issuer": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"currency": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number",
"description": "Amount of incoming transaction funds for calculation"
},
"progress": {
"type": "number",
"description": "Internal additional field"
},
"depth": {
"type": "number",
"description": "Maximum value of the depth of the found source"
},
"directTxCount": {
"type": "number",
"description": "Direct transaction count"
},
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
},
"sources": {
"type": "array",
"description": "Array with found sources"
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Transaction Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0
},
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/tx_hash/0000?token=0xdac17f958d2ee523a2206206994597c13d831ec7",
"method": "GET",
"timestamp": "1/12/2026, 1:08:11 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
}
}
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By Unified search ¶
By Unified searchGET/api/report/tx_hash/{tx_hash}?token={token}
Calculate and retrieve the risk score of a specific transaction by all supported tokens.
- ticker:
eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- tx_hash
string(required) Example: 76a914db4d...88acThe transaction hash
- token
string(optional) Example: 0xdac17f958d2ee523a2206206994597c13d831ec7The blockchain token contract address.
supported- unified search of all supported tokens,- search by native coin,{token_contract_address}- search by specific token.
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 251000000000000000,
"progress": 100,
"depth": 3,
"directTxCount": 10,
"totalFunds": 75,
"sources": [
{
"directTx": "0xbd54a...750bbec0407dc7dc04",
"tx_hash": "0x0fd34...dc61b8abc95021d17b",
"address": "0xca258d51a825c82d16ce54dc61b8abc95021d17b",
"depth": 3,
"funds": {
"name": "{TAG_NAME}",
"score": 50,
"default": true
},
"amount": 31643005583457000,
"share": 10,
"owner": "OWNER_NAME",
"listType": "Known sources",
"directStamp": 1697553611,
"timestamp": 1697525855,
"issuer": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"currency": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number",
"description": "Amount of incoming transaction funds for calculation"
},
"progress": {
"type": "number",
"description": "Internal additional field"
},
"depth": {
"type": "number",
"description": "Maximum value of the depth of the found source"
},
"directTxCount": {
"type": "number",
"description": "Direct transaction count"
},
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
},
"sources": {
"type": "array",
"description": "Array with found sources"
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Transaction Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0
},
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/tx_hash/0000?token=supported",
"method": "GET",
"timestamp": "1/12/2026, 1:05:56 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
}
}
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By direction Source of Funds ¶
By direction Source of FundsGET/api/report/tx_hash/{tx_hash}?direction={direction}
Calculate and retrieve the risk score by Source of Funds of a specific transaction.
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- tx_hash
string(required) Example: 76a914db4d...88acThe transaction hash
- direction
number(optional) Example: 0The transaction search direction.
0- is the Source of Funds,1- is the Use of Funds,2- common, Source of Funds + Use of Funds (default value if not specified).
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 251000000000000000,
"progress": 100,
"depth": 3,
"directTxCount": 10,
"totalFunds": 75,
"sources": [
{
"directTx": "0xbd54a...750bbec0407dc7dc04",
"tx_hash": "0x0fd34...dc61b8abc95021d17b",
"address": "0xca258d51a825c82d16ce54dc61b8abc95021d17b",
"depth": 3,
"funds": {
"name": "{TAG_NAME}",
"score": 50,
"default": true
},
"amount": 31643005583457000,
"share": 10,
"owner": "OWNER_NAME",
"listType": "Known sources",
"directStamp": 1697553611,
"timestamp": 1697525855,
"issuer": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"currency": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number",
"description": "Amount of incoming transaction funds for calculation"
},
"progress": {
"type": "number",
"description": "Internal additional field"
},
"depth": {
"type": "number",
"description": "Maximum value of the depth of the found source"
},
"directTxCount": {
"type": "number",
"description": "Direct transaction count"
},
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
},
"sources": {
"type": "array",
"description": "Array with found sources"
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Transaction Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0
},
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/tx_hash/0000?direction=1",
"method": "GET",
"timestamp": "1/12/2026, 1:13:25 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
}
}
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Only Risk Score ¶
Only Risk ScoreGET/api/report/tx_hash/{tx_hash}?$project[totalFunds]={project_totalFunds}
Calculate and retrieve only the risk score of a specific transaction.
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- tx_hash
string(required) Example: 76a914db4d...88acThe transaction hash
- project_totalFunds
number(required) Example: 1A query parameter used to pick
totalFundsfield (representing the risk score) from the response.
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalFunds": 75
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Transaction Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0
},
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/tx_hash/0000?$project[totalFunds]=1",
"method": "GET",
"timestamp": "1/12/2026, 1:14:44 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
}
}
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}400Parameter $project[totalFunds]= must be equal to one of the allowed values 0|1. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"statusCode": 400,
"message": "must be equal to one of the allowed values",
"schema": [
"[0",
"1]"
]
},
"success": false,
"data": {
"messageType": "error",
"message": "user.ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"statusCode": {
"type": "number"
},
"message": {
"type": "string"
},
"schema": {
"type": "array"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}With Enabled Alerts ¶
With Enabled AlertsGET/api/report/tx_hash/{tx_hash}?alertEnable=true
Calculate and retrieve the risk score of a specific transaction with enabled alerts (btc, eth, ltc, trx, bsv and etc.)
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- tx_hash
string(required) Example: 76a914db4d...88acThe transaction hash
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 251000000000000000,
"progress": 100,
"depth": 3,
"directTxCount": 10,
"totalFunds": 75,
"sources": [
{
"directTx": "0xbd54a...750bbec0407dc7dc04",
"tx_hash": "0x0fd34...dc61b8abc95021d17b",
"address": "0xca258d51a825c82d16ce54dc61b8abc95021d17b",
"depth": 3,
"funds": {
"name": "{TAG_NAME}",
"score": 50,
"default": true
},
"amount": 31643005583457000,
"share": 10,
"owner": "OWNER_NAME",
"listType": "Known sources",
"directStamp": 1697553611,
"timestamp": 1697525855
}
],
"alerts": [
{
"address": "``",
"userId": "65bc4bc3a2...fa614dbd3a",
"read": false,
"archive": false,
"amount": 14021.175131,
"triggeredAmount": 7027.097484,
"depth": 1,
"priority": 50,
"score": 72,
"fiat": "USD",
"weight": 0.401347,
"labels": [
"ransomware"
],
"updatedAt": "1970-01-19T14:33:38.923Z",
"alertId": "6913bbc3d3cce32b43ddae35",
"coin": "btc",
"directTx": "e71839ca539f6f86...eeb8e332a7e3dc4d3c371d1d04",
"data": [
{
"share": 1,
"directStamp": 1607618923,
"amountCur": 7027.097484,
"depth": 1,
"label": "Ransomware",
"entity": "66f83b9e5c9afc2c9a87a988",
"owner": "File-Locker",
"address": "1BoatSLRHtKNngkdXEeobR76b53LETtpyT",
"tx_hash": "e71839ca539f6f8652e36...eb8e332a7e3dc4d3c371d1d04"
}
],
"results": [
true
],
"title": "name",
"logical": "$anyOf",
"riskReport": true,
"addressesCount": [],
"addresses": []
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number",
"description": "Amount of incoming transaction funds for calculation"
},
"progress": {
"type": "number",
"description": "Internal additional field"
},
"depth": {
"type": "number",
"description": "Maximum value of the depth of the found source"
},
"directTxCount": {
"type": "number",
"description": "Direct transaction count"
},
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
},
"sources": {
"type": "array",
"description": "Array with found sources"
},
"alerts": {
"type": "array"
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Transaction Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0
},
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/tx_hash/0000?alertEnable=true",
"method": "GET",
"timestamp": "1/12/2026, 1:15:33 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
}
}
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Get Address Risk Score ¶
By Native Coin ¶
By Native CoinGET/api/report/address/{address}
Calculate and retrieve the risk score of a blockchain address based on historical transactions by native coin (btc, eth, ltc, trx, bsv and etc.)
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- address
string(required) Example: 1BoatSLRHtKNngkdXEeobR76b53LETtpyTThe blockchain address
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 251000000000000000,
"progress": 100,
"depth": 3,
"directTxCount": 10,
"totalFunds": 75,
"sources": [
{
"directTx": "0xbd54a...750bbec0407dc7dc04",
"tx_hash": "0x0fd34...dc61b8abc95021d17b",
"address": "0xca258d51a825c82d16ce54dc61b8abc95021d17b",
"depth": 3,
"funds": {
"name": "{TAG_NAME}",
"score": 50,
"default": true
},
"amount": 31643005583457000,
"share": 10,
"owner": "OWNER_NAME",
"listType": "Known sources",
"directStamp": 1697553611,
"timestamp": 1697525855
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number",
"description": "Amount of incoming transaction funds for calculation"
},
"progress": {
"type": "number",
"description": "Internal additional field"
},
"depth": {
"type": "number",
"description": "Maximum value of the depth of the found source"
},
"directTxCount": {
"type": "number",
"description": "Direct transaction count"
},
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
},
"sources": {
"type": "array",
"description": "Array with found sources"
}
}
}400Address is Not Valid. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "required",
"params": {},
"message": "must pass \\\"$ts\\\" keyword validation",
"schema": "AddressId",
"data": "SomeInvalidAddress"
}
],
"status": 400
},
"success": false,
"data": {
"messageType": "error",
"message": "user.Http Exception"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Address Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0,
"totalFunds": 31
},
"totalFunds": 31,
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/address/bc1qy7gxhxkkdw800000g8j4fnr3qz6v28d36y6xpt",
"method": "GET",
"timestamp": "1/12/2026, 1:18:53 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
},
"totalFunds": {
"type": "number"
}
}
},
"totalFunds": {
"type": "number"
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By Tokens ¶
By TokensGET/api/report/address/{address}?token={token}
Calculate and retrieve the risk score of a blockchain address by specific token of the smart contract based on historical transactions.
- ticker:
eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- address
string(required) Example: 0xca258d51a825c82d16ce54dc61b8abc95021d17bThe blockchain address
- token
string(optional) Example: 0xdac17f958d2ee523a2206206994597c13d831ec7The blockchain token contract address.
supported- unified search of all supported tokens,- search by native coin,{token_contract_address}- search by specific token.
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 251000000000000000,
"progress": 100,
"depth": 3,
"directTxCount": 10,
"totalFunds": 75,
"sources": [
{
"directTx": "0xbd54a...750bbec0407dc7dc04",
"tx_hash": "0x0fd34...dc61b8abc95021d17b",
"address": "0xca258d51a825c82d16ce54dc61b8abc95021d17b",
"depth": 3,
"funds": {
"name": "{TAG_NAME}",
"score": 50,
"default": true
},
"amount": 31643005583457000,
"share": 10,
"owner": "OWNER_NAME",
"listType": "Known sources",
"directStamp": 1697553611,
"timestamp": 1697525855,
"issuer": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"currency": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number",
"description": "Amount of incoming transaction funds for calculation"
},
"progress": {
"type": "number",
"description": "Internal additional field"
},
"depth": {
"type": "number",
"description": "Maximum value of the depth of the found source"
},
"directTxCount": {
"type": "number",
"description": "Direct transaction count"
},
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
},
"sources": {
"type": "array",
"description": "Array with found sources"
}
}
}400Address is Not Valid. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "required",
"params": {},
"message": "must pass \\\"$ts\\\" keyword validation",
"schema": "AddressId",
"data": "SomeInvalidAddress"
}
],
"status": 400
},
"success": false,
"data": {
"messageType": "error",
"message": "user.Http Exception"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}400Contract Address is Not Allowed For Risk Report. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"statusCode": 400,
"message": "CONTRACTS_NOT_ALLOWED_FOR_RISK_REPORT",
"error": "Bad Request"
},
"success": false,
"data": {
"messageType": "error",
"message": "Risk Report for contracts is not supported. Please enter an externally-owned account address."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"statusCode": {
"type": "number"
},
"message": {
"type": "string"
},
"error": {
"type": "string"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Address Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0,
"totalFunds": 31
},
"totalFunds": 31,
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/address/0xca000001a825c82d16ce54dc61b8abc95021d17b?token=0xdac17f958d2ee523a2206206994597c13d831ec7",
"method": "GET",
"timestamp": "1/12/2026, 1:20:45 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
},
"totalFunds": {
"type": "number"
}
}
},
"totalFunds": {
"type": "number"
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By Unified search ¶
By Unified searchGET/api/report/address/{address}?token={token}
Calculate and retrieve the risk score of a blockchain address based on historical transactions by all supported coins.
- ticker:
eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- address
string(required) Example: 0x8bd0b65a50ef5cef84fec420be7b89ed1470ceb9The blockchain address
- token
string(optional) Example: 0xdac17f958d2ee523a2206206994597c13d831ec7The blockchain token contract address.
supported- unified search of all supported tokens,- search by native coin,{token_contract_address}- search by specific token.
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 251000000000000000,
"progress": 100,
"depth": 3,
"directTxCount": 10,
"totalFunds": 75,
"sources": [
{
"directTx": "0xbd54a...750bbec0407dc7dc04",
"tx_hash": "0x0fd34...dc61b8abc95021d17b",
"address": "0xca258d51a825c82d16ce54dc61b8abc95021d17b",
"depth": 3,
"funds": {
"name": "{TAG_NAME}",
"score": 50,
"default": true
},
"amount": 31643005583457000,
"share": 10,
"owner": "OWNER_NAME",
"listType": "Known sources",
"directStamp": 1697553611,
"timestamp": 1697525855
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number",
"description": "Amount of incoming transaction funds for calculation"
},
"progress": {
"type": "number",
"description": "Internal additional field"
},
"depth": {
"type": "number",
"description": "Maximum value of the depth of the found source"
},
"directTxCount": {
"type": "number",
"description": "Direct transaction count"
},
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
},
"sources": {
"type": "array",
"description": "Array with found sources"
}
}
}400Address is Not Valid. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "required",
"params": {},
"message": "must pass \\\"$ts\\\" keyword validation",
"schema": "AddressId",
"data": "SomeInvalidAddress"
}
],
"status": 400
},
"success": false,
"data": {
"messageType": "error",
"message": "user.Http Exception"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Address Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0,
"totalFunds": 31
},
"totalFunds": 31,
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/address/0xca000001a825c82d16ce54dc61b8abc95021d17b?token=supported",
"method": "GET",
"timestamp": "1/12/2026, 1:22:02 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
},
"totalFunds": {
"type": "number"
}
}
},
"totalFunds": {
"type": "number"
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By direction Use of Funds ¶
By direction Use of FundsGET/api/report/address/{address}?direction={direction}
Calculate and retrieve the risk score only by Use of funds of a blockchain address based on historical transactions.
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- address
string(required) Example: 1BoatSLRHtKNngkdXEeobR76b53LETtpyTThe blockchain address
- direction
number(optional) Example: 2The transaction search direction.
0- is the Source of Funds,1- is the Use of Funds,2- common, Source of Funds + Use of Funds (default value if not specified).
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 251000000000000000,
"progress": 100,
"depth": 3,
"directTxCount": 10,
"totalFunds": 75,
"sources": [
{
"directTx": "0xbd54a...750bbec0407dc7dc04",
"tx_hash": "0x0fd34...dc61b8abc95021d17b",
"address": "0xca258d51a825c82d16ce54dc61b8abc95021d17b",
"depth": 3,
"funds": {
"name": "{TAG_NAME}",
"score": 50,
"default": true
},
"amount": 31643005583457000,
"share": 10,
"owner": "OWNER_NAME",
"listType": "Known sources",
"directStamp": 1697553611,
"timestamp": 1697525855
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number",
"description": "Amount of incoming transaction funds for calculation"
},
"progress": {
"type": "number",
"description": "Internal additional field"
},
"depth": {
"type": "number",
"description": "Maximum value of the depth of the found source"
},
"directTxCount": {
"type": "number",
"description": "Direct transaction count"
},
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
},
"sources": {
"type": "array",
"description": "Array with found sources"
}
}
}400Address is Not Valid. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "required",
"params": {},
"message": "must pass \\\"$ts\\\" keyword validation",
"schema": "AddressId",
"data": "SomeInvalidAddress"
}
],
"status": 400
},
"success": false,
"data": {
"messageType": "error",
"message": "user.Http Exception"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Address Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0,
"totalFunds": 31
},
"totalFunds": 31,
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/address/0xca000001a825c82d16ce54dc61b8abc95021d17b?direction=1",
"method": "GET",
"timestamp": "1/12/2026, 1:24:02 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
},
"totalFunds": {
"type": "number"
}
}
},
"totalFunds": {
"type": "number"
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Only Risk Score ¶
Only Risk ScoreGET/api/report/address/{address}?$project[totalFunds]={project_totalFunds}
Calculate and retrieve only the risk score of a blockchain address based on historical transactions.
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- address
string(required) Example: 0xca258d51a825c82d16ce54dc61b8abc95021d17bThe blockchain address
- project_totalFunds
number(required) Example: 1A query parameter used to pick
totalFundsfield (representing the risk score) from the response.
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalFunds": 75
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
}
}
}400Address is Not Valid. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "required",
"params": {},
"message": "must pass \\\"$ts\\\" keyword validation",
"schema": "AddressId",
"data": "SomeInvalidAddress"
}
],
"status": 400
},
"success": false,
"data": {
"messageType": "error",
"message": "user.Http Exception"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}400Contract Address is Not Allowed For Risk Report. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"statusCode": 400,
"message": "CONTRACTS_NOT_ALLOWED_FOR_RISK_REPORT",
"error": "Bad Request"
},
"success": false,
"data": {
"messageType": "error",
"message": "Risk Report for contracts is not supported. Please enter an externally-owned account address."
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"statusCode": {
"type": "number"
},
"message": {
"type": "string"
},
"error": {
"type": "string"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Address Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0,
"totalFunds": 31
},
"totalFunds": 31,
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/address/0xca000001a825c82d16ce54dc61b8abc95021d17b?$project[totalFunds]=1",
"method": "GET",
"timestamp": "1/12/2026, 1:24:50 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
},
"totalFunds": {
"type": "number"
}
}
},
"totalFunds": {
"type": "number"
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}400Parameter $project[totalFunds]= must be equal to one of the allowed values 0|1. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"statusCode": 400,
"message": "must be equal to one of the allowed values",
"schema": [
"[0",
"1]"
]
},
"success": false,
"data": {
"messageType": "error",
"message": "user.ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"statusCode": {
"type": "number"
},
"message": {
"type": "string"
},
"schema": {
"type": "array"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}With Enabled Alerts ¶
With Enabled AlertsGET/api/report/address/{address}?alertEnable=true
Calculate and retrieve the risk score of a blockchain address based on historical transactions with enabled alerts (btc, eth, ltc, trx, bsv and etc.)
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- address
string(required) Example: 1BoatSLRHtKNngkdXEeobR76b53LETtpyTThe blockchain address
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 251000000000000000,
"progress": 100,
"depth": 3,
"directTxCount": 10,
"totalFunds": 75,
"sources": [
{
"directTx": "0xbd54a...750bbec0407dc7dc04",
"tx_hash": "0x0fd34...dc61b8abc95021d17b",
"address": "0xca258d51a825c82d16ce54dc61b8abc95021d17b",
"depth": 3,
"funds": {
"name": "{TAG_NAME}",
"score": 50,
"default": true
},
"amount": 31643005583457000,
"share": 10,
"owner": "OWNER_NAME",
"listType": "Known sources",
"directStamp": 1697553611,
"timestamp": 1697525855
}
],
"alerts": [
{
"address": "1BoatSLRHtKNngkdXEeobR76b53LETtpyT",
"userId": "65bc4bc3a297dcfa614dbd3a",
"read": false,
"archive": false,
"amount": 15.483272,
"triggeredAmount": 15.483272,
"depth": 1,
"priority": 50,
"score": 30,
"fiat": "USD",
"weight": 0.12002,
"labels": [
"low-risk exchange"
],
"updatedAt": "1970-01-20T13:38:25.571Z",
"alertId": "6913bbc3d3cce32b43ddae35",
"coin": "btc",
"directTx": "70eb3736c0bde98877f480a652b22b5dca8494c8b2fb95f8af62bf5d7f28f8fd",
"data": [
{
"share": 1,
"directStamp": 1690705571,
"amountCur": 15.483272,
"depth": 1,
"label": "Low-risk exchange",
"owner": "Coinbase",
"address": "3EoNsoh8FcpFTywJ1DZiYFUJjqQM4ffopp",
"tx_hash": "70eb3736c0bde98877f480a652b22b5dca8494c8b2fb95f8af62bf5d7f28f8fd"
}
],
"results": [
true
],
"title": "name",
"logical": "$anyOf",
"riskReport": true,
"addressesCount": [],
"addresses": []
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number",
"description": "Amount of incoming transaction funds for calculation"
},
"progress": {
"type": "number",
"description": "Internal additional field"
},
"depth": {
"type": "number",
"description": "Maximum value of the depth of the found source"
},
"directTxCount": {
"type": "number",
"description": "Direct transaction count"
},
"totalFunds": {
"type": "number",
"description": "Calculated RISK SCORE value using the user’s selected formula (default or sensitive)"
},
"sources": {
"type": "array",
"description": "Array with found sources"
},
"alerts": {
"type": "array",
"description": "Array with found alerts. If alerts are enabled, the response will contain this array."
}
}
}400Address is Not Valid. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "required",
"params": {},
"message": "must pass \\\"$ts\\\" keyword validation",
"schema": "AddressId",
"data": "SomeInvalidAddress"
}
],
"status": 400
},
"success": false,
"data": {
"messageType": "error",
"message": "user.Http Exception"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Address Not Found. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0,
"totalFunds": 31
},
"totalFunds": 31,
"status": 404,
"code": 404,
"success": false,
"path": "/api/report/address/0xca000001a825c82d16ce54dc61b8abc95021d17b?alertEnable=true",
"method": "GET",
"timestamp": "1/12/2026, 1:26:21 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
},
"totalFunds": {
"type": "number"
}
}
},
"totalFunds": {
"type": "number"
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Get Address Balance ¶
By Native Coin ¶
By Native CoinGET/api/explorer/getBalance/{address}
Get the native coin balance of a specific blockchain address.
- ticker:
eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- address
string(required) Example: TRBqACCXaLTYsKxWzDwbfyN1shtWs479TCThe blockchain address
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"address": "{REQUESTED_ADDRESS}",
"contract": "``",
"balance": {
"amount": 376.71644,
"symbol": "TRX",
"price": 41.024859,
"priceTimestamp": 1713517606492
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"address": {
"type": "string"
},
"contract": {
"type": "string"
},
"balance": {
"type": "object",
"properties": {
"amount": {
"type": "number"
},
"symbol": {
"type": "string",
"enum": [
"TRX",
"ETH"
]
},
"price": {
"type": "number"
},
"priceTimestamp": {
"type": "number"
}
}
}
}
}400Address is Not Valid. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "required",
"params": {},
"message": "must pass \\\"$ts\\\" keyword validation",
"schema": "AddressId",
"data": "SomeInvalidAddress"
}
],
"status": 400
},
"success": false,
"data": {
"messageType": "error",
"message": "user.Http Exception"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By Token ¶
By TokenGET/api/explorer/getBalance/{address}?contract={contract}
Get the token balance of a specific blockchain address.
- ticker:
eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- address
string(required) Example: TRBqACCXaLTYsKxWzDwbfyN1shtWs479TCThe blockchain address
- contract
string(required) Example: contractThe blockchain token contract address
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"address": "{REQUESTED_ADDRESS}",
"contract": "{TOKEN_CONTRACT_ADDRESS}",
"balance": {
"amount": 12634.43649,
"symbol": "{TOKEN_SYMBOL}",
"price": 12641.726313,
"priceTimestamp": 1713517535003
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"address": {
"type": "string"
},
"contract": {
"type": "string"
},
"balance": {
"type": "object",
"properties": {
"amount": {
"type": "number"
},
"symbol": {
"type": "string"
},
"price": {
"type": "number"
},
"priceTimestamp": {
"type": "number"
}
}
}
}
}400Address is Not Valid. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "required",
"params": {},
"message": "must pass \\\"$ts\\\" keyword validation",
"schema": "AddressId",
"data": "SomeInvalidAddress"
}
],
"status": 400
},
"success": false,
"data": {
"messageType": "error",
"message": "user.Http Exception"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
}
}
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"success": false,
"data": {
"messageType": "error",
"message": "user.User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Essential Support ¶
Get information about essential blockchains
By Transaction ¶
By TransactionGET/essential-api-{essential_blockchain_ticker}/report/tx_hash/{tx_hash}?direction={direction}&token={token_contract_address}
Retrieve detailed information about a specific transaction for essential blockchains
-
ticker:
common- subdomain for this request always common -
essential_blockchain_ticker:
polygon|glmr|arb|base|dot|sol|ton|xrp|worldcoin|optimism|xlm|tempo|cardano- The essential blockchain ticker
Example URI
- essential_blockchain_ticker
string(required) Example: {essential_blockchain_ticker}The essential blockchain to query
- tx_hash
string(required) Example: 0xda852cac14840170ae6655c3f00712bfe67fd09c09f98c1aafb450945c5be5a1The transaction hash
- direction
string(required) Example: 20- is the Source of Funds,1- is the Use of Funds,2- common, Source of Funds + Use of Funds (default value if not specified).- token_contract_address
string(required) Example: 0xc2132d05d31c914a87c6611c10748aeb04b58e8fThe essential blockchain token contract address.
- (blank value) search by native coin,{token_contract_address}- search by specific token.
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 18394532,
"progress": 100,
"depth": 2,
"directTxCount": 2,
"totalFunds": 50.95,
"totalFundsDefault": 50,
"totalFundsSensitive": 50,
"totalFundsSeries": 50.95,
"sources": [
{
"directTx": "\"0xda852cac14840170ae6655c3f00712bfe67fd09c09f98c1aafb450945c5be5a1\"",
"directionUp": false,
"funds": {
"name": "\"DEX\"",
"score": 50
},
"owner": "\"Uniswap\"",
"depth": 2,
"amount": 9197266,
"currency": "\"0xc2132d05d31c914a87c6611c10748aeb04b58e8f\"",
"tx_hash": "\"0x755a883e328cfb7d9994c1940e2547f8de71a0e8971ed55fabeee6bc57bab331\"",
"address": "\"0x9b08288c3be4f62bbf8d1c20ac9c5e6f9467d8b7\"",
"timestamp": 1685019783,
"listType": "\"Known sources\"",
"share": 1
},
{
"directTx": "\"0xda852cac14840170ae6655c3f00712bfe67fd09c09f98c1aafb450945c5be5a1\"",
"directionUp": true,
"funds": {
"name": "\"exchange\"",
"score": 50
},
"owner": "\"OKX\"",
"depth": 2,
"amount": 9197266,
"currency": "\"0xc2132d05d31c914a87c6611c10748aeb04b58e8f\"",
"tx_hash": "\"0x7fa32534b3372cb9656ef5bb897e67520c561f57a76b45baf87489a729674d94\"",
"address": "\"0x06959153b974d0d5fdfd87d561db6d8d4fa0bb0b\"",
"timestamp": 1691726959,
"listType": "\"Known sources\"",
"share": 1
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number"
},
"progress": {
"type": "number"
},
"depth": {
"type": "number"
},
"directTxCount": {
"type": "number"
},
"totalFunds": {
"type": "number"
},
"totalFundsDefault": {
"type": "number"
},
"totalFundsSensitive": {
"type": "number"
},
"totalFundsSeries": {
"type": "number"
},
"sources": {
"type": "array"
}
}
}404Transaction Not Found
Headers
Content-Type: application/jsonBody
{
"messageType": "\"Error\"",
"status": 404,
"code": 404,
"success": false,
"path": "\"/essential-api-polygon/report/tx_hash/0xda852cac14840170ae6655c3f0071209c09f98c1aafb450945c5be5a1?direction=2&token=0xc2132d05d31c914a87c6611c10748aeb04b58e8f\"",
"method": "\"GET\"",
"timestamp": "\"3/4/2025, 1:16:58 PM\"",
"data": {
"messageType": "\"error\"",
"message": "\"ENOENT\""
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Transaction Hash Not Specified. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"message": "Cannot GET /essential-api-polygon/report/tx_hash/?direction=2&token=0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
"error": "Not Found",
"statusCode": 404
},
"status": 404,
"options": {},
"message": "Cannot GET /essential-api-polygon/report/tx_hash/?direction=2&token=0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
"name": "NotFoundException",
"code": 404,
"success": false,
"path": "/essential-api-polygon/report/tx_hash/?direction=2&token=0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
"method": "GET",
"timestamp": "1/12/2026, 1:35:47 PM",
"data": {
"messageType": "error",
"message": "Cannot GET /essential-api-polygon/report/tx_hash/?direction=2&token=0xc2132d05d31c914a87c6611c10748aeb04b58e8f"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"error": {
"type": "string"
},
"statusCode": {
"type": "number"
}
}
},
"status": {
"type": "number"
},
"options": {
"type": "object",
"properties": {}
},
"message": {
"type": "string"
},
"name": {
"type": "string"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"status": 401,
"message": "User not found",
"name": "HttpException",
"code": 401,
"success": false,
"path": "/essential",
"method": "GET",
"timestamp": "3/4/2025, 10:03:51 AM",
"data": {
"messageType": "error",
"message": "User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"status": {
"type": "number"
},
"message": {
"type": "string"
},
"name": {
"type": "string"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string",
"description": "api-glmr/report/tx_hash/0x69033d0891348c8ac8e9456c8226ddc91099f97fc4ad0e888c736b2dd3bb5fec?direction=0&token=&tokenTicker=GLMR (string)"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}By Address ¶
By AddressGET/essential-api-{essential_blockchain_ticker}/report/address/{address}?direction={direction}&token={token_contract_address}
Retrieve detailed information about a last transaction for provided address for essential blockchains
-
ticker:
common- subdomain for this request always common -
essential_blockchain_ticker:
polygon|glmr|arb|base|dot|sol|ton|xrp|worldcoin|optimism|xlm|tempo|cardano- The essential blockchain ticker
Example URI
- essential_blockchain_ticker
string(required) Example: {essential_blockchain_ticker}The essential blockchain to query
- address
string(required) Example: 0x85b4Ce35C2e36aC6405455A3D3Ae947972864f66The address
- direction
string(required) Example: 20- is the Source of Funds,1- is the Use of Funds,2- common, Source of Funds + Use of Funds (default value if not specified).- token_contract_address
string(required) Example: 0xc2132d05d31c914a87c6611c10748aeb04b58e8fThe essential blockchain token contract address.
- (blank value) search by native coin,{token_contract_address}- search by specific token.
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"totalAmount": 18394532,
"progress": 100,
"depth": 2,
"directTxCount": 2,
"totalFunds": 50.95,
"totalFundsDefault": 50,
"totalFundsSensitive": 50,
"totalFundsSeries": 50.95,
"sources": [
{
"directTx": "\"0xda852cac14840170ae6655c3f00712bfe67fd09c09f98c1aafb450945c5be5a1\"",
"directionUp": false,
"funds": {
"name": "\"DEX\"",
"score": 50
},
"owner": "\"Uniswap\"",
"depth": 2,
"amount": 9197266,
"currency": "\"0xc2132d05d31c914a87c6611c10748aeb04b58e8f\"",
"tx_hash": "\"0x755a883e328cfb7d9994c1940e2547f8de71a0e8971ed55fabeee6bc57bab331\"",
"address": "\"0x9b08288c3be4f62bbf8d1c20ac9c5e6f9467d8b7\"",
"directStamp": 1740770954,
"timestamp": 1685019783,
"listType": "\"Known sources\"",
"share": 1
},
{
"directTx": "\"0xda852cac14840170ae6655c3f00712bfe67fd09c09f98c1aafb450945c5be5a1\"",
"directionUp": true,
"funds": {
"name": "\"exchange\"",
"score": 50
},
"owner": "\"OKX\"",
"depth": 2,
"amount": 9197266,
"currency": "\"0xc2132d05d31c914a87c6611c10748aeb04b58e8f\"",
"tx_hash": "\"0x7fa32534b3372cb9656ef5bb897e67520c561f57a76b45baf87489a729674d94\"",
"address": "\"0x06959153b974d0d5fdfd87d561db6d8d4fa0bb0b\"",
"directStamp": 1740770954,
"timestamp": 1691726959,
"listType": "\"Known sources\"",
"share": 1
}
]
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"totalAmount": {
"type": "number"
},
"progress": {
"type": "number"
},
"depth": {
"type": "number"
},
"directTxCount": {
"type": "number"
},
"totalFunds": {
"type": "number"
},
"totalFundsDefault": {
"type": "number"
},
"totalFundsSensitive": {
"type": "number"
},
"totalFundsSeries": {
"type": "number"
},
"sources": {
"type": "array"
}
}
}404Address Not Found
Headers
Content-Type: application/jsonBody
{
"messageType": "Error",
"meta": {
"spamAmount": 0,
"spamCount": 0,
"cashbackCount": 0,
"totalFunds": 31
},
"status": 404,
"code": 404,
"success": false,
"path": "/essential-api-polygon/report/address/0x85b4Ce35C2e36aC6405455A3D3Ae947972864f66?direction=1&token=0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
"method": "GET",
"timestamp": "1/12/2026, 2:24:43 PM",
"data": {
"messageType": "error",
"message": "ENOENT"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"spamAmount": {
"type": "number"
},
"spamCount": {
"type": "number"
},
"cashbackCount": {
"type": "number"
},
"totalFunds": {
"type": "number"
}
}
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Address Not Specified. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"message": "Cannot GET /essential-api-polygon/report/address?direction=1&token=0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
"error": "Not Found",
"statusCode": 404
},
"status": 404,
"options": {},
"message": "Cannot GET /essential-api-polygon/report/address?direction=1&token=0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
"name": "NotFoundException",
"code": 404,
"success": false,
"path": "/essential-api-polygon/report/address?direction=1&token=0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
"method": "GET",
"timestamp": "1/12/2026, 2:27:14 PM",
"data": {
"messageType": "error",
"message": "Cannot GET /essential-api-polygon/report/address?direction=1&token=0xc2132d05d31c914a87c6611c10748aeb04b58e8f"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"error": {
"type": "string"
},
"statusCode": {
"type": "number"
}
}
},
"status": {
"type": "number"
},
"options": {
"type": "object",
"properties": {}
},
"message": {
"type": "string"
},
"name": {
"type": "string"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"status": 401,
"message": "User not found",
"name": "HttpException",
"code": 401,
"success": false,
"path": "/essential",
"method": "GET",
"timestamp": "3/4/2025, 10:03:51 AM",
"data": {
"messageType": "error",
"message": "User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"status": {
"type": "number"
},
"message": {
"type": "string"
},
"name": {
"type": "string"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string",
"description": "api-arb/report/address/0x85b4Ce35C2e36aC6405455A3D3Ae947972864f66123?shallow=false&direction=2&token=&tokenTicker=ETH (string)"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Get Address Tokens ¶
Get Address TokensGET/essential-api-{essential_blockchain_ticker}/explorer/getAddressTokens/{address}?supported={supported}&$limit={limit}
Retrieve token contracts for a specific address on essential blockchains. The response returns a data array of tokens. For each token, use data[i].address as token_contract_address in By Transaction and By Address requests. For the native coin, address is an empty string. When supported is omitted, the observed behavior matches supported=false.
-
ticker:
common- subdomain for this request always common -
essential_blockchain_ticker:
polygon|glmr|arb|base|dot|sol|ton|xrp|worldcoin|optimism|xlm|tempo|cardano- The essential blockchain ticker
Example URI
- essential_blockchain_ticker
string(required) Example: {essential_blockchain_ticker}The essential blockchain to query
- address
string(required) Example: 0xF3604FA7edF245f344acd0f4083E409BB2fEfd98The address
- supported
boolean(optional) Example: truetruereturns only supported tokens,falseor omitted returns all detected tokens for the address- limit
number(optional) Example: 1000Query parameter accepted by the endpoint. In observed responses for this address, the returned item count did not change when
$limitwas reduced
Headers
x-api-key: {Api_key}200Headers
Content-Type: application/jsonBody
{
"success": true,
"data": [
{
"name": "ETH",
"symbol": "ETH",
"decimals": 18,
"icon": "",
"address": ""
},
{
"address": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"icon": ""
},
{
"address": "0x25118290e6a5f4139381d072181157035864099d",
"name": "RAIN",
"symbol": "RAIN",
"decimals": 18,
"icon": ""
},
{
"address": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
"name": "USD₮0",
"symbol": "USD₮0",
"decimals": 6,
"icon": ""
},
{
"address": "0x1cd9a56c8c2ea913c70319a44da75e99255aa46f",
"name": "Orbiter Token",
"symbol": "OBT",
"decimals": 18,
"icon": ""
},
{
"address": "0x912ce59144191c1204e64559fe8253a0e49e6548",
"name": "Arbitrum",
"symbol": "ARB",
"decimals": 18,
"icon": ""
},
{
"address": "0x5979d7b546e38e414f7e9822514be443a4800529",
"name": "Wrapped liquid staked Ether 2.0",
"symbol": "wstETH",
"decimals": 18,
"icon": ""
}
]
}400Address is Not Valid. Example from live request.
Headers
Content-Type: application/jsonBody
{
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "$ts",
"params": {},
"message": "must pass \"$ts\" keyword validation",
"schema": "AddressId",
"data": "not-an-address"
}
],
"status": 400,
"code": 400,
"success": false,
"path": "/essential",
"method": "GET",
"timestamp": "4/6/2026, 10:42:30 PM",
"data": {
"messageType": "error",
"message": "400 payload/address must pass \"$ts\" keyword validation"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string",
"description": "api-arb/explorer/getAddressTokens/not-an-address?supported=true&%24limit=5 (string)"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}404Address Not Specified. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": {
"message": "Cannot GET /essential-api-arb/explorer/getAddressTokens/?supported=true&%24limit=5",
"error": "Not Found",
"statusCode": 404
},
"status": 404,
"options": {},
"message": "Cannot GET /essential-api-arb/explorer/getAddressTokens/?supported=true&%24limit=5",
"name": "NotFoundException",
"code": 404,
"success": false,
"path": "/essential",
"method": "GET",
"timestamp": "4/6/2026, 10:42:59 PM",
"data": {
"messageType": "error",
"message": "Cannot GET /essential-api-arb/explorer/getAddressTokens/?supported=true&%24limit=5"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"error": {
"type": "string"
},
"statusCode": {
"type": "number"
}
}
},
"status": {
"type": "number"
},
"options": {
"type": "object",
"properties": {}
},
"message": {
"type": "string"
},
"name": {
"type": "string"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string",
"description": "api-arb/explorer/getAddressTokens/?supported=true&%24limit=5 (string)"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request. Example with Wrapper.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"status": 401,
"message": "User not found",
"name": "HttpException",
"code": 401,
"success": false,
"path": "/essential",
"method": "GET",
"timestamp": "4/6/2026, 10:39:25 PM",
"data": {
"messageType": "error",
"message": "User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"status": {
"type": "number"
},
"message": {
"type": "string"
},
"name": {
"type": "string"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string",
"description": "api-arb/explorer/getAddressTokens/0xF3604FA7edF245f344acd0f4083E409BB2fEfd98?supported=true&%24limit=5 (string)"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Monitoring ¶
Monitor advanced-chain addresses.
Add Address To Monitoring ¶
Add Address To MonitoringPOST/api/monitoring/addressToMonitor
Add a single address to monitoring.
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The advanced blockchain to query (as a subdomain)
Example URI
Headers
x-api-key: {Api_key}Body
{
"address": "18VWHjMt4ixHddPPbs6righWTs3Sg2QNcn",
"checkLastTen": false,
"blockchain": "BTC"
}Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "The blockchain address to add to monitoring."
},
"checkLastTen": {
"type": "boolean",
"description": "Controls whether the initial monitoring calculation should be limited to the latest ten direct transactions."
},
"blockchain": {
"enum": [
"BTC",
"LTC",
"BSV",
"ETH",
"TRX",
"BNB",
"AVAX"
],
"description": "Blockchain code matching the selected advanced network."
}
},
"required": [
"address",
"blockchain"
],
"$schema": "http://json-schema.org/draft-04/schema#"
}201Successfully added to monitoring.
Headers
Content-Type: application/jsonBody
{
"success": true,
"data": {
"added": 1,
"notFound": 0,
"duplicate": 0
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indicates that the request was processed successfully."
},
"data": {
"type": "object",
"properties": {
"added": {
"type": "number",
"description": "Number of addresses added to monitoring."
},
"notFound": {
"type": "number",
"description": "Number of addresses that were not found during processing."
},
"duplicate": {
"type": "number",
"description": "Number of addresses already present in monitoring."
}
}
}
}
}201Address is already present in monitoring. The endpoint may still return HTTP 201 with an error payload.
Headers
Content-Type: application/jsonBody
{
"success": false,
"data": {
"messageType": "BadRequestException",
"message": "Address already added to monitor",
"stack": "BadRequestException: ADDRESS_ALREADY_ADDED_TO_MONITOR",
"response": {
"statusCode": 400,
"message": "ADDRESS_ALREADY_ADDED_TO_MONITOR",
"error": "Bad Request"
},
"status": 400,
"name": "BadRequestException"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
},
"stack": {
"type": "string"
},
"response": {
"type": "object",
"properties": {
"statusCode": {
"type": "number"
},
"message": {
"type": "string"
},
"error": {
"type": "string"
}
}
},
"status": {
"type": "number"
},
"name": {
"type": "string"
}
}
}
}
}400Bad Request - address is invalid or the request body is malformed.
Headers
Content-Type: application/jsonBody
{
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "$ts",
"params": {},
"message": "must pass \\\"$ts\\\" keyword validation",
"schema": "AddressId",
"data": "SomeInvalidAddress"
},
{
"instancePath": "/address",
"schemaPath": "#/properties/address/pattern",
"keyword": "pattern",
"params": {
"pattern": "^(1|3)[a-km-zA-HJ-NP-Z1-9]{25,34}$|^bc1[a-zA-Z0-9]{6,}$"
},
"message": "must match pattern \\\"^(1|3)[a-km-zA-HJ-NP-Z1-9]{25,34}$|^bc1[a-zA-Z0-9]{6,}$\\\"",
"schema": "^(1|3)[a-km-zA-HJ-NP-Z1-9]{25,34}$|^bc1[a-zA-Z0-9]{6,}$",
"data": "SomeInvalidAddress"
}
],
"status": 400,
"code": 400,
"success": false,
"path": "/api/monitoring/addressToMonitor",
"method": "POST",
"timestamp": "4/17/2026, 10:11:22 AM",
"data": {
"messageType": "error",
"message": "400 payload/address must pass \\\"$ts\\\" keyword validation, payload/address must match pattern \\\"^(1|3)[a-km-zA-HJ-NP-Z1-9]{25,34}$|^bc1[a-zA-Z0-9]{6,}$\\\""
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"status": 401,
"message": "User not found",
"name": "HttpException",
"code": 401,
"success": false,
"path": "/api/monitoring/addressToMonitor",
"method": "POST",
"timestamp": "4/17/2026, 10:11:07 AM",
"data": {
"messageType": "error",
"message": "User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"status": {
"type": "number"
},
"message": {
"type": "string"
},
"name": {
"type": "string"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Remove Address From Monitoring ¶
Remove Address From MonitoringDELETE/api/monitoring/addressToMonitor/{address}
Remove a single address from monitoring.
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The advanced blockchain to query (as a subdomain)
Example URI
- address
string(required) Example: 18VWHjMt4ixHddPPbs6righWTs3Sg2QNcnThe blockchain address to remove from monitoring.
Headers
x-api-key: {Api_key}200Successfully removed from monitoring.
Headers
Content-Type: application/jsonBody
{
"success": true
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Indicates that the request was processed successfully."
}
}
}400Bad Request - address is invalid.
Headers
Content-Type: application/jsonBody
{
"errors": [
{
"instancePath": "/address",
"schemaPath": "#/properties/address/$ts",
"keyword": "$ts",
"params": {},
"message": "must pass \\\"$ts\\\" keyword validation",
"schema": "AddressId",
"data": "SomeInvalidAddress"
},
{
"instancePath": "/address",
"schemaPath": "#/properties/address/pattern",
"keyword": "pattern",
"params": {
"pattern": "^(1|3)[a-km-zA-HJ-NP-Z1-9]{25,34}$|^bc1[a-zA-Z0-9]{6,}$"
},
"message": "must match pattern \\\"^(1|3)[a-km-zA-HJ-NP-Z1-9]{25,34}$|^bc1[a-zA-Z0-9]{6,}$\\\"",
"schema": "^(1|3)[a-km-zA-HJ-NP-Z1-9]{25,34}$|^bc1[a-zA-Z0-9]{6,}$",
"data": "SomeInvalidAddress"
}
],
"status": 400,
"code": 400,
"success": false,
"path": "/api/monitoring/addressToMonitor/SomeInvalidAddress",
"method": "DELETE",
"timestamp": "4/17/2026, 12:35:59 PM",
"data": {
"messageType": "error",
"message": "400 payload/address must pass \\\"$ts\\\" keyword validation, payload/address must match pattern \\\"^(1|3)[a-km-zA-HJ-NP-Z1-9]{25,34}$|^bc1[a-zA-Z0-9]{6,}$\\\""
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"errors": {
"type": "array"
},
"status": {
"type": "number"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}401Unauthorized Request.
Headers
Content-Type: application/jsonBody
{
"response": "User not found",
"status": 401,
"message": "User not found",
"name": "HttpException",
"code": 401,
"success": false,
"path": "/api/monitoring/addressToMonitor/18VWHjMt4ixHddPPbs6righWTs3Sg2QNcn",
"method": "DELETE",
"timestamp": "4/17/2026, 12:35:58 PM",
"data": {
"messageType": "error",
"message": "User not found"
}
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"response": {
"type": "string"
},
"status": {
"type": "number"
},
"message": {
"type": "string"
},
"name": {
"type": "string"
},
"code": {
"type": "number"
},
"success": {
"type": "boolean"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"messageType": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}Webhooks ¶
Async approach to get address score updates
X-Signature Calculation
Here is how it (hmac variable) should be calculated based on the API Key, Secret and API request body:
var input = { API_KEY } + "." + JSON.stringify( JSON.parse( request.data ) );
var HMAC = CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA256(input,{ API_SECRET }));
Get a single Webhook ¶
Get a single WebhookGET/integration/webhooks/{webhookId}
Get a single webhook with the provided ID
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- webhookId
string(required) Example: w123The ID of the webhook
Headers
Authorization: {API_KEY}200The endpoint response represents a webhook object.
Headers
Content-Type: application/jsonBody
{
"id": "{WEBHOOK_ID}",
"enabled": true,
"events": [
"score.address.deep",
"score.address.standard"
],
"url": "{Webhook_URL}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the webhook. Replace `{WEBHOOK_ID}` with the actual webhook ID."
},
"enabled": {
"type": "boolean",
"description": "Indicates whether the webhook is enabled."
},
"events": {
"type": "array",
"description": "An array of events for which the webhook is configured."
},
"url": {
"type": "string",
"description": "The URL to which data is sent by the webhook. Replace `{Webhook_URL}` with the actual URL."
}
},
"required": [
"id",
"enabled",
"events",
"url"
]
}401Unauthorized Request - Authorization is not set or invalid in the request Headers
Headers
Content-Type: application/jsonBody
{
"statusCode": 401,
"message": "Unauthorized",
"code": "HttpException",
"timestamp": "2024-05-02T15:33:42.734Z",
"path": "{REQUEST_URL}",
"method": "{REQUEST_METHOD}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"description": "The HTTP status code of the response."
},
"message": {
"type": "string",
"description": "The message explaining the status."
},
"code": {
"type": "string",
"description": "The exceptional case that has occurred."
},
"timestamp": {
"type": "string",
"description": "The date and time when the exception happened."
},
"path": {
"type": "string",
"description": "The URL path that has been attempted to access."
},
"method": {
"type": "string",
"description": "The HTTP method (like GET, POST, PUT, DELETE) used for the request."
}
},
"required": [
"statusCode",
"message",
"code",
"timestamp",
"path",
"method"
]
}404Webhook Not Found
Headers
Content-Type: application/jsonBody
{
"statusCode": 404,
"message": "Webhook absent",
"code": "HttpException",
"timestamp": "5/9/2024, 9:09:27 AM",
"path": "{URL_PATH}",
"method": "GET"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number"
},
"message": {
"type": "string"
},
"code": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
}
}
}Get all Webhooks ¶
Get all WebhooksGET/integration/webhooks/
Get all the webhooks created by user
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
Headers
Authorization: {API_KEY}200The endpoint response represents a list of webhook objects.
Headers
Content-Type: application/jsonBody
[
{
"id": "{WEBHOOK_ID_1}",
"enabled": true,
"events": [
"score.address.deep",
"score.address.standard"
],
"url": "{Webhook_URL}"
},
{
"id": "{WEBHOOK_ID_2}",
"enabled": true,
"events": [
"score.address.deep",
"score.address.standard"
],
"url": "{Webhook_URL}"
}
]Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array"
}401Unauthorized Request - Authorization is not set or invalid in the request Headers
Headers
Content-Type: application/jsonBody
{
"statusCode": 401,
"message": "Unauthorized",
"code": "HttpException",
"timestamp": "2024-05-02T15:33:42.734Z",
"path": "{REQUEST_URL}",
"method": "{REQUEST_METHOD}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"description": "The HTTP status code of the response."
},
"message": {
"type": "string",
"description": "The message explaining the status."
},
"code": {
"type": "string",
"description": "The exceptional case that has occurred."
},
"timestamp": {
"type": "string",
"description": "The date and time when the exception happened."
},
"path": {
"type": "string",
"description": "The URL path that has been attempted to access."
},
"method": {
"type": "string",
"description": "The HTTP method (like GET, POST, PUT, DELETE) used for the request."
}
},
"required": [
"statusCode",
"message",
"code",
"timestamp",
"path",
"method"
]
}Create/Update Webhook ¶
Create/Update WebhookPUT/integration/webhooks/{webhookId}
Creates or update Webhook where the score update should be received
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- webhookId
string(required) Example: w123The ID of the webhook
Headers
Authorization: {API_KEY}
X-Signature: {HMAC}Body
{
"id": "{Webhook_ID}",
"enabled": true,
"events": [
"score.address.deep",
"score.address.standard"
], // (required) An array of events for which the webhook is configured.
"url": "{Webhook_URL}" // This is a URL where the subscription updates should come, should be provided by the client side
}200Successfully Updated
Body
``201Successfully Created
Headers
Content-Type: application/jsonBody
{
"id": "{Webhook_ID}",
"enabled": true,
"events": [
"score.address.deep",
"score.address.standard"
],
"url": "{Webhook_URL}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the webhook"
},
"enabled": {
"type": "boolean",
"description": "A flag indicating if the webhook is enabled or not"
},
"events": {
"type": "array"
},
"url": {
"type": "string",
"description": "The URL where the webhook will send updates. This should be provided by the client side"
}
},
"required": [
"id",
"enabled",
"events",
"url"
]
}304Not Modified
401Unauthorized Request - Authorization or/and X-Signature are not set or invalid in the request Headers
Headers
Content-Type: application/jsonBody
{
"statusCode": 401,
"message": "Unauthorized",
"code": "HttpException",
"timestamp": "2024-05-02T15:33:42.734Z",
"path": "{REQUEST_URL}",
"method": "{REQUEST_METHOD}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"description": "The HTTP status code of the response."
},
"message": {
"type": "string",
"description": "The message explaining the status."
},
"code": {
"type": "string",
"description": "The exceptional case that has occurred."
},
"timestamp": {
"type": "string",
"description": "The date and time when the exception happened."
},
"path": {
"type": "string",
"description": "The URL path that has been attempted to access."
},
"method": {
"type": "string",
"description": "The HTTP method (like GET, POST, PUT, DELETE) used for the request."
}
},
"required": [
"statusCode",
"message",
"code",
"timestamp",
"path",
"method"
]
}Create Subscription ¶
Create SubscriptionPOST/integration/score/address
Create subscription for addresses to be monitored
-
ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain) -
idempotency-key:
super_secret_word- Some unique value for each request -
webhook-id:
123- The Webhook ID
Example URI
Note: If subscribe is true, it keeps monitoring and webhook receives updates when addresses score changes, otherwise it receives addresses score only once.
Headers
Authorization: {API_KEY}
X-Signature: {HMAC}
idempotency-key: {API_SECRET}
webhook-id: {ID}Body
{
"addresses": [
"{address}",
"{address}"
],
"subscribe": true || false // set true to receive updated score after each new address transaction
}202Subscription Successfully Created
Headers
Content-Type: text/htmlBody
Data received202Success Response when a request is done with the same idempotency-key
Headers
Content-Type: application/jsonBody
{
"statusCode": 202,
"message": "DATA_RECEIVED",
"code": "HttpException",
"timestamp": "2024-05-09T10:29:14.812Z",
"path": "URL_PATH",
"method": "POST"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number"
},
"message": {
"type": "string"
},
"code": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"path": {
"type": "string"
},
"method": {
"type": "string"
}
}
}401Unauthorized Request - Authorization or/and X-Signature are not set or invalid in the request Headers
Headers
Content-Type: application/jsonBody
{
"statusCode": 401,
"message": "Unauthorized",
"code": "HttpException",
"timestamp": "2024-05-02T15:33:42.734Z",
"path": "{REQUEST_URL}",
"method": "{REQUEST_METHOD}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"description": "The HTTP status code of the response."
},
"message": {
"type": "string",
"description": "The message explaining the status."
},
"code": {
"type": "string",
"description": "The exceptional case that has occurred."
},
"timestamp": {
"type": "string",
"description": "The date and time when the exception happened."
},
"path": {
"type": "string",
"description": "The URL path that has been attempted to access."
},
"method": {
"type": "string",
"description": "The HTTP method (like GET, POST, PUT, DELETE) used for the request."
}
},
"required": [
"statusCode",
"message",
"code",
"timestamp",
"path",
"method"
]
}412Precondition Failed - addresses in the request body are not set or invalid, idempotency-key or webhook-id are not set in the request Headers or webhook-id does not exist.
Headers
Content-Type: application/jsonBody
{
"statusCode": 412,
"message": "{ERROR_MESSAGE}",
"code": "HttpException",
"timestamp": "2024-05-02T15:39:42.084Z",
"path": "{REQUEST_URL}",
"method": "{REQUEST_METHOD}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"description": "The HTTP status code of the response."
},
"message": {
"type": "string",
"description": "The message explaining the status."
},
"code": {
"type": "string",
"description": "The exceptional case that has occurred."
},
"timestamp": {
"type": "string",
"description": "The date and time when the exception happened."
},
"path": {
"type": "string",
"description": "The URL path that has been attempted to access."
},
"method": {
"type": "string",
"description": "The HTTP method (like GET, POST, PUT, DELETE) used for the request."
}
},
"required": [
"statusCode",
"message",
"code",
"timestamp",
"path",
"method"
]
}500Error when a blockchain address has no transactions and subscribe is either not specified or set to false in the request body.
Body
``Add to Monitoring ¶
Add to MonitoringPUT/integration/webhooks/{webhookId}/subscription/score/address
Add a list of addresses to monitoring
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- webhookId
string(required) Example: w123The ID of the webhook
Headers
Authorization: {API_KEY}
X-Signature: {HMAC}Body
{
"op": "add",
"addresses": [
"{address}",
"{address}"
]
}200Successfully added to monitoring
Headers
Content-Type: text/plainBody
Data received401Unauthorized Request - Authorization or/and X-Signature are not set or invalid in the request Headers
Headers
Content-Type: application/jsonBody
{
"statusCode": 401,
"message": "Unauthorized",
"code": "HttpException",
"timestamp": "2024-05-02T15:33:42.734Z",
"path": "{REQUEST_URL}",
"method": "{REQUEST_METHOD}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"description": "The HTTP status code of the response."
},
"message": {
"type": "string",
"description": "The message explaining the status."
},
"code": {
"type": "string",
"description": "The exceptional case that has occurred."
},
"timestamp": {
"type": "string",
"description": "The date and time when the exception happened."
},
"path": {
"type": "string",
"description": "The URL path that has been attempted to access."
},
"method": {
"type": "string",
"description": "The HTTP method (like GET, POST, PUT, DELETE) used for the request."
}
},
"required": [
"statusCode",
"message",
"code",
"timestamp",
"path",
"method"
]
}412Precondition Failed - addresses in the request body are not set or invalid, webhookId does not exist.
Headers
Content-Type: application/jsonBody
{
"statusCode": 412,
"message": "{ERROR_MESSAGE}",
"code": "HttpException",
"timestamp": "2024-05-02T15:39:42.084Z",
"path": "{REQUEST_URL}",
"method": "{REQUEST_METHOD}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"description": "The HTTP status code of the response."
},
"message": {
"type": "string",
"description": "The message explaining the status."
},
"code": {
"type": "string",
"description": "The exceptional case that has occurred."
},
"timestamp": {
"type": "string",
"description": "The date and time when the exception happened."
},
"path": {
"type": "string",
"description": "The URL path that has been attempted to access."
},
"method": {
"type": "string",
"description": "The HTTP method (like GET, POST, PUT, DELETE) used for the request."
}
},
"required": [
"statusCode",
"message",
"code",
"timestamp",
"path",
"method"
]
}Remove from Monitoring ¶
Remove from MonitoringPUT/integration/webhooks/{webhookId}/subscription/score/address
Remove a list of addresses from monitoring
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- webhookId
string(required) Example: w123The ID of the webhook
Headers
Authorization: {API_KEY}
X-Signature: {HMAC}Body
{
"op": "remove",
"addresses": [
"{address}",
"{address}"
]
}200Successfully removed from monitoring
Headers
Content-Type: text/plainBody
Data received401Unauthorized Request - Authorization or/and X-Signature are not set or invalid in the request Headers
Headers
Content-Type: application/jsonBody
{
"statusCode": 401,
"message": "Unauthorized",
"code": "HttpException",
"timestamp": "2024-05-02T15:33:42.734Z",
"path": "{REQUEST_URL}",
"method": "{REQUEST_METHOD}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"description": "The HTTP status code of the response."
},
"message": {
"type": "string",
"description": "The message explaining the status."
},
"code": {
"type": "string",
"description": "The exceptional case that has occurred."
},
"timestamp": {
"type": "string",
"description": "The date and time when the exception happened."
},
"path": {
"type": "string",
"description": "The URL path that has been attempted to access."
},
"method": {
"type": "string",
"description": "The HTTP method (like GET, POST, PUT, DELETE) used for the request."
}
},
"required": [
"statusCode",
"message",
"code",
"timestamp",
"path",
"method"
]
}412Precondition Failed - addresses in the request body are not set or invalid, webhookId does not exist.
Headers
Content-Type: application/jsonBody
{
"statusCode": 412,
"message": "{ERROR_MESSAGE}",
"code": "HttpException",
"timestamp": "2024-05-02T15:39:42.084Z",
"path": "{REQUEST_URL}",
"method": "{REQUEST_METHOD}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"description": "The HTTP status code of the response."
},
"message": {
"type": "string",
"description": "The message explaining the status."
},
"code": {
"type": "string",
"description": "The exceptional case that has occurred."
},
"timestamp": {
"type": "string",
"description": "The date and time when the exception happened."
},
"path": {
"type": "string",
"description": "The URL path that has been attempted to access."
},
"method": {
"type": "string",
"description": "The HTTP method (like GET, POST, PUT, DELETE) used for the request."
}
},
"required": [
"statusCode",
"message",
"code",
"timestamp",
"path",
"method"
]
}Delete a single Webhook ¶
Delete a single WebhookDELETE/integration/webhooks/{webhookId}
Delete a single webhook with the provided ID
- ticker:
btc|ltc|bsv|eth|tron|bnb|avax- The blockchain to query (as a subdomain)
Example URI
- webhookId
string(required) Example: w123The ID of the webhook
Headers
Authorization: {API_KEY}200Successfully Deleted
Body
``404When a webhook with the given ID is not found, the following error is returned
Headers
Content-Type: application/jsonBody
{
"statusCode": 404,
"message": "Webhook absent",
"code": "HttpException",
"timestamp": "2024-05-02T15:39:42.084Z",
"path": "{REQUEST_URL}",
"method": "{REQUEST_METHOD}"
}Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"description": "The HTTP status code of the response."
},
"message": {
"type": "string",
"description": "The message explaining the status."
},
"code": {
"type": "string",
"description": "The exceptional case that has occurred."
},
"timestamp": {
"type": "string",
"description": "The date and time when the exception happened."
},
"path": {
"type": "string",
"description": "The URL path that has been attempted to access."
},
"method": {
"type": "string",
"description": "The HTTP method (like GET, POST, PUT, DELETE) used for the request."
}
},
"required": [
"statusCode",
"message",
"code",
"timestamp",
"path",
"method"
]
}PDF reports ¶
{userId} - obtained from authentication step from the top of the document
Get unified address pdf report ¶
Get unified address pdf reportGET/report/address/{address}?currencyKey={currencyKey}&userId={userId}&tokenAddress={tokenAddress}&preferredCurrency={preferredCurrency}&timezone={timezone}&activePartBarValue={activePartBarValue}&direction={direction}
Get PDF report for address for all supported tokens
-
ticker:
pdfgen.common- The ticker is alwayspdfgen.common. It is a subdomain within which it is deployed pdf report support -
address:
0x8bd0b65a50ef5cef84fec420be7b89ed1470ceb9- existing address -
userId:
628dfd99581d3845bbd52988- id of the user -
currencyKey:
btc|eth|ltc|trx|bsv- blockchain/network -
tokenAddress:
all|0x41e5560054824ea6b0732e656e3ad64e20e94e45|''- ‘all’ - unified report for all supported tokens, ‘0x41e5560054824ea6b0732e656e3ad64e20e94e45’ - supported token address, ‘’ - leave blank for native coin token -
preferredCurrency:
USD|EUR- currency -
timezone:
Europe/Kiev- timezone -
activePartBarValue:
type|owner- group by -
direction:
0|1|2-0- is the Source of Funds,1- is the Use of Funds,2- common, Source of Funds + Use of Funds (default value if not specified).
Example URI
- address
string(required) Example: 0x8bd0b65a50ef5cef84fec420be7b89ed1470ceb9- userId
string(required) Example: 628dfd99581d3845bbd52988- currencyKey
string(required) Example: eth- tokenAddress
string(required) Example: all- preferredCurrency
string(required) Example: USD- timezone
string(required) Example: Europe/Kiev- activePartBarValue
string(required) Example: type- direction
string(required) Example: 2
Headers
x-api-key: Api_key200Body
report_{address}.pdf400Response for request with invalid address
Body
`400 Bad request
An error occurred while generating the PDF document. Please try again`400Response for unauthorized request
Body
`400 Bad request
An error occurred while generating the PDF document. Please try again`Get token address pdf report ¶
Get token address pdf reportGET/report/address/{address}?currencyKey={currencyKey}&userId={userId}&tokenAddress={tokenAddress}&preferredCurrency={preferredCurrency}&timezone={timezone}&activePartBarValue={activePartBarValue}&direction={direction}
Get PDF report for address for selected token
-
ticker:
pdfgen.common- The ticker is alwayspdfgen.common. It is a subdomain within which it is deployed pdf report support -
address:
0x8bd0b65a50ef5cef84fec420be7b89ed1470ceb9- existing address -
userId:
628dfd99581d3845bbd52988- id of the user -
currencyKey:
btc|eth|ltc|trx|bsv- blockchain/network -
tokenAddress:
all|0x41e5560054824ea6b0732e656e3ad64e20e94e45|''- ‘all’ - unified report for all supported tokens, ‘0x41e5560054824ea6b0732e656e3ad64e20e94e45’ - supported token address, ‘’ - leave blank for native coin token -
preferredCurrency:
USD|EUR- currency -
timezone:
Europe/Kiev- timezone -
activePartBarValue:
type- blockchain/network -
direction:
0|1|2-0- is the Source of Funds,1- is the Use of Funds,2- common, Source of Funds + Use of Funds (default value if not specified).
Example URI
- address
string(required) Example: 0x8bd0b65a50ef5cef84fec420be7b89ed1470ceb9- userId
string(required) Example: 628dfd99581d3845bbd52988- currencyKey
string(required) Example: eth- tokenAddress
string(required) Example: 0x41e5560054824ea6b0732e656e3ad64e20e94e45- preferredCurrency
string(required) Example: USD- timezone
string(required) Example: Europe/Kiev- activePartBarValue
string(required) Example: type- direction
string(required) Example: 2
Headers
x-api-key: Api_key200Body
report_{address}.pdf400Response for request with invalid address
Body
`400 Bad request
An error occurred while generating the PDF document. Please try again`400Response for unauthorized request
Body
`400 Bad request
An error occurred while generating the PDF document. Please try again`Get token transaction pdf report ¶
Get token transaction pdf reportGET/report/tx/{txHash}?currencyKey={currencyKey}&userId={userId}&tokenAddress={tokenAddress}&preferredCurrency={preferredCurrency}&timezone={timezone}&activePartBarValue={activePartBarValue}&direction={direction}
Get PDF report for transaction for selected token
-
ticker:
pdfgen.common- The ticker is alwayspdfgen.common. It is a subdomain within which it is deployed pdf report support -
txHash:
0x64dec2f706b17d86dbe59bf1a829f06d4c40f5d5bc5bae62f68b851049c3e58c- existing transaction -
userId:
628dfd99581d3845bbd52988- id of the user -
currencyKey:
btc|eth|ltc|trx|bsv- blockchain/network -
tokenAddress:
all|0x41e5560054824ea6b0732e656e3ad64e20e94e45|''- ‘all’ - unified report for all supported tokens, ‘0x41e5560054824ea6b0732e656e3ad64e20e94e45’ - supported token address, ‘’ - leave blank for native coin token -
preferredCurrency:
USD|EUR- currency -
timezone:
Europe/Kiev- timezone -
activePartBarValue:
type- blockchain/network -
direction:
0|1|2-0- is the Source of Funds,1- is the Use of Funds,2- common, Source of Funds + Use of Funds (default value if not specified).
Example URI
- txHash
string(required) Example: 0x64dec2f706b17d86dbe59bf1a829f06d4c40f5d5bc5bae62f68b851049c3e58c- userId
string(required) Example: 628dfd99581d3845bbd52988- currencyKey
string(required) Example: eth- tokenAddress
string(required) Example: 0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b- preferredCurrency
string(required) Example: USD- timezone
string(required) Example: Europe/Kiev- activePartBarValue
string(required) Example: type- direction
string(required) Example: 2
Headers
x-api-key: Api_key200Body
report_{trancaction}.pdf400Response for request with invalid address
Body
`400 Bad request
An error occurred while generating the PDF document. Please try again`400Response for unauthorized request
Body
`400 Bad request
An error occurred while generating the PDF document. Please try again`FAQ ¶
Frequently Asked Questions about the Global Ledger API. Below are common questions with concise answers to assist developers.
How can I download the YAML file?
You can download the .yaml files, which contains useful configurations for the API, by clicking the link below (it will open in a new tab):
Download advanced yaml
Download essential yaml
Why are there separate API requests for retrieving risk scores in Essential and Advanced support chains?
This is due to implementation-specific differences in the current version of the API. These discrepancies will be resolved in APIv2, where we plan to standardize risk score retrieval across both Essential and Advanced blockchain support tiers.
Should different endpoints be used when checking risk scores for transactions versus addresses?
Yes. Risk score checks are performed via distinct endpoints:
-
/api/report/tx_hash/for transaction-level checks -
/api/report/addressfor address-level checks
To evaluate specific tokens or all supported assets within a transaction or address report, use the token= query parameter. This parameter accepts either:
-
A smart contract address of the token (You may also specify any custom token by its contract address, including newly created tokens.)
-
The keyword
"supported"to include all top-ranked assets (based on CoinMarketCap’s top 1000+ list)
When using the token query parameter, can I pass a ticker symbol like “USDT” instead of a contract address?
No. The token parameter only accepts:
-
A smart contract address
-
The keyword
"supported"
Ticker symbols (e.g., "USDT") are not supported due to the possibility of multiple tokens sharing identical names or symbols across different blockchains.
Can I receive webhook notifications when the risk score of a transfer changes?
Webhook functionality is designed to monitor address-level changes, not individual transactions. When an address is registered for webhook monitoring, any updates to its risk score will trigger a callback in the following format:
{
"_id": "68e4c595d173aac4c6a28e1c",
"path": "testwebhook",
"data": [
{
"address": "TJJxTXzJ7o9S89WcdwhsjpVUX1ozEWKHtc",
"timestamp": 1759823252800,
"score": 51
}
]
}
Triggers include:
-
New incoming transactions
-
New outgoing transactions
-
Changes in risk attribution from sources or labels
Webhook events currently support only address-level monitoring (score.address.deep, score.address.standard). Transaction-level webhook support is not available.
Is there a customer-facing API guide for Counterparty Report and Entity Report that can be shared with prospects?
Yes, we provide a 5-step integration guide for both Counterparty and Entity Reports. Please note that the current flow is somewhat complex, but simplification is underway as part of the APIv2 roadmap.
Can I determine whether an address belongs to a specific VASP or CASP using the API?
Yes. If a label is available for the address, it can be retrieved via the Get Info by Address endpoint. This includes VASP/CASP attribution where applicable.
If a customer uses only the API (without GUI access) and accidentally triggers a large volume of wallet checks due to a bug, is there a way to prevent or mitigate this?
Currently, we do not offer built-in rate limiting or daily quota enforcement. If such an incident occurs, we recommend contacting our support team. We will investigate the issue collaboratively and, if appropriate, restore the account balance to its pre-incident state.
When querying GET “Address Risk Score”, I see 100 sources returned. Is pagination supported for this endpoint?
No. The endpoint returns a fixed set of the most recent 100 entries in each direction:
-
100 for Source of Funds
-
100 for Use of Funds
Pagination or offset parameters are not currently supported.
Is there an endpoint that allows batch retrieval of label or risk data for multiple addresses?
At this time, risk and label data can only be retrieved one address at a time. Batch queries are not yet supported.