Wayback Machine API – Snapshots, Archived URLs & Page Changes avatar

Wayback Machine API – Snapshots, Archived URLs & Page Changes

Pricing

from $0.60 / 1,000 records

Go to Apify Store
Wayback Machine API – Snapshots, Archived URLs & Page Changes

Wayback Machine API – Snapshots, Archived URLs & Page Changes

Internet Archive Wayback Machine API: list snapshots of any URL, find all archived URLs of a domain, first-seen / domain age, archived page text and what changed between two dates. Official CDX & availability APIs, no proxies, pay per result.

Pricing

from $0.60 / 1,000 records

Rating

0.0

(0)

Developer

Ostrata

Ostrata

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Everything the Internet Archive knows about a URL, as clean rows. List every snapshot of a page, find all archived URLs of a domain, get the first-seen date (archive age) of a site, download the archived text of old versions, or compare two dates and see exactly which lines changed.

Also known as: Wayback Machine scraper, Wayback Machine API, archive.org CDX API, Internet Archive snapshots, website history checker, domain age / first seen, archived URLs extractor, old website versions, historical page changes.

  • Official public APIs only: the Wayback CDX server API and the Availability API. No scraping of web pages, no login, no proxies.
  • Polite by design: one request at a time to web.archive.org, ~1 request per second, automatic back-off on HTTP 429/5xx. Big jobs are slower, but they do not get blocked.
  • Five modes in one Actor, one consistent schema.
  • Pay only for results. URLs that were never archived, failed downloads and errors are free.

Modes

ModeWhat you getCharged
snapshotsOne row per capture: timestamp, status, MIME type, digest, size, Wayback link, raw-content link. Filter by date range, status, MIME type; deduplicate by content change or one per hour/day/month/year.1 Record per row
urlsEvery distinct URL archived for a host, domain (with subdomains) or path prefix, with the date it was first captured. Great for finding old pages, lost content, redirects to set up after a migration, SEO link recovery.1 Record per URL
summaryFirst capture, last capture, archive age in days/years, list of years with captures. Use it for domain-age checks, due diligence, fraud signals.1 Record per input URL
contentArchived page text (title, meta description, H1, readable text, word and link counts) for up to N snapshots per URL.1 Page per archived page downloaded
compareClosest captures to two dates, then lines added / removed, similarity %, title change. Pricing pages, terms of service, competitor messaging over time.1 Page per archived page downloaded (2 per comparison, 1 if both dates hit the same capture)

Input example

{
"urls": ["apify.com/pricing", "https://www.example.com/terms"],
"mode": "compare",
"compareFrom": "2022-01",
"compareTo": "",
"ignorePatterns": ["©\\s*\\d{4}"]
}

Snapshots of a page, one per month in 2023, successful captures only:

{ "urls": ["apify.com/pricing"], "mode": "snapshots", "from": "2023", "to": "2023-12", "collapse": "month", "statusCodes": ["200"], "maxRecordsPerUrl": 24 }

All archived URLs of a domain:

{ "urls": ["example.com"], "mode": "urls", "matchType": "domain", "statusCodes": ["200"], "maxRecordsPerUrl": 5000 }

Output

Snapshot row:

{
"type": "snapshot", "input": "apify.com/pricing", "url": "https://apify.com/pricing",
"timestamp": "20230115083012", "capturedAt": "2023-01-15T08:30:12Z",
"statusCode": 200, "mimeType": "text/html", "digest": "Q3J…", "lengthBytes": 31234,
"archiveUrl": "https://web.archive.org/web/20230115083012/https://apify.com/pricing",
"rawContentUrl": "https://web.archive.org/web/20230115083012id_/https://apify.com/pricing"
}

Comparison row: from / to (timestamp, Wayback link, title, word count), changed, similarityPercent, titleChanged, addedLinesCount, removedLinesCount, addedLines, removedLines.

A run summary (status per input: ok, no_captures, archive_fetch_failed, invalid_url, error) is saved as SUMMARY in the key-value store.

Pricing

Pay per event, no subscription:

  • Record (snapshot row, archived URL or summary): $0.0006 → $0.60 per 1,000.
  • Page (archived page downloaded and converted to text, in Content and Compare modes): $0.002.
  • Actor start: $0.00005.

Nothing is charged for URLs with no captures, archive download failures or errors. The run stops cleanly at your maximum charge per run: you are never billed past it.

Honest limits

  • The Internet Archive is slow and rate-limited. Expect ~1 request per second; a 5,000-row CDX page is one request, but each archived page download is one request too. Content and Compare jobs on hundreds of URLs take minutes.
  • Coverage depends on the Archive. Small or new sites may have few or no captures; pages blocked by robots.txt or excluded by owners are not available.
  • Text extraction is plain HTML parsing. Pages that build their content with JavaScript can come back nearly empty in Content/Compare mode (the archived HTML is what the crawler saw).
  • The diff is line-based (lines that appear or disappear), not a word-level edit script. Use ignorePatterns to drop dates, counters and copyright years.
  • urls mode returns the first capture of each distinct URL as the Archive canonicalizes it (query-string and www. variants may merge).
  • Not affiliated with the Internet Archive. Please respect its terms of use; consider donating if this is useful to you.

Use cases

  • SEO & migrations: recover old URLs to redirect, find lost content and backlinked pages.
  • Due diligence / KYB / fraud: how old is this website really? Since when does this shop exist?
  • Competitive intelligence: how a competitor's pricing page, plans or claims changed over time.
  • Legal & compliance: what the terms or privacy policy said on a given date (with a Wayback link as reference).
  • AI agents & research: feed historical page text to LLMs; MCP-ready through Apify.