Coins: ...·Market Cap: ...·24h Vol: ...
Integration Guide

Exchange Integration Guide

Build your API for automatic NavScope integration. Exchanges that conform to one of our accepted formats can be onboarded through configuration alone — no custom code required.

1

Required APIs

GET /klines or /candles — 1-Minute OHLCV

Your exchange must provide a public REST endpoint returning 1-minute OHLCV (Open, High, Low, Close, Volume) candle data. NavScope accepts six response formats. Your response must match one of these exactly.

Required parameters:

  • symbol — trading pair identifier (e.g. BTCUSDT, BTC-USDT, BTC_USDT)
  • interval — must support 1m (1-minute candles)
  • limit — number of candles to return (minimum 100)

Accepted Response Formats

ABinance Format
[
  [
    1704067200000,   // open time (ms)
    "42850.00",      // open
    "42900.50",      // high
    "42800.10",      // low
    "42875.30",      // close
    "125.4321",      // base volume
    1704067259999,   // close time (ms)
    "5378291.12",    // quote volume
    312,             // trade count
    "62.1234",       // taker buy base vol
    "2664120.55",    // taker buy quote vol
    "0"              // ignore
  ]
]
BOKX Format
{
  "data": [
    [
      "1704067200000",  // timestamp (ms)
      "42850.00",       // open
      "42900.50",       // high
      "42800.10",       // low
      "42875.30",       // close
      "125.4321",       // base volume
      "5378291.12"      // quote volume
    ]
  ]
}
CBybit Format
{
  "result": {
    "list": [
      [
        "1704067200000",  // timestamp (ms)
        "42850.00",       // open
        "42900.50",       // high
        "42800.10",       // low
        "42875.30",       // close
        "125.4321",       // base volume
        "5378291.12"      // quote volume
      ]
    ]
  }
}
DKuCoin Format
{
  "data": [
    [
      "1704067200",     // timestamp (seconds)
      "42850.00",       // open
      "42875.30",       // close
      "42900.50",       // high
      "42800.10",       // low
      "125.4321",       // base volume
      "5378291.12"      // quote volume
    ]
  ]
}
EGate Format
[
  [
    "1704067200",     // timestamp (seconds)
    "5378291.12",     // quote volume
    "42875.30",       // close
    "42900.50",       // high
    "42800.10",       // low
    "42850.00",       // open
    "125.4321"        // base volume
  ]
]
FKraken Format
{
  "result": {
    "XBTUSDT": [
      [
        1704067200,       // timestamp (seconds)
        "42850.00",       // open
        "42900.50",       // high
        "42800.10",       // low
        "42875.30",       // close
        "42862.15",       // vwap
        "125.4321",       // base volume
        312               // trade count
      ]
    ]
  }
}

GET /symbols or /markets — Active Trading Pairs

A public endpoint listing all active trading pairs on your exchange.

Must include:

  • base — base asset symbol (e.g. BTC)
  • quote — quote asset symbol (e.g. USDT)
  • status — trading status (active/inactive/halted)
2

Preferred APIs (improve Openness Score)

WebSocket Real-Time Feed

+2 points

Push-based live price and trade updates. Reduces polling overhead and improves data freshness.

GET /orderbook

+1 point

Depth-of-market data. Enables liquidity analysis and spread calculations for your exchange.

GET /ticker — 24h Summary

+1 point

24-hour trading summary including volume, high, low, last price, and percentage change.

Historical Backfill 90+ Days

+1 point

Ability to request historical candle data beyond 90 days. Enables charting and trend analysis.

3

Data Format Requirements

FieldRequirement
TimestampsUnix seconds or milliseconds (UTC). Must be consistent across all endpoints.
PricesDecimal or string representation. Float/double types are NOT acceptable due to precision loss.
VolumesSeparate base volume and quote volume fields. Both must be present.
Symbol formatDocumented and consistent across all endpoints. Separators (dash, underscore, none) must be uniform.
4

Rate Limiting Guidelines

Minimum
30 requests/min

For public endpoints. Below this threshold, NavScope cannot maintain data freshness for your exchange.

Recommended
120+ requests/min

Enables priority polling frequency and improves your Openness Score.

429 Status Code
Required

Return HTTP 429 (Too Many Requests) with a Retry-After header. Do NOT silently IP-ban automated clients.

5

What NavScope Evaluates

🌐

API Availability

Uptime and reliability of your public REST and WebSocket endpoints. Measured continuously.

🎯

Data Accuracy

Cross-validated against multiple sources. Candle timestamps, OHLCV values, and symbol metadata must be consistent.

Response Time

Average latency for candle and symbol endpoints. Sub-500ms responses score higher.

📋

Format Standardization

How closely your API matches accepted formats. Custom formats require additional processing.

🌍

Geo-Accessibility

APIs accessible globally without IP restrictions or geo-blocking score significantly higher.

6

Openness Score (0 – 10)

Every exchange on NavScope receives an Openness Score from 0 to 10. This score reflects how developer-friendly, transparent, and accessible your API is. It is displayed publicly on your exchange profile and factors into token ranking algorithms.

FactorPoints
Standard REST API (matches accepted format)+3
WebSocket real-time feed+2
No authentication required for public data+2
Order book endpoint available+1
24h ticker endpoint available+1
Historical backfill 90+ days+1
High rate limits (120+ req/min)+1
Custom/proprietary response format-1
Authentication required for public data-2
Aggressive rate limiting (<30 req/min)-2
Geo-blocking (IP restrictions)-3
Unstable API / frequent downtime-4

Badge Tiers

Platinum
9 – 10
Gold
7 – 8
Silver
5 – 6
Bronze
3 – 4

Ready to integrate?

If your exchange API matches one of the accepted formats above, you can be listed on NavScope. Start with the free tier or explore our managed integration plans.