Wayback Machine History: Snapshots & Archived URLs API avatar

Wayback Machine History: Snapshots & Archived URLs API

Pricing

$1.00 / 1,000 snapshot rows

Go to Apify Store
Wayback Machine History: Snapshots & Archived URLs API

Wayback Machine History: Snapshots & Archived URLs API

Get a website's history from the Wayback Machine using the official archive.org APIs. List every snapshot of a URL, every archived URL on a domain, or the capture closest to a date. Dates, status codes, snapshot links and raw links. Empty and failed lookups free.

Pricing

$1.00 / 1,000 snapshot rows

Rating

0.0

(0)

Developer

Hill Country Bots

Hill Country Bots

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 hours ago

Last modified

Features

Limited permissions

Share

Get the history of any website from the Wayback Machine in one run. This Actor uses only the official Internet Archive APIs (the CDX server and the Wayback Availability API) to list every snapshot of a URL, a timeline with first and last seen dates, captures per year and status codes, every archived URL on a domain, or the capture closest to a date. Each row has the capture date, the HTTP status the site returned back then, the MIME type, size, content digest, a snapshot link and a raw link to the original file. No browser, no login, no personal data. $1 per 1,000 rows. Inputs with no captures, failed lookups and invalid inputs are free.

What does this Wayback Machine tool do?

You give it URLs or domains and pick a mode:

  • Snapshots: every capture of each exact URL, optionally one per day, month or year, or only when the content changed
  • Timeline: one row per URL with first seen, last seen, total captures, captures per year, status code counts (200, 301, 404...) and how many times the content actually changed
  • Archived URLs: every unique URL the Wayback Machine holds for a domain (with subdomains), a host, or a path prefix such as example.com/blog/, with the first capture of each
  • Closest: the single capture nearest to a date, for example "what did this page look like on January 1, 2015?"

Filters: date range (from, to), HTTP 200 only, MIME type (for example text/html or application/pdf), and skip URLs with query strings. Caps: maxRowsPerUrl and maxRows.

It never downloads or re-hosts archived pages. You get the links; open or fetch them yourself if you need the content.

Who is it for?

  • SEO agencies and consultants: recover old URLs before a migration, find pages that used to rank and now 404, and rebuild redirect maps
  • Domain buyers and investors: check what an expired or aged domain was used for before you buy it
  • Researchers, journalists and legal teams: prove what a page said on a given date, with a permanent archive link
  • Developers and AI agents: clean JSON through the Apify API or MCP, with a predictable price per row

Quick start

  1. Type a domain or URL (the form comes prefilled with sitemaps.org).
  2. Pick Snapshots, Archived URLs or Closest. Leave maxRowsPerUrl at 50 for a quick look.
  3. Click Start, then download JSON, CSV or Excel, or read the dataset through the API.

Sample output

First rows of a real run on November 12, 2026 (Snapshots mode, sitemaps.org, one snapshot per year):

Captured (UTC)Archived URLStatusSnapshot
2002-04-10 19:25http://sitemaps.org:80/200https://web.archive.org/web/20020410192531/http://sitemaps.org:80/
2004-07-01 21:56http://www.sitemaps.org:80/200https://web.archive.org/web/20040701215604/http://www.sitemaps.org:80/
2005-02-05 07:08http://www.sitemaps.org:80/302https://web.archive.org/web/20050205070836/http://www.sitemaps.org:80/
2006-12-05 09:52http://sitemaps.org:80/200https://web.archive.org/web/20061205095241/http://sitemaps.org:80/

If an input has no captures, the run writes one row with status: "not-found" and errorCode: "NO_SNAPSHOTS". If an input is invalid or the archive cannot answer after three retries, you get a row with status: "error", an errorCode and a plain-English errorMessage. None of those rows are charged.

Sample timeline row

From a real Timeline run on November 12, 2026 for sitemaps.org: first seen 2002-04-10, last seen 2026-11-06, 14,183 captures across 24 years, 58 content versions, status codes {"200": 4260, "301": 4499, "302": 1557, "403": 20, "503": 12, ...} and captures per year from {"2002": 2, ... "2025": 1449, "2026": 2941}. One row, charged once.

Example inputs

A history timeline (first/last seen, captures per year, status codes) for a list of domains:

{ "urls": ["sitemaps.org", "example.com"], "mode": "timeline" }

Every yearly snapshot of a homepage:

{ "urls": ["sitemaps.org"], "mode": "snapshots", "collapse": "year", "maxRowsPerUrl": 50 }

Only captures where the page content changed, between 2015 and 2020:

{ "urls": ["https://www.sitemaps.org/protocol.html"], "mode": "snapshots", "collapse": "digest", "from": "2015", "to": "2020" }

Every archived HTML page on a domain (no query-string noise), for a migration redirect map:

{ "urls": ["sitemaps.org"], "mode": "archivedUrls", "matchType": "domain", "onlyStatus200": true, "mimeType": "text/html", "maxRowsPerUrl": 1000 }

Archived PDFs under one folder:

{ "urls": ["example.com/docs/"], "mode": "archivedUrls", "matchType": "prefix", "mimeType": "application/pdf" }

What several sites looked like on January 1, 2010:

{ "urls": ["sitemaps.org", "example.com"], "mode": "closest", "closestTo": "2010-01-01" }

Output fields

FieldWhat it means
inputThe URL or domain you gave
modesnapshots, archivedUrls or closest
urlOriginal URL as captured (may show :80 or http)
timestampWayback 14-digit timestamp (UTC); first capture in Archived URLs mode
capturedAtThe same time as ISO 8601
snapshotUrlView the capture in the Wayback Machine
rawSnapshotUrlThe original archived file, without the Wayback toolbar (id_ link)
statusCodeHTTP status the site gave when it was captured
mimeType, lengthBytes, digestContent type, archived size, content hash (same digest = same content)
urlKeyThe archive's canonical key for the URL
firstSeen, lastSeen, totalCaptures, capturesPerYear, statusCodes, uniqueContentVersionsTimeline mode summary fields (countsComplete says whether every capture was counted)
status, errorCode, errorMessageok, not-found or error, and why

The key-value store also holds RUN_SUMMARY: rows charged, inputs with no captures, failures, and rows per input.

How much does it cost?

$1 per 1,000 rows ($0.001 per snapshot, URL or timeline row). No start fee. Rows for inputs with no captures, invalid inputs and archive failures are free. maxRows and the run's max-charge setting cap your spend: 50 rows cost $0.05.

Tips for big sites

Large domains can have millions of archived URLs, and the archive answers big queries slowly. Use a path prefix, a date range, collapse and maxRowsPerUrl to keep runs fast. The Actor pages through results and paces itself at about one request per second, as the Internet Archive asks of API users. If the archive is overloaded it retries three times with backoff, then reports ARCHIVE_UNAVAILABLE or ARCHIVE_TIMEOUT for free.

The Actor only calls the Internet Archive's public, documented APIs and returns capture metadata and links. It does not log in, does not bypass anything, and collects no personal data. Archived content belongs to its original owners; check the Internet Archive's terms before republishing it.

Built by Hill Country Bots. Questions or a missing feature? Open an issue on the Actor page and we will answer.