ArcDeltaAPI · Stable

DEVELOPER API

Data. Live. Compute.

Select real observations, inspect source quality, and calculate metrics or computed symbols on demand. Available history starts at the current collection epoch.

BASEhttps://arcdelta.trevms.com/api/v1

START

One account, product limits.

Create an API key in the TreVmS account. Send it as X-API-Key. REST, WebSocket, DU, CU, batch and row limits follow your ArcDelta plan. Account session tokens are not market API keys. Keep keys on the server.

BASE=https://arcdelta.trevms.com/api/v1
# ARCDELTA_API_KEY comes from your secure environment.
curl "$BASE/data/instruments" -H "X-API-Key: $ARCDELTA_API_KEY"

HISTORY

Durable + rolling.

Durable observations accumulate from collection start without automatic expiry. Rolling datasets have limited windows. Retention is the configured maximum; source fields and continuity may vary. GET /storage returns the actual epoch and retention contract.

DATASETRETENTION
OHLCV, OI, funding, CVD, minute footprintDurable · from collection start
Sampled BBO2 days + current UTC partition · BBO: 1 observation/symbol/second
REST trades, L2 snapshots, price-level footprint bins12 hours
Detailed L2 deltas2 hours · cleanup granularity 5m
Minute order-book history7 days
Option state deltas / minute-sampled chain replay48 hours
Minute option chain / 5-minute chain snapshots30 days
Minute option trade aggregates90 days
Computed indices, ratios, GEX, DEX, RSI, EMACalculated on demand · no stored output history

Trade REST routes expose a rolling 12h relay buffer. Trade and L2 relay buffers may reset after a database crash; durable minute aggregates remain. Historical chain replay uses minute-sampled deltas inside 48h; older requests use a retained preceding snapshot. The response states replay mode and time.

curl "$BASE/storage" -H "X-API-Key: $ARCDELTA_API_KEY"

CONTRACT

Explicit units, native identity.

/data and /index timestamps are Unix milliseconds UTC; time filters use ISO 8601. Legacy /gold and /realtime may return ISO strings. Sizes and normalized OI use base quantity; quote notional is separate. Missing OI is unknown, not zero. Spot has no futures OI or funding.

Deribit option OI is already base quantity. open_interest_contracts = base OI / contract_size; open_interest_quote = base OI × underlying USD price. IV is percent; iv_decimal = percent / 100. Native symbol, settlement, contract_size and lot_size are separate. Do not multiply base OI by contract_size again.

REST

Market observations.

Perpetuals: Bybit, Binance, OKX, Hyperliquid, Gate and Bitget. Spot: Coinbase USD and Kraken USD/EUR. Use the current instruments and sources catalogs for actual venue and symbol availability. Symbols differ by category and quote currency.

GET/data/instruments · /sources
GET/data/ohlcv · /gold/ohlcv · /gold/venue-ohlcv
GET/data/open-interest · /data/funding · /data/funding/settlements
GET/data/mark-price · /data/index-price · /data/ticker
GET/data/trades · /data/bbo · /realtime/trades
GET/data/orderbook · /data/orderbook/history
GET/data/orderbook/availability · /realtime/footprint
GET/realtime/trade-bins · /realtime/liquidations

Market requests accept symbol, exchange where supported, interval/timeframe, start/end (from/to aliases), and limit. Aggregate intervals: 5m, 15m, 1h, 4h, 1d. Venue OHLCV is 5m. Limits are capped by your plan. /schema/{name} and /compute/metrics/{name} describe response fields and metric parameters.

curl "$BASE/data/ohlcv?symbol=BTCUSDT&exchange=bybit&interval=5m&limit=200"   -H "X-API-Key: $ARCDELTA_API_KEY"
curl "$BASE/data/open-interest?symbol=BTCUSDT&interval=5m&limit=200"   -H "X-API-Key: $ARCDELTA_API_KEY"

Trade quantities use the base asset. Counts refer to received native observations; one observation may aggregate several executions. The current Binance feed uses aggregate trades. The event-level feed labels source_granularity explicitly; historical REST rows with unknown granularity must not be treated as individual executions.

WEBHOOKS

Events pushed to your server.

Register an HTTPS endpoint for liquidations above a threshold, funding settlements and data gaps. Endpoints per plan: Research 2, Quant 10, Pro 50. Each delivery is signed: verify ArcDelta-Signature t=<unix>,v1=hex(HMAC-SHA256(secret, "<t>.<body>")). The secret is shown once. Failed deliveries retry with backoff and are kept for 7 days.

GET/account/webhooks
POST/account/webhooks · /account/webhooks/{id}/test
GET/account/webhooks/{id}/deliveries

DATA QUALITY

Freshness and historical revisions.

OI notional uses the instrument's quote currency (USDT or USDC); normalized base quantity remains separate. /instruments distinguishes collected venues from historical_venues, and status distinguishes trading from historical_only. Durable history remains readable after a venue leaves collection.

/realtime/trades returns the latest page by exchange event time when after_id is absent. Use meta.next_after_id for ascending forward continuation. trade_id preserves the native observation id. Recovery can deliver an older exchange timestamp at a newer relay id: order historical observations by exchange time, and deduplicate native identity.

/health and /quality expose trade_recovery counts for Binance aggregate trades. /health also exposes bar_recovery counts (pending, filling, failed, done, out_of_scope); bar_audit reports the last completed scan of observed candle history. history_ready remains false while known bar gaps are unresolved or the full-history audit is incomplete or older than 12 hours. Outstanding gaps remain pending or archive_required until actual source observations are recovered. Historical revisions can arrive later than the observed event and must not be treated as information available earlier. Recovery depends on source availability; an absence of known gaps does not certify complete history. out_of_scope excludes intervals before the first complete candle of the current history epoch; it does not mean data was recovered. Missing observations are never replaced with synthetic trades.

