Documentation Python quickstart Blog Free tools Enterprise solutions hello@quanticdata.ioLog in
All collectors

Wayback Machine API

OSINT & security · v1.1.0 · wayback_machine

$0.0003 / snapshot

$0.30 / 1K · pay per delivered snapshot

The Wayback Machine's CDX server is the index behind the Internet Archive — a queryable list of every capture it holds for a URL — but it answers in a terse columnar format with no field names and a raw timestamp you have to parse. This endpoint reads that CDX server for a target URL or domain and returns one row per snapshot: the timestamp both raw and as ISO 8601, the archived URL, MIME type, HTTP status, content digest, byte length and the playback link.

$0.0003 per delivered snapshot · $2 free every month · Failed runs never billed

What it does

What a Wayback Machine API does

Point it at a single page and you get that page's capture history; set match_prefix and point it at a domain and you get every archived URL beneath it, which is how you reconstruct what a site looked like, or which pages it once had, across years. Near-identical captures are collapsed by their content digest, so a page archived hourly for a decade does not drown you in rows that never changed.

The value over calling CDX yourself is the shape. The raw endpoint returns positional columns whose order you have to remember and a timestamp like 20200114031502 you have to split into a date. Here every capture arrives as named fields with an ISO timestamp alongside the raw one, and a from/to range filters the history server-side so you fetch the window you want, not the whole life of the URL.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
targetstringyesA page URL or a domain to look up snapshots for.
match_prefixbooleannoMatch every URL under this path/domain, not just the exact URL.
fromstringnoEarliest capture, YYYYMMDD (or a longer timestamp).
tostringnoLatest capture, YYYYMMDD.
newest_firstbooleannoReturn the most recent captures instead of the oldest.
status_codestringnoOnly captures with this HTTP status, e.g. 200.
mimetypestringnoOnly captures of this MIME type, e.g. text/html.
max_resultsintegernoHow many snapshots to deliver at most (1–1000). You pay only for delivered snapshots.

Outputs — 10 fields, one row per snapshot

What one snapshot looks like

Every delivered snapshot carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based position (oldest first, or newest first with newest_first).
timestampstringCapture timestamp (yyyymmddhhmmss).
captured_atstring · nullableCapture time (ISO 8601).
original_urlstring · nullableThe URL as archived.
mimetypestring · nullableCaptured MIME type.
status_codestring · nullableHTTP status at capture.
digeststring · nullableContent digest.
lengthinteger · nullableCapture size in bytes.
snapshot_urlstring · nullableWayback playback URL.
raw_urlstring · nullableThe capture exactly as archived (no toolbar, links not rewritten).

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/wayback_machine/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/wayback_machine/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target":"https://example.com","max_results":50}'

Example response

POST /v1/scraper/collectors/wayback_machine/run
$ curl $QD/wayback_machine/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"target": "https: //example.com", "max_results": 50}'
{ "status": "done", "count": 50,
  "results": [
    {
      "timestamp": "…",
      "captured_at": "…",
      "original_url": "…",
      "mimetype": "…" } ],
  "cost": 0.015 }
# 50 snapshots × $0.0003 · nothing delivered, nothing charged

Try it

Wayback Machine snapshots, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

Get my free API key
Wayback Machine API: from target, QuanticData reads the web archive snapshots and returns one row per snapshot with timestamp, captured_at and mimetype, at $0.0003 per delivered snapshot.
You send target and match_prefix; the run reads the source and comes back as snapshots with rank, timestamp and captured_at — 10 fields on every row — and you are billed $0.0003 for each snapshot actually delivered, nothing for a run that delivers none.
$0.0003 / snapshot6,666 snapshots on the free $2 every month
Semantic inputtarget, match_prefix, from — no URL lists
Up to 1,000snapshots per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

Pricing

Wayback Machine API pricing

$0.0003 per delivered snapshot. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 6,666 snapshots before you spend anything.

$0.0003per delivered snapshot$0.3 per 1,000 delivered snapshots
6,666 snapshotson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

What people build with the Wayback Machine API

Three shapes of work this endpoint was designed around.

Content change tracking

Pull a page's capture history and diff the snapshots to see when copy, pricing or a claim on a competitor's site changed, with a playback URL to read each version.

Domain footprint reconstruction

match_prefix over a domain lists the URLs the archive ever saw, surfacing old paths, retired products and pages that no longer exist live.

Dead-link recovery

For a URL that now 404s, the snapshot rows give you the last good capture and its playback link, so a dataset built on since-deleted pages keeps a source.

Wayback Machine API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
Response shapePositional CDX columns, no namesNamed fields per snapshot
TimestampRaw 14-digit string to parseRaw and ISO 8601, side by side
Duplicate capturesEvery hourly re-crawl as a rowCollapsed by content digest

What people search for

Live autocomplete demand around Wayback Machine snapshots, pulled with our own Keyword ideas collector.

Wayback Machine API: the POST to the wayback_machine collector, 50 snapshots delivered and the bill, 50 × $0.0003 = $0.015 in usage.cost_usd; zero snapshots would cost $0.
The same call you would paste into a terminal: a Bearer key, target, match_prefix and from in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many snapshots arrived and usage.cost_usd is $0.015, which is 50 × $0.0003. A run that delivers nothing costs nothing. The key is good for 60 req/min on the free tier.

Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

FAQ

Questions we get about the Wayback Machine API.

Something else? Ask us

Does this save a page to the archive, or only read what is stored?

Read only. It queries the CDX index for captures the Internet Archive already holds; it does not trigger "Save Page Now". You give it a target and get back the snapshots that exist for it.

Can I get every archived URL under a domain, not just one page?

Yes — set match_prefix and pass the domain as the target. Instead of one URL's history you get every captured URL beneath it, which is the query for mapping a site's past footprint.

How do I limit the captures to a date range?

Pass from and to as YYYYMMDD. The CDX server filters by capture date on its side, so you retrieve only the window you asked for rather than paging through the entire history.

Why so few rows for a page I know was archived hundreds of times?

Captures with an identical content digest are collapsed, so a page that did not change between crawls appears once, not once per crawl. You are seeing distinct versions, which is usually what you meant to count.

Is there a free Wayback Machine API?

Every account gets $2 of credit every month with no card, which is about 6,666 delivered snapshots on this endpoint at $0.0003 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.0003. A run capped at 1,000 snapshots — the maximum for this collector — costs $0.3 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Run the Wayback Machine API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Run in dashboard
Illustration: three coloured zones of the page that is read (Web archive snapshots) turn into clean JSON with the fields timestamp, captured_at and mimetype; 10 fields on every row.