Website History Checker (Wayback Machine)
Pricing
from $3.00 / 1,000 url looked ups
Website History Checker (Wayback Machine)
Bulk website history from the Internet Archive's Wayback Machine: when each URL or domain was first and last archived, captures per year, distinct versions and last change, every version with links, or what changed between two dates (title, headings, text, links). Official APIs, no key.
Pricing
from $3.00 / 1,000 url looked ups
Rating
0.0
(0)
Developer
Watchmere .
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
What does Wayback Machine Scraper do?
It looks up a whole list of URLs or domains in the Internet Archive's Wayback Machine and tells you their history, in one clean table:
- Summary (one row per URL): when it was first and last archived, how many times, captures per year, how many distinct versions the page had and when it last changed, plus links to the first and last archived copy and, if you give a date, the copy closest to that date.
- Every version (one row per version): each time the page's content changed, with the date it first appeared, how long it stayed the same, its status code and a link to open that version in the Wayback Machine.
- Compare two dates (one row per URL): what changed between the archived copies closest to two dates: title, meta description, H1/H2 headings, word and link counts, outbound domains, and how much of the text changed (words and sentences added and removed, percent changed). The page text itself isn't output.
It uses the Internet Archive's official public APIs (the CDX index and the archived pages themselves), so you don't need an account or an API key. This Actor isn't made or endorsed by the Internet Archive.
Who is it for?
- SEO and domain buyers: check an expired or for-sale domain before buying it: how old it really is, whether it was ever a real site, and what it looked like over the years
- Investigators, journalists and lawyers: see when a page existed and what it said around a given date, with links to the archived copies
- Competitor research: see when a competitor changed its home page, pricing page or messaging
- Content recovery: find every archived version of a lost page
How to use it
- Paste your URLs or domains, one per line (
example.com,example.com/pricingor a full address). A domain on its own means its home page;http/httpsandwwwcount as the same page, as in the Wayback Machine. - Pick What to get: Summary, Every version, or Compare two dates.
- Optionally limit the dates (a year like
2015, a month like2015-06, or a day like2015-06-30). - Click Start and download the results from the Output tab (CSV, Excel, JSON), or use the Summary, Versions and Comparison views.
Input example
{"urls": ["info.cern.ch", "https://example.com/pricing"],"mode": "summary","from": "2010","to": "2024","date": "2015-06-30","includeErrors": false}
For a comparison: "mode": "compare", "compareFrom": "2012", "compareTo": "2024" (leave both empty to compare the
oldest and newest copies). For every version: "mode": "captures", "maxCapturesPerUrl": 500.
Output examples
These come from the Actor's own test runs (October 2026, shortened).
Summary for info.cern.ch (the first website):
{"url": "info.cern.ch","archived": true,"firstSeen": "1997-12-10T18:41:00Z","lastSeen": "2026-10-13T11:15:45Z","totalCaptures": 3587,"estimatedCaptures": null,"countsExact": true,"distinctVersions": 44,"capturesPerYear": { "1997": 2, "1998": 4, "1999": 5, "2000": 156, "...": "...", "2025": 345, "2026": 231 },"lastChangedAt": "2014-02-08T04:35:18Z","statusCodes": { "200": 3586, "302": 18, "403": 2, "revisit": 1, "501": 1 },"closestToDate": { "requested": "2015", "timestamp": "2015-07-02T18:04:30Z", "statusCode": "200","archiveUrl": "https://web.archive.org/web/20150702180430/info.cern.ch/" },"firstArchiveUrl": "https://web.archive.org/web/19971210184100/info.cern.ch/","lastArchiveUrl": "https://web.archive.org/web/20261013111545/info.cern.ch/","note": null,"error": null}
Every version of apify.com from 2015 (first row):
{"url": "apify.com","version": 1,"timestamp": "2015-02-16T02:12:25Z","lastCapturedAt": "2016-05-12T07:35:54Z","captureCount": 5,"statusCode": "200","mimetype": "text/html","digest": "3Z65GIU4US7YSBJ3HD2AU4WJP3YZNWYN","length": 440,"archivedUrl": "http://apify.com:80/","archiveUrl": "https://web.archive.org/web/20150216021225/http://apify.com:80/","changed": null}
Compare two dates for apify.com, 2008 vs 2024:
{"url": "apify.com","fromTimestamp": "2008-09-19T04:10:40Z","toTimestamp": "2024-07-03T00:58:23Z","identical": false,"titleBefore": "Under Construction","titleAfter": "Apify: Full-stack web scraping and data extraction platform","headingsAdded": ["Build reliable web scrapers. Fast.", "Web scraping can be challenging", "Trusted business partner"],"headingsRemoved": ["Under Construction"],"wordCountBefore": 102,"wordCountAfter": 1515,"linkCountBefore": 0,"linkCountAfter": 112,"outboundDomainsAdded": ["capterra.com", "crawlee.dev", "discord.com", "g2.com", "github.com", "..."],"wordsAdded": 1499,"wordsRemoved": 86,"percentChanged": 98.0,"sentencesAdded": 174,"sentencesRemoved": 11}
| Field | Meaning |
|---|---|
| firstSeen / lastSeen | First and last capture (UTC) |
| totalCaptures | How many times the page was archived (in your date range) |
| estimatedCaptures / countsExact | For pages archived more than about 120,000 times (the home pages of the biggest sites), the total is estimated from the size of the Archive's index and countsExact is false; yearly and version counts are then left empty. Example: google.com about 12.6 million captures since 11 Nov 1998 |
| distinctVersions | How many times the archived content changed (see the FAQ about dynamic pages) |
| lastChangedAt | When the newest version first appeared |
| statusCodes | Captures per HTTP status (revisit = a capture the Archive stored as "same as an earlier one" without saying which status that had) |
| timestamp / lastCapturedAt / captureCount | When a version first appeared, the last capture that still had the same content, and how many captures it covers |
| length | Size of the archived record in bytes (compressed, as stored by the Archive) |
| changed | true when this version differs from the page's previous successful version |
| percentChanged | How much of the page's visible text differs between the two copies (0 = same, 100 = completely different) |
| wordsAdded / wordsRemoved / sentencesAdded / sentencesRemoved | How many words and sentences appear only in the newer / only in the older copy |
| note | Anything you should know about this row (never archived, a limit reached) |
| error | Why a lookup failed. Failed lookups are free |
By default only successful captures count (redirects and error pages are left out of every number). Switch on Count redirects and errors to include them.
Personal data
The Actor outputs page-level facts only, never the text of the pages: comparisons give counts of what changed, not the changed sentences. The titles, meta descriptions and headings it does output are cleaned first: email addresses and phone numbers are removed, and people's names are removed on a best-effort basis (a pattern-based filter, so it can miss a name or remove something that isn't one). Archived pages can contain personal data; you are responsible for how you use what you open in the Wayback Machine.
How much does it cost?
You pay per URL, not per row:
- Summary: one URL looked up per URL. A URL the Archive has never seen counts too, because "never archived" is a real answer.
- Every version: one URL looked up per URL for each started 1,000 versions listed (most pages have fewer, so usually one).
- Compare two dates: one comparison per URL that was compared (it reads two archived pages). If there was nothing to compare (never archived, or only one version), it's free.
Failed lookups are free: invalid addresses, sites excluded from the Wayback Machine, and lookups that failed
because the Archive didn't answer still appear with an error, at no charge. See the Pricing tab for the rates.
Set a maximum cost per run in the run options and the Actor stops cleanly when it gets there, without starting lookups it couldn't pay for. If Apify moves a run to another server, the restarted run continues after the last URL it saved. Versions that were already paid for are kept in the run's storage before they're charged, so the restarted run saves the rest of them without looking the URL up or charging again.
Speed and fair use of the Internet Archive
The Internet Archive is a non-profit library, and this Actor is a polite client: at most 2 URLs are looked up at a time, index searches start at least 2.5 seconds apart (about 24 a minute, following the limits the Archive has given to other API tools; our test runs measured 24.6–24.9 a minute because a run's first search starts at once), and archived pages at least 0.25 seconds apart. When the Archive answers "too many requests", every request pauses (1, then 2, then 5 minutes) and the pace halves; after 4 such answers in a row the run stops and the URLs it didn't reach aren't charged. A server error is retried twice (after the wait the Archive asks for, if it gives one); if the Archive fails for 5 URLs in a row, the run stops, since it's probably down, and the URLs it didn't reach aren't charged.
Most pages need one index search; very heavily archived pages need 3–4. In our test runs, 9 URLs (including google.com, example.com and python.org, which need several searches) took 57–84 seconds: 23 searches, 16.6–24.9 a minute depending on how fast the Archive answered, and it never asked us to slow down. A comparison needs about 3 searches and 2 page downloads (2 URLs took 18–27 seconds). Plan on roughly 10–20 URLs a minute for summaries and versions, and 4–8 for comparisons.
FAQ
Why does a page have almost as many versions as captures? A new version starts whenever the archived bytes differ. Many modern pages change a little on every load (tracking codes, timestamps, security tokens), so they count as a new version at almost every capture; static pages show the real number of edits (info.cern.ch: 44 versions in 3,587 captures). Use Compare two dates to see how much the visible text actually changed.
Why does a page show fewer captures than the Wayback Machine's calendar? By default redirects and error pages aren't counted. Switch on Count redirects and errors to count every capture.
Why are some numbers estimated? The home pages of the biggest sites have been archived millions of times. Reading millions of index lines would be slow and load the Archive, so for pages above about 120,000 captures the total is estimated from the size of the Archive's index; the first capture, last capture and last change are still exact.
Can I get every page of a whole domain? Not in this version: it looks up exactly the URLs you enter. The Archive's index refused whole-domain and whole-path searches in all our tests, and the Actor doesn't try to work around that.
Why does a site say it's excluded? Site owners can ask the Internet Archive to exclude their site; its history then isn't shown to anyone.
Is this allowed? The Actor only uses the Internet Archive's public APIs, at a gentle pace, and outputs facts about pages, not their text or personal data. The Archive's terms of use say access to its collections is for scholarship and research and that use must stay within copyright law and fair use; check them before reusing archived material.
Something isn't working or you'd like a feature? Open an issue on the Issues tab.