API Documentation
Integrate RugSol token scanning into your bots, dashboards, and applications. No API key required for basic usage.
Base URL
Endpoints
/scanDescription
Perform a full security scan on a Solana token. Returns a comprehensive risk assessment including score, grade, individual check results, holder data, liquidity info, and detected risk factors.
Request Body
{
"address": "TokenMintAddress..."
}addressrequiredSolana token mint address (base58 string, 32-44 chars)Response
{
"score": 82,
"grade": "A",
"token": {
"name": "Token Name",
"symbol": "TKN",
"image": "https://...",
"address": "TokenMintAddress...",
"decimals": 9,
"supply": "1000000000"
},
"checks": {
"mintAuthority": { "status": "revoked", "passed": true },
"freezeAuthority": { "status": "revoked", "passed": true },
"honeypot": { "status": "sellable", "passed": true },
"topHolders": { "concentration": 28.5, "passed": true },
"liquidity": { "usd": 125000, "passed": true },
"lpLocked": { "status": "burned", "passed": true },
"tokenAge": { "hours": 720, "passed": true },
"metadata": { "mutable": false, "passed": true }
},
"holders": {
"top10": [
{ "address": "Abc...", "pct": 5.2, "type": "wallet" },
...
]
},
"penalties": [
{ "reason": "Top holder > 5%", "points": -5 }
],
"mode": "dex",
"price": { "usd": 0.00234, "change24h": -12.5 },
"liquidity": { "usd": 125000 },
"cached": false,
"timestamp": "2026-02-08T12:00:00Z"
}Status Codes
200Scan completed successfully400Invalid token address format404Token not found on Solana429Rate limit exceeded — try again later500Internal server errorExample
curl -X POST https://rugsol.com/api/scan \
-H "Content-Type: application/json" \
-d '{"address": "So11111111111111111111111111111111111111112"}'const response = await fetch("https://rugsol.com/api/scan", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
address: "So11111111111111111111111111111111111111112"
})
});
const result = await response.json();
console.log(result.score, result.grade);import requests
response = requests.post(
"https://rugsol.com/api/scan",
json={"address": "So11111111111111111111111111111111111111112"}
)
result = response.json()
print(f"Score: {result['score']} | Grade: {result['grade']}")Rate Limits
30
Requests / minute
500
Requests / day
Free
No API key needed
Need higher limits? Contact us on Telegram for enterprise access.
Notes
Caching
Responses may be cached for up to 5 minutes. The `cached` field in the response indicates whether the result was served from cache. To force a fresh scan, wait for the cache to expire.
Timeouts
Scans typically complete in 3-8 seconds. The API has a 30-second timeout. If a scan takes longer (due to tokens with many holders or slow RPC), you may receive a partial result or timeout error.
Response Size
Full scan responses are typically 2-5 KB. The holder list is capped at the top 10 holders. For tokens with extensive penalty lists, response size may be slightly larger.