API Documentation

CryptoGuard API

REST API for wallet risk screening. JSON in, JSON out. Authenticated via API key.

Quick start

  1. 1. Create a free account — 1,000 calls/month, no card required.
  2. 2. Generate an API key from your dashboard.
  3. 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_here

Keep 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

StatusMeaning
400Invalid request (bad address format, unknown chain)
401Missing, invalid, or revoked API key
404Wallet has no activity on this chain
429Monthly quota exhausted (free tier only) or rate limited
502Upstream 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.

TierIncluded calls/moPrice/moOverage
Free1,000$0
Starter25,000$299$0.024/call
Growth250,000$1,499$0.012/call
Scale1,500,000$4,999$0.007/call
EnterpriseCustomCustomCustom

Ready to integrate?

Start with 1,000 free calls. No card. Live in 5 minutes.

Get my API key