EEchoX
返回首页
DEVELOPER · SWAP.V1

实时 Swap Event API

所有金额字段均为十进制字符串。事件采用至少一次投递,请按 id 去重;仅将 Key 放在服务端或安全的运行环境。

HTTP 查询

使用 Bearer Key。limit 为 1-1000;可用 dexmint 过滤,并将响应的 nextCursor 作为下一次 after

curl "https://YOUR_DOMAIN/api/v1/swaps?limit=100&dex=PumpSwap" \
  -H "Authorization: Bearer ex_live_YOUR_KEY"

# 下一页
curl "https://YOUR_DOMAIN/api/v1/swaps?after=NEXT_CURSOR" \
  -H "Authorization: Bearer ex_live_YOUR_KEY"

WebSocket

服务端客户端可发 Authorization 头。浏览器请使用子协议传递 Key;连接后先收到 {"type":"ready","version":"swap.v1"}。可在 URL 使用 dexmint

const ws = new WebSocket(
  "wss://YOUR_DOMAIN/v1/swaps?dex=PumpSwap",
  ["echox-api-key", "ex_live_YOUR_KEY"]
);
ws.onmessage = ({ data }) => console.log(JSON.parse(data));

事件结构

{
  "id": "event_uuid", "type": "swap", "version": "swap.v1",
  "signature": "...", "eventIndex": 0, "slot": 358924681,
  "blockTime": "2026-07-21T08:00:00+00:00", "dex": "PumpSwap",
  "sourcePoolType": "pumpAmm",
  "poolAddress": "...", "baseMint": "...", "quoteMint": "...",
  "trader": "...", "side": "buy", "baseAmount": "1000.5",
  "quoteAmountSol": "7.25", "priceSol": "0.007246377",
  "liquidityUsd": "250000", "top10HolderPct": "22.5",
  "poolCreatedAt": "2026-07-20T08:00:00+00:00"
}

额度与错误

HTTP 与 WebSocket 共用 Stream 事件额度。付费套餐在订阅周期结束时重置,Free 套餐在 UTC 自然月开始时重置;HTTP 响应的 usage.periodStartusage.resetsAt 给出当前周期边界。

状态代码处理方式
400invalid_limit / invalid_cursor修正查询参数。
401invalid_api_key更换或重新创建 Key。
403backfill_limit_exceeded缩短回溯范围或升级 Stream 套餐。
429api_rate_limit_exceeded按 Retry-After 等待后重试;每个 Key 每分钟最多 600 次请求。
429stream_quota_exceeded等待当前额度周期重置或升级套餐。

WebSocket 使用 4401 表示 Key 无效,4408 表示连接数或事件额度超限。可通过 GET /api/health/data 查看公开数据新鲜度。

DEVELOPER · SWAP.V1

即時 Swap Event API

所有金額欄位都是十進位字串。事件採至少一次投遞,請依 id 去重,並妥善保護 Key。

HTTP 查詢

使用 Bearer Key。limit 範圍為 1-1000;支援 dexmint 篩選。將 nextCursor 作為下一次 after

curl "https://YOUR_DOMAIN/api/v1/swaps?limit=100&dex=PumpSwap" \
  -H "Authorization: Bearer ex_live_YOUR_KEY"

curl "https://YOUR_DOMAIN/api/v1/swaps?after=NEXT_CURSOR" \
  -H "Authorization: Bearer ex_live_YOUR_KEY"

WebSocket

伺服器端可傳送 Authorization 標頭;瀏覽器請使用子協定。URL 支援 dexmint

const ws = new WebSocket(
  "wss://YOUR_DOMAIN/v1/swaps?dex=PumpSwap",
  ["echox-api-key", "ex_live_YOUR_KEY"]
);
ws.onmessage = ({ data }) => console.log(JSON.parse(data));

事件欄位

事件包含 ID、版本、簽名、索引、slot、區塊時間、DEX、池、代幣、交易者、方向、數量、SOL 價格、流動性、持倉集中度與池建立時間。可選欄位可能為 null

額度與錯誤

HTTP 與 WebSocket 共用 Stream 事件額度。付費方案依訂閱週期重置,Free 方案依 UTC 日曆月重置;HTTP 的 usage.periodStartusage.resetsAt 提供週期邊界。

公開資料健康狀態:GET /api/health/data

DEVELOPER · SWAP.V1

Live Swap Event API

All amount fields are decimal strings. Delivery is at least once, so deduplicate on id. Keep API keys in a server or another trusted runtime.

HTTP

Send a Bearer key. limit accepts 1-1000. Filter by dex or mint, then pass nextCursor as after.

curl "https://YOUR_DOMAIN/api/v1/swaps?limit=100&dex=PumpSwap" \
  -H "Authorization: Bearer ex_live_YOUR_KEY"

curl "https://YOUR_DOMAIN/api/v1/swaps?after=NEXT_CURSOR" \
  -H "Authorization: Bearer ex_live_YOUR_KEY"

WebSocket

