Wayback Machine Snapshot Lookup
Pricing
from $1.50 / 1,000 results
Wayback Machine Snapshot Lookup
Full archive history of any URL from the Internet Archive's official CDX API: every snapshot with date, archive link, HTTP status and content digest - or a per-URL summary with first/last capture, snapshots per year and unique content versions. Polite rate control built in. No credentials needed.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
kuon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Get the full archive history of any URL from the Internet Archive's official CDX API: every snapshot with capture date, direct archive.org link, HTTP status and content digest — or a per-URL summary with first/last capture, snapshots per year and how many distinct content versions exist. Polite rate control towards archive.org is built in. No credentials or API keys needed.
What it does
Give it a list of URLs and pick an output mode:
Snapshots mode (default) — one dataset item per archived capture:
capturedAt(ISO 8601) and the raw WaybacktimestamparchiveUrl— click-through link to view that capture on web.archive.orghttpStatus,mimeType,lengthBytesrecorded at capture timedigest— content hash; identical digests mean the page didn't change
Summary mode — one dataset item per URL:
archived(does any snapshot exist),totalSnapshots(+totalIsLowerBoundwhen the URL has more than your cap)firstSnapshotandlastSnapshot— the true latest capture is fetched even when the list is truncatedsnapshotsPerYear— capture counts by year (archival activity profile)uniqueVersions— distinct content digests among retrieved snapshots
URLs that were never archived produce a summary item with archived: false;
lookup failures produce a failed item with a clear error. Batch jobs always finish.
Input
| Field | Type | Default | Description |
|---|---|---|---|
urls | array | — | URLs to look up (exact match, duplicates removed) |
outputMode | select | snapshots | snapshots (one item per capture) or summary (one per URL) |
maxSnapshotsPerUrl | integer | 500 | Cap per URL, oldest first (max 5000) |
fromDate / toDate | string | — | Filter captures, YYYY, YYYYMM or YYYYMMDD |
Example output (summary mode, abridged)
{"url": "https://example.com","type": "summary","status": "success","archived": true,"totalSnapshots": 200,"totalIsLowerBound": true,"firstSnapshot": {"capturedAt": "2002-01-20T14:25:10Z", "archiveUrl": "https://web.archive.org/web/20020120142510/http://example.com:80/"},"lastSnapshot": {"capturedAt": "2026-08-17T16:50:07Z", "archiveUrl": "https://web.archive.org/web/..."},"snapshotsPerYear": {"2002": 7, "2003": 12},"uniqueVersions": 3,"checkedAt": "2026-08-18T09:30:00Z"}
Typical uses
- Due diligence: how old is a site really, and how has it changed over the years
- Recover link targets that have gone dead (find the last good capture)
- Research and journalism: build a timeline of a page's revisions
- SEO forensics: when did a page first appear, when did it change
Politeness & terms
- Uses only the Internet Archive's public CDX API with an honest User-Agent
- 2 concurrent workers, a pause before every request, and backoff on 429/5xx — wired into the code, not optional
- No page content is downloaded — only the archive index metadata
Limitations
- Exact URL matching (no prefix/domain wildcards in this version)
snapshotsPerYearanduniqueVersionsare computed over retrieved snapshots, so they cover the firstmaxSnapshotsPerUrlcaptures for heavily archived URLs- The Wayback Machine itself decides what gets archived; unarchived URLs return
archived: false
Development (local)
cd actors/wayback-snapshot-lookupuv venv --python 3.13 .venv && uv pip install -p .venv/bin/python -r requirements.txt.venv/bin/python tests/run_local_test.py # end-to-end test (apify run equivalent), exit 0 = ALL PASS../../node_modules/.bin/apify run # real apify CLI local run (input: storage/key_value_stores/default/INPUT.json)
The test runs against a local CDX mock (truncation, revisit rows, retry on 503,
unarchived and invalid URLs); expected results live in tests/expected_output.json.
Publishing → ../../docs/publishing.md.