All Endpoints
All 347 endpoints, in the order of the sidebar. Open one for its request, a live response and what it does.
API Keys (9)
- POST
/v1/keysCreate new API key (1 active key on free tier, 5 on paid tiers) - GET
/v1/keys/{wallet}wallet signatureList API keys for wallet - DELETE
/v1/keys/{wallet}/{id}wallet signatureRevoke API key (first call revokes; calling again on a revoked key permanently deletes it) - PUT
/v1/keys/{wallet}/{id}wallet signatureRename an active API key (metadata only) - GET
/v1/keys/{wallet}/creditswallet signatureRemaining credits and billing info - GET
/v1/keys/{wallet}/usagewallet signatureUsage breakdown by key and endpoint - GET
/v1/keys/costsPer-endpoint credit costs - GET
/v1/keys/{wallet}/logswallet signatureRecent API request logs for a wallet - POST
/v1/feedbackAPI key (your own, not a shared one)Tell us an endpoint, field or parameter you needed and did not get, or a value that was wrong. Built for agents: point at the request with its X-Request-ID and pick a kind; there is no free-text field
Subscriptions (12)
- GET
/v1/keys/{wallet}/subscriptionwallet signatureSubscription details, available upgrades and partnerRequest { status: pending|approved|declined, creditUrl, requestedAt, decidedAt, reason } (null when never requested). billingCycle.end is the paid term end: 30 days for a monthly purchase, 365 for yearly. Buying the same tier again before it ends extends the term; an ended term downgrades the wallet and its keys to Free. - POST
/v1/keys/{wallet}/partner-requestwallet signatureApply for the free Partner tier (see usagePolicy.partner) - GET
/v1/keys/tiersAvailable API tiers with live XRP pricing. Developer, Business and Professional are bought for a term (30 days monthly, 365 yearly) and renew by buying the same tier again; Partner is by application. - GET
/v1/keys/packagesCredit top-up packages with pricing - POST
/v1/keys/purchaseCreate XRP payment request - POST
/v1/keys/verify-paymentVerify XRP payment and apply credits/tier - GET
/v1/keys/xrp/status/{txHash}Check XRP payment status - POST
/v1/keys/stripe/checkoutCreate Stripe checkout session - GET
/v1/keys/stripe/status/{sessionId}Check Stripe payment status - GET
/v1/keys/payment/{txHash}wallet signatureLook up processed payment by tx hash - GET
/v1/keys/payments/{wallet}wallet signaturePayment history for wallet - GET
/v1/keys/invoices/{paymentId}wallet signatureInvoice detail for a payment (sequential INV-YYYY-NNNNN number assigned on first fetch)
Token List (31)
- GET
/v1/tokensList all tokens with metrics - GET
/v1/rsiRSI indicator data - GET
/v1/tagsList all token tags - GET
/v1/sparkline/batchBatch sparklines for multiple tokens (cached 30s) - GET
/v1/tokens/slugsAll token slugs - POST
/v1/searchSearch tokens, NFTs, collections, and accounts. limit max 100; offset clamped so offset+limit <= 100 - GET
/v1/statsPlatform metrics - GET
/v1/stats/marketcap-historyDaily OMCF-filtered marketcap (same as homepage gMarketcap) back to 2021-09-26 - GET
/v1/token/analytics/marketDaily market metrics - POST
/v1/stats/metricsHistorical exchange rates by timestamps (XRP base) - GET
/v1/platform-statsAggregated trading stats grouped by platform key (numeric SourceTag, or canonical name for memo-identified platforms like SPYDEX) - GET
/v1/platform-stats/detail/{sourceTag}Top tokens traded via a single platform; summary covers ALL tokens for the platform/period, not just returned rows - GET
/v1/platform-stats/hourly/{sourceTag}Hourly breakdown for a single platform - GET
/v1/token/analytics/sourcesDistinct trade sourceTags with trader counts and volume totals - GET
/v1/token/analytics/tradersAll traders with cumulative stats - GET
/v1/token/analytics/traders/summaryTrader balance snapshots summary - GET
/v1/traders/rotationsCross-token trader rotation analytics - GET
/v1/whale-activity/feedGlobal whale tape — the newest notable trades across ALL tokens. `tokens` maps each event md5 to its display identity (name, user, slug, verified) - GET
/v1/newsDeveloper tier+ API keyLatest XRP news with sentiment - GET
/v1/news/searchDeveloper tier+ API keySearch news articles - GET
/v1/news/unapproved-sourcesDeveloper tier+ API keyNews sources pending approval - GET
/v1/news/sentiment-chartDeveloper tier+ API keyHistorical sentiment analysis chart - GET
/v1/mentions/searchDeveloper tier+ API keyAgent-friendly search across X/Twitter mentions with full-text + filters. Returns enriched tweets with token name, spam/impostor flags. - GET
/v1/mentions/feedDeveloper tier+ API keyGlobal social feed with trending tokens, top authors, activity chart, and impostor list - GET
/v1/mentions/spacesDeveloper tier+ API keyX Space hosts with full history and inferred schedule (days/hour UTC). Returns all known space hosts sorted by most recent activity. - GET
/v1/mentions/openapi.jsonDeveloper tier+ API keyOpenAPI 3.0 spec for the mentions endpoints (agent/MCP discoverable) - GET
/v1/mentions/timelineFull timeline of tracked influencer tweets (not just token matches) - GET
/v1/mentions/x-searchLive X/Twitter search via scraper (503 if scraper unavailable) - GET
/v1/mentions/identifyWho is behind a wallet or a token, searched on the web and X: leads with the sources that support them, not verified on-chain. Needs your own API key (not available anonymously); 20,000 credits per call - GET
/v1/mentions/grok-pulseGrok-generated XRPL insight topics with sentiment - GET
/v1/mentions/profile/{username}Latest X profile snapshot + change history for a handle
Token (33)
- GET
/v1/token/{id}Single token by id (see tokenFields for the token object dictionary) - GET
/v1/token/{md5}/relatedRelated projects: other tokens and NFT collections that share the audience of this token. An edge means wallets hold both and accounts post about both — it is NOT a wallet link and does not assert a shared operator (see /token/review for that). - GET
/v1/thumb/{md5}Token thumbnail (WebP) - GET
/v1/ohlc/{id}OHLC candlestick data - GET
/v1/sparkline/{id}Price sparkline - GET
/v1/stats/ratesExchange rates between tokens - GET
/v1/historyTrade history by token, account, or both - GET
/v1/whale-activity/{id}Whale social-proof trade events — top holders of major tokens, smart money, named accounts, whale-sized and fresh-wallet trades on this token - GET
/v1/creator-activity/{id}Token creator trading activity - GET
/v1/creator-activity/{id}/receiver/{address}Creator activity filtered by recipient address - GET
/v1/holders/info/{id}Holder concentration (top10/20/50/100 %) - GET
/v1/holders/graph/{id}Holder count history - GET
/v1/holders/list/{id}Paginated holder richlist with acquisition tracking - GET
/v1/holders/movers/{id}Top 24h buyers and sellers by holder balance delta - GET
/v1/holders/ranks/{id}Bulk account-to-rank lookup within the holder richlist - GET
/v1/holders/position/{id}/{address}One account's stake in a token — balance, share of supply and rank, without building the holder list - GET
/v1/holders/empty/{id}Zero-balance trustlines (dust/airdrop accounts; precomputed bot accounts excluded) - GET
/v1/traders/token-traders/{id}Top traders for a token - GET
/v1/token/analytics/token/{id}Token analytics - GET
/v1/token/analytics/token/{id}/tradersTop traders for token - GET
/v1/traders/rotations/{tokenId}Trader rotations for a specific token - POST
/v1/dex/quoteGet swap quote with routing / path finding (successor to POST /account/path-find). Exact-output via destination_value, or exact-input via source_value - GET
/v1/orderbookLive DEX orderbook - GET
/v1/pairsTrading pairs for a token - GET
/v1/pairs/{id}Trading pairs for a specific token - GET
/v1/ammList AMM pools - GET
/v1/amm/infoLive AMM pool info - GET
/v1/amm/liquidity-chartHistorical TVL chart data - GET
/v1/token/review/{id}Token risk assessment (score 1-10, lower = safer), and collapseChance: the chance in percent that the token loses 90% of its price or of the XRP in its pools within 60 days (a model graded on what later happened to past tokens), or { inactive: true } for a quiet token (a month old, under 3 trades a day) - GET
/v1/token/flow/{id}Creator allocation and distribution analysis (precomputed) - GET
/v1/mentions/{md5}Developer tier+ API keyPer-token mention feed with stats, top mentioners, and activity chart - POST
/v1/token/{md5}/metadatawallet signature (token creator/issuer or admin)Update token metadata. 3s per-token write cooldown. - POST
/v1/token/{md5}/imagewallet signature (token creator/issuer or admin)Upload token logo image. 3s per-token write cooldown.
Collection List (11)
- GET
/v1/nft/collectionsList NFT collections - GET
/v1/nft/collections/sparkline/batchBatch floor sparklines for multiple collections - GET
/v1/nft/stats/globalGlobal NFT market stats (same source as /nft/global-metrics) - GET
/v1/nft/global-metricsGlobal NFT metrics - GET
/v1/nft/analytics/marketNFT market analytics - GET
/v1/nft/analytics/marketplacesDistinct NFT marketplaces with trader counts - GET
/v1/nft/brokers/statsBroker fee statistics - GET
/v1/nft/scamNFT-scam insights snapshot — totals (XRP/token drained, NFTs flagged, scam wallets), monthly timeline, top scammers/victims, tokens drained with XRP values, recent drain feed, and scamIssuersList (flat array of every flagged-issuer address for client-side filtering). For per-NFT checks, use GET /nft/:nftId — it already returns scam + scamType. - GET
/v1/nft/analytics/tradersNFT trader leaderboard - GET
/v1/nft/analytics/rotationsNFT collection rotation analytics - GET
/v1/nft/activityRecent NFT activity feed
Collection (26)
- GET
/v1/nft/collections/{slug}Collection details - GET
/v1/nft/collections/resolveResolve a collection from its XLS-20 on-chain identity (issuer account + taxon) to the full collection object incl. slug/cid. Every {slug} param on /nft/* endpoints ALSO accepts this identity directly as "<issuer>:<taxon>" (e.g. /nft/collections/rLyr...:1234/history) - GET
/v1/nft/collections/{slug}/metricsCollection metrics snapshot (floor + deltas, volumes, sales, owners, listings) - GET
/v1/nft/collections/{slug}/relatedRelated projects: other tokens and NFT collections that share the audience of this collection. An edge means wallets hold both and accounts post about both — it is NOT a wallet link and does not assert a shared operator (see /token/review for that). - GET
/v1/nft-collection-thumb/{hash}NFT collection cover image - GET
/v1/nft/collections/{slug}/nftsNFTs in collection - GET
/v1/nft/collections/{slug}/traitsCollection trait breakdown - GET
/v1/nftList NFTs - GET
/v1/nft/collections/{slug}/ohlcCollection OHLC chart data - GET
/v1/nft/collections/{slug}/ohlc/{date}/salesNFTs sold on specific date - GET
/v1/nft/collections/{slug}/floor/historyFloor price history - GET
/v1/nft/collections/{slug}/sparklineCollection floor price sparkline - GET
/v1/nft/floor/history/{cid}Floor history by collection ID - GET
/v1/nft/collections/{slug}/listings/historyDaily listed-count history merged with floor/volume/sales - GET
/v1/nft/collections/{slug}/holders/historyDaily holder-count history - GET
/v1/nft/collections/{slug}/mintsMint counts over time with cumulative total - GET
/v1/nft/collections/{slug}/historyCollection activity history - GET
/v1/nft/holders/{slug}Collection holder list - GET
/v1/nft/holders/{slug}/distributionHolder distribution by tier (whales/orcas/dolphins/fish/shrimp) - GET
/v1/nft/collections/{slug}/ownershipOwnership distribution: total owners and the top holders, with how many NFTs each holds - GET
/v1/nft/collections/{slug}/tradersTop traders - GET
/v1/nft/analytics/collection/{slug}/tradersTop traders for collection - GET
/v1/nft/analytics/rotations/{cid}NFT collection rotations by collection id - GET
/v1/nft/collections/{slug}/orderbookCollection orderbook - GET
/v1/nft/collections/{slug}/listings/distributionListed-price distribution vs floor (buckets at 1x/1.25x/1.5x/2x/3x/5x/10x floor), floor/median/avg/max - POST
/v1/nft/collections/{slug}/metadatawallet signature (collection account/issuer or admin)Edit collection metadata
NFT (10)
- GET
/v1/nft/{nftId}NFT by NFTokenID (64-char hex) - GET
/v1/nft-thumb/{hash}NFT image/thumbnail (original format, CSP-sandboxed for SVG) - GET
/v1/nft/{nftId}/offersBuy/sell offers for NFT - GET
/v1/nft/offers/buy/{nftId}Live buy offers - GET
/v1/nft/offers/sell/{nftId}Live sell offers - GET
/v1/nft/historyNFT transaction history - GET
/v1/nft/history/{nftId}Live NFT history - GET
/v1/nft/transactions/{hash}NFT transaction by hash - GET
/v1/nft/pin/status/{hash}IPFS pin status by hash - POST
/v1/nft/pinPin NFT media to platform IPFS node (resolves hash from NFT URI if only NFTokenID given)
Account (69)
- GET
/v1/account/info/{account}Account info with DB enrichment - GET
/v1/account/ancestry/{account}Account ancestry tree - POST
/v1/account/namesResolve account display names + verification status in bulk (max 50) - GET
/v1/account/search-by-nameSearch accounts by display name / X profile - GET
/v1/account/balance/{account}XRP balance with reserves - POST
/v1/account/balanceBatch balance lookup (max 100) - GET
/v1/account/balance/pair/{account}Token pair balances - GET
/v1/account/trustlines/{account}Account trustlines - GET
/v1/trustlines/{account}Trustlines with token values - GET
/v1/account/trustline/{account}/{issuer}/{currency}Single trustline lookup - GET
/v1/account/currencies/{account}Sendable/receivable currencies - GET
/v1/account/gateway/{account}Gateway balances (issuer totals) - GET
/v1/account/snapshot/{account}Point-in-time XRP + token holdings valued in XRP at a historical ledger (resolve time to ledger via /ledger/at first) - GET
/v1/account/offers/{account}Open DEX offers - GET
/v1/nft/account/{account}/offersNFT offers owned + incoming buy/sell offers (top 500 newest owned NFTs scanned; incomingOffersTruncated flag; fraud/fraudType detection) - GET
/v1/account/tx/{account}Full transaction history - GET
/v1/account-tx-explain/{account}Wallet activity analysis and profiling (20 credits) - GET
/v1/account/nfts/{account}NFTs owned by account - GET
/v1/nft/account/{account}/nftsNFTs/collections owned with portfolio value - GET
/v1/nft/holders/address/{account}Collections/NFTs held by wallet - GET
/v1/user/{account}/nftsNFTs owned (with thumbnails) - GET
/v1/traders/{account}Full trader profile - GET
/v1/traders/{account}/rotationsPer-account token rotation flow (XRP bought/sold per token in window) - GET
/v1/token/analytics/trader/{address}Trader cumulative stats - GET
/v1/token/analytics/trader/{address}/tokensTrader token-specific metrics - GET
/v1/token/analytics/trader/{address}/historyTrader volume history - GET
/v1/token/analytics/trader/{address}/tradesTrader trade history - GET
/v1/account/token-stats/{account}/{md5}Per-token trading stats for account - GET
/v1/account/recent-trades/{account}Recent trades for an account - GET
/v1/lp-positions/{account}AMM LP positions with impermanent loss analysis - GET
/v1/nft/analytics/trader/{account}Single NFT trader profile - GET
/v1/nft/analytics/trader/{account}/historyTrader daily history - GET
/v1/nft/analytics/trader/{account}/collectionsTrader per-collection breakdown - GET
/v1/nft/analytics/trader/{account}/tradesTrader trade history - GET
/v1/nft/analytics/trader/{account}/rotationsNFT trader rotations history - GET
/v1/nft/traders/{account}/volumeTrader volume stats - GET
/v1/account/objects/{account}Account objects - GET
/v1/account/noripple/{account}NoRipple check - GET
/v1/account/channels/{account}Payment channels - GET
/v1/account/checks/{account}Check ledger objects with live funding status for cashable checks - GET
/v1/account/deposit-authorizedCheck deposit authorization - GET
/v1/watchlistwallet signatureGet token watchlist - GET
/v1/watchlist/nftwallet signatureGet NFT watchlist - POST
/v1/watchlistwallet signatureAdd/remove token on watchlist - POST
/v1/watchlist/nftwallet signatureAdd/remove NFT on watchlist - GET
/v1/user/tiersUser tiers with pricing (member, vip, nova, diamond, verified) - GET
/v1/user/{account}Get user profile - POST
/v1/user/{account}wallet signatureCreate user profile - GET
/v1/user/{account}/perksResolved perks (tier + roles merged) - GET
/v1/user/{account}/badgesAll unlocked badges - GET
/v1/user/{account}/labelswallet signature (owner only)Get your own wallet labels — private data, owner-authenticated - GET
/v1/user/badges/metaBadge system metadata - GET
/v1/user/badges/{badge}/holdersUsers holding a specific badge - PUT
/v1/user/{account}wallet signatureUpdate username (VIP+ required to change an existing one; tier field is admin-only) - PUT
/v1/user/{account}/display-badgewallet signatureSet displayed badge (must be unlocked) - GET
/v1/user/{account}/labels/watchedwallet signature (owner only)Only actively-watched wallet labels — private data, owner-authenticated - POST
/v1/user/{account}/labelswallet signatureCreate/update a wallet label (per-tier cap; 402 when limit reached) - PUT
/v1/user/{account}/labels/{wallet}/watchwallet signatureToggle live-watch on a label (per-tier watcher cap) - DELETE
/v1/user/{account}/labels/{wallet}wallet signatureDelete a wallet label - PUT
/v1/user/{account}/avatarwallet signatureSet avatar from an owned NFT - POST
/v1/user/tier/purchaseCreate XRP invoice for user tier (expires 30 min) - GET
/v1/user/tier/verify/{invoiceId}Verify tier XRP payment (scans fee collector; expired invoices honored if exact payment exists) - POST
/v1/user/tier/stripeStripe checkout for user tier - GET
/v1/user/tier/stripe/{sessionId}Check Stripe tier payment status - POST
/v1/user/tier/gift/purchaseGift a tier via XRP invoice - GET
/v1/user/tier/gift/verify/{invoiceId}Verify gift tier payment - POST
/v1/user/tier/gift/stripeGift a tier via Stripe - POST
/v1/account/resolveBatch-resolve admin-verified destination identity (name, logo, tagRequired). Only verified accounts are returned — absence means unknown, which is the safety signal. - GET
/v1/account-thumb/{address}Admin-set account logo image bytes (404 when unset)
XRPL Node (15)
- GET
/v1/ledgerCurrent validated ledger info - GET
/v1/ledger/{index}Ledger by index with transactions - GET
/v1/ledger/entryFetch specific ledger object - GET
/v1/tx/{hash}Transaction by hash (64-char hex) - GET
/v1/ledger/atResolve a datetime to the last ledger closed at or before it (binary search). Close times are rounded to 10 seconds, so a ledger often closes exactly on the time asked. For a day [start, end): its first ledger is the one returned for start when that closed exactly at start, else the next; its last is the one returned for end, or the one before it when that closed exactly at end - POST
/v1/submitSubmit signed transaction - POST
/v1/submit/previewDry-run transaction preview (400 on invalid tx input); sender_after = simulated sender position {balance, reserve, spendable}, null when no sender AccountRoot change - POST
/v1/rpcThe XRP Ledger's own READ commands against MAINNET — the twin of POST /testnet/rpc, so a developer who learned the sandbox changes the prefix and nothing else. Reads only, answered as the node answers any client: feature without vetoed, ledger without full or accounts, the node's non-admin page limits, server_info without host name or ports (submitting is POST /submit); the node's in-band error (actNotFound, entryNotFound) rides in result with a 200, as on the node - GET
/v1/submit/typesEvery transaction type POST /submit relays, each with an example: examples[type] = { json (the reference example, unsigned), txid (a real Mainnet transaction of that type, when the reference names one), summary } - GET
/v1/submit/feeCurrent network fees - GET
/v1/submit/account/{address}/sequenceAccount sequence number - GET
/v1/submit/account/{address}/inbound-tagsDestination-tag usage of recent inbound payments (send-screening advisory; tagsExpected = recent deposits overwhelmingly tagged) - GET
/v1/submit/tx/{hash}Lookup a submitted XRPL transaction by hash - GET
/v1/submit/ledger-entry/check/{checkId}Lookup a Check ledger entry by id - GET
/v1/tx-explain/{hash}Human-readable transaction explanation (20 credits)
WebSocket (17)
- WS
wss://api.xrpl.to/ws/sync/Multi-token market sync (handshake first, token data via updates) - WS
wss://api.xrpl.to/ws/token/{md5}Single token real-time updates - WS
wss://api.xrpl.to/ws/ohlc/{md5}OHLC candlestick streaming - WS
wss://api.xrpl.to/ws/history/{md5}Trade history streaming - WS
wss://api.xrpl.to/ws/holders/{id}Token holder richlist streaming (id = token md5) - WS
wss://api.xrpl.to/ws/orderbookDEX orderbook depth streaming - WS
wss://api.xrpl.to/ws/ledgerLedger close stream - WS
wss://api.xrpl.to/ws/trustlines/{account}Account trustlines streaming - WS
wss://api.xrpl.to/ws/newsReal-time news feed - WS
wss://api.xrpl.to/ws/account/balance/{account}Account XRP balance streaming - WS
wss://api.xrpl.to/ws/account/balance/pair/{account}Token pair balance streaming - WS
wss://api.xrpl.to/ws/account/offers/{account}Open DEX offers streaming - WS
wss://api.xrpl.to/ws/amm/infoLive AMM pool info streaming (5s poll) - WS
wss://api.xrpl.to/ws/account/watch/{account}Live account activity feed (parsed tx events) - WS
wss://api.xrpl.to/ws/account/tx/{account}Raw account transaction stream (same shape as GET /account/tx) - WS
wss://api.xrpl.to/ws/creator/{identifier}Creator activity stream (identifier = token md5 or creator address) - WS
wss://api.xrpl.to/ws/socialX/Twitter mentions feed
Scam Blocklist (9)
- GET
/v1/scams/addressesTHE canonical scam blocklist: top-level addresses[] is the deduped union of every blocked account (drainers, dust/token spam, phishing, impersonation, fake airdrops, NFT-scam issuers). Check a Destination/counterparty against it BEFORE a user signs. Real-time, never cached (Cache-Control: no-store) — poll every ~5s. Per-category sections (nftPhishing, paymentDrain) are additive metadata and may overlap; addresses is deduped. - GET
/v1/scamsFull scam report with abuse statistics - GET
/v1/scams/tokensTokens issued by one named issuer. issuer is required — this endpoint lists an issuer's tokens, it does not classify them. For a scam verdict use /scams/addresses or /scams/check/{account}. - GET
/v1/scams/domainsKnown scam domains with registrar info - GET
/v1/scams/nftNFT scam accounts and recent sales - GET
/v1/scams/check/{account}Check if account is a known scam. is_scam is true ONLY for accounts on the verified blocklist or confirmed scam NFT issuers — never inferred from an account's token names or token count. Also returns first_seen/age_seconds/new_account (advisory counterparty freshness, independent of is_scam) - GET
/v1/scams/report-scamList community scam reports - GET
/v1/scams/report/{domain}Confirmations for a reported domain - POST
/v1/scams/reportReport a scam domain
Token Launch (19)
- POST
/v1/launch-tokenCreate new token with AMM - GET
/v1/launch-token/status/{sessionId}Launch session status - GET
/v1/launch-token/queue-status/{sessionId}Queue position status - POST
/v1/launch-token/authorizeAuthorize trustline (anti-snipe) - GET
/v1/launch-token/auth-info/{issuer}/{currency}Token authorization info - GET
/v1/launch-token/check-auth/{issuer}/{currency}/{address}Check if address is authorized - GET
/v1/launch-token/calculate-fundingCalculate required XRP funding (400 on invalid params) - GET
/v1/launch-token/my-launchesyour own API key (the shared browser key gets 403)Launches created with your API key, with total count (a wallet lists its own with /launch-token/my-launches-wallet) - POST
/v1/launch-token/{sessionId}/imageUpload token image (base64, max 500KB) - GET
/v1/launch-token/my-launches-walletwallet signatureToken launches by wallet with total count - GET
/v1/launch-token/vesting-by-token/{issuer}/{currency}Vesting schedule for a launched token (response includes truncated flag when escrow list is incomplete) - GET
/v1/presaleList presales (open by default) - POST
/v1/presaleCreate a presale (issuer + sale wallets are provisioned server-side) - POST
/v1/presale/{id}/joinJoin — checks the wallet can fund the escrow above its reserve, returns the conditional EscrowCreate to sign; an unconfirmed slot may join again, an escrow that already landed is confirmed instead - POST
/v1/presale/{id}/confirmConfirm a signed escrow contribution - POST
/v1/presale/{id}/finalizeFinalize after deadline/goal: capture escrows, deliver claim Checks, seed AMM, blackhole wallets - GET
/v1/presale/{id}Presale status (public view: raise, socials, confirmed contributors, vesting; refreshes claim states on success) - GET
/v1/presale/{id}/claim-infoPer-buyer claim (CheckCash) or refund (EscrowCancel) transaction to sign - GET
/v1/presale/{id}/refund-infoAlias of claim-info
Verification (5)
- GET
/v1/verify/pricingVerification tier pricing - GET
/v1/verify/stripe/status/{sessionId}Check Stripe verification payment status; fulfills if webhook was missed - POST
/v1/verify/requestCreate XRP invoice for token/collection verification - POST
/v1/verify/confirmConfirm verification payment - POST
/v1/verify/stripe/checkoutStripe checkout for verification
Tweet Verify (9)
- GET
/v1/tweet/token/{md5}Tweet verifications for a token (md5) or NFT collection (slug) - GET
/v1/tweet/account/{account}Tweet verifications by account - POST
/v1/tweet/verifywallet signatureVerify a promotional tweet and credit the wallet. One verification per wallet every 2 hours, up to 6 tokens per X account per UTC day, and a tweet earns from one pool. - GET
/v1/promotion/pool/{md5}Get promotion pool info (status, amounts, expiry) - GET
/v1/promotion/reward/{md5}/{account}Get reward status for a token - GET
/v1/promotion/leaderboard/{md5}Per-token promoter leaderboard - GET
/v1/promotion/profile/{account}Global promotion stats - GET
/v1/promotion/tiersPromoter tier metadata - POST
/v1/promotion/claimClaim earned promotion rewards (paid in XRP)
Boost (10)
- GET
/v1/boost/quote/{md5}Get quote for boosting a token - POST
/v1/boost/purchaseCreate boost payment request. `ad` is the Top spot's ad line: one sentence (max 70 chars) and a button word (max 14), linking only to the token's own website - GET
/v1/boost/verify/{invoiceId}Verify payment and apply boost - POST
/v1/boost/stripeCreate Stripe checkout for boost (`ad` as in POST /boost/purchase) - GET
/v1/boost/stripe/{sessionId}Check Stripe boost payment status - GET
/v1/boost/nft/quote/{slug}Quote price for boosting an NFT collection (slug also accepts "<issuer>:<taxon>") - POST
/v1/boost/nft/purchaseInitiate XRP-paid NFT collection boost (`ad` as in POST /boost/purchase, linking only to the collection's own website) - GET
/v1/boost/nft/verify/{invoiceId}Verify NFT boost payment - POST
/v1/boost/nft/stripeInitiate Stripe-paid NFT collection boost (`ad` as in POST /boost/nft/purchase) - GET
/v1/boost/nft/stripe/{sessionId}Check Stripe checkout status for NFT boost
Bridge (6)
Testnet (21)
- GET
/v1/testnet/fixturesWhat the simulation keeps alive on Testnet: live accounts, its tokens (tokens[]: name, currency, issuer, holders, amm, role — stablecoin | deep (the high-liquidity pool) | volatile (a thin pool, swung every round) | crowd — with a note saying what each does, and peg_usd on the stablecoin), its collections (collections[]: name, issuer, taxon, role blue-chip | drop, note, items), an NFT with offers, one of every ledger object, and a real transaction of each type (catalogue[]: id, kind, about, result, hash, and tx — the JSON it sent, without fee, sequence, expiry or signature, a working template for that variation) — start here - GET
/v1/testnet/healthBoth collectors' head ledger against the network, and whether that is current - GET
/v1/testnet/tokensTestnet tokens. tvl is the token's XRP pool valued on both sides (twice its XRP reserve); a token with no XRP pool has none - GET
/v1/testnet/tokens/{md5}A Testnet token with its AMM pool - GET
/v1/testnet/tokens/{md5}/holdersHolders of a Testnet token, largest first - GET
/v1/testnet/tokens/{md5}/offersThe order book of a Testnet token against XRP - GET
/v1/testnet/tokens/{md5}/tradesFills of a Testnet token, newest first - GET
/v1/testnet/tokens/{md5}/ohlc5-minute candles of a Testnet token - GET
/v1/testnet/accounts/{address}A Testnet account as the collector last saw it, with its trust lines, resting offers and last 20 trades - GET
/v1/testnet/ammTestnet AMM pools, deepest first. A pool of two tokens has token and token2 (in a fixed order, by code) and xrp 0; its spot is token2 per token - GET
/v1/testnet/amm/{account}A Testnet AMM pool by its account - GET
/v1/testnet/nft/collectionsTestnet NFT collections, by issuer and taxon. volume/sales are all-time XRP sales; vol24h/sales24h the last 24 h, recounted every minute - GET
/v1/testnet/nft/collections/{id}A Testnet NFT collection - GET
/v1/testnet/nft/collections/{id}/nftsThe live NFTs of a Testnet collection - GET
/v1/testnet/nft/historyTestnet NFT events, newest first - GET
/v1/testnet/nft/{id}A Testnet NFT with the offers standing on it - GET
/v1/testnet/nft/{id}/offersThe offers standing on a Testnet NFT, split by side - GET
/v1/testnet/{address}Live Testnet XRP balance, reserve, sequence and settings of an account, straight from the network - POST
/v1/testnet/rpcThe XRP Ledger's own READ commands against our Testnet node — the half of Testnet that is not in the index: account_objects, book_offers, amm_info, ledger_entry, server_info and the rest. Reads only, answered as the node answers any client: feature without vetoed, ledger without full or accounts, the node's non-admin page limits, server_info without host name or ports (submitting is POST /testnet/submit); the node's in-band error (actNotFound, entryNotFound) rides in result with a 200, as on Mainnet - POST
/v1/testnet/submitSubmit a SIGNED transaction to Testnet through our own node — the contract of POST /submit with the prefix changed. Nothing here signs or holds a seed; fund an account with POST /faucet first - GET
/v1/testnet/tx/{hash}A Testnet transaction and its final result, from our node: validated, the ledger it closed in, result (meta.TransactionResult), the transaction and its meta. 404 until the node has seen it
Tools (5)
- GET
/v1/healthService health check with per-service latency - GET
/v1/openapi.jsonOpenAPI 3.1 spec for the whole API (270+ paths) - GET
/v1/docsThis documentation (JSON). Browsers (Accept: text/html) are redirected to the human-readable docs. - GET
/v1/embed/{md5}Embeddable candlestick chart (HTML iframe) - GET
/v1/embed/score/{md5}Embeddable token safety-score badge (HTML iframe)
Charts (1)
Market (13)
- GET
/v1/market/fundingPerpetual funding rates and open interest on OKX, Binance, Bybit, Hyperliquid, Bitget and Gate: each venue's rate for its own period (intervalHours: Hyperliquid pays every hour) and the same rate over 8 hours (fundingRate8h, comparable across venues), the total open interest, long/short ratios (all accounts on OKX, Binance, Bybit and Gate; top traders by accounts and by position size on OKX and Binance) and taker buy/sell volume over the last full hour (Binance, OKX). Positive funding = longs pay shorts. longShort is the OKX all-accounts ratio, kept for older clients - GET
/v1/market/funding-historyFunding and open interest over the last days: the funding rates settled per UTC day on Binance, OKX, Bybit and Hyperliquid (summed, with the number of payments), and each venue's daily open-interest readings on Binance, OKX and Bybit at the venue's own timestamps - GET
/v1/market/liquidationsLiquidations on perpetuals. OKX (top level): its latest filled liquidation orders (up to 100): longs and shorts liquidated, sizes and USD values, the largest ones. Gate (gate): hourly totals by side over the last 24 hours and 7 days, each UTC day of the week and the three heaviest hours. Streams (streams): every liquidation Binance, Bybit and OKX streamed, collected by xrpl.to since 5 October 2026: totals by venue and side over 24 hours and 7 days, per UTC day, the day's largest, and whether each venue's collector is connected (Binance streams at most one per symbol per second, a floor). A source that does not answer carries unavailable: true - GET
/v1/market/liquidation-levelsESTIMATED liquidation levels (a heatmap): where positions opened in the last 7 days on Binance, Bybit and OKX would be liquidated, in 1% price bands up to 25% either side (longs below the price, shorts above), from hourly open-interest changes and an assumed leverage mix stated in the result; levels the price has crossed are dropped. A model, not a reading of anyone's positions - GET
/v1/market/globalThe whole crypto market (all venues): total market cap, 24h volume, BTC/ETH/XRP/USDT/USDC dominance, and XRP rank, market cap, volume and all-time high - GET
/v1/market/tickersAn XRPL token's markets on other venues, from CoinGecko: every market it tracks for the token (matched on the token's currency and issuer, never on a ticker symbol), busiest first, each with its last price in USD, 24h volume and whether its exchange is centralized (CoinGecko's own flag; null until looked up). listed false when CoinGecko has no coin for the token - GET
/v1/market/korea-premiumXRP's price on Upbit against Binance: Upbit KRW-XRP converted at Upbit's own KRW-USDT, against Binance XRP/USDT, and the premium in percent (positive: XRP costs more in Korea). No bank FX rate involved - GET
/v1/market/coinbase-premiumXRP's price on Coinbase against Binance: Coinbase XRP-USD converted at Coinbase's own USDT-USD, against Binance XRP/USDT, and the premium in percent (positive: XRP costs more on Coinbase, where US buyers trade) - GET
/v1/market/xrpl-cex-rankingXRPL-issued tokens ranked by how many centralized exchanges list them: every XRPL token CoinGecko tracks, with the exchanges named (CoinGecko's own centralized flag) and stale markets marked. Built in the background daily; building:true until the first ranking after a restart - GET
/v1/market/etf-flowsUS spot XRP ETFs from SoSoValue: daily net inflow, value traded, net assets and cumulative net inflow for the last 20 US trading days, the last week's total, each fund's latest day, and an estimate of the XRP held (net assets over XRP's Binance daily close) - GET
/v1/market/predictionsActive Polymarket prediction markets on a topic, busiest first, with each outcome priced as a probability - GET
/v1/market/historyDaily closes of a major crypto asset from Binance spot (USDT, UTC days; the last is today's, still open) - GET
/v1/market/macroLatest US macro readings from FRED: effective fed funds rate, 10-year Treasury yield, CPI and M2 year over year, unemployment, jobless claims, broad dollar index. With id: every observation of that series over the last months
Xaman (3)
- POST
/v1/xaman/payloadxrpl.to platform key (our own surfaces only; 403 otherwise)Create a Xaman sign request — returns { uuid, next.always (open in Xaman), refs.qr_png, refs.websocket_status }. xrpl.to surfaces only (platform key); user_token is refused - GET
/v1/xaman/payload/{uuid}Sign request status (live, never cached): meta.signed/expired/cancelled, response.account (SignIn answer), response.txid (submitted transaction) - DELETE
/v1/xaman/payload/{uuid}xrpl.to platform key (our own surfaces only; 403 otherwise)Cancel an unsigned sign request (xrpl.to surfaces only)
Referrals (10)
- GET
/v1/referral/{address}Get soldier profile - GET
/v1/referral/{address}/statsBadge progress and tier stats - GET
/v1/referral/leaderboard/{type}Leaderboard - GET
/v1/referral/meta/tiersTier definitions - GET
/v1/referral/meta/badgesBadge definitions - GET
/v1/referral/meta/missionsMission quest chains - GET
/v1/referral/meta/seasonSeasonal leaderboard rewards - GET
/v1/referral/{address}/earningsReferral earnings breakdown for an address - GET
/v1/referral/{address}/feesReferral fee history; response includes asReferrerTotal/asRecruitTotal for paging - GET
/v1/referral/resolve/{code}Resolve a referral code to validity/owner