OHLCV endpoints
Two read-only endpoints, both under /v1, both authenticated with X-API-Key — see Authentication.
Conventions
- A successful response is a bare JSON array of candles — no wrapper object, no total count — ordered by
close_ts ascending. - Pagination mirrors Binance's klines endpoint exactly, anchor included: there is no cursor or offset parameter. With
start, fetch the next page by re-issuing the request with start set to just after the last close_ts you received (paging forward) — this holds even if end is also set and the window is bigger than limit; end only caps how far forward the page may reach, it never relocates the anchor. Without start, limit returns the most recent candles instead — page further back by setting end to just before the earliest close_ts you received. Either way, the row you got at that end of the page is the cursor, and results always come back ordered by close_ts ascending. flag is null, "outlier", or "outlier_excluded" — see Methodology for what the latter two mean.- Every field, valid or not, is checked before your call is logged — a request rejected for auth or permission reasons is never counted; see Errors & rate limits.
GET /v1/exchange_ohlcv
Raw candles as reported by a single exchange — no aggregation, no cross-exchange combination.
| Parameter | Type | Required | Description |
|---|
exchange | string | Yes | Exchange natural key, e.g. "binance" — the only exchange seeded today. |
interval | string | Yes | Candle interval: "1m", "1h", or "1d". |
base | string | Yes | Base asset ticker, e.g. "BTC". |
quote | string | Yes | Quote asset ticker, e.g. "USDT". |
start | datetime (ISO 8601) | No | Only candles with close_ts >= start. Anchors the page forward from this point, even with end also set. Omit to anchor on the most recent candles instead — see Conventions. |
end | datetime (ISO 8601) | No | Only candles with close_ts <= end. Omit for the latest available. |
limit | integer | No | Rows to return, 1–1000. Default 500 — a real SQL LIMIT, not a post-hoc truncation. |
curl "https://api.angolin.com/v1/exchange_ohlcv?exchange=binance&interval=1h&base=BTC"e=USDT&start=2026-09-22T00:00:00Z&limit=2" \
-H "X-API-Key: YOUR_API_KEY"
[
{
"exchange": "binance",
"interval": "1h",
"base": "BTC",
"quote": "USDT",
"close_ts": "2026-09-22T13:00:00Z",
"open": 63250.12,
"high": 63480.5,
"low": 63100.0,
"close": 63390.75,
"base_volume": 812.4123,
"quote_volume": 51420239.18,
"source_provider": "binance",
"source_channel": "vision",
"flag": null
}
]
GET /v1/aggregated_ohlcv
The cross-exchange combined series — no exchange parameter, since the response combines every contributing exchange for the requested base/quote/interval. See Methodology for exactly how open/high/low/close/base_volume/quote_volume are computed.
| Parameter | Type | Required | Description |
|---|
interval | string | Yes | Candle interval: "1m", "1h", or "1d". |
base | string | Yes | Base asset ticker, e.g. "BTC". |
quote | string | Yes | Quote asset ticker, e.g. "USDT". |
method | string | No | Aggregation methodology. Default and only value today: "omm_vwap_v1" — see Methodology. |
start | datetime (ISO 8601) | No | Only candles with close_ts >= start. Anchors the page forward from this point, even with end also set. Omit to anchor on the most recent candles instead — see Conventions. |
end | datetime (ISO 8601) | No | Only candles with close_ts <= end. Omit for the latest available. |
limit | integer | No | Rows to return, 1–1000. Default 500. |
curl "https://api.angolin.com/v1/aggregated_ohlcv?interval=1h&base=BTC"e=USDT&start=2026-09-22T00:00:00Z&end=2026-09-22T23:59:59Z&limit=2" \
-H "X-API-Key: YOUR_API_KEY"
[
{
"method": "omm_vwap_v1",
"interval": "1h",
"base": "BTC",
"quote": "USDT",
"close_ts": "2026-09-22T13:00:00Z",
"open": 63251.4,
"high": 63480.5,
"low": 63095.2,
"close": 63388.1,
"base_volume": 1523.88,
"quote_volume": 96430112.55,
"exchanges": ["binance"],
"flag": null
}
]
exchanges lists the exchanges that actually contributed to that specific candle, after any outlier exclusion.