Developers · Public API v1
Build on Feltpad
Read Feltpad launches and live Solana markets. No API key, CORS enabled, JSON under data.
Endpoints
GET/api/v1Status, version and endpoint list.
GET/api/v1/marketsTokens. Query: source (feltpad or solana), q, sort (new, volume, market-cap, change, trending), limit.
GET/api/v1/markets/{mint}Metadata, socials and live stats for one Solana token.
GET/api/v1/markets/{mint}/tradesRecent swaps with trader, side, SOL and token amounts.
GET/api/v1/markets/{mint}/candlesOHLCV in USD. resolution: 1m, 5m, 15m, 1h, 4h, 1d.
GET/api/v1/markets/{mint}/holdersTop 20 token accounts with owner and share of supply.
GET/api/v1/statsFeltpad launch count, SOL price and live board totals.
GET/api/sol/launchesLatest tokens launched through Feltpad.
Discover markets
const res = await fetch("https://feltpad.fun/api/v1/markets?source=feltpad&sort=new&limit=20");
const { data: markets, meta } = await res.json();
console.log(markets[0].address, markets[0].mcap_usd, meta.total);Trade
Feltpad builds trades with the PumpPortal local transaction API, so your own app can do the same and sign with any Solana wallet.
const r = await fetch("https://pumpportal.fun/api/trade-local", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ publicKey, action: "buy", mint, amount: 0.1, denominatedInSol: "true", slippage: 15, priorityFee: 0.0005, pool: "auto" }),
});
const tx = VersionedTransaction.deserialize(new Uint8Array(await r.arrayBuffer()));
await wallet.signAndSendTransaction(tx);Limits
Data endpoints are cached for a few seconds and share upstream limits with the site. Poll no faster than every 5 seconds. Never send keys or seed phrases to any endpoint.