API Reference
All data parsed from a self-hosted Yellowstone gRPC node — not aggregated from third-party APIs. Sub-second latency from chain to your application.
Authentication
All /v1/* routes require a Bearer token:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.conyr.ai/v1/token/{mint}/infoSystem endpoints (/health, /ready, /metrics) require no authentication.
Tiered Access
Every API key is associated with a tier that determines endpoint access, rate limits, and WebSocket connection limits.
| Tier | REST req/min | WS Connections | Highlights |
|---|---|---|---|
| Free | 10 | 0 | Buyer quality, bundle summary |
| Layer 1 — Market Data | 100 | 5 | OHLCV, trades, ticks, trade tape |
| Layer 2 — Wallet Intelligence | 300 | 20 | Wallet quality, positions, labels, profile, similarity, provenance |
| Layer 3 — Security Intelligence | 600 | 50 | Bundles, coordination, intel composites, wash trades, entanglement |
| Enterprise | 3,000+ | Unlimited | Bulk endpoints (roadmap), dedicated NATS (roadmap), custom limits |
Each tier includes all endpoints from lower tiers.
Endpoint Map
Free Tier
| Method | Path | Description |
|---|---|---|
| GET | /v1/token/{mint}/buyer-quality | Buyer quality tier decomposition |
| GET | /v1/token/{mint}/bundles/summary | Bundle count and classification |
Layer 1 — Market Data
| Method | Path | Description |
|---|---|---|
| GET | /v1/token/{mint}/info | Token validation status |
| GET | /v1/token/{mint}/price | Real-time on-chain price (coming soon) |
| GET | /v1/token/{mint}/ohlcv | OHLCV candlestick data |
| GET | /v1/token/{mint}/trades | Recent trade history |
| GET | /v1/token/{mint}/holders/summary | Distinct holder count + top-10/50/100 concentration |
| GET | /v1/token/{mint}/holders/top | Ordered top-N holders |
| GET | /v1/token/{mint}/holders | Paginated full holder list |
| WS | token:{mint}:ticks | Zero-latency chart ticks |
| WS | token:{mint}:ohlcv:{view}:{tf} | Candle stream |
| WS | token:{mint}:trades | Trade tape |
Layer 2 — Wallet Intelligence
| Method | Path | Description |
|---|---|---|
| GET | /v1/wallet/{addr}/quality | Position-correct skill score vs commodity per-exit win rate |
| GET | /v1/wallet/{addr}/profile | 30-dimensional behavior vector |
| GET | /v1/wallet/{addr}/performance | Aggregate wallet PnL / performance summary |
| GET | /v1/wallet/{addr}/similar | k-NN wallet similarity search |
| GET | /v1/wallet/{addr}/provenance | Funding chain resolution |
| GET | /v1/wallet/{addr}/trades | Historical realized PnL records (FIFO cost basis) |
| GET | /v1/wallet/{addr}/pnl | Historical realized PnL (coming soon — use /trades) |
| GET | /v1/wallet/{addr}/positions | Open positions with cost basis |
| GET | /v1/wallet/{addr}/labels | Enriched wallet labels (45+ fields) |
| GET | /v1/leaderboard | Ranked wallet leaderboard |
| WS | wallet:{addr}:pnl | Real-time PnL events |
| WS | wallet:{addr}:positions | Position deltas |
| WS | wallet:{addr}:labels | Label state changes |
Layer 3 — Security Intelligence
| Method | Path | Description |
|---|---|---|
| GET | /v1/token/{mint}/bundles | Full bundle detection results |
| GET | /v1/token/{mint}/bundles/{bundle_id} | Bundle detail with members |
| GET | /v1/token/{mint}/wash-trades | Wash trade detection |
| GET | /v1/wallet/{addr}/entanglement | Graph-based cluster analysis |
| GET | /v1/token/{mint}/suspicious-activity | Flagged suspicious activity + live funding-abuse signals |
| GET | /v1/token/{mint}/funding-abuse | Early-buyer cohort funding-pattern analysis |
| GET | /v1/wallet/{address}/follows | Leader/follower edges for a wallet |
| GET | /v1/wallet/{address}/entity | Wallet’s entity (funding/execution family) membership |
| GET | /v1/token/{mint}/campaigns | Active and recent coordinated campaigns on a token |
| GET | /v1/token/{mint}/crowd | Per-minute crowd state for a token |
| GET | /v1/entity/{entity_id} | Entity detail with embedded member sample |
| GET | /v1/entity/{entity_id}/members | Paginated entity member list |
| GET | /v1/coordination/health | Coordination pipeline freshness |
| GET | /v1/intel/coordinated-pushes/forming | Tokens with a coordinated push forming now |
| GET | /v1/intel/wallet/{leader}/cascade | Follower cascade behind a leader’s entry into a mint |
| GET | /v1/intel/entities/emerging | Recently-emerging entities (farms / execution clusters) |
| GET | /v1/intel/token/{mint}/early-buyers | Early/minority buy clusters on a token |
| GET | /v1/intel/token/{mint}/copy-originator | Likely copy originator in a time window |
| GET | /v1/intel/token/{mint}/entity-concentration | Entity-weighted demand concentration |
| GET | /v1/intel/token/{mint}/late-retail | Late-retail entrants after elite exits |
| POST | /v1/webhooks | Register security webhooks (coming soon) |
| WS | token:{mint}:security | Token security events |
| WS | wallet:{addr}:security | Wallet security events |
| WS | wallet:{addr}:follow | Follow-edge activations |
| WS | wallet:{addr}:entity | Entity-membership changes |
| WS | token:{mint}:campaign | Campaign activations on a token |
Error Responses
All errors return a consistent JSON envelope:
{"error": "Human-readable message", "code": 400}| Code | Meaning |
|---|---|
| 400 | Bad request — invalid parameters |
| 401 | Unauthorized — missing or invalid API key |
| 403 | Forbidden — tier insufficient for this endpoint |
| 404 | Not found — resource doesn’t exist |
| 429 | Rate limited — slow down |
| 500 | Internal error |
| 503 | Service unavailable — upstream dependency down |
Caching
Every endpoint is fronted by an in-process LRU cache. Cache TTLs vary by data freshness requirements:
| Cache | TTL | Max Entries |
|---|---|---|
| Buyer quality | 30s | 10,000 |
| OHLCV candles | 5s | 5,000 |
| Wallet performance | 30s | 10,000 |
| Wallet labels | 60s | 10,000 |
| Wallet profile | 60s | 10,000 |
| Provenance | 300s | 10,000 |
| Bundles | 15s | 20,000 |
| Coordination | 30s | 20,000 |
| Wash trades | 15s | 10,000 |
| Leaderboard | 60s | 50 |
| Token info | 300s | 50,000 |
For zero-latency data, use WebSockets instead of polling REST.
Response Compression
All responses support gzip compression. Send Accept-Encoding: gzip to reduce transfer sizes.