Tokens
Query token validation status, OHLCV candlestick data, and recent trade history. Every token data type has a live WebSocket stream counterpart — query via REST to backfill, then subscribe for real-time updates.
GET /v1/tokens/{mint}/info
Check whether a token has been validated and/or flagged as suspicious.
Parameters
| Parameter | Type | Description |
|---|---|---|
mint (path) | string | Solana token mint address |
Example
curl -H "Authorization: Bearer $API_KEY" \
"https://api.conyr.ai/v1/tokens/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/info"Response
{
"token_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"is_validated": true,
"is_suspicious": false,
"validation_reason": "passed_all_checks"
}A token can be both validated and suspicious — validation checks tokenomics, while suspicious flags come from trading pattern heuristics.
GET /v1/tokens/{mint}/ohlcv
Returns OHLCV (Open, High, Low, Close, Volume) candlestick data aggregated from live swap streams.
Live stream available: Subscribe to
token:{mint}:ohlcv:{view}:{tf}via WebSocket to receive candle updates as they’re computed. Example:token:EPjFWd...:ohlcv:full:1m
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mint (path) | string | — | Solana token mint address |
timeframe (query) | string | 1m | Candle interval: 1s, 1m, 5m, 15m, 1h |
view (query) | string | full | full (all), filtered (no wash), organic (Pro: excludes farms/inorganic) |
from (query) | integer | — | Start time in unix milliseconds |
to (query) | integer | — | End time in unix milliseconds |
limit (query) | integer | 500 | Max candles to return (max 2000) |
Example
# Last 100 one-minute candles, filtered view
curl -H "Authorization: Bearer $API_KEY" \
"https://api.conyr.ai/v1/tokens/EPjFWd.../ohlcv?timeframe=1m&view=filtered&limit=100"Python Example — Building a Chart
import requests
resp = requests.get(
f"https://api.conyr.ai/v1/tokens/{mint}/ohlcv",
headers={"Authorization": f"Bearer {API_KEY}"},
params={"timeframe": "5m", "view": "full", "limit": 500},
)
candles = resp.json()["candles"]
for c in candles[-5:]:
print(f"{c['bucket']} O:{c['open']:.6f} H:{c['high']:.6f} "
f"L:{c['low']:.6f} C:{c['close']:.6f} Vol:${c['volume_usd']:.0f}")Response
{
"candles": [
{
"bucket": "2026-03-05 14:30:00+00",
"open": 0.00234,
"high": 0.00256,
"low": 0.00228,
"close": 0.00245,
"volume_token": 5000000.0,
"volume_usd": 11725.0,
"num_trades": 42,
"buy_volume": 3200000.0,
"sell_volume": 1800000.0,
"vwap": 0.002345
}
],
"token_mint": "EPjFWd...",
"timeframe": "1m",
"view": "full"
}Full vs. Filtered Views
| View | Includes | Best For |
|---|---|---|
full | All swaps | Raw market data, charting |
filtered | Excludes wash trades and suspicious activity | Clean analysis, fair pricing |
Candle Fields
- bucket: Candle start timestamp (UTC)
- buy_volume / sell_volume: Token-denominated volume split by trade direction
- vwap: Volume-weighted average price for the candle (null if no trades)
- num_trades: Number of individual swaps aggregated into this candle
Candles are ordered by bucket DESC (newest first). Cache TTL is 5 seconds.
GET /v1/tokens/{mint}/trades
Returns recent swap history for a specific token across all wallets.
Live stream available: Subscribe to
token:{mint}:tradesvia WebSocket for every swap as it happens on-chain. Also available:token:{mint}:ticksfor chart tick price updates.
Parameters
| Parameter | Type | Default | Constraints | Description |
|---|---|---|---|---|
mint (path) | string | — | — | Solana token mint address |
limit (query) | integer | 50 | max 200 | Number of trades to return |
Example
curl -H "Authorization: Bearer $API_KEY" \
"https://api.conyr.ai/v1/tokens/EPjFWd.../trades?limit=10"Response
{
"trades": [
{
"signature": "5vGk...",
"slot": 245678901,
"timestamp": "2026-03-05 14:30:00",
"wallet_address": "7xKXtg...",
"token_amount": 500000.0,
"direction": "buy",
"dex_name": "raydium",
"base_amount": 0.85,
"base_price_usd": 150.25,
"total_fees_usd": 0.012
}
],
"token_mint": "EPjFWd...",
"limit": 10
}- direction:
buyorsellfrom the wallet’s perspective - base_amount: Amount of SOL in the swap
- base_price_usd: SOL price at the time of the swap
- dex_name: Which DEX the swap executed on
- signature: Solana transaction signature — use this to look up the transaction on an explorer