API Reference
One public contract for cached Solana risk evidence, decision checks, wallet screening, deployer review, and watch registration. Every accepted request needs a scoped API key from your dashboard.
Quickstart
Every call needs one header. Try it with a token you already know:
curl https://rugburn.io/api/v1/token/risk \ -H "Authorization: Bearer $RUGBURN_API_KEY" \ -H "Content-Type: application/json" \ -d '{"address":"TOKEN_MINT_ADDRESS"}'No key yet? Generate one from dashboard settings. Full header reference: Auth.
Endpoints
Every route the API exposes. Scope required is shown with each one.
- Token Risk
POST /api/v1/token/riskReturns the latest cached RugBurn token-risk packet for a Solana mint.
- Wallet Risk
POST /api/v1/wallet/riskReturns RugBurn wallet-risk evidence: labels, exposures, and prior deployer history.
- Deployer History
GET /api/v1/deployer/{wallet}/historyReturns RugBurn-observed launch history for a wallet plus summary metrics.
- Pre-Trade Decision
POST /api/v1/decision/pre-tradeRuns a cache-only pre-trade decision from the latest token packet. No live scan or execution happens here.
- Monitor Position
POST /api/v1/decision/monitor-positionReturns a cache-only active-position decision with explicit pressure signals and next-check guidance.
- Set Watch
POST /api/v1/decision/set-watchStores a watch contract only. It does not create a dashboard watchlist or trigger background scans.
Live API Lab
Test any endpoint from the browser with a low-scope key. Nothing here touches production traffic.
/api/v1/token/riskcurl https://rugburn.io/api/v1/token/risk \ -H "Authorization: Bearer $RUGBURN_API_KEY" \ -H "Content-Type: application/json" \ -d '{"address":"So11111111111111111111111111111111111111112"}'const response = await fetch("https://rugburn.io/api/v1/token/risk", { method: "POST", headers: { "Authorization": `Bearer ${process.env.RUGBURN_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ "address": "So11111111111111111111111111111111111111112"}),});const payload = await response.json();if (!response.ok) throw new Error(payload.error?.message || 'RugBurn request failed');return payload;{ "data": { "address": "So11111111111111111111111111111111111111112", "name": "Wrapped SOL", "symbol": "SOL", "safetyScore": 61, "riskScore": 39, "riskLevel": "medium", "recommendedAction": "monitor", "summary": "Cached RugBurn evidence shows liquid trading, but ownership concentration still needs review.", "modelVersion": "score-v3.3-shadow", "confidence": { "label": "high", "score": 79 }, "facets": { "contract": 86, "liquidity": 74, "ownership": 48, "deployer": 69, "market": 63, "maturity": 58, "metadata": 80, "aml": 50 }, "hardCaps": [ "Top 10 Holder Cap:58" ], "risks": [ "High concentration: top 10 holders own 58.4%", "Creator ownership evidence needs continued monitoring" ], "market": { "liquidityUsd": 214320, "marketCap": 1184300, "volume24h": 392100, "priceChange5m": -1.7, "priceChange1h": 4.2, "priceChange6h": 12.4, "priceChange24h": 19.1, "buyCount24h": 1182, "sellCount24h": 903, "tradeCount24h": 2085 }, "evidence": { "isHoneypot": false, "lpLocked": true, "lpLockPercentage": 92, "buyTax": 0, "sellTax": 0, "top10HolderPct": 58.4, "deployerAddress": "Vote111111111111111111111111111111111111111", "scanSource": "cached_scan", "scannedAt": "2026-04-23T11:58:04.000Z" }, "scoreBreakdown": [ { "name": "holder_distribution", "points": -16, "reason": "Top-10 concentration remains elevated for public entry." }, { "name": "lp_lock", "points": 8, "reason": "Liquidity lock evidence is present." } ], "sources": [ "rugburn_token_scans", "rugburn_scoring_engine" ] }, "meta": { "requestId": "req_demo_token_risk_01", "scope": "token:risk:read", "quota": { "limit": 5000, "used": 41, "remaining": 4959 }, "generatedAt": "2026-04-23T12:00:00.000Z", "cacheMode": "latest_cached_scan", "contractVersion": "2026-04-16" }}Response envelope reference
Response structure is part of the product contract. The payload is route-specific, but the meta envelope keeps accountability visible: request ID, scope, quota, generation time, and version markers.
{ "data": { "decision": "review_required", "confidence": 0.74, "horizon": "5m-30m", "risk": "medium", "edge_summary": "Cached RugBurn score 61/100 for momentum_scalp. Risk is medium. Liquidity is about $214,320. 24h volume is about $392,100. Deployer evidence is available in the cached scan. Hard caps: Top 10 Holder Cap:58.", "invalidation": [ "top_trader_netflow turns negative", "creator wallet sells > 15%", "liquidity drops > 20%", "holder concentration increases sharply", "sell count overtakes buy count in the active window" ], "recommended_action": "human_review", "next_check_after_seconds": 90, "evidence_age_seconds": 116, "cache_status": "latest_cached_scan", "sources": [ "rugburn_token_scans", "rugburn_scoring_engine" ], "limitations": [ "cache_only_v0", "not_financial_advice", "does_not_execute_trades", "top_trader_flow_not_live_yet", "wallet_profile_may_be_missing" ], "token": { "mint": "So11111111111111111111111111111111111111112", "symbol": "SOL", "name": "Wrapped SOL", "safety_score": 61, "liquidity_usd": 214320, "volume_24h": 392100, "market_cap": 1184300, "scanned_at": "2026-04-23T11:58:04.000Z" } }, "meta": { "requestId": "req_demo_pre_trade_01", "scope": "token:risk:read", "quota": { "limit": 5000, "used": 44, "remaining": 4956 }, "generatedAt": "2026-04-23T12:05:00.000Z", "costUnits": 3, "contractVersion": "decision-pre-trade-v0-cache", "agentRequestId": "agreq_demo_pre_trade_01" }}Plan quotas
Free: 100 cached reads/month, 10 requests/minutePro: 5,000 cached reads/month, 30 requests/minuteWhale: 25,000 cached reads/month, 60 requests/minuteEnterprise: custom quota, pilot or usage-based terms/openapi.json returns the full machine-readable schema.