API
A safety check for agents
One endpoint: give it a Robinhood Chain token address, get back the same 8-check scan HoodRugCheck runs for people — a score, a tradeability status, and each check's result. Built for AI agents deciding whether to trade or recommend a token. The evidence behind each check follows the site's free tier: full evidence needs a Pro key.
Endpoint
GET /api/v1/check/{address} — CORS is open, so it can be called directly from a browser or an agent runtime. Results are cached for 2 minutes; a cold scan that takes longer than ~20s answers 202 with a retry_after — poll the same URL again rather than holding the connection open.
Example
Request
curl https://hoodrugcheck.com/api/v1/check/0x1234...abcd \
-H "Authorization: Bearer hrc_live_..."Response (200, evidence truncated)
{
"version": "1",
"address": "0x1234...abcd",
"name": "Example Token",
"symbol": "EX",
"score": 78,
"raw_score": 78,
"status": "tradeable",
"verdict": "Some concerns worth reading",
"checks": [
{
"id": "liquidity",
"label": "Liquidity",
"result": "pass",
"evidence": [
"Sellable on Uniswap V4 (WETH pool)",
"$142,000 in the deepest pool",
"Deployer holds no LP position"
]
}
],
"evidence_locked": false,
"report_url": "https://hoodrugcheck.com/token/0x1234...abcd",
"scanned_at": "2026-09-25T14:02:11.000Z",
"disclaimer": "Informational only, not financial advice. Verify independently before trading or recommending this token."
}Status values
status is one of tradeable, UNTRADEABLE (every venue was searched and none can sell it), no supported venue, or incomplete. An incomplete response means pool discovery failed or could not finish, so liquidity and sellability are unverified: score and raw_score are null, and verdict says so. Retry shortly; don't treat it as a clean or a failed token.
Evidence: free vs Pro
score, status, verdict, and every check's id / label / result are always in the response, key or no key. The evidence bullets behind each check follow the same line as the website: anonymous requests, and requests from a key whose account isn't currently Pro, get evidence_locked: true with every check's evidence emptied and an upgrade_url pointing at /pricing. A Pro account's key gets evidence_locked: false and full evidence.
Locked shape (no key, or a non-Pro key)
{
"id": "liquidity",
"label": "Liquidity",
"result": "pass",
"evidence": []
}
// ...
"evidence_locked": true,
"upgrade_url": "https://hoodrugcheck.com/pricing"Status codes
- 200 — scan complete, body above.
- 202 — still scanning; retry after
retry_afterseconds. - 400 — invalid address, wrong chain, or not a token contract.
codeis one ofINVALID_ADDRESS,WRONG_CHAIN,NOT_A_CONTRACT,NOT_A_TOKEN. - 429 — rate limit exceeded.
- 502 — the chain did not answer in time; safe to retry.
Limits and keys
- No key: 10 requests/hour per IP.
- With a key: 120 requests/hour, sent as
Authorization: Bearer <key>orX-API-Key. Full evidence too, as long as the key's account is currently Pro. - Every response carries
X-RateLimit-Limit,X-RateLimit-Remaining, andX-RateLimit-Reset. - Pro accounts generate one key on /account. Keys are shown once, at creation.
Machine-readable
- /openapi.json — OpenAPI 3.1 description of this endpoint.
/mcp— the same check as an MCP tool,check_token, for MCP-native agents. Streamable HTTP, stateless.