Below, example URLs use this origin: https://coke-api.onrender.com — it updates automatically on this page. Configure NEXT_PUBLIC_API_URL (and API_INTERNAL_URL for Vercel rewrites) so the dashboard and API stay in sync.
Shortest path from zero to a working call against the base URL shown on this page.
curl -H "x-api-key: YOUR_API_KEY" "https://coke-api.onrender.com/api/crypto/price?symbol=BTC"
Two ideas: where to send requests, and which header carries your product API key.
1. Base URL
From this documentation page we use your current origin (https://coke-api.onrender.com). If the site is on Vercel, calls like https://coke-api.onrender.com/api/... are rewritten to your real API — same paths work in curl, scripts, and Postman. For a backend running in another datacenter, call the API hostname directly (the same value you set as NEXT_PUBLIC_API_URL on Vercel / Render).
2. Product API key (x-api-key)
Create a key in the dashboard after sign-in. Send the full secret string in the x-api-key header on every request to /api/crypto/*, /api/v1/*, /api/radar/*, and the other rows in the tables below. Do not put the key in the query string or in client-side code that ships to browsers unless you accept the leak risk.
Public demo routes (no API key)
Legacy widget: GET /api/public/preview/crypto-price?symbol=BTC. Interactive demo (compact JSON): GET /api/public/demo/crypto-price?symbol=BTC — rate-limited and cached. Production calls should use /api/crypto/price with x-api-key.
GET/api/public/preview/crypto-price?symbol=BTCGET/api/public/demo/crypto-price?symbol=BTC
Windows PowerShell
curl.exe -sS -H "x-api-key: YOUR_API_KEY" "https://coke-api.onrender.com/api/crypto/price?symbol=BTC" # Or native PowerShell: Invoke-RestMethod -Uri "https://coke-api.onrender.com/api/crypto/price?symbol=BTC" -Headers @{ "x-api-key" = "YOUR_API_KEY" }
PowerShell aliases curl to Invoke-WebRequest — use curl.exe or Invoke-RestMethod as above.
GET /api/v1/market/latest returns enriched rows (24h high/low, market cap when supply exists) plus meta (source, latency_ms, cache_age_seconds, optional collected_at). GET /api/v1/market/summary — top gainers, losers, volume leaders, trending. GET /api/v1/market/ohlc?interval= — optional single-interval candle. GET /api/v1/chain/latest — flat metrics plus per-chain rollups, gas_gwei summary, rough TPS from block tx count. GET /api/v1/crypto/* — analytics module (candles, overview, asset metrics, gas multi, on-chain, token profile, DeFi/arbitrage/insights stubs). GET /api/v1/history?category=&series_key= — time series: crypto_price, gas, gas_aggregate, fx, uptime_latency, uptime_status. Friendly history: GET /api/crypto/history?symbol=BTC&range=24h, /api/gas/history?chain=ethereum&range=24h, /api/currency/history?base=USD"e=GEL&range=7d, /api/uptime/history?domain=…, /api/latency/history?domain=…, /api/chain/history?network=ethereum&metric=gas_standard_gwei — range ∈ {1h,24h,7d,30d}, timestamps ISO-8601 UTC. Modular routes: /api/crypto/price (flat + enrichment + meta), /api/gas/fees (+ chains_enriched), /api/currency/rates (+ base_currency), /api/currency/pair?base="e=, /api/domain/check, /api/uptime/status. GET /api/v1/token/metadata — short scaffold; full profile at /api/v1/crypto/token/profile.
Header: x-api-key: <your_key>. Example paths relative to https://coke-api.onrender.com:
| Method | Path | Query | What it returns |
|---|---|---|---|
| GET | /api/v1/market/latest | opt limit | Paginated latest market rows with enrichment and meta. |
| GET | /api/v1/market/ohlc | req symbolreqquoteoptinterval1m | 5m | 15m | 1h | 4h | 1d | OHLC snapshot: m1/m5/m15/h1/h4/d1 when the hosted collector filled Binance klines (m15/h4); optional interval= selects one candle and interval_resolved_from (falls back to 5m/1h if new columns empty). |
| GET | /api/v1/market/summary | — | Leaders: gainers, losers, volume, trending buckets. |
| GET | /api/v1/chain/latest | — | Latest on-chain metrics rollup (gas, TPS hints, per-chain blocks). |
| GET | /api/v1/history | req categoryreqseries_keyoptlimit | Raw time-series catalog: category + series_key (e.g. crypto_price, gas_aggregate) + optional limit. |
| GET | /api/v1/token/metadata | req symbol | docs.rowV1TokenMeta |
Examples: GET /api/v1/history?category=crypto_price&series_key=Binance:BTC:USDT&limit=120 · GET /api/v1/history?category=gas_aggregate&series_key=ethereum&limit=120
Responses are JSON with the latest rows in the database (quotes, OHLC snapshot, on-chain metrics).
Modular endpoints for history-style candles, market overview, multi-chain gas, on-chain snapshots, token risk scaffolding, DeFi/arbitrage/insights placeholders, and a one-call token profile. All require x-api-key. Responses include meta (latency_ms, source). Fields marked stub in JSON are reserved for external indexers.
| Method | Path | Query | What it returns |
|---|---|---|---|
| GET | /api/v1/crypto/chains | — | Supported chain slugs (Ethereum, BSC, Arbitrum, Base, Polygon, Solana, Tron, Optimism) and rollout status. |
| GET | /api/v1/crypto/market/overview | opt networkoptcategory | Market overview: top gainers/losers, volatile names, volume leaders; optional network/category echo (filters activate when tagged data exists). |
| GET | /api/v1/crypto/asset/metrics | opt symboldefault BTCoptquoteUSDT | Spot metrics: price, 24h change from tape, 7d/30d change from time-series when available, volume 24h, market cap; ATH/ATL null until archive wired. |
| GET | /api/v1/crypto/candles | opt symboloptquotedefinterval1m | 5m | 15m | 1h | 4h | 1ddefrange7d · 1h | 24h | 7d | 30d | Synthetic OHLC buckets from crypto_price history plus latest snapshot OHLC for interval. interval 1m–1d; range 1h|24h|7d|30d. |
| GET | /api/v1/crypto/gas/multi | — | Gas analytics per network from latest chain metrics (same engine as /api/gas/fees). |
| GET | /api/v1/crypto/on-chain/network | def networkethereum | Per-network snapshot: metrics map, block hints, tx count, median gwei when present. |
| GET | /api/v1/crypto/on-chain/whales | def networkoptmin_usd | Large-transfer feed schema (empty until indexer); min_usd filter. |
| GET | /api/v1/crypto/on-chain/liquidity | def networkopttoken | Pool TVL/reserves/volume placeholder for DEX subgraph integration. |
| GET | /api/v1/crypto/token/analyze | req addressdefnetworkethereum | Contract analysis scaffold: taxes, honeypot, ownership, mint/blacklist flags, risk score — nulls until simulation provider. |
| GET | /api/v1/crypto/token/profile | req addressdefnetworkoptsymbolspot overlay | Single response merging optional spot overlay (symbol=), analysis stub, whales/liquidity stubs, socials/pair null. |
| GET | /api/v1/crypto/defi/overview | — | Staking/farming/lending rate lists — stub for protocol aggregators. |
| GET | /api/v1/crypto/arbitrage/hints | — | Cross-venue spreads and routes — stub for normalized CEX/DEX books. |
| GET | /api/v1/crypto/insights/summary | — | Stub lists for advanced signals; includes from_collector (fear/greed from chain metrics + screener slices) when the worker fills data. Cached ~120s. |
Whales, pool liquidity, token honeypot/tax checks, DeFi APY, arbitrage, and insight feeds return stable JSON shapes with stub: true until third-party or internal pipelines are connected — clients can integrate once without breaking changes.
New routes (same x-api-key): /api/crypto/price, /api/crypto/history, /api/gas/fees, /api/gas/history, /api/currency/rates, /api/currency/pair, /api/currency/history, /api/domain/check?host=, /api/uptime/status?host=, /api/uptime/history?domain=, /api/latency/history?domain=, /api/chain/history, /api/supply/total?symbol=. Cached ~30–60s when Redis is configured.
In the module table, query parameters are tagged: req = required, opt = optional, def = default if omitted.
Module routes (all require x-api-key)
| Method | Path | Query | What it returns |
|---|---|---|---|
| GET | /api/crypto/price | opt symboldefault BTC | Latest spot-style quote: price, 24h change, volume when available, exchange hint, nested meta (latency_ms, cache_age_seconds, confidence_score). |
| GET | /api/crypto/history | opt symboldefault BTCoptquotedefrange24h · 1h | 24h | 7d | 30doptfromISO UTCopttoISO UTCoptlimitdefault 240 · max 500 | Time series of prices for symbol (optional quote). range is optional (default 24h); allowed: 1h, 24h, 7d, 30d (UTC). Or pass from and to as ISO-8601 UTC instants instead of range (max window 90 days). Optional limit caps points (default 240, max 500). |
| GET | /api/gas/fees | — | Snapshot of gas levels across chains (raw rows plus analytics / chains_enriched). |
| GET | /api/gas/history | def chainethereumdefrange24h · 1h | 24h | 7d | 30doptfromISO UTCopttoISO UTCoptlimitdefault 240 · max 500 | Historical gas aggregate for a chain; range optional (default 24h; 1h | 24h | 7d | 30d) or custom from/to (ISO UTC, max 90d). chain defaults to ethereum. |
| GET | /api/currency/rates | — | Anchor currency and implied FX table (rates, samples, fiats) with meta. |
| GET | /api/currency/pair | def baseUSDdefquoteGEL | Single cross rate between base and quote (e.g. USD→GEL) derived from the same snapshot. |
| GET | /api/currency/history | def baseUSDdefquoteGELdefrange24h · 1h | 24h | 7d | 30doptfromISO UTCopttoISO UTCoptlimitdefault 240 · max 500 | FX time series for a pair; range optional (default 24h) or custom from/to (ISO UTC, max 90d). base/quote default USD/GEL. |
| GET | /api/domain/check | opt hostoptdomaineither host or domain | DNS / SSL / redirect / expiry style checks for a host (host or domain query). |
| GET | /api/domain/history | req hosteither host or domaindefmetricuptime | latencydefrange24h · 1h | 24h | 7d | 30doptfromISO UTCopttoISO UTCoptlimitdefault 240 · max 500 | Domain uptime or latency history in one route: metric=uptime|latency, host or domain (same aliases as /api/domain/check). range or from/to like other history endpoints. |
| GET | /api/uptime/status | req host | Last uptime probe for host (up/down, latency, HTTP status). |
| GET | /api/uptime/history | req domainor hostdefrange24h · 1h | 24h | 7d | 30doptfromISO UTCopttoISO UTCoptlimitdefault 240 · max 500 | Uptime status over time; domain (or host) required; range optional (default 24h) or from/to (ISO UTC, max 90d). |
| GET | /api/latency/history | req domainor hostdefrange24h · 1h | 24h | 7d | 30doptfromISO UTCopttoISO UTCoptlimitdefault 240 · max 500 | Response-time history; domain (or host) required; range optional (default 24h) or from/to (ISO UTC, max 90d). Values in ms. |
| GET | /api/chain/history | def networkethereum · or chaindefmetricgas_standard_gwei · or metricKeydefrange24h · 1h | 24h | 7d | 30doptfromISO UTCopttoISO UTCoptlimitdefault 240 · max 500 | Chain metric history: network/chain (default ethereum), metric/metricKey (default gas_standard_gwei), range optional (default 24h) or from/to (ISO UTC, max 90d); optional limit. |
| GET | /api/finance/macro | — | Macro & markets stub (inflation, rates, gold, indexes) — JSON scaffold with meta; fields fill as pipelines connect. |
| GET | /api/supply/total | opt symboldefault BTC | Circulating / total supply style snapshot for a symbol when present in data. |
| GET | /api/radar/token | opt tokensymbol or addressoptchainethereum · defaultoptvolume_change_pctoptliquidity_change_pctoptholders_change_pctoptwhale_activitytrue|falseoptprice_momentum_pctopttoken_age_hoursoptrisk_score0–100opttransaction_speed_tpsopthigh_volatilitytrue|false | Early Warning System (EWS): analyzes token momentum and risk heuristics. Returns score (0–100), signal (POTENTIAL_PUMP | HIGH_RISK | SUSPICIOUS | STABLE), risk_level, confidence, warnings[], full metrics, rule contributions[], meta.ruleset_version. Optional query: token, chain (default ethereum), liquidity_change_pct, volume_change_pct, holders_change_pct, whale_activity, price_momentum_pct, token_age_hours, risk_score, transaction_speed_tps, high_volatility — omit any for deterministic synthetic demo values derived from token+chain. |
Where you see range: omit it to use the server default (24h), or pass exactly one of 1h, 24h, 7d, 30d. Alternatively pass both from and to as ISO-8601 UTC (max span 90 days) instead of range. Timestamps in responses are ISO-8601 UTC. Other optional fields use documented defaults when omitted.
curl -sS -H "x-api-key: YOUR_API_KEY" "https://coke-api.onrender.com/api/crypto/price?symbol=BTC"
On Windows PowerShell, use curl.exe (not curl) so the real cURL runs, or use Invoke-RestMethod as in Quick start.
Required header: x-api-key
Query parameters
symbol — Base asset symbol (e.g. BTC).Example JSON
{
"symbol": "BTC",
"price": 71468.7,
"quoteCurrency": "USDT",
"current_price": 71468.7,
"change_24h": 1.83,
"volume_24h": 8590870823.1,
"source": "market_data:Bybit",
"exchange": "Bybit",
"updated_at": "2026-04-08T22:10:26.229Z",
"meta": {
"latency_ms": 54,
"cache_age_seconds": 30,
"confidence_score": 0.85,
"source": "market_data:Bybit"
}
}Typical status codes
Most errors return JSON: { "error": true, "message": "…" }.
Each route below returns a time series for charts. All require the x-api-key header. Query values are illustrative; substitute your own symbol, domain, or network.
Header on every request: x-api-key: YOUR_API_KEY
range — optional (default 24h). Allowed: 1h, 24h, 7d, 30d (UTC window). Or from + to (ISO UTC, max 90 days) instead of range. symbol — optional (default BTC). quote — optional (e.g. USDT). limit — optional (server default 240, max 500 points).
Example request
curl -sS -H "x-api-key: YOUR_API_KEY" "https://coke-api.onrender.com/api/crypto/history?symbol=BTC"e=USDT&range=24h&limit=3"
Example JSON response
Each point.timestamp is ISO-8601 in UTC (…Z).
{
"symbol": "BTC",
"quote": "USDT",
"series_key": "Binance:BTC:USDT",
"range": "24h",
"points": [
{
"timestamp": "2026-04-08T20:00:00.000Z",
"value": 71234.56,
"source": "market_data:Bybit"
},
{
"timestamp": "2026-04-08T21:00:00.000Z",
"value": 71380.12,
"source": "market_data:Bybit"
}
],
"meta": {
"source": "data_time_series",
"updated_at": "2026-04-08T22:10:26.229Z",
"latency_ms": 14,
"cache_age_seconds": null,
"confidence_score": 0.8
}
}range — optional (default 24h). Allowed: 1h, 24h, 7d, 30d; or from + to (ISO UTC, max 90d). chain — optional (default ethereum). limit — optional (default 240, max 500).
Example request
curl -sS -H "x-api-key: YOUR_API_KEY" "https://coke-api.onrender.com/api/gas/history?chain=ethereum&range=24h&limit=3"
Example JSON response
Each point.timestamp is ISO-8601 in UTC (…Z).
{
"chain": "ethereum",
"series_key": "ethereum",
"range": "24h",
"points": [
{
"timestamp": "2026-04-08T21:00:00.000Z",
"value": 28.4,
"source": "chain_metrics_batch"
}
],
"meta": {
"source": "data_time_series",
"updated_at": "2026-04-08T22:10:26.229Z",
"latency_ms": 9,
"cache_age_seconds": null,
"confidence_score": 0.75
}
}range — optional (default 24h). Allowed: 1h, 24h, 7d, 30d; or from + to (ISO UTC, max 90d). base — optional (default USD). quote — optional (default GEL). limit — optional (default 240, max 500).
Example request
curl -sS -H "x-api-key: YOUR_API_KEY" "https://coke-api.onrender.com/api/currency/history?base=USD"e=GEL&range=7d&limit=3"
Example JSON response
Each point.timestamp is ISO-8601 in UTC (…Z).
{
"base_currency": "USD",
"quote_currency": "GEL",
"series_key": "USD:GEL",
"range": "7d",
"points": [
{
"timestamp": "2026-04-07T00:00:00.000Z",
"value": 2.705,
"source": "fx_snapshot"
},
{
"timestamp": "2026-04-08T00:00:00.000Z",
"value": 2.712,
"source": "fx_snapshot"
}
],
"meta": {
"source": "data_time_series",
"updated_at": "2026-04-08T22:10:26.229Z",
"latency_ms": 11,
"cache_age_seconds": null,
"confidence_score": 0.7
}
}domain — required (or use host as an alias in the query string). range — optional (default 24h). Allowed: 1h, 24h, 7d, 30d; or from + to (ISO UTC, max 90d). limit — optional (default 240, max 500).
Example request
curl -sS -H "x-api-key: YOUR_API_KEY" "https://coke-api.onrender.com/api/uptime/history?domain=example.com&range=24h&limit=3"
Example JSON response
Each point.timestamp is ISO-8601 in UTC (…Z).
{
"domain": "example.com",
"range": "24h",
"points": [
{
"timestamp": "2026-04-08T21:45:00.000Z",
"value": 1,
"source": "uptime_probe"
}
],
"meta": {
"source": "data_time_series",
"updated_at": "2026-04-08T22:10:26.229Z",
"latency_ms": 6,
"cache_age_seconds": null,
"confidence_score": null
}
}domain — required (or host alias). range — optional (default 24h). Allowed: 1h, 24h, 7d, 30d; or from + to (ISO UTC, max 90d). limit — optional (default 240, max 500). Response includes unit: "ms" for point values.
Example request
curl -sS -H "x-api-key: YOUR_API_KEY" "https://coke-api.onrender.com/api/latency/history?domain=example.com&range=24h&limit=3"
Example JSON response
Each point.timestamp is ISO-8601 in UTC (…Z).
{
"domain": "example.com",
"range": "24h",
"unit": "ms",
"points": [
{
"timestamp": "2026-04-08T21:50:00.000Z",
"value": 142,
"source": "latency_probe"
}
],
"meta": {
"source": "data_time_series",
"updated_at": "2026-04-08T22:10:26.229Z",
"latency_ms": 5,
"cache_age_seconds": null,
"confidence_score": null
}
}range — optional (default 24h). Allowed: 1h, 24h, 7d, 30d; or from + to (ISO UTC, max 90d). network — optional (default ethereum); chain is accepted as an alias. metric — optional (default gas_standard_gwei); metricKey is accepted as an alias. limit — optional (default 240, max 500).
Example request
curl -sS -H "x-api-key: YOUR_API_KEY" "https://coke-api.onrender.com/api/chain/history?network=ethereum&metric=gas_standard_gwei&range=24h&limit=3"
Example JSON response
Each point.timestamp is ISO-8601 in UTC (…Z).
{
"chain": "ethereum",
"metric_key": "gas_standard_gwei",
"range": "24h",
"points": [
{
"timestamp": "2026-04-08T21:55:00.000Z",
"value": 31.2,
"source": "chain_metric_row"
}
],
"meta": {
"source": "chain_metric_history",
"updated_at": "2026-04-08T22:10:26.229Z",
"latency_ms": 10,
"cache_age_seconds": null,
"confidence_score": 0.85
}
}host — required (domain is an alias). metric — optional (default uptime): uptime | latency. range — optional (default 24h) or use from/to (ISO UTC, max 90d) like other history routes. limit — optional.
Example request
curl -sS -H "x-api-key: YOUR_API_KEY" "https://coke-api.onrender.com/api/domain/history?host=example.com&metric=uptime&range=24h&limit=3"
Example JSON response
Each point.timestamp is ISO-8601 in UTC (…Z).
{
"host": "example.com",
"metric": "uptime",
"range": "24h",
"from": "2026-04-07T22:10:26.229Z",
"to": "2026-04-08T22:10:26.229Z",
"series_key": "uptime:example.com",
"points": [
{
"timestamp": "2026-04-08T21:45:00.000Z",
"value": 1,
"source": "uptime_probe",
"meta": null
}
],
"meta": {
"source": "data_time_series",
"updated_at": "2026-04-08T22:10:26.229Z",
"latency_ms": 8,
"cache_age_seconds": null,
"confidence_score": 0.65
}
}Each key inherits your SaaS plan: per-minute (RPM) and daily caps reset at UTC midnight. Typical defaults: Free — 1,000 requests/day, 60 RPM; Pro — 100,000/day, 120 RPM; Business — no fixed daily ceiling, 300 RPM. Exact numbers follow the ApiPlan row linked to your key. Over limit returns 429. Store keys in environment variables.
Example error bodies (JSON)
401 — missing header or unknown key:
{
"error": true,
"message": "x-api-key required"
}{
"error": true,
"message": "Invalid API key"
}403 — inactive / expired key, inactive plan, or blocked account (message varies):
{
"error": true,
"message": "API key inactive"
}Other 403 messages include: "API key expired", "Account blocked".
429 — per-minute, daily, or monthly quota exceeded:
{
"error": true,
"message": "Rate limit exceeded"
}410 Gone may appear when revealing an API key that was issued before encrypted storage — create a new key. Store x-api-key only in secrets / env vars on servers you control.
Alerts and webhooks (optional), usage analytics, and /api/screener/crypto, /api/radar/token. Alert types price, gas, uptime, latency are evaluated today; volume_spike, liquidity_drop, whale_notional, new_pair, risk_score_change are accepted and reserved for upcoming data feeds.
/api/screener/crypto (x-api-key): top gainers, losers, most volatile, highest volume.
/api/radar/token (x-api-key): EWS — score 0–100, signal & risk_level & confidence & warnings; optional query metrics or synthetic demo from token+chain.
Dashboard
— create or revoke API keys in your account.