vike
PolymarketArchive files (Parquet)

/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 — list the directory
curl "https://data.vike.io/archive/samples/"

The response is a directory listing page, HTML rather than JSON. Verbatim, fetched 2026-09-03:

Directory listing (HTML)
<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 — fetch one file
curl "https://data.vike.io/archive/samples/README.txt"

Verbatim, same fetch — 1,376 bytes, Content-Type: text/plain:

README.txt
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 bytes

The 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.