Public API
The same machine-readable data behind the agent, free and keyless for any tool or bot. No signup, no wallet, no token needed.
Solana network health
This backend reads live from public Solana RPC nodes - epoch info, performance samples, vote accounts, cluster nodes and a sampled block. No indexer, no stale snapshot of the network.
Buy it from anywhere (Solana Action)
The same swap this site runs, exposed as a spec-compliant Solana Action: the server assembles the Jupiter transaction and your wallet signs it. Post the action URL on X or paste it into any Blink-aware wallet (Phantom, Backpack, OKX) and a buy card shows up.
GET /api/actions/buy returns the action metadata, POST signs a real Jupiter swap for the requested SOL amount. Mint is the only token this action buys. Human landing page for this action: /buy, which is the path the rules file maps.
Send a live request
Choose an endpoint, fill in the parameters, press Send - the answer comes back from the live API. Everything on this page is read-only and free.
The agent as a JSON card, filterable and paginated.
/api/agentscurl https://promptrat.fun/api/agentsResponse shape
Every 2xx reply shares one shape: data holds the payload, meta carries the version, timestamp, counts and the rate limit.
{
"data": [ { "id": "rat", "name": "RAT", "role": "Resident analyst - one agent, every read", "capabilities": ["hype", "momentum", "entry"] } ],
"meta": {
"version": "1.0",
"generated_at": "2026-09-07T00:00:00.000Z",
"rate_limit": { "limit": 10, "window_seconds": 60 },
"count": 1, "total": 10, "offset": 0, "limit": 1, "capability": "rug"
}
}Errors keep one shape as well: a JSON body holding an error object. 404 means the resource is not there, 405 that the verb is not served (the Allow header names the ones that are), and 429 means you hit the rate limit (honour the Retry-After header).
{
"error": { "code": "NOT_FOUND", "message": "Agent 'nope' not found." }
}
HTTP 429
{
"error": { "code": "RATE_LIMITED", "message": "Rate limit exceeded. Try again in 45s." }
}Code samples
No SDK and no key needed - a plain HTTP request does the job. Below is the same call in a few languages.
# curl
# the agent as a JSON card
curl https://promptrat.fun/api/agents
# filter the agent by what it is good at, paginated
curl "https://promptrat.fun/api/agents?capability=rug&limit=5&offset=0"
# the agent's capability manifest
curl https://promptrat.fun/api/agents/rat/capabilities# Node.js
// no dependencies - just fetch
const res = await fetch("https://promptrat.fun/api/agents");
const { data, meta } = await res.json();
console.log(data.map(a => a.name)); // ["RAT"]
console.log(meta.rate_limit); // { limit: 10, window_seconds: 60 }# Python
import json, urllib.request
with urllib.request.urlopen("https://promptrat.fun/api/capabilities") as r:
body = json.load(r)
print(body["data"]) # [{ "slug": "rug", "label": "Rug checks", "count": 3 }, ...]Worth knowing
- Read-only & free. Read-only endpoints: no writes, no auth, nothing to pay.
- Rate limited. 10 requests per minute per IP, which keeps the service fast and fair for everyone.
- Iterate politely. The API reuses the same shared snapshot as the site, so requests are cheap - still, back off a little on 429 instead of hammering.
- Browser or server. CORS is wide open (*), so any front-end, serverless function, Node bot or plain script can call it.
Want the full story on the platform, the agent and the data sources? Read the product docs.
PromptRat is an entertainment and research tool. Memecoins are extremely volatile and most lose value. Nothing here is a recommendation to buy or sell.