API Endpoints¶
Complete reference for all Chain Sentinel API endpoints.
Base URL¶
Authentication¶
All endpoints require API key authentication. See API Authentication for details.
Rate Limits¶
| Tier | Requests/Day | Rate |
|---|---|---|
| Free | 100 | 1 req/15min |
| Pro | 1,000 | 1 req/90s |
| Enterprise | Unlimited | No limit |
Response Format¶
All responses are JSON:
Error Response:
{
"success": false,
"error": "Invalid API key",
"code": "AUTH_001",
"timestamp": "2026-01-10T12:34:56Z"
}
Tokens¶
List Tokens¶
Get a list of analyzed tokens.
Endpoint: GET /tokens
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | No | Number of results (default: 50, max: 100) |
| offset | integer | No | Pagination offset (default: 0) |
| prediction | string | No | Filter by prediction: SCAM or LEGIT |
| min_confidence | integer | No | Minimum confidence (0-100) |
| sort | string | No | Sort by: created_at, confidence, risk_score |
| order | string | No | Sort order: asc or desc (default: desc) |
Example Request:
curl -H "X-API-Key: your_api_key" \
"https://api.chainsentinel.net/tokens?prediction=SCAM&min_confidence=80&limit=10"
Example Response:
{
"success": true,
"data": {
"tokens": [
{
"address": "ABC...123",
"name": "SCAM Token",
"symbol": "SCAM",
"prediction": "SCAM",
"confidence": 98,
"risk_score": 95,
"model": "GNN_v2",
"created_at": "2026-01-10T10:00:00Z",
"analyzed_at": "2026-01-10T10:05:00Z"
}
],
"total": 1247,
"limit": 10,
"offset": 0
},
"timestamp": "2026-01-10T12:34:56Z"
}
Get Token¶
Get detailed information about a specific token.
Endpoint: GET /tokens/{address}
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | Token address (path parameter) |
Example Request:
curl -H "X-API-Key: your_api_key" \
"https://api.chainsentinel.net/tokens/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"
Example Response:
{
"success": true,
"data": {
"address": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
"name": "Bonk",
"symbol": "BONK",
"prediction": "LEGIT",
"confidence": 92,
"risk_score": 15,
"model": "XGBoost",
"features": {
"holder_count": 125000,
"transaction_count": 5000000,
"liquidity_usd": 2500000,
"top_10_concentration": 0.28,
"creator_risk_score": 10
},
"shap_values": {
"holder_count": 0.15,
"liquidity_usd": 0.12,
"top_10_concentration": -0.08
},
"creator": {
"address": "Creator...Wallet",
"risk_score": 10,
"tokens_created": 1,
"scam_rate": 0
},
"created_at": "2022-12-25T00:00:00Z",
"analyzed_at": "2026-01-10T10:00:00Z"
},
"timestamp": "2026-01-10T12:34:56Z"
}
Analyze Token¶
Request analysis of a new token.
Endpoint: POST /tokens/analyze
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | Token address to analyze |
| force | boolean | No | Force re-analysis (default: false) |
Example Request:
curl -X POST \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{"address": "ABC...123", "force": false}' \
"https://api.chainsentinel.net/tokens/analyze"
Example Response:
{
"success": true,
"data": {
"address": "ABC...123",
"status": "analyzing",
"estimated_time": 30,
"job_id": "job_123456"
},
"timestamp": "2026-01-10T12:34:56Z"
}
Check Analysis Status:
Get Token Network¶
Get network graph data for a token.
Endpoint: GET /tokens/{address}/network
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | Token address (path parameter) |
| depth | integer | No | Network depth (default: 2, max: 3) |
Example Request:
curl -H "X-API-Key: your_api_key" \
"https://api.chainsentinel.net/tokens/ABC...123/network?depth=2"
Example Response:
{
"success": true,
"data": {
"nodes": [
{
"id": "token_ABC...123",
"type": "token",
"label": "SCAM (SCAM)",
"prediction": "SCAM",
"confidence": 98
},
{
"id": "wallet_DEF...456",
"type": "wallet",
"label": "Creator",
"risk_score": 85
}
],
"edges": [
{
"source": "wallet_DEF...456",
"target": "token_ABC...123",
"type": "created",
"weight": 1.0
}
]
},
"timestamp": "2026-01-10T12:34:56Z"
}
Wallets¶
Get Wallet¶
Get information about a wallet.
Endpoint: GET /wallets/{address}
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | Wallet address (path parameter) |
Example Request:
Example Response:
{
"success": true,
"data": {
"address": "ABC...123",
"risk_score": 85,
"role": "creator",
"tokens_created": 15,
"scam_rate": 0.87,
"total_value_stolen": 1200000,
"victims": 847,
"first_seen": "2024-03-15T00:00:00Z",
"last_activity": "2026-01-09T18:00:00Z",
"cluster_id": "cluster_42",
"is_known_scammer": true
},
"timestamp": "2026-01-10T12:34:56Z"
}
Get Wallet Tokens¶
Get tokens created by a wallet.
Endpoint: GET /wallets/{address}/tokens
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | Wallet address (path parameter) |
| limit | integer | No | Number of results (default: 50) |
| offset | integer | No | Pagination offset (default: 0) |
Example Request:
Example Response:
{
"success": true,
"data": {
"tokens": [
{
"address": "Token1...123",
"name": "SCAM1",
"symbol": "SCAM1",
"prediction": "SCAM",
"confidence": 98,
"created_at": "2026-01-09T10:00:00Z"
}
],
"total": 15,
"limit": 50,
"offset": 0
},
"timestamp": "2026-01-10T12:34:56Z"
}
Clusters¶
List Clusters¶
Get a list of wallet clusters.
Endpoint: GET /clusters
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | No | Number of results (default: 50) |
| offset | integer | No | Pagination offset (default: 0) |
| min_size | integer | No | Minimum cluster size (default: 3) |
Example Request:
Example Response:
{
"success": true,
"data": {
"clusters": [
{
"id": "cluster_42",
"name": "Scam Ring #42",
"size": 8,
"risk_score": 95,
"tokens_created": 23,
"scam_rate": 0.91,
"total_stolen": 2300000,
"victims": 1247
}
],
"total": 156,
"limit": 50,
"offset": 0
},
"timestamp": "2026-01-10T12:34:56Z"
}
Get Cluster¶
Get detailed information about a cluster.
Endpoint: GET /clusters/{id}
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Cluster ID (path parameter) |
Example Request:
Example Response:
{
"success": true,
"data": {
"id": "cluster_42",
"name": "Scam Ring #42",
"wallets": [
{
"address": "ABC...123",
"role": "master",
"risk_score": 95
},
{
"address": "DEF...456",
"role": "puppet",
"risk_score": 80
}
],
"tokens": [
{
"address": "Token1...123",
"name": "SCAM1",
"prediction": "SCAM",
"confidence": 98
}
],
"statistics": {
"size": 8,
"tokens_created": 23,
"scam_rate": 0.91,
"total_stolen": 2300000,
"victims": 1247
}
},
"timestamp": "2026-01-10T12:34:56Z"
}
Watchlist¶
Get Watchlist¶
Get your watchlist items.
Endpoint: GET /watchlist
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | No | Filter by type: token or wallet |
Example Request:
Example Response:
{
"success": true,
"data": {
"items": [
{
"id": 123,
"type": "token",
"address": "ABC...123",
"name": "SCAM (SCAM)",
"alerts": ["rug_pull", "price_drop"],
"sensitivity": "medium",
"created_at": "2026-01-09T10:00:00Z"
}
],
"total": 5,
"limit": 5
},
"timestamp": "2026-01-10T12:34:56Z"
}
Add to Watchlist¶
Add a token or wallet to your watchlist.
Endpoint: POST /watchlist
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | token or wallet |
| address | string | Yes | Token/wallet address |
| alerts | array | No | Alert types to enable |
| sensitivity | string | No | low, medium, or high |
Example Request:
curl -X POST \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"type": "token",
"address": "ABC...123",
"alerts": ["rug_pull", "price_drop"],
"sensitivity": "medium"
}' \
"https://api.chainsentinel.net/watchlist"
Example Response:
{
"success": true,
"data": {
"id": 123,
"type": "token",
"address": "ABC...123",
"alerts": ["rug_pull", "price_drop"],
"sensitivity": "medium",
"created_at": "2026-01-10T12:34:56Z"
},
"timestamp": "2026-01-10T12:34:56Z"
}
Remove from Watchlist¶
Remove an item from your watchlist.
Endpoint: DELETE /watchlist/{id}
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | Yes | Watchlist item ID (path parameter) |
Example Request:
Example Response:
{
"success": true,
"data": {
"message": "Item removed from watchlist"
},
"timestamp": "2026-01-10T12:34:56Z"
}
Alerts¶
Get Alerts¶
Get your recent alerts.
Endpoint: GET /alerts
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | No | Number of results (default: 50) |
| offset | integer | No | Pagination offset (default: 0) |
| severity | string | No | Filter by severity: critical, warning, info |
| unread | boolean | No | Only unread alerts (default: false) |
Example Request:
curl -H "X-API-Key: your_api_key" \
"https://api.chainsentinel.net/alerts?severity=critical&unread=true"
Example Response:
{
"success": true,
"data": {
"alerts": [
{
"id": 456,
"type": "rug_pull",
"severity": "critical",
"token": {
"address": "ABC...123",
"name": "SCAM",
"symbol": "SCAM"
},
"details": {
"liquidity_change": -0.85,
"creator_sold_usd": 65000
},
"recommendation": "SELL_IMMEDIATELY",
"read": false,
"created_at": "2026-01-10T12:30:00Z"
}
],
"total": 1,
"unread": 1
},
"timestamp": "2026-01-10T12:34:56Z"
}
Mark Alert as Read¶
Mark an alert as read.
Endpoint: POST /alerts/{id}/read
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | Yes | Alert ID (path parameter) |
Example Request:
Example Response:
{
"success": true,
"data": {
"message": "Alert marked as read"
},
"timestamp": "2026-01-10T12:34:56Z"
}
Statistics¶
Get Global Stats¶
Get global platform statistics.
Endpoint: GET /stats
Example Request:
Example Response:
{
"success": true,
"data": {
"tokens_analyzed": 291547,
"scam_rate": 0.803,
"accuracy": 0.9606,
"wallets_tracked": 125000,
"clusters_detected": 156,
"total_saved": 15000000
},
"timestamp": "2026-01-10T12:34:56Z"
}
Error Codes¶
| Code | Description |
|---|---|
| AUTH_001 | Invalid API key |
| AUTH_002 | API key expired |
| AUTH_003 | Rate limit exceeded |
| REQ_001 | Invalid request parameters |
| REQ_002 | Missing required parameter |
| RES_001 | Resource not found |
| RES_002 | Resource already exists |
| SYS_001 | Internal server error |
| SYS_002 | Service unavailable |
Support¶
Need help with the API?
- 📧 Email: api@chainsentinel.net
- 💬 Telegram: @chainsentinel_net
- 📖 Examples: API Examples
- 🐛 Report Bug: GitHub Issues