Key Takeaways
# | Takeaway |
|---|---|
1 | The RugCheck API lets you pull Solana token-risk data straight into your own bots, wallets, dashboards, and trading tools, so you can check a token before you ever interact with it. |
2 | Always treat the live Swagger documentation as your single source of truth. Endpoints, field names, limits, and login rules change over time, so verify everything against Swagger as you build. |
3 | Treat RugCheck as one safety layer, not the final word. Combine it with other checks and human judgment, and never let a missing response be read as a signal that a token is safe. |
What Is the RugCheck API?
If you are building anything on Solana, whether that is a trading bot, a wallet, a dashboard, or a simple research script, you probably want a fast way to check whether a token looks risky before you touch it. That is exactly what the RugCheck API is for. It lets you pull RugCheck's token-risk data directly into your own code, so your tools can flag dangerous tokens automatically instead of you checking each one by hand.
RugCheck also publishes interactive documentation, called Swagger, that you can open and explore right in your browser here: https://api.rugcheck.xyz/swagger/index.html
Build one habit early: treat that live Swagger page as your source of truth. Endpoints, field names, limits, and login rules can all change over time. Whenever something in this guide does not match what you see in Swagger, trust Swagger.
Common Ways People Use It
There is no single "right" way to use the API. Here are some of the most common jobs developers hand to it.
Use case | What it lets you do |
|---|---|
Pre-trade check | Scan a mint address before you allow a trade to go through. |
Wallet safety | Show risk flags directly inside a wallet interface. |
New token filtering | Automatically filter freshly launched tokens by risk. |
Ongoing monitoring | Keep watch on tokens you already know about. |
Safety bots | Power a Telegram or Discord bot that warns your community. |
Dashboard enrichment | Add risk data to a trading dashboard. |
Change alerts | Trigger alerts when authority or liquidity changes. |
Discovery feeds | Pull trending or recently scanned tokens. |
Start With the Swagger Page
Before you write a single line of production code, open the Swagger page and read it. It is the most reliable picture of what the API can actually do right now. Here is what it shows you.
Swagger shows you | Why it matters |
|---|---|
Available routes | The exact URLs you can call. |
HTTP methods | Whether a route expects GET, POST, and so on. |
Parameters | What you need to pass in for each call. |
Request bodies | The shape of data you send for POST requests. |
Response schemas | The structure of the data you get back. |
Authentication requirements | Which routes need you to log in first. |
Example responses | Real samples so you know what to expect. |
Tip: Do not build production code from a random blog post (including this one) without checking the current schema in Swagger first. |
Getting a Public Token Report
Most integrations start the same way: you take a token's mint address and ask the API for a report on it. Copy the exact route from the current Swagger docs. Historically, RugCheck has exposed token-report routes under a path that looks like /v1/tokens/. Here is the idea in a simple curl request.
curl --request GET \
--url "https://api.rugcheck.xyz/v1/tokens/<MINT_ADDRESS>/report"
A report can include several categories of information. You will not always get every field, so treat this as a menu rather than a guarantee.
Report section | What it tells you |
|---|---|
Token metadata | Basic details about the token. |
Supply | How many tokens exist. |
Authorities | Who can still control the token (for example, mint or freeze rights). |
Holders | Who owns the token and how it is distributed. |
Markets | Where the token trades. |
Liquidity | How much liquidity backs it. |
Detected risks | Specific red flags the tool found. |
Aggregate score | A single summary number for the token. |
Creator information | Details about the wallet that created the token. |
Important: Do not hard-code assumptions about every field being present. Use defensive parsing so a missing field never crashes your app. |
A Python Example
Here is a small, careful Python function that fetches a token report. Notice that it checks the input, sets a timeout, and confirms the response looks the way you expect before returning it.
from future import annotations
import requests
from typing import Any
BASE_URL = "https://api.rugcheck.xyz"
def get_token_report(mint_address: str, timeout: int = 15) -> dict[str, Any]:
if not mint_address or len(mint_address) < 32:
raise ValueError("A valid-looking Solana mint address is required.")
url = f"{BASE_URL}/v1/tokens/{mint_address}/report"
response = requests.get(
url,
timeout=timeout,
headers={"Accept": "application/json"},
)
response.raise_for_status()
data = response.json()
if not isinstance(data, dict):
raise TypeError("Unexpected RugCheck response format.")
return data
Before you deploy, confirm the route in Swagger.
A JavaScript Example
The same idea works cleanly in JavaScript. This version validates the address, calls the endpoint, and throws a clear error if the request fails.
export async function getRugCheckReport(mintAddress) {
if (!mintAddress || mintAddress.length < 32) {
throw new Error("A valid-looking Solana mint address is required");
}
const url = https://api.rugcheck.xyz/v1/tokens/${mintAddress}/report;
const response = await fetch(url, {
headers: { Accept: "application/json" },
});
if (!response.ok) {
throw new ErrorRugCheck request failed: ${response.status});
}
return await response.json();
}
Authentication
Some operations may require you to log in first. RugCheck's Swagger docs include authentication routes, and community developers have described a Solana-wallet login flow where a wallet signs a message that contains fields such as a public key and a timestamp. In plain terms, a secure login usually looks like this.
Step | What happens |
|---|---|
1 | Request or build the message you need to sign. |
2 | Sign that message locally using the user's wallet. |
3 | Send the message, the signature, and the wallet address to the authentication endpoint. |
4 | Receive a token back. |
5 | Include that token in the required authorization header on future requests. |
Never do this: Never ask users for a seed phrase or a private key. The wallet signs locally, and that is the only signing that should ever happen. |
Do Not Trust the Score Blindly
It is tempting to boil everything down to a single yes or no, like this.
if score_is_good:
buy()
Resist that urge. A good system looks at the individual risk items, not just the headline number. Here is an example that blocks on the most dangerous flags, sends borderline cases to manual review, and lets clean tokens continue.
BLOCKING_RISKS = {
"mint_authority",
"freeze_authority",
"removable_liquidity",
}
def classify_report(report: dict) -> str:
risks = report.get("risks", [])
names = {
str(item.get("name", "")).lower()
for item in risks
if isinstance(item, dict)
}
if names & BLOCKING_RISKS:
return "block"
if risks:
return "manual_review"
return "continue_research"
The real field names may differ, so map your code against the live schema rather than trusting these exact names.
Production Safeguards
Once your scanner is doing real work, a few habits keep it reliable and safe. Here is what to put in place and why each one matters.
Safeguard | Why it matters |
|---|---|
Cache responses briefly | Risk data changes, but scanning the same mint every second wastes capacity. Use a short time-to-live that fits your use case. |
Respect rate limits | Add exponential backoff for 429 responses and temporary server errors so you back off gracefully instead of hammering the API. |
Store raw responses | Schemas evolve. Saving the raw JSON makes debugging and audits much easier later. |
Timestamp every scan | A token can change right after you pull a report, so you always want to know exactly when a scan happened. |
Fail closed for trading | If the API is unavailable, never treat "no response" as "safe." Stop instead. |
Cross-check big decisions | For large trades, confirm what RugCheck tells you against other sources. |
Protect your tokens | Keep secrets in environment variables or a secret manager, and never expose private API credentials in frontend JavaScript. |
For those high-value, cross-check moments, these are useful second opinions.
Source | Good for |
|---|---|
Solana RPC data | Verifying on-chain facts directly. |
Solscan | Exploring transactions and token details. |
Birdeye | Checking market and price data. |
Bubblemaps | Visualizing how holders are connected. |
GoPlus | Extra risk signals where it is supported. |
A Simple Way to Store Your Scans
If you keep a record of every scan, you build an audit trail you can trust later. A simple table with these fields goes a long way.
Field to store | What it captures |
|---|---|
Mint address | Which token you scanned. |
Scan timestamp | Exactly when the scan happened. |
RugCheck score | The summary risk number at that moment. |
Risk count | How many risk items were found. |
Critical flags | The most serious red flags, if any. |
Raw response | The full JSON, kept for debugging and audits. |
Source version | The schema or tool version, if it is available. |
Decision | What your system decided to do. |
User override | Whether a human changed that decision. |
Next rescan time | When the token should be checked again. |
Keep Watching, Do Not Check Just Once
A token that looks fine today can change tomorrow. The strongest safety systems rescan on a schedule and also react to warning signs. Trigger a fresh scan when you see any of these.
Signal | Why it deserves a rescan |
|---|---|
Liquidity changes sharply | A sudden swing can point to a rug or an exit. |
Large holders move | Big wallet movements often come before trouble. |
Authority status changes | New mint or freeze rights can reintroduce risk. |
Token metadata changes | Edited details can be a sign of tampering. |
Volume spikes | Unusual activity is worth a closer look. |
Price collapses | A crash may reflect a problem you can still react to. |
Creator wallet becomes active | A quiet creator suddenly moving is a classic warning. |
Know the Limits
The API is only as good as the tool behind it, and no automated scanner catches everything. Here are the blind spots to keep in mind.
What it can miss | Why the API cannot catch it |
|---|---|
Off-chain fraud | Deception that never touches the blockchain is invisible to an on-chain scanner. |
Undiscovered wallet clusters | Hidden connections between wallets may not be mapped yet. |
Future admin actions | The API sees the present, not what a team might do later. |
Social engineering | Manipulating people is a human problem, not a data field. |
Compromised frontends | A hacked website can be dangerous even when the token looks clean. |
Paid influencer coordination | Coordinated hype does not show up in token data. |
Market manipulation | Some price games are hard to detect from a single report. |
In short, automating a scanner does not automate judgment.
Final Recommendation
Use the RugCheck API as a risk-data layer, not as an all-knowing investment oracle. A strong setup runs a token through several checks in order.
Layer | Purpose |
|---|---|
1. RugCheck report | Get the first read on the token's risk profile. |
2. Direct RPC verification | Confirm the on-chain facts yourself. |
3. Market and liquidity check | See how the token actually trades. |
4. Holder-cluster analysis | Look for concentrated or connected ownership. |
5. Transaction simulation | Test what a trade would really do. |
6. Manual review | Have a human review anything of meaningful size. |
The API makes token research much faster. It does not make unknown tokens safe.
Research Notes and Sources
Resource | Link |
|---|---|
Official Swagger documentation | |
Authentication discussion and signed Solana message schema | https://www.reddit.com/r/solana/comments/1hc2mh6/anyone_know_how_to_auth_to_rugcheck_api/ |
Community Python wrapper |
Developer note: Endpoint paths and returned JSON should always be checked against Swagger while you build. The code here is intentionally defensive and is not meant to be treated as a fixed SDK contract. |
Frequently Asked Questions
What is the RugCheck API?
It is an interface that lets developers pull RugCheck's Solana token-risk data into their own software, such as bots, wallets, dashboards, and trading tools, so risky tokens can be flagged automatically.
Do I need to authenticate to use it?
Some operations may require authentication, while others may be public. The current Swagger documentation is the best place to confirm which routes need a login. When login is required, the user's wallet signs a message locally.
Which programming languages can I use?
Any language that can make HTTP requests works. This guide includes ready-to-adapt examples in both Python and JavaScript.
Can I let the score make buy or sell decisions on its own?
It is not recommended. Look at the individual risk items rather than the single summary number, and keep a human in the loop for anything of meaningful size.
Where do I find the correct endpoints?
Always in the live Swagger page. Routes, fields, and rules can change, so Swagger is your source of truth rather than any static article.
What are the main limitations?
It can miss off-chain fraud, hidden wallet clusters, future admin actions, social engineering, compromised websites, paid hype, and some market manipulation. It speeds up research but does not replace judgment.
Disclaimer: This content is for educational and informational purposes only and is not financial advice. Nothing here is a recommendation to buy or sell any asset or use any platform. Do your own research and manage your risk.
RugCheck Explained: How Beginners Can Use This Free Solana Token Safety Tool
How to Cash Out Crypto in Dubai in 2026
How to Get Started on Robinhood Chain: A Complete Beginner's Guide
Best Robinhood Chain Trading Platforms in 2026: FOMO, GMGN, Uniswap and OpenSea Compared
Need deeper training?
Join our structured modules with live examples and expert checklists for effective implementation.
JOIN THE ACADEMY