Server clients may send an Authorization header. Browsers should pass the key as a subprotocol. The first accepted message is {"type":"ready","version":"swap.v1"}. URL filters accept dex and mint.

const ws = new WebSocket(
  "wss://YOUR_DOMAIN/v1/swaps?dex=PumpSwap",
  ["echox-api-key", "ex_live_YOUR_KEY"]
);
ws.onmessage = ({ data }) => console.log(JSON.parse(data));

Event

Each event includes its ID, schema version, signature, event index, slot, block time, DEX, pool, mints, trader, side, amounts, SOL price, and optional liquidity, holder concentration, and pool creation time.

Errors and quotas

HTTP and WebSocket share the Stream event quota. Paid plans reset at the subscription boundary; Free resets at the start of each UTC calendar month. HTTP usage.periodStart and usage.resetsAt report the current boundaries.

Inspect public data freshness at GET /api/health/data. HTTP responses include event usage, limit, period start, and reset time.

DEVELOPER · SWAP.V1

API Swap Events в реальном времени

Все суммы передаются десятичными строками. Доставка выполняется не менее одного раза: удаляйте дубликаты по id и храните ключ в защищённой среде.

HTTP

Передавайте Bearer-ключ. limit принимает 1-1000. Доступны фильтры dex и mint; значение nextCursor передавайте как after.

curl "https://YOUR_DOMAIN/api/v1/swaps?limit=100&dex=PumpSwap" \
  -H "Authorization: Bearer ex_live_YOUR_KEY"

WebSocket

Серверные клиенты используют Authorization. В браузере передайте ключ как подпротокол.

const ws = new WebSocket(
  "wss://YOUR_DOMAIN/v1/swaps?dex=PumpSwap",
  ["echox-api-key", "ex_live_YOUR_KEY"]
);

Событие

Содержит ID, версию, подпись, индекс, slot, время блока, DEX, пул, токены, трейдера, сторону, объёмы, цену SOL и необязательные метрики ликвидности и держателей.

Ошибки и лимиты

HTTP и WebSocket используют общий лимит событий Stream. Платные тарифы обновляются на границе подписки, Free — в начале календарного месяца UTC. Поля HTTP usage.periodStart и usage.resetsAt показывают границы периода.

Состояние данных: GET /api/health/data.

DEVELOPER · SWAP.V1

실시간 Swap Event API

모든 금액 필드는 십진 문자열입니다. 이벤트는 한 번 이상 전달될 수 있으므로 id로 중복 제거하고 Key를 안전한 런타임에 보관하세요.

HTTP

Bearer Key를 사용합니다. limit은 1-1000이며 dex, mint 필터를 지원합니다. nextCursor를 다음 요청의 after로 전달하세요.

curl "https://YOUR_DOMAIN/api/v1/swaps?limit=100&dex=PumpSwap" \
  -H "Authorization: Bearer ex_live_YOUR_KEY"

WebSocket

서버 클라이언트는 Authorization 헤더를 사용하고 브라우저는 하위 프로토콜로 Key를 전달합니다.

const ws = new WebSocket(
  "wss://YOUR_DOMAIN/v1/swaps?dex=PumpSwap",
  ["echox-api-key", "ex_live_YOUR_KEY"]
);

이벤트

ID, 버전, 서명, 이벤트 인덱스, slot, 블록 시간, DEX, 풀, 토큰, 거래자, 방향, 수량, SOL 가격과 선택적 유동성 및 보유 집중도 필드를 포함합니다.

오류 및 한도

HTTP와 WebSocket은 Stream 이벤트 한도를 공유합니다. 유료 플랜은 구독 주기 경계에서, Free는 UTC 기준 매월 초에 갱신됩니다. HTTP usage.periodStartusage.resetsAt에서 현재 기간을 확인할 수 있습니다.

데이터 상태: GET /api/health/data.

DEVELOPER · SWAP.V1

リアルタイム Swap Event API

金額フィールドはすべて10進数文字列です。イベントは複数回配信される場合があるため id で重複排除し、Key を安全な実行環境に保管してください。

HTTP

Bearer Key を使用します。limit は 1-1000、dexmint で絞り込めます。nextCursor を次回の after に渡します。

curl "https://YOUR_DOMAIN/api/v1/swaps?limit=100&dex=PumpSwap" \
  -H "Authorization: Bearer ex_live_YOUR_KEY"

WebSocket

サーバー側は Authorization ヘッダー、ブラウザはサブプロトコルで Key を渡します。

const ws = new WebSocket(
  "wss://YOUR_DOMAIN/v1/swaps?dex=PumpSwap",
  ["echox-api-key", "ex_live_YOUR_KEY"]
);

イベント

ID、版、署名、イベント索引、slot、ブロック時刻、DEX、プール、トークン、取引者、方向、数量、SOL 価格、および任意の流動性・保有集中度を含みます。

エラーと上限

HTTP と WebSocket は Stream イベント上限を共有します。有料プランは購読期間の境界、Free は UTC の各暦月初にリセットされます。HTTP の usage.periodStartusage.resetsAt で現在の期間を確認できます。

データ状態: GET /api/health/data