The model: real-time is the paywall

For a detection product, time is the value: a rug alert that arrives 10 minutes late is worthless. So everything is free, but the live intel flow is delayed ~10 minutes on a free key and real-time on a paid one. Targeted token lookups (/v1/token) are real-time for everyone. Every flow response carries an X-Data-Delay-Seconds header.

New here? See how RektRadar compares to GoPlus, Token Sniffer and De.Fi.

Authentication

Pass your key as a Bearer token (or the X-API-Key header). No key falls back to anonymous free access, just delayed. The full, always-current schema lives at api.rektradar.io/v1/docs (OpenAPI 3.1).

curl:

curl -H "Authorization: Bearer rr_live_xxx" \
  https://api.rektradar.io/v1/token/0xABC...

Python:

import requests

r = requests.get(
    "https://api.rektradar.io/v1/token/0xABC...",
    headers={"Authorization": "Bearer rr_live_xxx"},
)
verdict = r.json()
if verdict["score"] >= 70:
    print("high risk", verdict["flags"])

REST endpoints

Base URL: https://api.rektradar.io

MethodEndpointReturnsFreshness
GET /v1/token/:address Risk verdict for a token: score (0-100) + flags. real-time
GET /v1/token/:address/full Verdict + liquidity + holders. real-time
GET /v1/rugs Recent rug pulls (query: since=14d). delayed (free) / live (paid)
GET /v1/recent Recent analyses feed. delayed (free) / live (paid)
GET /v1/deployers/top Top scam deployers leaderboard. real-time

Example response (/v1/token/:address):

{
  "address": "0xabc...",
  "score": 82,
  "flags": ["hidden_mint", "ownership_not_renounced", "lp_not_locked"]
}

Live stream & webhooks

Subscribe to the real-time flow over a WebSocket (wss://api.rektradar.io/v1/stream?api_key=...), or register an HTTPS endpoint and we POST events to it. Webhook deliveries are HMAC-SHA256 signed. The full machine-readable schema lives at api.rektradar.io/v1/stream-docs (AsyncAPI 3.0).

Stream eventWebhook eventFires when
new_token token.new a new pair / pool is created
token_scored token.scored an analysis completes
token_scored token.high_risk an analysis completes with score >= 70
imminent_rug rug.imminent a pending rug is seen in the mempool (liquidity removal / owner rug-function), before it is mined
rug rug.detected liquidity is pulled
import { verifyWebhook } from "@mik3fly-lab/rektradar-sdk";

// RektRadar signs every delivery: X-RektRadar-Signature: sha256=<hmac>
const ok = verifyWebhook(rawBody, req.header("X-RektRadar-Signature") ?? "", SECRET);
if (!ok) return res.sendStatus(401);

Official SDK

TypeScript, zero runtime dependencies, isomorphic (Node + browser).

npm install @mik3fly-lab/rektradar-sdk
import { RektRadar, connectStream } from "@mik3fly-lab/rektradar-sdk";

const rr = new RektRadar({ apiKey: process.env.REKTRADAR_KEY });

const verdict = await rr.token("0x...");
if (verdict.score >= 70) {
  console.warn("high risk", verdict.flags);
}

// live intel stream (paid = live, free = ~10 min delayed)
import WebSocket from "ws";
connectStream({
  apiKey: process.env.REKTRADAR_KEY,
  events: ["new_token", "imminent_rug", "rug"],
  WebSocket,
  onMessage: (e) => console.log(e.type, e.data),
});

See it run in the browser on the free tier: demo.rektradar.io (token lookups, biggest rugs, new scams per day, a 6h live pulse).

Source: github.com/mik3fly-lab/rektradar-sdk

Plans & limits

API access is included with every RektRadar plan. Quota beyond the included monthly amount is billed as metered overage.

PlanPrice /moDataQuotaRateWSHooks
Free free ~10 min delayed 10k / mo 10 / min 1 1
Basic 19.99 real-time 50k / mo 30 / min 3 5
Premium 49.99 real-time + forensics 250k / mo 120 / min 10 20
Pro 99 real-time + SLA 1M / mo 300 / min 30 100