# AI Integration
Source: https://docs.solanatracker.io/ai
Use Solana Tracker documentation with AI assistants like Cursor, ChatGPT, and Claude — copy markdown, paste prompts, and connect via MCP and llms.txt.
Solana Tracker documentation is fully available for AI consumption. Whether you're building AI agents, using LLM-powered coding assistants, or just want quick answers — we've got you covered.
***
## LLM-Ready Documentation
We provide machine-readable versions of our entire documentation for use with AI models, agents, and tools like Cursor, Claude Code, Claude, ChatGPT, and more.
Lightweight summary of all endpoints, parameters, and resources. Ideal for context-limited models.
Complete documentation in plain text. Best when you need full detail and have a large context window.
### When to use which
| File | Size | Best for |
| - | - | - |
| `llms.txt` | Compact | Quick lookups, smaller context windows, coding assistants |
| `llms-full.txt` | Full | Deep integration work, building agents, comprehensive reference |
***
## AI Chatbot
Every page on this documentation site includes an **AI-powered search and chat** built right in. Click the search bar or press `⌘K` to ask questions like:
* *"How do I get the price of a token?"*
* *"What parameters does the swap endpoint accept?"*
* *"Show me how to stream new tokens via WebSocket"*
The chatbot has full context of all Solana Tracker APIs — Data API, Swap API, Datastream, Solana RPC, and Yellowstone gRPC.
***
## Use with AI Coding Assistants
### Cursor / Claude Code
Add the documentation as context by referencing the URL directly:
```
https://docs.solanatracker.io/llms-full.txt
```
Or add it to your project's AI instructions or system prompt:
```
Use https://docs.solanatracker.io/llms.txt as reference for all Solana Tracker API calls.
```
### ChatGPT / Claude
Paste the contents of `llms.txt` or `llms-full.txt` into your conversation, or provide the URL when using web-enabled models.
### Custom AI Agents
Fetch the documentation programmatically for your agent's knowledge base:
```bash theme={null}
curl -s https://docs.solanatracker.io/llms.txt
```
```bash theme={null}
curl -s https://docs.solanatracker.io/llms-full.txt
```
Cache these files locally when possible. Do not fetch them on every prompt or every tool call.
***
## What's Included
Both files cover the full Solana Tracker API surface:
* **Data API** — Token prices, holders, trades, chart data, stats, and more
* **Swap API** — Quote and execute swaps across Solana DEXs
* **Raptor DEX Aggregator** — Next-gen swap routing
* **Datastream** — Real-time WebSocket streams for tokens, wallets, and events
* **Solana RPC** — Standard and custom RPC methods
* **Yellowstone gRPC** — High-performance Geyser streaming
# Changelog
Source: https://docs.solanatracker.io/changelog
New features, improvements, and fixes across Solana Tracker.
October 8, 2026
New
Raptor Swap API
## Raptor V1: 71 DEXes, JIT routing, and out of beta
Raptor V1 is live on mainnet. It adds 47 DEXes and JIT routing, and the hosted API has a new address.
* **47 new DEXes.** Raptor now routes across 71, including MetaDAO, Hylo, Sanctum, JupLend, Solayer and Invariant. See the [full list](/raptor/overview#supported-dexs).
* **JIT routing, on by default.** A JIT swap carries several candidate pools and chooses between them on-chain when it executes, using live prices. `minAmountOut` is still enforced. Set `jitRouting` to `true` or `false` to force it on or off.
* **Token-2022 transfer fees in the quote.** If a token charges a transfer fee, the quote includes `tokenTransfers` with `depositFee`, `deliveryFee` and `netOutput`.
* **Error codes.** No route now returns `422` instead of `500`, and an invalid amount returns `400`. Both are JSON.
### Update your base URL
The hosted API moved from `raptor-beta.solanatracker.io` to `raptor.solanatracker.io`. Change the base URL in your code. The program ID is still `RaptorD5ojtsqDDtJeRsunPLg6GvLYNnwKJWxYE4m87`.
```diff theme={null}
- https://raptor-beta.solanatracker.io
+ https://raptor.solanatracker.io
```
September 18, 2026
New
Data API
Datastream
## Swaps, LP moves, and wallet labels in one feed
Track buys and sells alongside LP adds and removes. See which wallets are adding liquidity, which are pulling it, and where it all lands in your trade feed.
After: swaps and LP activity in one feed, with wallet labels and All / Swaps / Liquidity filters.
Before: a swaps-only feed with wallet addresses.
* **Stream LP moves.** Five new liquidity room scopes: token, token + pool, token + pool + wallet, pool, or wallet.
* **Build All / Swaps / Liquidity tabs.** Query `events=all`, `events=trades`, or `events=liquidity` on all four token trade endpoints. Set `limit` to load up to 500 rows per page.
* **Put a name to the wallet.** Use `enrich=identity` on REST or `:enriched` on live rooms for available KOL profiles, dev labels, SNS names, and trading platforms.
* **Keep LP amounts exact.** Adds and removes include the pool and each token's amount as a decimal string. Liquidity stays in token units, separate from swap volume.
```http theme={null}
GET /trades/{token}?events=all&enrich=identity&limit=100
```
```json theme={null}
{ "type": "join", "room": "liquidity:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN:enriched" }
```
Load the history with REST, then keep the feed moving with Datastream. Existing trade requests and rooms remain swaps-only by default. Live LP events are provisional; use REST to reconcile confirmed activity.
### Changed endpoints and rooms
Datastream · Live liquidity
2026
September 7–16, 2026
Data API
Datastream
Solana RPC
PnL V2
General
Platform speed, Search API, RidgeDB, and dashboard updates
### Faster data, from indexing to delivery
* **Search and holders:** faster Search API responses and improved holder data performance.
* **Token coverage:** support for all quote tokens on Meteora Curve, Raydium LaunchLab, and Pump.fun, plus Pump.fun `isHolderReward` and Transaction V1 support.
* **Indexing and streaming:** rebuilt metadata indexing, RidgeDB, and Ridge streaming for improved speed, accuracy, and efficiency across Data API and RPC services.
* **PnL V2:** improved redundancy and accuracy.
### More ways to manage your subscription
* **Teams:** invite teammates and manage their access on Premium, Business, and dedicated node plans.
* **On-chain USDC subscriptions:** automatic renewals and top-ups using native USDC on Solana.
See what is moving across Solana memecoin markets
Lighthouse gives you a live view of activity across Solana launchpads and DEXs.
* See buys, sells, traders, volume, new token launches, and migrations
* Track activity over `5m`, `1h`, `6h`, and `24h`
* Compare each period with the one before it
* Build memecoin dashboards and “what is moving now?” pages with `GET /lighthouse`
August 2026
Data API
Datastream
See what whales and KOLs are trading as it happens
Know when high-value wallets move. New REST endpoints and Datastream rooms make it easy to follow whale activity, track KOL trades, power token pages, and trigger alerts from a single trade feed.
* **REST endpoints:** Fetch the latest whale trades, all KOL trades, or KOL activity for a specific token.
* **Live Datastream rooms:** Subscribe to whale and KOL trades as they happen.
* **Flexible volume filters:** Watch trades from `$1k` to `$10k`, or request all eligible KOL trades with `minVolume=0`.
* **KOL identity:** Show names, Twitter handles, and other identity metadata when available.
* **More context when you need it:** Paginate with opaque cursors, add token metadata, and filter arbitrage activity when needed.
August 2026
Prediction Markets
Datastream
Beta Prediction Markets API for Kalshi and Polymarket
Unified read-only API for **Kalshi** and **Polymarket** with full historical market data.
* **REST:** `https://prediction-market-api.solanatracker.io`
* **Datastream:** `pm:*` rooms on `wss://datastream.solanatracker.io/{apiKey}` (same hub and key as other Datastream products)
* Markets, events, trades, candlesticks, orderbooks, crypto up/down windows, and Polymarket wallet analytics
* Auth with your existing Data API key (`x-api-key`)
Currency denomination (SOL/EUR) and performance trade-count fix
### Currency query parameter
`GET /v2/pnl/wallets/:wallet`, `/history`, and `/performance` now accept `?currency=usd|sol|eur` (default `usd`).
* Pass `sol` or `eur` to convert USD snapshot values at read time using historical token prices.
* Response includes top-level `"currency": "sol"` or `"currency": "eur"` when requested.
* Historical endpoints convert per day; wallet summary uses current spot.
* Counts, percentages, timestamps, and ROI are not converted.
* Invalid currency returns **400**: `{ "error": "Invalid currency. Options: usd, sol, eur" }`.
```http theme={null}
GET /v2/pnl/wallets/{wallet}?currency=sol
GET /v2/pnl/wallets/{wallet}/history?period=30d¤cy=eur
GET /v2/pnl/wallets/{wallet}/performance?period=30d¤cy=sol
```
### Performance trade counts fixed
`totals.trades` and per-day `trades` on `/performance` now count **daily activity within the window** (`day_buys + day_sells`) instead of summing cumulative lifetime snapshot totals. Trade counts should now align with wallet summary lifetime trades when summed over the full trading history.
Meteora DLMM and Raydium CLMM pool monitors improved for new pool creations
Meteora DLMM and Raydium CLMM pool monitors have been improved for new pool creations.
June 2026
Data API
Datastream
Jupiter DCA V2 — full support and indexing for recurring orders
Jupiter DCA V2 orders (`openDcaV2`) are now fully supported and indexed across the DCA API and Datastream feeds. Previously hidden DCA V2 positions are now visible in REST responses and live WebSocket events.
Existing `/dca/*` endpoints and `dca:jupiter` rooms automatically include V2 orders — no query changes required. Order objects include `openInstruction: "openDcaV2"` to distinguish V2 accounts.
Ridge custom RPC — Address Lookup Tables & SNS Domains
Eight new Ridge DB-powered RPC methods for address lookup table queries and Solana Name Service (`.sol`) resolution. Each method costs **1 credit** per call.
### Address Lookup Tables
* **`getLookupTablesByAuthority`** — LUTs owned by a wallet authority
* **`getLookupTablesByAccount`** — LUTs containing a specific account
* **`getLookupTablesByMint`** — LUTs containing a token mint
* **`getLookupTablesByAccounts`** — LUTs containing all listed accounts, or a minimal LUT set with `bestSet: true`
### SNS Domains
* **`getPrimaryDomain`** — Primary `.sol` domain for a wallet
* **`getMultiplePrimaryDomains`** — Batch primary domains (up to 100 wallets)
* **`getAllDomains`** — All `.sol` names owned by a wallet
* **`resolveSolDomain`** — Forward resolution: `name.sol` → owner
```json theme={null}
{
"jsonrpc": "2.0",
"id": 1,
"method": "getPrimaryDomain",
"params": ["9aoUCn5J4sxhvYERCVwVnakPQxyXTHQVXe86CUJYxY8p"]
}
```
Resolve SNS identity and find LUTs for transaction compression in a single RPC call — no need to chain `getAccountInfo` / `getMultipleAccounts`.
Wallet identity: SNS primary `.sol` domain tag
Wallet `identity` now includes an optional **`sns`** tag and **`identity.sns.domain`**, the wallet's primary **`.sol` domain** (Solana Name Service).
Returned on all `/v2/pnl/*` responses that include `identity`, plus `GET /tokens/:tokenAddress/holders?enrich=identity` (and `?enrich=all`).
Search — Coin Communities filters, sorting, and response fields
**`GET /search`** now includes Coin Communities live message activity.
### New query parameters
* **`hasCoinCommunity`** — Filter tokens with or without monitored community messages (`true` / `false`)
* **`minCommunityMessages`** / **`maxCommunityMessages`** — Filter by live message count range (inclusive)
### Sorting
* **`sortBy=communityMessages`** — Sort by live community message count (use with `sortOrder=asc` or `desc`)
### Response fields
Each result now includes **`hasCoinCommunity`** (`boolean`) and **`communityMessages`** (`integer`).
May 2026
Data API
Datastream
Jupiter DCA — recurring order REST API and live WebSocket feeds
### Jupiter DCA
Track Jupiter recurring (DCA) orders on Solana: query live positions over REST and subscribe to open, fill, close, deposit, withdraw, fee, and position updates over Datastream. Jupiter is available today (`program=jupiter`); responses include a `program` id for when more platforms are added.
### Data API
New endpoints under `/dca/*`. Full reference: [Jupiter DCA](/data-api/dca).
* **`GET /dca/programs`** — List supported DCA programs (`id`, `label`, `programId`)
* **`GET /dca/wallet/{wallet}`** — All DCA orders for a wallet with status summary
* **`GET /dca/wallet/{wallet}/orders`** — Paginated wallet orders (`cursor`, `sort`, `status`, `program`)
* **`GET /dca/order/{address}`** — Single DCA account by pubkey
* **`GET /dca/token/{mint}`** — Token buy/sell flow overview
* **`GET /dca/token/{mint}/buyers`** — Orders buying this token (output mint)
* **`GET /dca/token/{mint}/sellers`** — Orders selling this token (input mint)
* **`GET /dca/token/{mint}/users`** — Top wallets by DCA activity on this token
* **`GET /dca/pair/{inputMint}/{outputMint}`** — Orders for a trading pair
Query helpers: `program` (aliases `dex`, `platform`), `limit`, `cursor`, `sort` / `sortBy` (`volume`, `deposited`, `remaining`, `progress`, `recent`, `created`, `status`), and `status` (`active`, `paused`, `completed`, `pending`, `all`). Orders include USD fields when price data is available.
### Live Jupiter DCA streams
New WebSocket rooms on Premium, Business, and Enterprise plans. Reference: [Jupiter DCA Datastream](/datastream/dca).
Join with `{ "type": "join", "room": "" }`. Each event is delivered to the global room, the matching event-type room, and any scoped rooms that apply.
| Room | Use |
| - | - |
| **`dca:jupiter`** | All Jupiter DCA events |
| **`dca:jupiter:opened`** | New DCA opened |
| **`dca:jupiter:filled`** | Cycle fill |
| **`dca:jupiter:closed`** | DCA closed |
| **`dca:jupiter:deposit`** | Deposit |
| **`dca:jupiter:withdraw`** | Withdraw |
| **`dca:jupiter:collected_fee`** | Fee collected |
| **`dca:jupiter:position`** | Account snapshot (no `eventName`) |
| **`dca:jupiter:{mint}:buyers`** | DCAs buying this token |
| **`dca:jupiter:{mint}:sellers`** | DCAs selling this token |
| **`dca:jupiter:wallet:{wallet}`** | Any event for that owner |
| **`dca:jupiter:{dcaAddress}`** | Any event for that DCA account |
Transaction events include a full **`order`** object (same shape as REST). Position updates include **`order`** and **`writeVersion`**.
PnL V2 fuller responses, faster trending & volume endpoints, and improved search
### PnL V2 API
* **`GET /v2/pnl/wallets/{wallet}/positions`** and **`GET /v2/pnl/tokens/{mint}/traders`** now return the full available data set (not a reduced field subset).
* **Average hold time** added to the wallet PnL summary (`GET /v2/pnl/wallets/{wallet}`).
* General PnL V2 bug fixes.
### Performance
* **Up to 10× faster in the EU** and **up to 20× faster in the US** for:
* **`/tokens/trending/*`**
* **`/tokens/volume/*`**
* **`/top-performers`**
* **`/tokens/multi/all`**
* **Improved spam token filtering** on trending, volume, and top performers for more accurate lists.
* **Faster live holder count updates.**
### Search
* **Better results** when queries contain special characters such as `-` and `"`.
Expanded holder token PnL enrichment; legacy PnL endpoints now powered by PnL V2
### Holder token PnL enrichment
When you call `/tokens/:tokenAddress/holders` with `?enrich=walletPnl` or `?enrich=all`, the `pnl.token` object now returns full position detail for that mint — not just `realized`, `unrealized`, and `total`.
New fields include trade counts (`buys`, `sells`, `totalTrades`), ROI, position size (`balance`, `costBasis`, `value`, `price`), volume (`totalBought`, `totalSold`, `avgBuy`, `avgSell`), and timing (`firstBuy`, `lastBuy`, `firstSell`, `lastSell`, `firstTrade`, `lastTrade`).
### Legacy PnL endpoints use PnL V2 data
The deprecated PnL endpoints now read from the PnL V2 engine under the hood. Request paths and response shapes are unchanged, but the underlying numbers match `/v2/pnl/*`.
* **`GET /pnl/{wallet}`** — wallet PnL across all positions
* **`GET /pnl/{wallet}/{token}`** — wallet PnL for one token
* **`GET /first-buyers/{token}`** — first 100 buyers with PnL
* **`GET /top-traders/all`** and **`GET /top-traders/all/{page}`** — top traders across all tokens
* **`GET /top-traders/{token}`** — top traders for one token
We still recommend migrating to the PnL V2 endpoints for richer fields, sorting, filters, wallet labels, and batch lookups. See the [PnL V2 overview](/guides/pnl-v2/overview).
May 2026
Data API
Datastream
PnL V2
PnL V2 launch: wallet profit/loss, trader lists, wallet labels, and live PnL streams
### PnL V2 API
PnL means profit and loss. PnL V2 adds new endpoints under `/v2/pnl/*` so you can see how wallets and traders are doing.
![PnL V2 chart showing wallet profit and loss over time]()
#### Wallet PnL
Use these endpoints when you want to study one wallet:
* **`GET /v2/pnl/wallets/:wallet`** — Shows the wallet's total profit/loss, ROI, win rate, and trade counts.
* **`GET /v2/pnl/wallets/:wallet/positions`** — Lists every token position for the wallet. You can sort and filter the list.
* **`GET /v2/pnl/wallets/:wallet/tokens/:token`** — Shows one wallet's history with one token.
* **`GET /v2/pnl/wallets/:wallet/history`** — Shows daily PnL over time.
* **`GET /v2/pnl/wallets/:wallet/performance`** — Shows best day, worst day, streaks, drawdown, and daily totals.
* **`GET /v2/pnl/wallets/:wallet/highlights`** — Shows the biggest wins, losses, bags, flips, and most active tokens.
* **`GET /v2/pnl/wallets/:wallet/risk`** — Shows where the wallet is most exposed.
* **`GET /v2/pnl/wallets/:wallet/chart`** — Gives chart points ready to draw.
#### Token PnL
Use these endpoints when you want to study one token:
* **`GET /v2/pnl/tokens/:token/traders`** — Lists wallets that traded the token. It shows PnL for this token and lifetime wallet PnL.
* **`GET /v2/pnl/tokens/:token/first-buyers`** — Lists the earliest buyers first. Use `/traders` if you need sorting by ROI, PnL, size, or latest trade.
#### Leaderboards
Use these endpoints to rank wallets:
* **`GET /v2/pnl/leaderboard/top`** — Ranks top Solana traders for `1`, `7`, `30`, or `90` days.
* **`GET /v2/pnl/leaderboard/kols`** — Ranks tracked KOL wallets for all time.
* **`GET /v2/pnl/leaderboard/kols/period`** — Ranks KOL wallets for a time range.
* **`GET /v2/pnl/leaderboard/kols/calendar`** — Shows KOL PnL by day for a month.
* **`GET /v2/pnl/leaderboard/kols/date`** — Shows KOL activity for one day.
#### Batch Lookups
Use batch endpoints when you need many results in one request:
* **`POST /v2/pnl/wallets/:wallet/positions/batch`** — One wallet, up to 100 tokens.
* **`POST /v2/pnl/tokens/:token/positions/batch`** — One token, up to 200 wallets.
* **`POST /v2/pnl/positions/batch`** — Up to 200 wallet-token pairs.
* **`POST /v2/pnl/wallets/batch`** — Up to 100 wallet summaries with labels and tags.
### New Features
#### `pnlMode`
Some positions can look wrong. For example, a wallet may show more sold than bought. `pnlMode` lets you choose how to handle those rows.
| Mode | What it does |
| - | - |
| `strict` (default) | Safest view. Flagged positions count as **0** realized PnL. |
| `adjusted` | Keeps flagged positions, but caps the PnL with a safer cost-basis rule. |
| `raw` | No filtering. Shows the raw realized PnL number. |
Supported responses return the mode they used. Position rows also include `realizedRaw`, so your app can show both filtered and raw numbers.
#### Wallet Labels
PnL V2 can now return an `identity` object for wallets. A wallet can have more than one label.
Common labels:
* **`kol`** — known public wallet, with name, Twitter handle, and avatar.
* **`bot`** — known bot wallet.
* **`pool`** — pool vault, authority, LP mint, or bonding curve account.
* **`developer`** — token creator, pool deployer, or mint authority.
* **`arbitrage`** / **`potential_bot`** — confirmed or likely arbitrage-style wallet.
* **`hacker`** — known exploit, scam, or attacker wallet.
* **`spam_dusting`** — known spam-dusting wallet.
* **`exchange`** — known exchange hot wallet.
* **Platform tags** — `axiom`, `bloom`, and `photon`. `axiom-flash` also works and returns as `axiom`.
Token endpoints also show wallet roles for that exact token. This helps you spot developers, pools, LPs, and early buyers without another request.
#### Holder Enrichment
`/tokens/:tokenAddress/holders` now supports `?enrich=`.
* `?enrich=identity` — Adds wallet labels for each holder.
* `?enrich=walletPnl` — Adds lifetime wallet PnL and this-token PnL.
* `?enrich=all` — Adds both.
If you do not pass `enrich`, the endpoint works the same as before.
### Live PnL Streams
New WebSocket rooms send PnL updates in real time. They are available on Premium, Business, and Enterprise plans.
* **`pnl:{wallet}:{token}`** — Live PnL for one wallet and one token.
* **`pnl:{wallet}`** — Live PnL for every token a wallet trades.
* **`pnl:{wallet}:summary`** — Live total PnL summary for one wallet.
Use REST once to load the starting data. Then use these rooms to keep the data live.
April 2026
Data API
Datastream
Solana RPC
General
Performance improvements, new load balancers, and reduced latency
### Infrastructure
* **Improved shred delivery** — Faster shred delivery for improved block propagation.
* **New global load balancer for Data API** — Added a global load balancer for the Data API.
* **New US-based Data API load balancer** — Dedicated US load balancer for lower-latency access.
* **Colocated US servers** — Some endpoints dropped from 600ms response times to under 100ms.
* **Migrated and upgraded ClickHouse cluster** — Better latency and faster queries across the API.
### Data API
* **Improved trades endpoint speeds** — All trades endpoints are now faster.
* **Improved `/chart` response speed** — Faster chart data retrieval.
* **Improved `/tokens/:token` response time** — Faster token detail lookups.
* **Improved metadata retrieval speed** — Faster metadata fetching across endpoints.
* **Improved `/wallet/:wallet/chart` endpoint** — Now returns a chart even with only 1 data point.
* **Fixed pagination bug on ascending trades** — Fixed a pagination issue when fetching trades in ascending order.
* **Fixed Meteora DAMM liquidity** — Resolved a liquidity calculation issue on some older Meteora DAMM pools.
* **Fixed PumpFun token creation edge cases** — Resolved edge cases on token creation events.
* **Imported all missing PumpFun curve data** — Backfilled 15M+ tokens of PumpFun curve data.
* **Fixed curve pools on `/tokens/:token`** — Curve pools (5+) now always appear after migration.
* **Fixed Axiom transaction fee parser** — Moved from transfer to internal CPI call for accurate fee parsing.
* **`uniqueTokens` query param on deployers API** — Returns latest graduated pool and first non-graduated pool in the regular list.
* **Raydium LaunchLab tweaks** — Adjustments for Raydium LaunchLab support.
* **Raydium CPMM improvements** — Improved Raydium CPMM handling.
* **Search API bug fixes** — Various fixes to the search endpoint.
### Ridge DB
* **Improved performance** — Improved indexes and response times across several queries.
* **Globally load balanced** — US RPC users can now call methods like `getProgramAccounts`, `getProgramAccountsV2`, etc. around 200–400ms faster.
* **Fixed frozen token account decoding** — Frozen token accounts now always show and decode properly.
### Datastream
* **Improved Datastream performance** — Improved price, pool, and transaction update latency.
Bags.fm creator updates
* **Updated Bags.fm creators** — Updated creator data for Bags.fm tokens.
February 2026
Data API
Datastream
Search & deployer improvements, pool creation data
### Data API
* **Multiple markets filter** — `/search` `market` parameter now accepts comma-separated values (e.g. `?market=raydium,orca,pumpfun`). Single values still work as before.
* **Multiple launchpads filter** — `/search` `launchpad` parameter now accepts comma-separated values (e.g. `?launchpad=pumpfun,boop`). Single values still work as before.
* **Launchpad filter on `/deployer`** — The `?launchpad=` parameter now works on `/deployer/{wallet}` (previously silently ignored).
* **Full token format** — `/search` and `/deployer/{wallet}` now support `?format=full`, which returns results as full token objects (same shape as `/tokens/:token` — with token, pools, events, risk, buys, sells, txns, holders).
* **Lower page limit for full format** — When `format=full`, the max per-page limit is capped at 100 (instead of 500) to keep queries efficient.
### Datastream
* **Pool creation data** — The `latest` and `graduated` rooms now include a `creation` object on each pool with `creator`, `created_tx`, and `created_time`. (This is currently only available on the websocket for Pools. Token creation is also available on the Data API)
New stats total and volume rooms
* **New total stats rooms**
* `stats:token:{tokenAddress}:total`
* `stats:pool:{poolId}:total`
* **New volume rooms**
* `volume:token:{tokenAddress}`
* `volume:pool:{poolId}`
January 2026
Data API
Datastream
Price, charts, and streaming improvements
### Data API
* **Improved price change percentages** — More accurate percent change calculations.
* **Improved chart wicks** — Chart API shows more accurate wicks via a new aggregation technique.
* **Fixed chart volume in some cases** — Ensures volume uses all pools when not filtering by pool.
* **Added Humidifi, Tessera, and Solfi V1/V2 support.**
### Datastream
* **Fixed price change percentages on stats room** — Corrected percent change calculations in the stats room.
* **Improved pool selection** — Better pool selection on token and price rooms.
* **Transaction monitor updates** — Added Raptor to the transaction monitor
* **Added Humidifi, Tessera, and Solfi V1/V2 support.**
* **Stability improvements** — Fixed and improved stability of transaction and price updates.
Chart currency option
* **Chart currency option** — `/chart/{token}` and `/chart/{token}/{pool}` now support `currency=usd|sol|eur` (default `usd`).
Bundlers endpoint and new token data
* **New bundlers endpoint** — Use `/tokens/{token}/bundlers` to fetch bundler wallet stats for a token.
* **Risk now includes bundlers** — The `risk` object returned on token responses includes bundler analysis.
* **Search improvements** — `/search` now returns `riskScore` and bundler-related fields.
### Risk scores
* **Bundlers** — New count-based + percentage-based scoring from new bundler data.
* **Suspicious volume** — Flags extreme buy/sell imbalance.
Bundler tracking room
* **New room:** `bundlers:{tokenAddress}` — Real-time bundler wallet updates (wallet, current/previous amount & %, and totalBundlerPercentage).
Top performers endpoint
* **Top performers endpoint** — Added `/top-performers/{timeframe}` to retrieve top performing tokens launched today.
* **Timeframes** — Supports `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, and `24h`.
December 2025
Data API
Datastream
Data accuracy and trade enhancements
### Data API
* **First buyers endpoint accuracy** — Improved accuracy for first buyers endpoints to match with other PnL endpoints
* **Pricing and volume fixes** — Fixed pricing and volume calculation bug on some trades
* **Exact token price at trade time** — Added exact token price at time of trade for each token when using the `showMeta` flag on `/trades`
### Datastream - Trade rooms
* **Global Load Balancer** - Added a global load balancer for the Datastream that routes to US or EU based Datastream servers automatically.
* **Enhanced Datastream trade rooms** — Added `price` and `marketCap` to each token in Datastream trade rooms for better accuracy (uses main pool data). The main object `priceUsd` can be considered the exchange rate.
### Image proxy
* **Image proxy filtering** — Enhanced image proxy filtering for invalid SVGs with reduced false positives
November 2025
Datastream
General
API and Datastream improvements
* **Faster transaction and price updates** — Reduced latency for real-time data delivery
* **Enhanced tokens overview API** — Pulse/Memescope now features improved filters and dramatically better performance
* **Upgraded Yellowstone gRPC** — New Rust client delivers faster streaming performance
### Data Accuracy & Reliability
Major improvements to data quality and consistency:
* **Program filtering** — Excluded unknown programs that could cause invalid data from arbitrage bots and other sources
* **Pool data updates** — Liquidity changes now trigger pool updates even without swaps
* **Time accuracy improvements** — Edge case handling now uses `blockTime` when gRPC is behind or transaction parsing is delayed by more than a few seconds
### New Features
**Automatic Pool Rotation**
* Main pool rotation now happens automatically for `price:token:{address}` and `token:{primary}` rooms — no client-side changes required
**Aggregated Price Room**
* New **`price:aggregated:{token}`** room provides min, average, median, and max price updates
* Aggregates price data across top 10 valid pools
* Each update includes individual pool prices for full transparency
**Pumpfun Mayhem Mode**
* Added support for Pumpfun Mayhem mode
* Pool data now includes `tokenProgram` and `isMayhemMode` fields
### Infrastructure
**Redis Server Upgrade**
* Deployed new Redis infrastructure
* Eliminates random 500/503 errors during high load periods
* Improved overall platform stability
Aggregated Price Stream
We've added a new WebSocket room that provides aggregated price data across multiple liquidity pools for any token.
### What's New
**`price:aggregated:{tokenAddress}`**
* **Multi-pool aggregation** — Get median, average, min, and max prices calculated across top liquidity pools
* **Top pools data** — Detailed breakdown of the 10 highest liquidity pools with individual prices
* **Real-time updates** — Live price aggregation as pools update
* **Pool count tracking** — Know exactly how many pools contributed to the aggregated data
* **Automatic pool rotation** - No need to subscribe to new rooms after token migration.
### Why Use Aggregated Pricing?
Single pool prices can be manipulated or show temporary volatility. Aggregated pricing gives you:
* **More accurate market prices** — Median and average across multiple sources
* **Manipulation resistance** — Harder to distort when aggregating across pools
* **Price range visibility** — See min/max spread to identify arbitrage opportunities
* **Liquidity-weighted insights** — Focus on pools that matter most
```json theme={null}
{
"type": "message",
"data": {
"token": "So11111111111111111111111111111111111111112",
"timestamp": 1762964449215,
"price": 153.70666202103925,
"pool": "3nMFwZXwY1s1M5s8vYAHqd4wGs4iSxXE4LRoUMMYqEgF",
"aggregated": {
"median": 153.6850599485249,
"average": 153.6735820182654,
"min": 153.36863801111053,
"max": 153.71662179961638,
"poolCount": 10
},
"topPools": [
{
"poolId": "3ucNos4NbumPLZNWztqGHNFFgkHeRMBQAVemeeomsUxv",
"price": 153.68241854665007,
"liquidity": 17950616.091940343,
"market": "raydium-clmm"
},
...
]
},
"room": "price:aggregated:So11111111111111111111111111111111111111112"
}
```
Perfect for trading interfaces, price oracles, and portfolio tracking applications that need reliable, manipulation-resistant pricing.
Batch Token Balance Queries
We've added a new Ridge DB-powered RPC method that lets you query token balances for multiple wallets in a single request.
### What's New
**`getTokenAccountsByOwners`**
* **Batch up to 250 wallets** — Query hundreds of addresses in one call instead of making individual requests
* **Multiple accounts support** — Automatically returns all token accounts if a wallet has multiple for the same mint
* **Zero balance handling** — Wallets without a token account return a clean zero balance response
* **Slot tracking** — Each account includes the slot when the balance was last updated
### Use Cases
Perfect for:
* Portfolio tracking across multiple wallets
* Airdrop eligibility verification
* Multi-wallet dashboards
* Token distribution snapshots
```json theme={null}
{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenAccountsByOwners",
"params": [
["wallet1...", "wallet2...", "wallet3..."],
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
]
}
```
This method drastically reduces API calls and latency when you need to check token holdings across many addresses at once.
November 2025
Data API
Datastream
Ridge Stream Launch
All holder endpoints and real-time streams have been migrated to **Ridge Stream**, from our new high-performance service RidgeDB
### What's New
**REST Endpoints**
* **`/tokens/{token}/holders`** — Get top 100 holders (use /tokens//holders/pagination for pagination and higher limits )
* **`/tokens/{token}/holders/top`** — Fetch top holders by balance (excluding known wallets like lp)
* **`/holders/multi`** — Multi-token holder count lookups
* **`/holders/chart`** — Historical holder charts with more datapoints (now also includes SOL, USDC, and more)
**Real-Time Streams**
* **Holder count updates** — Live tracking of total holders
* **Wallet balance updates** — Now includes native SOL with improved reliability
* **Top 100 holders** — Real-time rankings of largest holders
* **Snipers and insiders** — Track early buyers and insider activity
You can now also get holder data for **large tokens** like WSOL, USDC, and USD1 that weren't available before. All holder counts and top 100 rankings work for these tokens via both API and real-time streaming.
Search Filters
## New Search Filters
Added new filters to the token search endpoint:
* **`launchpad`** — Filter by launch platform (`pumpfun`, `moonshot`, `letsbonk.fun`, `believe`)
* **`image`** — Search by exact image URL
* **`hasImage`** — Filter tokens that have/don't have images (`true`/`false`)
[View documentation →](/data-api/search/token-search)
Paginated Token Holders
## Paginated Token Holders Endpoint
We've launched a new endpoint for fetching all token holders with cursor-based pagination.
### What's New
**`GET /tokens/{tokenAddress}/holders/paginated`**
* **Cursor pagination** — Navigate through all holders efficiently
* **Up to 5,000 per page** — Fetch large batches in a single request
* **Ridge DB powered** — Fast queries even for tokens with millions of holders
* **Complete holder data** — Returns wallet, token account, amount, USD value, total holder count and ownership percentage
### The Improvement
Previously limited to 100 holders, this endpoint now handles tokens with any number of holders while maintaining consistent performance.
```bash theme={null}
GET /tokens/{tokenAddress}/holders/paginated?limit=1000&cursor=nextPageCursor
```
[View documentation →](/data-api/tokens/get-all-token-holders-paginated)
October 21 2025
Solana RPC
RPC Enhancements
## Ridge DB Performance & Features Update
We've shipped several improvements to our Ridge DB-powered RPC methods to give you even more control and speed.
### What's New
* **Total count support** — `getProgramAccountsV2` and `getTokenAccountsByOwnerV2` now return `totalCount` in responses, making pagination and UI updates easier
* **Faster queries** — New indexes dramatically improve response times for certain account lookups
* **Stability improvements** — Bug fixes and optimizations
These updates build on our Ridge DB launch, delivering better performance and more developer-friendly responses.
October 16 2025
Solana RPC
Ridge DB Launch
We've rolled out **two new RPC methods** powered by **Ridge DB** — our high-performance engine designed for lightning-fast account lookups on Solana.
### 🧭 New Methods
#### `getProgramAccountsV2`
Supercharged program account queries with:
* **`changedSince`** — Fetch only accounts updated after a given slot (great for incremental syncs)
* **`excludeZero`** — Automatically skip empty token accounts
* **Cursor pagination** — Retrieve up to 10,000 accounts per request
#### `getTokenAccountsByOwnerV2`
Optimized token account retrieval, featuring the same Ridge DB speed and:
* **`changedSince`** — Get only new or updated token accounts
* **`excludeZero`** — Filter out dust or empty balances
* **Cursor pagination** — Smoothly handle large token sets
### 💡 Why Ridge DB?
Ridge DB isn't your standard RPC backend. It's a purpose-built system for account-heavy workloads that delivers:
* Faster response times
* Slot-based incremental updates
* Cursor pagination for big datasets
In short — faster queries, cleaner data, and a smoother developer experience.
Documentation Launch
We've launched a brand-new documentation hub that brings all our products and APIs together, complete with guides and hands-on examples.
You can now explore detailed docs for:
* **Yellowstone gRPC** — Real-time Solana data streaming
* **Data API** — REST access to historical and live Solana data
* **Datastream** — WebSocket-based live data feeds
* **Solana RPC** — Enhanced endpoints powered by Ridge DB
* **Swap API** — High-performance token swaps and routing
The new docs include interactive code samples, and best practices to help you build faster and smarter on Solana.
# Get Bundlers Chart Data
Source: https://docs.solanatracker.io/data-api/chart/get-bundlers-chart-data
/data-api/openapi.json get /bundlers/chart/{token}
Gets bundler holding percentage data over time. Returns up to 1000 of the most recent data points
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getBundlersChart('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', '1h');
```
# Get Holders Chart Data
Source: https://docs.solanatracker.io/data-api/chart/get-holders-chart-data
/data-api/openapi.json get /holders/chart/{token}
Gets token holder count data over time. Returns up to 1000 of the most recent data points
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getHoldersChart('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', '1h');
```
# Get Insiders Chart Data
Source: https://docs.solanatracker.io/data-api/chart/get-insiders-chart-data
/data-api/openapi.json get /insiders/chart/{token}
Gets insider holding percentage data over time. Returns up to 1000 of the most recent data points
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getInsidersChart('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', '1h');
```
# Get OHLCV Data for a token
Source: https://docs.solanatracker.io/data-api/chart/get-ohlcv-data-for-a-token
/data-api/openapi.json get /chart/{token}
Gets OHLCV (Open, High, Low, Close, Volume) data for charts
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getChartData({ tokenAddress: '6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', type: '1h', timeFrom: 1700000000, timeTo: 1700086400 });
```
# Get OHLCV Data for a token/pool pair
Source: https://docs.solanatracker.io/data-api/chart/get-ohlcv-data-for-a-tokenpool-pair
/data-api/openapi.json get /chart/{token}/{pool}
Gets OHLCV (Open, High, Low, Close, Volume) data for charts for a specific pool
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPoolChartData('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', '9d9mb8kooFfaD3SctgZtkxQypkshx6ezhbKio89ixyy2', '1h', 1700000000, 1700086400);
```
# Get Snipers Chart Data
Source: https://docs.solanatracker.io/data-api/chart/get-snipers-chart-data
/data-api/openapi.json get /snipers/chart/{token}
Gets sniper holding percentage data over time. Returns up to 1000 of the most recent data points
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getSnipersChart('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', '1h');
```
# Get API Credits
Source: https://docs.solanatracker.io/data-api/credits/get-api-credits
/data-api/openapi.json get /credits
Gets the remaining API credits for your API key
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getCredits();
```
# Get Subscription Information
Source: https://docs.solanatracker.io/data-api/credits/get-subscription-information
/data-api/openapi.json get /subscription
Gets current subscription information including credits, plan, and billing details
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getSubscription();
```
# Get Pool Events
Source: https://docs.solanatracker.io/data-api/events/get-pool-events
/data-api/openapi.json get /events/{tokenAddress}/{poolAddress}
**Deprecated.** Switch to [`GET /stats/{token}/{pool}`](/data-api/stats/get-token-pool-stats) instead. With the SDK, use `client.getPoolStats(token, pool)`. The stats endpoint returns computed statistics as JSON, so you no longer need to decode binary events or run `processEventsAsync`.
Gets raw event data for a specific token and pool. Returns binary data that needs to be decoded
## SDK Example
```typescript
import { Client, processEventsAsync } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
// Deprecated: use client.getPoolStats(token, pool) instead.
const data = await client.getPoolEvents('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', '9d9mb8kooFfaD3SctgZtkxQypkshx6ezhbKio89ixyy2');
const stats = await processEventsAsync(data);
```
# Get Token Events
Source: https://docs.solanatracker.io/data-api/events/get-token-events
/data-api/openapi.json get /events/{tokenAddress}
**Deprecated.** Switch to [`GET /stats/{token}`](/data-api/stats/get-token-stats) instead. With the SDK, use `client.getTokenStats(token)`. The stats endpoint returns computed statistics as JSON, so you no longer need to decode binary events or run `processEventsAsync`.
Gets raw event data for live processing. Returns binary data that needs to be decoded
## SDK Example
```typescript
import { Client, processEventsAsync } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
// Deprecated: use client.getTokenStats(token) instead.
const data = await client.getEvents('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN');
const stats = await processEventsAsync(data);
```
# Latest KOL spot trades
Source: https://docs.solanatracker.io/data-api/kol-trades/latest-kol-spot-trades
/data-api/whale-kol.json get /trades/kols
Returns the newest spot DEX trades from wallets on the shared KOL roster with absolute USD volume at or above `minVolume`. Each trade includes `identity` when available.
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getKolTrades({ limit: 100, showMeta: true });
```
# Latest KOL spot trades for one token
Source: https://docs.solanatracker.io/data-api/kol-trades/latest-kol-spot-trades-for-one-token
/data-api/whale-kol.json get /trades/kols/{token}
Returns the newest KOL spot trades for a single mint with absolute USD volume at or above `minVolume`. Supports `hideArb` to keep only legs involving that mint.
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getKolTradesByToken('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', { limit: 100, showMeta: true });
```
# Solana memecoin market stats
Source: https://docs.solanatracker.io/data-api/lighthouse/solana-memecoin-market-stats
/data-api/lighthouse.json get /lighthouse
Returns rolling stats for Solana memecoin markets such as `all`, `pumpfun`, `raydium-all`, and `meteora-curve:bags`. Includes DEXs, launchpads, and discovered launchpad markets.
No query parameters.
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getLighthouse();
```
# Get KOL Leaderboard
Source: https://docs.solanatracker.io/data-api/pnl-v2/leaderboard/get-kol-leaderboard
/data-api/pnl-v2/openapi.json get /v2/pnl/leaderboard/kols
Ranks tracked KOL wallets by all-time performance. Use it to compare lifetime realized and unrealized PnL, ROI, trade count, and recency across known wallets.
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPnlV2KOLLeaderboard({ limit: 50 });
```
# Deprecated: Get First Token Buyers
Source: https://docs.solanatracker.io/data-api/pnl/deprecated:-get-first-token-buyers
/data-api/openapi.json get /first-buyers/{token}
Deprecated. Use PnL V2 instead: `GET /v2/pnl/tokens/{token}/first-buyers` for chronological first buyers with token PnL, wallet PnL, identity, and holding state.
Retrieves the first 100 buyers of a token (since API started recording data) with PnL data for each wallet
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getFirstBuyers('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN');
```
# Deprecated: Get Token-Specific PnL
Source: https://docs.solanatracker.io/data-api/pnl/deprecated:-get-token-specific-pnl
/data-api/openapi.json get /pnl/{wallet}/{token}
Deprecated. Use PnL V2 instead: `GET /v2/pnl/wallets/{wallet}/tokens/{token}`.
Gets Profit and Loss data for a specific token in a wallet
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getTokenPnL('FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF', '6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN');
```
# Deprecated: Get Wallet PnL
Source: https://docs.solanatracker.io/data-api/pnl/deprecated:-get-wallet-pnl
/data-api/openapi.json get /pnl/{wallet}
Deprecated. Use PnL V2 instead: `GET /v2/pnl/wallets/{wallet}` for wallet summaries and `GET /v2/pnl/wallets/{wallet}/positions` for token positions.
Gets Profit and Loss data for all positions of a wallet
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getWalletPnL('FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF');
```
# Get Historic Price Information
Source: https://docs.solanatracker.io/data-api/price/get-historic-price-information
/data-api/openapi.json get /price/history
Gets historic price information for a single token
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPriceHistory('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN');
```
# Get lowest and highest price in time range
Source: https://docs.solanatracker.io/data-api/price/get-lowest-and-highest-price-in-time-range
/data-api/openapi.json get /price/history/range
Gets the lowest and highest price in a time range
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPriceRange('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', 1700000000, 1700086400);
```
# Get Multiple Token Prices
Source: https://docs.solanatracker.io/data-api/price/get-multiple-token-prices
/data-api/openapi.json get /price/multi
Gets price information for multiple tokens (up to 100)
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getMultiplePrices(['So11111111111111111111111111111111111111112', '6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN'], true);
```
# Get Price at Specific Timestamp
Source: https://docs.solanatracker.io/data-api/price/get-price-at-specific-timestamp
/data-api/openapi.json get /price/history/timestamp
Gets specific historic price information for a token at a given timestamp
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPriceAtTimestamp('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', 1700000000);
```
# Get Token Price
Source: https://docs.solanatracker.io/data-api/price/get-token-price
/data-api/openapi.json get /price
Gets price information for a single token
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPrice('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', true);
```
# Post Multiple Token Prices
Source: https://docs.solanatracker.io/data-api/price/post-multiple-token-prices
/data-api/openapi.json post /price/multi
Similar to GET /price/multi, but accepts token addresses in the JSON body. Pass `priceChanges: true` to include the `priceChanges` object on each token.
## SDK Example
```typescript
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.postMultiplePrices(['So11111111111111111111111111111111111111112', '6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN'], true);
```
# Recent changes
Source: https://docs.solanatracker.io/data-api/recent-changes
New endpoints, added features, and fixes for Data API.
[View the full changelog](/changelog)