Public API
Free, read-only, no key. CORS is open, so it works from browsers, bots and terminals.
Wallet
GET https://snitch-hazel.vercel.app/api/v1/wallet/<address>Wanted level (0–5 stars), title, charges, district, jail status, crew membership and a link to the poster.
{
"address": "6c1Dmi9L4rTXT5GcTbTv8p3BuBEn8SJbo37UGJ3f6yfj",
"stars": 5,
"title": "Public Enemy No. 1",
"district": "THE RUGHOUSE",
"inJail": true,
"jailedAt": "2026-11-13T09:38:21.000Z",
"outOnBailUntil": null,
"posterSealedUntil": "2026-11-14T08:00:00.000Z",
"notes": ["Bribe paid — record sealed on poster only"],
"charges": [{ "code": "RUG", "label": "Rug pull", "count": "x11" }],
"stats": { "tokensLaunched": 12, "dumpedWithinHour": 11, "tradesPerDay": 40, "txScanned": 300 },
"badges": ["speedrunner"],
"crew": { "id": 12, "suspected": true, "confidence": "high", "wallets": 4, "url": "https://snitch-hazel.vercel.app/crew/12" },
"scannedAt": "2026-11-13T09:38:20.000Z",
"url": "https://snitch-hazel.vercel.app/w/6c1Dmi9L4rTXT5GcTbTv8p3BuBEn8SJbo37UGJ3f6yfj",
"source": "storage",
"disclaimer": "Algorithmic rating from public on-chain data. ..."
}Dev of a token
GET https://snitch-hazel.vercel.app/api/v1/dev/<token mint (CA)>Finds the wallet that launched the token and returns its record in the same format (under dev).
{
"mint": "FAc3zobmmRrE5qB9TXgTDGmEM8FZXmLXN4bojM7zpump",
"token": { "name": "Fomo", "symbol": "Fomo" },
"dev": { "address": "J7gm…", "stars": 4, "title": "Heist Crew", "inJail": false, "crew": null, ... },
"source": "storage"
}How fresh is the data
- Answers come from the city's storage first (
"source": "storage"): every wallet checked on the site or caught by the Rug Radar. - A wallet or token the city hasn't seen yet is scanned on the spot (
"fresh_scan"), within the site's daily scan budget. When the budget is used up you get503 not_in_city_yet: try again later. - Responses can be cached for 60 seconds.
- The API always returns the real record. A paid Bribe only seals the stars on the wallet's poster on the site (
posterSealedUntil); Bail only moves the pin out of the map's jail (outOnBailUntil,inJailstays true). Both are listed innotes.
Limits and errors
- 60 requests per minute per IP (
429 rate_limited, seeRetry-After). New scans also count against the per-IP scan limit of the site. 400 invalid_address,400 not_a_wallet(a token or program was passed as a wallet),400 not_a_token,502on upstream errors.
Fair use
Show the disclaimer next to the data: ratings are algorithmic, from public on-chain data, for entertainment; they are not an accusation and not financial advice. Please link back to the wallet's poster (url). See the terms.