/realtime/footprint minute totals are durable; price-level bins retain 12 hours. The response states history_start, row_limit and truncated. Split historical requests into smaller periods when truncated is true.

OPTIONS

Listed contracts, wider coverage.

Top-50 market-cap coins are matched to actual Deribit listings. BTC, ETH, SOL, XRP, AVAX, HYPE and TRX currently have contracts, including USDC settlement. Most top-50 coins have no listed options. /options/coverage reports listed-contract counts and status; source capitalization ranks are withheld until their delivery rights are confirmed. Deep books cover up to 40 high-OI contracts per underlying.

Reference ranking for options research: Data provided by CoinGecko · Powered by CoinGecko. Indices use ArcDelta exchange observations only.

GET/options/coverage · /options/chain · /options/status
GET/options/expiries · /options/contracts/{instrument_id}
GET/options/history/chain · /options/trades · /options/surface
POST/compute/options
curl "$BASE/options/chain?underlying=SOL" -H "X-API-Key: $ARCDELTA_API_KEY"
curl -X POST "$BASE/compute/options"   -H "X-API-Key: $ARCDELTA_API_KEY" -H 'Content-Type: application/json'   -d '{"metric":"gex","underlying":"SOL"}'

Supported option functions: gex, dex, gex_profile, iv_smile and term_structure. GEX uses call +1 / put −1 × gamma × base OI × underlying² × 0.01. DEX uses signed venue delta × base OI × underlying. The call/put GEX sign is an exposure convention; actual dealer positions are unknown. Computed exposure is not a price forecast.

WEBSOCKET

Live subscriptions.

Trade and L2 endpoints use symbol, optional exchange, and an API key. Response fields are described by /schema/trades and /schema/orderbook. Send application keepalives where required. Check stream_sequence per exchange|symbol|channel; a gap requires resynchronization. Process-wide arcdelta_sequence cannot detect gaps on one subscription. Check exchange, received and published timestamps independently.

const url = 'wss://arcdelta.trevms.com/api/v1/ws/trades'
  + '?symbol=BTCUSDT&exchange=bybit&api_key=' + encodeURIComponent(API_KEY);
const socket = new WebSocket(url);
socket.onmessage = ({data}) => console.log(JSON.parse(data));

COMPUTE

Metric catalog.

GET /compute/catalog lists functions; /compute/metrics/{name} lists parameters. POST /compute calculates from retained observations; /compute/batch requires plan access. Rolling indicators need enough contiguous data; warm-up and gaps can leave results unavailable.

curl -X POST "$BASE/compute"   -H "X-API-Key: $ARCDELTA_API_KEY" -H 'Content-Type: application/json'   -d '{"metric":"rsi","parameters":{"period":14},"data":{"symbol":"BTCUSDT","interval":"5m","limit":200}}'

COMPUTED SYMBOLS

Indices, ratios and expressions.

GET /index accepts symbol or expression, interval, limit, start/end, metric and period. BTC/ETH aligns closed BTCUSDT and ETHUSDT bars. Arithmetic supports + − × ÷ and parentheses, up to eight legs. Only common timestamps are used. Results include provenance and a return distribution. Synthetic OHLC, volume and OI are not assigned.

top-100 is calculated entirely from collected ArcDelta exchange observations. It selects 100 available USDT perpetual underlyings by a traded-notional proxy (normalized base volume × close) in the preceding 24h, using only observations before the requested window. At collection start the selection window may be shorter; at least 12 observed 5m bars per member are required. Membership stays fixed for that request. Equal weights reset after the first complete observation of each UTC day. Base 1000 is set at the first complete returned observation, so requests are independently rebased. This is a liquidity index, not a market-cap index. It uses no external index or capitalization service. All 100 prices must be present; missing observations are omitted without filling. /index/catalog and response metadata explain composition, source coverage and the base date.

curl --get "$BASE/index" -H "X-API-Key: $ARCDELTA_API_KEY"   --data-urlencode 'symbol=BTC/ETH' --data 'interval=5m&limit=500&metric=rsi&period=14'
curl "$BASE/index?symbol=top-100&interval=5m&limit=500"   -H "X-API-Key: $ARCDELTA_API_KEY"

Computed closes support RSI, EMA, SMA, returns, volatility, distributions and other close-based metrics. Functions requiring real OHLC range, volume, book or OI return an error. Indicators reset at gaps. Expressions also work in /compute and /compute/batch.

QUALITY

Freshness is observable.

/quality reports L2 sequence and freshness: healthy, stale, degraded or unknown. usable requires a fresh synchronized book. observation_age_lower_bound_ms is an age proxy; observation_age_capped marks truncated age. The legacy ingest_latency_ms field is not per-message transport latency. Compare exchange, received and published stream timestamps for latency. /options/status reports chain completeness. /health separates database availability from live_ready. /ready returns 503 if live ingestion is not ready. Inspect source timestamps and quality flags before use.

CODEMEANING
400Invalid parameters or unsupported input
401 / 403Invalid key / feature not allowed
404Unknown instrument or resource
429Plan quota exhausted
503Source or service not ready

Observations and computed analytics are for analysis. Source coverage and continuity vary. No personalized investment advice, trading instructions or guaranteed results are provided.