GET/api/v2/launches/recent
Launches from the last windowMs milliseconds (10 minutes), read from the launch records. Use it to show a launch before the pool sweep includes it. Each pool has pending: true. Market figures come from the latest indexed chain state, or from the opening market cap when there is none yet. status is never graduated, and liquidityUsd is absent. The body is {pools, degraded, network, windowMs, page, generatedAt}. A page can hold fewer than limit pools before the end, because hidden launches are removed. degraded: true means the read failed and pools is empty: try again.
- limit
- integer·1-100, defaults to 25. A value out of range is clamped.
- order
- 'desc' | 'asc'·Defaults to desc (newest first). Send the same order with every cursor.
- cursor
- string·page.nextCursor from the previous response. Omit it for the first page. A cursor from a different endpoint or order answers 400.
GET/api/v2/launches/{mint}
The launch record for a mint, in the pool shape, with pending: true. Works at any age of the launch. Market figures are calculated as in /launches/recent, so for a token that trades already, GET /api/public/v1/tokens/{mint} is more complete. The body is {pool, degraded, network, generatedAt}. Answers 200 with pool: null when the platform did not launch the mint. degraded: true means the read failed: try again.
- mint*
- string·Token mint address.
GET/api/v2/tokens/{mint}/socials
The website, twitter and telegram links of a token, as its token page shows them. Each key is absent when the token has no such link. An address that is not valid gives {}.
- mint*
- string·Token mint address.
GET/api/v2/tokens/{mint}/rewards
Lifetime holder-reward totals of a reward coin. The body is {mint, mode, quote, basis, rewards, base, generatedAt}. rewards holds quote-token amounts. base holds what the launch paid in its own token, and is null when it never did. A standard launch gives mode: "standard" with null rewards. basis is "ledger" or "snapshot", the source of the totals. basis: "awaiting-snapshot" means the totals are not built yet, and rewards is null: try again in one minute. The figures that change on each payout are on /tokens/{mint}/rewards/pending. walletsPaid counts the distinct wallets ever paid in that asset. Fee recipient payouts are not in these totals: see /tokens/{mint}/rewards/fee-recipients. Each *Raw field is an integer string. Each *Tokens field is null when the decimals are not known.
- mint*
- string·Token mint address.
GET/api/v2/tokens/{mint}/rewards/holders
Lifetime totals of what the holders of a reward coin were paid. The body is {mint, mode, quote, basis, rewards, base, generatedAt}. These are the /tokens/{mint}/rewards totals, which do not include fee recipient payouts. rewards is {distributedRaw, distributedTokens, payoutCount} in the quote token. base is the same in the launch token with an asset field, and is null when no holder was paid in it. mode has the same meaning as on /tokens/{mint}/rewards. basis is "ledger". basis: "awaiting-ledger" means the totals are not built yet, and rewards is null: try again in one minute. Each *Raw field is an integer string. Each *Tokens field is null when the decimals are not known.
- mint*
- string·Token mint address.
GET/api/v2/tokens/{mint}/rewards/fee-recipients
What a StandardV2 launch paid its fee recipients, and one page of its recipient wallets. The body is {mint, quote, shareBps, recipientCount, rewards, base, rows, page}. shareBps is the share of the transfer fee all recipients take together. recipientCount is the number of current recipients. rewards is what they were paid in the quote token, and base what they were paid in the launch token, null when nothing was. Each paid figure is {distributedRaw, distributedTokens, payoutCount, lastPayoutAt}, delivered payouts only. Each row is {wallet, isCreator, slot, shareBps, asset, quote, base}. isCreator is true for the wallet that launched the token. shareBps and asset are null for a wallet that is no longer a recipient. A quote recipient can also be paid in the launch token. A launch with no fee recipients answers 404. Each *Raw field is an integer string. Each *Tokens field is null when the decimals are not known.
- mint*
- string·Token mint address.
- limit
- integer·1-100, defaults to 25. A value out of range is clamped.
- order
- 'desc' | 'asc'·Defaults to asc: current recipients in slot order, then former ones. Send the same order with every cursor.
- cursor
- string·page.nextCursor from the previous response. Omit it for the first page. A cursor from a different endpoint or order answers 400.
GET/api/v2/tokens/{mint}/rewards/pending
What holders of a reward coin are owed and have not received. The body is {mint, mode, quote, pending, base, generatedAt}. In pending, undistributedRaw is in the pot and not yet allocated. queuedRaw is allocated, and its funding transfer has not landed. inFlightRaw is in the distribution wallet, and waits for delivery or for the holder to open a token account. strandedRaw cannot be delivered and waits for an admin. What holders are owed is undistributedRaw + queuedRaw + inFlightRaw. base gives the same figures, without undistributed, in the launch's own token, and is null when they are all zero. What is owed to fee recipients is not in these figures. Each *Raw field is an integer string, with a *Tokens field next to it.
- mint*
- string·Token mint address.
GET/api/v2/tokens/{mint}/rewards/payouts
One page of the payouts delivered to holders of a reward coin. The body is {rows, page}. Each row is {signature, holder, assetMint, amountRaw, amountTokens, createdAt}. One signature can pay many holders. assetMint is the quote token, or the launch mint for a payout in the launch's own token. amountTokens is null when the decimals are not known. Fee recipient payouts are not in the rows: see /tokens/{mint}/rewards/fee-recipients.
- mint*
- string·Token mint address.
- limit
- integer·1-100, defaults to 25. A value out of range is clamped.
- order
- 'desc' | 'asc'·Defaults to desc (newest first). Send the same order with every cursor.
- cursor
- string·page.nextCursor from the previous response. Omit it for the first page. A cursor from a different endpoint or order answers 400.
GET/api/v2/rewards/launches
One page of lifetime reward totals, one row for each launch and the asset it paid. The body is {asset, sort, basis, rows, page}. Each row is {mint, asset, distributedRaw, distributedTokens, payoutCount, walletsPaid, lastPayoutAt}. asset is {mint, symbol, decimals}. walletsPaid counts the distinct wallets ever paid in that asset. sort=distributed orders by distributedTokens and leaves out rows whose decimals are not known. Amounts in different assets are compared as token counts, not by value. sort=recent orders by lastPayoutAt. Totals include payouts up to about one minute old. basis: "awaiting-backfill" means the totals are not built yet, and rows is empty.
- asset
- 'quote' | 'base'·Defaults to quote. base lists rewards paid in the launch's own token.
- sort
- 'distributed' | 'recent'·Defaults to distributed. desc gives the largest or the newest first.
- limit
- integer·1-100, defaults to 25. A value out of range is clamped.
- order
- 'desc' | 'asc'·Defaults to desc (newest first). Send the same order with every cursor.
- cursor
- string·page.nextCursor from the previous response. Omit it for the first page. A cursor from a different endpoint or order answers 400.
GET/api/v2/rewards/payouts
One page of the payouts delivered to holders of every reward coin. The body is {rows, page}. Each row is {signature, launchMint, holder, assetMint, amountRaw, amountTokens, createdAt}. One signature can pay many holders and several launches. amountTokens is null when the decimals are not known.
- asset
- 'quote' | 'base'·Defaults to quote. base lists payouts made in the launch's own token.
- limit
- integer·1-100, defaults to 25. A value out of range is clamped.
- order
- 'desc' | 'asc'·Defaults to desc (newest first). Send the same order with every cursor.
- cursor
- string·page.nextCursor from the previous response. Omit it for the first page. A cursor from a different endpoint or order answers 400.
GET/api/public/v1/tokens
Every token with a live platform pool, with market data. Works without a key at a lower rate limit. V3 reward tokens additionally carry transferFee.bps (a Token-2022 transfer tax paid to holders — use the Token-2022 program for their accounts) and, while in the buyback rankings, flywheel.active. Community Mode tokens carry communityMode.shareBps: the share of every holder payout that goes to holders of the quote token instead. StandardV2 tokens carry feeRecipients.shareBps: the share of the transfer tax paid to the fee recipients set at launch (the creator by default) before holders.
- q
- string·Search name, symbol or mint.
- sort
- 'marketCap' | 'newest' | 'volume'·Defaults to marketCap.
- mode
- 'standard' | 'reward'·Filter by fee model.
- status
- 'new' | 'aboutToGraduate' | 'graduated'·Filter by graduation status.
- quoteMint
- string·Filter by paired token.
- category
- string·Filter by pair category, e.g. xstock.
- page
- integer·Defaults to 1.
- pageSize
- integer·1-100, defaults to 25.
GET/api/public/v1/tokens/{mint}
Live market data plus the launch record, when the platform launched it. V3 reward tokens carry the same optional transferFee, communityMode, feeRecipients and flywheel fields as /tokens.
- mint*
- string·Token mint address.
GET/api/public/v1/tokens/{mint}/burns
Totals and recent burns of this token by the platform fee sweep.
- mint*
- string·Token mint address.
- limit
- integer·1-100, defaults to 25.
GET/api/public/v1/tokens/{mint}/rewardsdeprecated
Distribution totals for a reward coin. Standard launches answer with mode "standard" and a null rewards object. Amounts under "rewards" are quote-token amounts; the separate "base" object carries what the launch paid holders in its OWN token, and is null when that has never happened.
Deprecated. Use GET /v2/tokens/{mint}/rewards and GET /v2/tokens/{mint}/rewards/pending instead. v2 splits the figures: lifetime totals are on /rewards and the undistributed, queued, inFlight and stranded figures are on /rewards/pending. Each base object is null on its own. v2 does not read the chain, so quote.decimals and the *Tokens fields are null where v1 read the decimals from the mint account. Before the totals are first built, v2 gives basis: "awaiting-snapshot" where v1 gives 503.
- mint*
- string·Token mint address.
GET/api/public/v1/tokens/{mint}/airdrop
The airdrop a token launched with, if any: what share of supply was carved out of the pool, how many wallets received it, and where those wallets came from. Reads the frozen snapshot taken at quote time, so it is the drop that was actually paid for rather than a live balance scan. A token that launched without one answers airdrop: null, which is not an error — most tokens have no airdrop.
- mint*
- string·Token mint address.
GET/api/public/v1/tokens/{mint}/backing
USD permanently locked behind a pump-launched token, summed from the platform’s own locked positions. Pump launches only: every other launch — Raydium CLMM and LaunchLab alike — answers 400 invalid_request rather than a zero, since backing is not a thing those have. Check launchpad from /tokens/{mint} before calling.
- mint*
- string·Token mint address.
GET/api/public/v1/launches
The launch ledger, newest first. Filter by creator to find your own. Launches built directly against the venue appear here too, once adopted, under launchpad "launchlab" — no payment of ours exists for those, so they are read here or from /api/v2/launches/{mint} rather than by polling a payment signature.
- creator
- string·Filter by creator wallet.
- mode
- 'standard' | 'reward'·Filter by fee model.
- since
- ISO 8601·Only launches at or after this time.
- page
- integer·Defaults to 1.
- pageSize
- integer·1-100, defaults to 25.
GET/api/public/v1/pairs
Quote tokens a new launch can be paired against. Call this first — quoteMint must be one of these. Two different gates apply and both are reported: `launchable` is this platform’s own rule (retired categories and mints are false), while `launchLabReady` says whether Raydium has created the on-chain GlobalConfig a LaunchLab launch needs. A pair can be launchable but not yet LaunchLab-ready; constructing a launch against one of those fails on-chain. `launchLabReady` is absent rather than false when the venue is off or the probe could not run. `communityMode` says whether a Community Mode launch can pair against the token, the same answer as `communityMode.offeredOnThisQuote` in GET /launchlab/pricing; it is absent while the venue is off. `standardV2Enabled` says whether StandardV2 launches are enabled on this deployment. When it is true, every LaunchLab-ready pair accepts a StandardV2 launch.
- category
- string·Filter by category.
- launchable
- boolean·Set true to exclude retired categories.
- launchLabReady
- boolean·Set true to return only pairs with a live LaunchLab config on-chain.
- communityMode
- boolean·Set true to return only pairs a Community Mode launch can pair against.
GET/api/public/v1/rewardsdeprecated
Lifetime payout totals per reward coin plus recent distribution transactions. "launches" and "recentDistributions" are quote-token amounts only; rewards paid in a launch's own token appear in "baseDistributions" and "recentBaseDistributions". In those two, "decimals" and the token amount are null together when the launch record cannot be resolved — read the raw amount instead of scaling it yourself. "launches" and "baseDistributions" are sorted by amount distributed and paged together by "page" and "pageSize"; each reports its own total in "launchesPagination" and "baseDistributionsPagination", and a page past its end is empty. Symbol and decimals for every quote mint in the response are in "quotes", keyed by mint (and in the "quote" object of each row). total and totalPages are null: read pages until one has fewer than pageSize rows. Rows whose decimals are not known are left out.
Deprecated. Use GET /v2/rewards/launches and GET /v2/rewards/payouts instead. v2 pages each list with a cursor (page.nextCursor) instead of page numbers, and asks for quote and base totals separately with asset=quote|base. v2 gives walletsPaid where v1 gives holderCount, and one payout row per holder where v1 groups recent distributions by signature.
- limit
- integer·Recent distributions, 1-100, defaults to 25.
- page
- integer·Defaults to 1.
- pageSize
- integer·1-1000, defaults to 100.
GET/api/public/v1/stats
Aggregate totals plus the thresholds and switches a client needs, so your UI tracks the platform instead of hardcoding it. config.paidLaunchesEnabled and config.launchLabEnabled together say which launch path is live: the two-call /launches flow, the transaction you build yourself, or both. Read them before offering a launch button.