XRPL Token API - Prices, Lists & Analytics Endpoints
Every token on the XRP Ledger, 20,468 of them, through five calls: the list, one token, its price history, its holders and where its supply went. Each example below is a real request and the response it got.
The token list
Every token, sorted by any field the docs list: here, the two with the most XRP traded in 24 hours.
curl "https://api.xrpl.to/v1/tokens?sort=vol24hxrp&order=desc&limit=2"
{
"success": true,
"total": 20468,
"tokens": [
{
"md5": "0dd550278b74cb6690fdae351e8e0df3",
"name": "RLUSD",
"issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
"currency": "524C555344000000000000000000000000000000",
"exch": 0.762471760532176,
"usd": "0.99909343433692883896",
"vol24hxrp": 3092792.208121,
"pro24h": -1.4321792493104502,
"holders": 67589,
"marketcap": 777906798.0382205
},
{
"md5": "1c54f16ec1b45eef983f202b9954999b",
"name": "USDC",
"issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
"currency": "5553444300000000000000000000000000000000",
"exch": 0.7625438462711606,
"usd": "0.9991878908037212248",
"vol24hxrp": 312374.708854,
"pro24h": -1.491523047051202,
"holders": 10399,
"marketcap": 3743135.2210638947
}
]
}Other filters: tag (see GET /tags), filter for a name, show_new=true for tokens created in the last 7 days, and lightweight=true for a smaller response.
One token
A token is named by its md5: md5 of the issuer, an underscore and the currency code. For RLUSD, md5(“rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De_524C55534400…”) is 0dd550278b74cb6690fdae351e8e0df3. Its slug, rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De-524C555344000000000000000000000000000000, works too.
curl "https://api.xrpl.to/v1/token/0dd550278b74cb6690fdae351e8e0df3?skip_metrics=true"
{
"success": true,
"token": {
"md5": "0dd550278b74cb6690fdae351e8e0df3",
"name": "RLUSD",
"user": "Ripple",
"issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
"currency": "524C555344000000000000000000000000000000",
"exch": 0.762471760532176,
"usd": "0.99909343433692883896",
"marketcap": 777906798.0382205,
"supply": "1020243421.8616456358",
"holders": 67589,
"trustlines": 100271,
"tvl": 3687370.976908,
"origin": "Ripple",
"dateon": 1723248000000
}
}Price history
Candles from one minute to one week, in XRP or in a fiat currency. Each candle is [time, open, high, low, close, volume]:
curl "https://api.xrpl.to/v1/ohlc/0dd550278b74cb6690fdae351e8e0df3?range=7D&interval=1d&vs_currency=USD"
{
"success": true,
"interval": "1d",
"vs_currency": "USD",
"ohlc": [
[
1792195200000,
1.00104959,
1.00231477,
0.986912971,
1.00062786,
2230343.13
],
[
1792281600000,
1.00062786,
1.00197055,
0.998696847,
1.0001803,
2948624.92
],
[
1792368000000,
1.0001803,
1.00084711,
0.996560033,
0.999093434,
280936.92
]
]
}Holders
The ranked list of holders, with each one’s balance and share of the supply:
curl "https://api.xrpl.to/v1/holders/list/0dd550278b74cb6690fdae351e8e0df3?limit=3"
{
"success": true,
"length": 67589,
"richList": [
{
"id": 1,
"account": "rEq4b7nbL2ep44Fgk9bPwpynGRjyESpf5B",
"balance": 149850041.6700765,
"holding": 14.68
},
{
"id": 2,
"account": "rDgBDkeTe5rbtRn2DJP8kHvQTuw28h8UVr",
"balance": 131512039.6718009,
"holding": 12.89
},
{
"id": 3,
"account": "rKWoRYn65imVUUF2Hmtpp78E6NAjTf6ExL",
"balance": 105000000.0000102,
"holding": 10.29
}
]
}/holders/info/{id} for the top-10 to top-100 shares, /holders/graph/{id} for the holder count over time, and /holders/position/{id}/{address} for one account’s rank.Where the supply went
GET /token/flow/{id} traces the supply from the creator’s wallet onward: how much the creator kept, what went to pools and exchanges, and what was spread to other wallets. It is worked out ahead of time for every token, so it answers at once.
Search
To find a token by name, send the text in a POST body; the same call also finds NFT collections and accounts:
curl -X POST "https://api.xrpl.to/v1/search" -H "Content-Type: application/json" -d '{"search":"rlusd"}'The token search guide covers it in full.
Questions
- How do I get the price of an XRP Ledger token?
- GET /v1/token/{id} returns the token with its price in XRP (exch) and in US dollars (usd). The id can be the token’s md5, its slug, or issuer and currency.
- How is a token’s md5 made?
- md5 of the issuer address, an underscore, and the currency code as the ledger stores it: md5(issuer + "_" + currency). It is the same id on every xrpl.to endpoint and page.
- Is the token API free?
- Yes to start, with no key; a free key raises the limits. Any app that shows the data must credit xrpl.to visibly beside it.