/archive/url
Resolves one partition to its absolute download URL plus that file's known byte and row counts. Use it when you already know the partition you want.
GET https://data.vike.io/v1/polymarket/archive/url?date={YYYY-MM-DD}&stream={stream}Resolves one partition to its absolute download URL plus that file's known byte and row
counts. Use it when you already know the partition you want and do not need to enumerate; use
/archive/datasets when you are discovering.
The flat layout — a date and a stream, no asset/tenor:
layout echoes back which of the two shapes you resolved, and bytes/rows are that file's real
size — 12.3 MB and 1,006,555 rows here — so you can budget the download before starting it. Note
that asset and tenor are simply absent from a flat response rather than present and null.
The family layout answers with the same fields plus those two.
# resolve one flat partition when you already know its day and stream: the absolute download url, with bytes and rows to budget it
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/archive/url?date=2026-09-02&stream=trades"
# one crypto up/down family's file instead: asset and tenor come as a pair, and the family file is far smaller than the flat one
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/archive/url?date=2026-09-01&stream=trades&asset=btc&tenor=5m"
# resolve and download in one step: redirect=true answers 302 with the file in Location, and curl -L follows it
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/archive/url?date=2026-09-02&stream=trades&redirect=true" -o trades-2026-09-02.parquet -L
# read the size before committing to a large stream: one day of book_events is gigabytes, so look at bytes first
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/archive/url?date=2026-09-02&stream=book_events" | jq '{bytes, rows, url}'
# keep only the url, to hand to a downloader (the file itself is served from /archive/, which does not spend the hourly budget)
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/archive/url?date=2026-09-02&stream=l1_quotes" | jq -r '.url'datequeryrequiredYYYY-MM-DD. Omitting it returns 400 {"error":"get_archive_url requires date"}.streamqueryrequiredbook_events, trades, l1_quotes.assetqueryoptionalasset and tenor to resolve the family layout, or neither to resolve the flat layout.tenorqueryoptionalredirectqueryoptionaltrue (or 1) returns 302 with the file in Location; the JSON body is still sent, so a client that does not follow redirects keeps the answer.{
"bytes": 12314277,
"date": "2026-09-02",
"layout": "flat",
"rows": 1006555,
"stream": "trades",
"url": "https://data.vike.io/archive/venue=polymarket/date=2026-09-02/trades.parquet",
"venue": "polymarket"
}{
"asset": "btc",
"bytes": 5448402,
"date": "2026-09-01",
"layout": "family",
"rows": 490669,
"stream": "trades",
"tenor": "5m",
"url": "https://data.vike.io/archive/venue=polymarket/asset=btc/tenor=5m/date=2026-09-01/trades.parquet",
"venue": "polymarket"
}asset and tenor are all-or-nothing, and a missing partition is a 400
asset and tenor are all-or-nothing. Supplying only one is refused rather than guessed:
400 {"error":"get_archive_url requires BOTH asset and tenor (family layout) or NEITHER (flat layout) — supplying only one is ambiguous"}.
A partition that does not exist is a 400, not a 404 — {"error":"no flat dataset found for date=1999-01-01 stream=trades"}.
This is a real answer, not necessarily a mistake: a family with zero rows in a stream on a given
day has no file that day, which the archive documents as expected behaviour. The family form of
the message names all four values: no family dataset found for asset=… tenor=… date=… stream=….
An unknown stream is a 400 too (invalid stream 'x' (must be one of book_events, trades, l1_quotes)).
/archive/datasets
A JSON index of every downloadable archive partition across both Hive layouts, each row carrying the absolute download URL beside the known size and row count.
Polymarket archive
Bulk Parquet for the recorded Polymarket CLOB — three paths on data.vike.io, two free and one key-gated, serving files directly with no JSON envelope in front of them.