HoodCheck REST API
Token safety data for Robinhood Chain, free and open. No key, account, or token holding required.
https://hoodcheck.xyzThe API is served from https://hoodcheck.xyz/v1; all JSON endpoints send Access-Control-Allow-Origin: *.Quick start
curl https://hoodcheck.xyz/v1/scan/0x020bfC650A365f8BB26819deAAbF3E21291018b4Endpoints
/v1/scan/{address}Run or retrieve a scan. Cached for ten minutes; add ?fresh=true to force a new scan.
/v1/scan/{address}/streamStream check progress as server-sent events, followed by the complete nested scan response.
/v1/history/{address}Return up to 100 past score and verdict observations for a token, with ISO 8601 UTC timestamps.
/v1/recentReturn the 50 most recent unique token scans. Cached for 30 seconds.
/v1/statsReturn live aggregate scan totals, DANGER verdict count, and scans per minute over the last hour.
Scan response
{
"address": "0x…",
"name": "Example",
"symbol": "EXMPL",
"score": 79,
"verdict": "CAUTION",
"scannedAt": "2026-07-10T08:00:00.000Z",
"blockNumber": 1234567,
"checks": {
"honeypot": {
"status": "unknown",
"summary": "RPC does not support the required state overrides.",
"details": {}
},
"lp": {
"status": "pass",
"summary": "All active LP positions are held by a known locker.",
"details": { "pool": "0x…", "positions": [] }
},
"holders": {
"status": "warn",
"summary": "Top-holder concentration is elevated.",
"details": { "topTenPercent": 42.1 }
},
"contract": {
"status": "pass",
"summary": "No dangerous controls were identified.",
"details": { "verified": true, "flags": [] }
},
"deployer": {
"status": "pass",
"summary": "No recorded harmful deployments were found.",
"details": { "priorDeployments": 0 }
},
"nameCollision": {
"status": "pass",
"summary": "No high-liquidity name collision was found.",
"details": { "matches": [] }
}
}
}Every check returns pass, warn, fail, or unknown. Unknown checks are removed from the weighted denominator and cap the final score at 79. Honeypot and LP failures always force DANGER.
Rate limits & errors
Scan endpoints allow 60 requests per minute per source IP. A 429 response includes an accurate sliding-window Retry-After value in both the response header and JSON body. Badge rendering and recent-feed traffic remain HTTP-cached; unseen badge addresses are deduplicated and their background enqueue rate is limited. Global scan capacity can return 503 with Retry-After. Upstream RPC or explorer failures return unknown check states wherever a partial result is safe; a scan-wide failure returns 502.
Embeddable badge
<a href="https://hoodcheck.xyz/token/0xYOUR_TOKEN">
<img
src="https://hoodcheck.xyz/badge/0xYOUR_TOKEN.svg?style=rich"
alt="Token safety score on HoodCheck"
/>
</a>The recommended ?style=rich badge includes the token logo, name, symbol, score, verdict, and HoodCheck attribution. Omit the query parameter for the legacy compact 172×28 badge. Responses cache for ten minutes; an unscanned badge renders SCAN ↗ immediately and queues the token without waiting on an RPC scan.