Data

Data API

An indexer follows the program, decodes every event and keeps pools, activity and loans in a database. Read it over HTTP, or subscribe and get changes pushed as they land on chain.

The API is live on mainnet at https://api.proglet.fun, and the WebSocket at wss://api.proglet.fun/ws. Browser calls are allowed from proglet.fun; for your own app, call it from a server.

REST

GET /poolsEvery pool with 24h change, volume and trade count, deepest first.
GET /pools/:mintOne pool with its 24h stats.
GET /pools/:mint/activity?limit, ?beforeThe coin's activity, newest first. limit up to 200; before is an ISO time for paging.
GET /activity?limitThe latest activity across all coins.
GET /positions/:ownerA wallet's open loans.
GET /tokens/:mintA coin's metadata: name, symbol, description, links and its image on our CDN.
GET /feesCreator fees per coin that haven't become pool liquidity yet, largest first.
GET /fees/:mintOne coin's pending creator fees.
GET /crankThe crank's latest claims and buybacks, with their signatures.
GET /healthIndexer status: last signature and slot.
bash
curl "https://api.proglet.fun/pools/<mint>/activity?limit=20"

WebSocket

Connect to /ws and subscribe to channels. Every message is { channel, data }.

ts
const ws = new WebSocket("wss://api.proglet.fun/ws");
ws.onopen = () => ws.send(JSON.stringify({ op: "subscribe", channels: ["activity:" + mint, "pool:" + mint] }));
ws.onmessage = (m) => {
  const { channel, data } = JSON.parse(m.data);
  // channel "activity:<mint>" -> an Activity row, "pool:<mint>" -> a Pool row
};
activity:<mint>ActivityA coin's new activity.
activityActivityNew activity on every coin.
pool:<mint>PoolA pool after it changed.
poolsPoolEvery pool change.
positions:<owner>PositionA wallet's loans as they open, change or close (closed: true).
token:<mint>TokenA coin's metadata once its image is on the CDN.
fees:<mint>, feesFeesA coin's pending creator fees when they change.

Send { "op": "unsubscribe", "channels": [...] } to stop. A connection can hold 50 channels.

Shapes

SOL and whole-token amounts are numbers; raw on-chain integers (lamports, base units) are strings, so nothing loses precision.

Activity

kindstringbuy, sell, liquidity, buyback, borrow, collateral, repay or liquidation.
sol, tokensnumberSOL and whole tokens moved.
pricenumber | nullSOL per token after the event.
traderstring | nullThe wallet; null for the pool's own buybacks.
signature, slot, timestring, number, stringWhere and when it happened (time is ISO).

Pool

mint, poolstringThe coin and its pool address.
solReserve, tokenReserve, totalDebt, totalCollateralstringRaw reserves and lending totals.
priceSol, poolSolnumberPrice in SOL per token, and the pool's SOL.
lendingOpenbooleanWhether new loans can open.
change24h, volume24h, trades24hnumberOnly on REST: 24h price change in percent, volume in SOL, trade count.
name, symbol, imagestring | nullOnly on REST: the coin's metadata; image is its CDN URL.

Fees

A coin's pump.fun creator fees are its buyback budget. They wait in three places before the crank turns them into pool liquidity; amounts are lamports, as strings.

unsweptstringStill on the bonding curve or the PumpSwap pool.
inVaultstringSwept into pump's creator vault, not collected yet.
readystringCollected in the coin's creator PDA; the next buyback spends it.
totalSolnumberAll three, in SOL. Pools also carry it as pendingFeesSol.
venuestringcurve, amm (PumpSwap) or migrating (between the two).

Token

mint, name, symbol, descriptionstring | nullFrom the coin's Token-2022 metadata and its metadata JSON.
website, twitter, telegramstring | nullLinks from the metadata JSON (http and https only).
imagestring | nullThe image on cdn.proglet.fun, null until it is mirrored.