/archive/samples/
A real slice of the full archive — one complete crypto up/down 5-minute market, both outcome tokens, open through resolution, all three streams — regenerated daily and served free.
GET https://data.vike.io/archive/samples/
GET https://data.vike.io/archive/samples/{file}A real slice of the full archive — one complete crypto up/down 5-minute market, both outcome tokens, open through resolution, all three streams — regenerated daily and served free. It is the right place to write and debug a parser: same column schema as the key-gated files, at megabytes rather than gigabytes.
Both forms are keyless — this path is not gated, so neither request below sends a credential, spends budget or records usage.
curl "https://data.vike.io/archive/samples/"The response is a directory listing page, HTML rather than JSON. Verbatim, fetched 2026-09-03:
<html>
<head><title>Index of /archive/samples/</title></head>
<body>
<h1>Index of /archive/samples/</h1><hr><pre><a href="../">../</a>
<a href="README.txt">README.txt</a> 03-Sep-2026 00:32 1376
<a href="book_events.parquet">book_events.parquet</a> 03-Sep-2026 00:32 6095263
<a href="l1_quotes.parquet">l1_quotes.parquet</a> 03-Sep-2026 00:32 631242
<a href="trades.parquet">trades.parquet</a> 03-Sep-2026 00:32 55905
</pre><hr></body>
</html>There is no JSON form of this listing. Parsing it means parsing HTML — which is a reason to
enumerate the archive through manifest.json or the two
discovery endpoints instead, and to treat this path as the
place you download from rather than the place you index from.
The second form fetches one file by name. README.txt is the one to read first: it names the
market the current sample was cut from, which is the fact the listing above cannot tell you.
curl "https://data.vike.io/archive/samples/README.txt"Verbatim, same fetch — 1,376 bytes, Content-Type: text/plain:
Polymarket L2 archive — FREE evaluation sample
================================================
This is a real, complete slice of the paid archive (not a synthetic or truncated demo): one
full crypto up/down 5-minute market — the busiest one of its kind (by book_events row count) on
the sample date below — with all three streams for BOTH outcome tokens (up + down) across that
market's entire lifecycle, open through resolution.
market slug: btc-updown-5m-1788358500
condition_id: 0xbf68516768c5732dcc70a342c96eab9ecee9e1b423897070d1ad5385e34bacd7
sample date: 2026-09-02 (UTC)
generated at: 2026-09-03T00:32:22Z
Files (Hive/Parquet, same column schema as the paid archive — see /archive/manifest.json for the
exact schema and the full list of available dates):
book_events.parquet 395640 rows, 6095263 bytes — full L2: snapshots + price_change deltas + trades + status markers
trades.parquet 3316 rows, 55905 bytes — taker tape only
l1_quotes.parquet 54726 rows, 631242 bytes — derived top-of-book bid/ask
This sample is regenerated daily from a real recent day, not a fixed historical snapshot. The
paid archive covers the FULL Polymarket universe (crypto up/down + sports + politics markets) for
every date listed in /archive/manifest.json. Auth: an X-API-Key header; the manifest explains how
to request a key.⚠ Every specific in those two responses is a day old at most. The slug, the condition_id,
the sample date and all six sizes are regenerated nightly — the capture above ran at 08:17 UTC
against files stamped 00:32 the same morning. They are shown so you can see the shape of what
you get; read the live README.txt for what you actually have.
⚠ "Paid archive" in that file is stale wording. The full archive is free: it needs a free API key, and downloading it does not spend the key's hourly budget (Rate limits). The capture above is kept verbatim.
Parameters: none. The directory URL returns the listing as HTML, not JSON; the file URLs return the bytes. Today's listing:
README.txt 1,376 bytes
book_events.parquet 6,095,263 bytes
l1_quotes.parquet 631,242 bytes
trades.parquet 55,905 bytesThe sizes and the market change daily — README.txt names the market and date of the current
one. Do not pin them.
⚠ The trailing slash is load-bearing. The keyless path is /archive/samples/, slash
included; without it the request is treated as an ordinary gated /archive/ path instead.
Measured today, unauthenticated: /archive/samples/ → 200, /archive/samples → 401. The
same one-character mistake explains a 401 on a resource that is documented as free.
/archive/manifest.json
The index of everything in the archive, regenerated daily — coverage, both partitioning patterns, the inline column schemas, the auth scheme, the licence, and one entry per partition. Needs no key.
/archive/{partition path}
One path prefix covering the whole archive — two Hive partitionings of the same data behind one path, not two endpoints.