REST & RealtimeMarket Data

Layer 1 — Market Data

Live swaps and candles plus current liquidity structure across all supported DEX protocols. Parsed directly from Solana’s transaction stream.

Includes all Free tier endpoints.

Rate limits: 100 REST req/min, 5 WebSocket connections, 50 subscriptions per connection.


WebSocket Streams

events.token.{mint}.chart_tick

Channel: token:{mint}:ticks

Raw trade ticks published as the swap pipeline processes them, with no intentional batching delay.

  • Fields: signature, wallet, direction, token_amount, sol_amount, price, dex_type, timestamp
  • No batching — published immediately on swap detection
  • Covers all supported DEX protocols

events.token.{mint}.ohlcv.{view}.{tf}

Channel: token:{mint}:ohlcv:{view}:{tf}

OHLCV candle stream at multiple timeframes.

  • Timeframes: 1s, 1m, 5m, 15m, 1h
  • Views: full (all trades), filtered (bot/wash removed)
  • Outlier-filtered to reject anomalous price spikes
  • Deduplicated to prevent double-counting

events.token.{mint}.tape

Channel: token:{mint}:trades

Last 50 trades per token, maintained as a rolling window.

  • Includes: wallet, direction, amounts, dex_type, fees

REST Endpoints

GET /v1/token/{mint}/info

Focused validation state for a token.

{
  "token_mint": "EPjFWd...",
  "is_validated": true,
  "is_suspicious": false,
  "is_high_risk": false,
  "validation_reason": null
}

validation_reason is nullable. Cache TTL: 300 seconds.


GET /v1/token/{mint}/liquidity

Current exit-liquidity intelligence for an agent evaluating whether token inventory can leave the pool.

Parameters

ParameterInTypeRequiredDescription
mintpathstringyesToken mint, pool address, or resolvable identifier

Response

{
  "token_mint": "EPjFWd...",
  "depth": {
    "venue": "amm_actual",
    "token_reserve_ui": 8200000.0,
    "quote_reserve_sol": 412.5,
    "liquidity_usd": null,
    "reserve_slot": 245678901,
    "updated_at_ms": 1775574600000
  },
  "lock": {
    "status": "burned",
    "burn_pct": 1.0,
    "lock_pct": null,
    "verified_at": "2026-04-07 14:30:00+00"
  },
  "dump_impact_pct": 0.31,
  "exit_capacity": {
    "usd_at_10": null,
    "usd_at_25": null,
    "usd_at_50": null,
    "sol_at_10": 21.72,
    "sol_at_25": 55.26,
    "sol_at_50": 120.82
  }
}
  • depth is null when the reserve snapshot is missing, unusable, or stale beyond the API’s freshness gates.
  • dump_impact_pct is a fraction: 0.31 means 31% modeled price impact if all coordinated inventory sold.
  • exit_capacity.sol_at_* is only returned for vetted constant-product reserve shapes.
  • USD fields are intentionally null; the API does not invent a SOL/USD quote on this read path.

Cache TTL: 5 seconds. Use token:{mint}:ticks or 1-second OHLCV when the agent also needs a current observed trade price.


GET /v1/token/{mint}/ohlcv

Historical OHLCV candle data.

Parameters

ParameterInTypeRequiredDefaultConstraints
mintpathstringyes
timeframequerystringno1m1s, 1m, 5m, 15m, 1h
viewquerystringnofullfull, filtered
fromqueryintegernoUnix milliseconds
toqueryintegernoUnix milliseconds
limitqueryintegerno500Max 2000

Example

curl -H "Authorization: Bearer $API_KEY" \
  "https://api.conyr.ai/v1/token/EPjFWd.../ohlcv?timeframe=5m&view=filtered&limit=100"

Response

{
  "candles": [
    {
      "bucket": "2026-03-07 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": "5m",
  "view": "filtered"
}

Views

ViewIncludesBest For
fullAll swapsRaw market data, charting
filteredExcludes wash trades and bot activityClean analysis, fair pricing

Cache TTL: 5 seconds. Use explicit from and to bounds so the agent requests only the history it needs.


GET /v1/token/{mint}/trades

Recent trade history for a token across all wallets.

Parameters

ParameterInTypeRequiredDefaultConstraints
mintpathstringyes
limitqueryintegerno50Max 200

Example

curl -H "Authorization: Bearer $API_KEY" \
  "https://api.conyr.ai/v1/token/EPjFWd.../trades?limit=20"

Response

{
  "trades": [
    {
      "signature": "5vGk...",
      "slot": 245678901,
      "timestamp": "2026-03-07 14:30:00",
      "wallet_address": "7xKXtg...",
      "token_amount": 500000.0,
      "direction": "buy",
      "dex_name": "raydium",
      "base_amount": 0.85,
      "base_price_usd": 152.30,
      "total_fees_usd": 0.012
    }
  ],
  "token_mint": "EPjFWd...",
  "limit": 20
}

Includes fee breakdown covering network fees and third-party platform fees.