API Documentation
CryptoGuard API
REST API for wallet risk screening. JSON in, JSON out. Authenticated via API key.
Quick start
- 1. Create a free account — 1,000 calls/month, no card required.
- 2. Generate an API key from your dashboard.
- 3. Send your first request:
curl
curl -X POST https://cryptoguard.services/v1/scan/wallet \
-H "X-API-Key: cg_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"address":"0x7F367cC41522cE07553e823bf3be79A889DEbe1B","chain_id":1}'Authentication
Send your API key in the X-API-Key header, or as a Bearer token in the Authorization header.
HTTP headers
X-API-Key: cg_live_your_key_here
# OR
Authorization: Bearer cg_live_your_key_hereKeep keys server-side
API keys are bearer tokens. Never expose them in client-side code or commit them to git. Rotate keys from your dashboard if exposed.POST /v1/scan/wallet
Scan a wallet address. Returns a risk score and signals.
Request body
JSON
{
"address": "0x7F367cC41522cE07553e823bf3be79A889DEbe1B",
"chain_id": 1
}Chain IDs
1 Ethereum0 Bitcoin-1 Solana56 BNB Chain137 Polygon42161 Arbitrum10 Optimism8453 Base43114 Avalanche-6 Tron-5 XRP-7 Cardano
Response 200
JSON
{
"wallet_address": "0x7F367cC41522cE07553e823bf3be79A889DEbe1B",
"chain_id": 1,
"risk_score": 100,
"risk_level": "CRITICAL",
"flags": [
"[OFAC] Address is on the US Treasury SDN sanctions list",
"[CryptoGuard] Address linked to Tornado Cash mixer"
],
"goplus_summary": { ... },
"etherscan_summary": {
"balance_eth": 0.0,
"tx_count": 42,
"outbound_count": 18,
"unique_contracts_interacted": 7
},
"data_sources": [
"CryptoGuard Engine",
"OFAC US Treasury",
"CryptoGuard Scam DB",
"On-chain analysis"
],
"scanned_at": "2026-05-15T14:23:08.123456"
}Code examples
cURL
bash
curl -X POST https://cryptoguard.services/v1/scan/wallet \
-H "X-API-Key: cg_live_xxx" \
-H "Content-Type: application/json" \
-d '{"address":"0x...","chain_id":1}'Python
python
import httpx
r = httpx.post(
"https://cryptoguard.services/v1/scan/wallet",
headers={"X-API-Key": "cg_live_xxx"},
json={"address": "0x...", "chain_id": 1},
)
print(r.json()["risk_score"])Node.js
javascript
const res = await fetch("https://cryptoguard.services/v1/scan/wallet", {
method: "POST",
headers: {
"X-API-Key": "cg_live_xxx",
"Content-Type": "application/json",
},
body: JSON.stringify({ address: "0x...", chain_id: 1 }),
});
const data = await res.json();
console.log(data.risk_score);POST /v1/scan/token
Scan a token contract. Detects honeypots, hidden taxes, rug indicators.
Request body
JSON
{
"contract_address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
"chain_id": 1
}Response 200
JSON
{
"contract_address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
"chain_id": 1,
"risk_score": 5,
"risk_level": "LOW",
"flags": [],
"token_data": { ... },
"scanned_at": "2026-05-15T14:23:08.123456"
}GET /v1/usage
Check your current month's API usage and quota.
Response 200
JSON
{
"tier": "starter",
"included_calls": 25000,
"used_this_month": 4218,
"remaining": 20782,
"overage_calls": 0,
"overage_per_call_usd": 0.024,
"overage_cost_usd": 0.0,
"period_start": "2026-05-01T00:00:00+00:00",
"period_end": "2026-06-01T00:00:00+00:00"
}Errors
| Status | Meaning |
|---|---|
| 400 | Invalid request (bad address format, unknown chain) |
| 401 | Missing, invalid, or revoked API key |
| 404 | Wallet has no activity on this chain |
| 429 | Monthly quota exhausted (free tier only) or rate limited |
| 502 | Upstream blockchain data temporarily unavailable |
Error responses include a JSON body: {"detail": "..."}
Rate limits & pricing
Quotas reset on the 1st of each calendar month UTC. Paid tiers can exceed their pool — overage billed at 2× the per-call rate.
| Tier | Included calls/mo | Price/mo | Overage |
|---|---|---|---|
| Free | 1,000 | $0 | — |
| Starter | 25,000 | $299 | $0.024/call |
| Growth | 250,000 | $1,499 | $0.012/call |
| Scale | 1,500,000 | $4,999 | $0.007/call |
| Enterprise | Custom | Custom | Custom |