Data Ownership

Your algorithms deserve complete data ownership.

1d, 1h, and 1m historical crypto data in .parquet, complete with historical universes to avoid survivorship bias. Ready for pandas or polars in seconds. Take full sovereignty over your data.

Aggregated from

Rich in backtest, broke in live

Your backtests are all profitable, but the moment you go live, it falls apart?

You spent weeks writing a strategy and ran the backtest. The numbers light up the screen: x3.1, +26% a year. You found it. The holy grail.

You deploy it live. Reality: +2% a year, through a -42% drawdown. Exhausted, frustrated, you pull the plug.

What went wrong?

Most likely, survivorship bias. You tested your strategy on today's top crypto assets, coins you only know are winners because you are looking back. Your edge was an illusion: it only ever traded the survivors.

x4x2x1x0.520222023202420252026Your backtestx3.1Realityx1.1

The fix?

Build your strategies on a true historical universe free from look-ahead bias, tracking the actual tradeable pairs of your exchange at any given moment, downloadable in one click.

universe_binance_usdt_periods.parquet
basequotelisted_fromlisted_until
BTCUSDT2017-08-17T04:00:00Znull
ETHUSDT2017-08-17T04:00:00Znull
XMRUSDT2019-03-15T04:00:00Z2024-02-20T03:00:00Z
WAVESUSDT2019-01-18T10:00:00Z2024-06-17T03:00:00Z
LUNCUSDT2020-08-21T10:00:00Z2022-05-13T01:00:00Z
LUNCUSDT2022-09-09T08:00:00Znull
USTUSDT2021-12-24T08:00:00Z2022-05-13T01:00:00Z
FTTUSDT2019-12-20T03:00:00Z2022-11-15T05:00:00Z
FTTUSDT2023-09-22T08:00:00Znull
SRMUSDT2020-08-11T13:00:00Z2022-11-28T03:00:00Z
Real Binance spot listings, UTC. listed_until is null while the pair is still listed.

Choose your schema

Same data, three layouts. Pick the one that fits your workflow and see exactly what lands in your .parquet file.

One row per candle and asset. Assets are stacked vertically, so grouping, filtering, and concatenating across any number of assets is a one-liner.

ohlcv_1d.parquet
close_tsbaseopenhighlowclosebase_volumequote_volume
2025-01-01BTC93,576.0095,151.1092,888.0094,591.8010,521.4993,850,742
2025-01-01ETH3,331.203,436.903,303.103,399.5098,214.6330,512,094
2025-01-02BTC94,591.8097,839.5094,392.0096,984.809,307.9897,236,512
2025-01-02ETH3,399.503,593.003,391.703,592.80187,340.2654,754,012
Illustrative values, daily candles, UTC. All prices are quoted in USDT.

Why .parquet instead of CSV?

Compact

Columnar compression stores repeated, similar values together, so the same data takes a fraction of the disk space and bandwidth of a CSV.

Column-oriented

Each column is stored on its own. Loading only close or base_volume reads just those columns instead of scanning every row in full.

Typed

Timestamps and floats keep their exact dtype. No date parsing, no precision loss, no delimiter or locale surprises on the way in.

Prefer an API? Query it directly.

Historical OHLCV candles, served as clean JSON over a REST API. One call is enough to feed a live strategy, a notebook, or your own pipeline.

import requests

res = requests.get(
    "https://api.angolin.com/v1/exchange_ohlcv",
    params={
        "exchange": "binance",
        "interval": "1h",
        "base": "BTC",
        "quote": "USDT",
        "start": "2026-09-22T00:00:00Z",
        "limit": 1,
    },
    headers={"X-API-Key": "YOUR_API_KEY"},
)
candles = res.json()
Per-exchange or aggregated

Query the raw candles of a single exchange, or one series combined across every contributing exchange.

Fully traceable

Every candle carries its source and an outlier flag. Nothing is silently patched.

Up to 1,000 candles per call

No call quota, up to 10 requests per second. Page through any time range with plain HTTP and a single API key.

Pricing

Free

Recent history to try the data and the API.

$0Free forever
1d OHLCV: last 3 years.1h OHLCV: last year.1m OHLCV: last 30 days.Historical universe: last year.Parquet downloads and API access.

Personal

Deeper history for individual traders.

$15per month
1d OHLCV: full history.1h OHLCV: last 3 years.1m OHLCV: last year.Historical universe: last 3 years.Parquet downloads and API access.

Pro

Full history at every granularity.

$45per month
1d, 1h, and 1m OHLCV: full history.Historical universe: full history.Parquet downloads and API access.

Beta Tester

Everything we ship, free for life.

—Free for life · first 5 seats only
Everything in the Pro plan.Free for life on everything we ship (even future premium tiers).Priority voting rights on the product roadmap.Direct chat with the founder for instant support.Only 4 out of 5 seats left.

Angolin is in beta. The first 5 members get the Beta Tester plan: everything we ship, now and later, for as long as they stay.

FAQ

What data does Angolin provide?

Historical OHLCV candles (open, high, low, close, volume) for crypto pairs from Binance, Kraken and OKX, at 1d, 1h and 1m granularity. You get the raw candles of each exchange and a cross-exchange aggregated series computed from them.

How far back does the history go?

Every pair starts at its first candle on the exchange: September 2013 for Kraken, July 2017 for Binance and January 2018 for OKX. The full history is available at all three granularities, including 1m.

How many assets and pairs are covered?

About 1,500 assets and 6,000 pairs in the aggregated series: roughly 3,600 pairs on Binance, 2,000 on OKX and 1,750 on Kraken, across every quote currency they list (USDT, USD, EUR, BTC and more).

How do I get the data?

Download Parquet files from your account, ready for pandas or Polars, in a long, wide or one-file-per-asset layout. Or query the REST API with an API key, which returns JSON.

Read the documentation

How much does Angolin cost?

Free gets you recent history (3 years of 1d, 1 year of 1h, 30 days of 1m), Personal is $15/month and Pro, with full history at every granularity, is $45/month. Angolin is also in private beta: the first 5 members get the Beta Tester plan, free for life, with full history and everything shipped later, including future premium tiers.