Wayback Machine

App · Research & Academia · 20 actions

Read the web's past from the Internet Archive's Wayback Machine: check whether a page is archived, list every copy of it, find the captures where it actually changed, and read or download any of them. Audit a list of links for dead ones, watch a competitor's pricing page for changes, recover a document a site has taken down, or map every page a site had before it disappeared. Free and public: no account, no API key, and nothing to pay for.

Actions

ActionWhat it does
Check if a page is archivedAsk the Wayback Machine whether it has a copy of a page, and get a link to the nearest one.
Check several pages at onceRun the same archived-or-not check over a list of URLs and get one row per link, with a Wayback link for the ones that have a copy.
Compare two snapshotsCompare a page as it was at two moments and get back what was added and what was removed, in the words a reader would have seen rather than as a diff of markup.
Count captures day by dayHow many times a page was captured on each day of a year, or of one month.
Download an archived fileDownload an archived file as it was captured, so a later step can attach it to an email, post it to a chat or put it in storage.
Export snapshots as CSVWrite a capture list out as a CSV file instead of into the workflow, so tens of thousands of rows can be attached to an email, put in storage or handed to a spreadsheet.
Get a link to a page as it wasTurn a URL and a date into a link to that page as it looked then, so a message, a document or a citation can point at the archived copy rather than at a page that has since changed.
Get a page's capture historyHow often a page has been captured, year by year and month by month, with its first and last capture.
Get a page's Memento timemapA page's history in the Memento format defined by RFC 7089: the original URL, the gateway that resolves a date to a copy, and the first, last and intermediate copies with their dates.
Get a snapshot's detailsEverything the archive's index records about one capture: when it was taken, what the server said, what kind of file it was, how much was stored, and the content fingerprint that says whether two captures hold the same bytes.
List a page's content changesOnly the captures where a page actually changed, with the thousands of identical captures in between left out.
List a page's snapshotsEvery capture of one page, newest first, narrowed to the dates, the kind of response and the kind of file you care about.
List a site's archived filesThe files of one kind the archive holds under a site: the PDFs a regulator published and later withdrew, the images a brand used, the feeds a blog served.
List a site's archived pagesThe distinct pages the archive holds under a site, one row per page rather than per capture of it.
List a site's broken pagesThe pages under a site that a crawler found broken: 404s, server errors and redirects, as they were when the archive reached them.
List captures on one dayEvery capture of a page on one day, with the crawl behind each one.
Read an archived pageRead a page as it was, so a later step can summarise it, search it or answer questions about it.
Search archived sitesSearch the archive for sites by name or by what they are about, and get back how many captures each has and the years they run between.
Suggest archived hostsComplete a partly typed address into hosts the archive actually holds, subdomains and all: 'nasa' becomes www.nasa.gov, science1.nasa.gov and the rest.
Summarize what is archived for a siteHow much of a whole site the archive holds, year by year: how many captures it made, how many distinct pages those covered, how many pages it saw for the first time, and the breakdown by file type.

Check if a page is archived

Ask the Wayback Machine whether it has a copy of a page, and get a link to the nearest one. Point it at a date to ask for the copy closest to that moment instead of the most recent. This is the quickest check to run before following a link that may be dead, or to decide whether the rest of a workflow has anything to work with. No API key required.

Inputs

Page or site URLurltextRequired
The page to look for in the archive. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
Closest totarget_timedate and time
Return the copy captured nearest this moment. Leave it blank for the most recent copy.

Outputs

archived_urltext
The URL exactly as it was crawled.
calendar_urltext
The Wayback Machine's own calendar page for this URL.
captured_attext
The same instant as an ISO 8601 UTC time.
is_archivedtrue/false
Whether the archive has a copy it can serve. Branch on this rather than on the link being present.
raw_urltext
The link that serves the capture's original bytes, with no Wayback banner added.
snapshot_urltext
The Wayback link that replays this capture.
status_codenumber
The HTTP status the page returned when it was captured.
target_timetext
The moment that was asked about, or null when the most recent copy was wanted.
timestamptext
The capture's Wayback timestamp, fourteen digits of YYYYMMDDhhmmss.
urltext
The URL that was checked.
Example output
{
  "archived_url": "https://www.example.com/",
  "calendar_url": "https://web.archive.org/web/*/example.com",
  "captured_at": "2020-01-01T21:37:28Z",
  "is_archived": true,
  "raw_url": "https://web.archive.org/web/20200101213728id_/https://www.example.com/",
  "snapshot_url": "https://web.archive.org/web/20200101213728/https://www.example.com/",
  "status_code": 200,
  "target_time": "2020-01-01T00:00:00Z",
  "timestamp": "20200101213728",
  "url": "example.com"
}

Check several pages at once

Run the same archived-or-not check over a list of URLs and get one row per link, with a Wayback link for the ones that have a copy. Built for auditing the links in a page, a document or a spreadsheet: a URL the archive cannot answer for is reported as unarchived rather than failing the step. Up to 50 URLs. No API key required.

Inputs

URLsurlslistRequired
The pages to check, one per line. Up to 50 at a time.
Closest totarget_timedate and time
Return the copy of each page captured nearest this moment. Leave it blank for the most recent copy.

Outputs

archived_countnumber
How many of them the archive has a copy of.
countnumber
How many URLs were checked.
missing_countnumber
How many it has nothing for.
resultslist
One row per URL, in the order given.
target_timetext
The moment that was asked about, or null when the most recent copy was wanted.
Example output
{
  "archived_count": 1,
  "count": 2,
  "missing_count": 1,
  "results": [
    {
      "archived_url": "http://www.iana.org/",
      "calendar_url": "https://web.archive.org/web/*/iana.org",
      "captured_at": "2026-08-25T20:32:25Z",
      "is_archived": true,
      "raw_url": "https://web.archive.org/web/20260825203225id_/http://www.iana.org/",
      "snapshot_url": "https://web.archive.org/web/20260825203225/http://www.iana.org/",
      "status_code": 200,
      "target_time": null,
      "timestamp": "20260825203225",
      "url": "iana.org"
    },
    {
      "archived_url": null,
      "calendar_url": "https://web.archive.org/web/*/zzz-nope-9999.example",
      "captured_at": null,
      "is_archived": false,
      "raw_url": null,
      "snapshot_url": null,
      "status_code": null,
      "target_time": null,
      "timestamp": null,
      "url": "zzz-nope-9999.example"
    }
  ],
  "target_time": null
}

Compare two snapshots

Compare a page as it was at two moments and get back what was added and what was removed, in the words a reader would have seen rather than as a diff of markup. The archive's own content fingerprints are checked first, so a page that did not change at all is reported as identical outright. No API key required.

Inputs

Page or site URLurltextRequired
The page to compare with itself. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
Compare fromfirst_timedate and timeRequired
The earlier of the two moments to compare.
Compare tosecond_timedate and timeRequired
The later of the two moments to compare.
Maximum changes to listmax_changesnumber
How many added and removed passages to list. The counts are always complete.From 1 to 500. Default: 50.

Outputs

added_countnumber
How many passages the later capture added.
added_lineslist
The added passages, up to the limit asked for.
afterobject
The later capture.
beforeobject
The earlier capture.
character_changenumber
How much longer or shorter the page's text became.
is_identicaltrue/false
True when nothing a reader would notice changed.
removed_countnumber
How many the earlier capture had and the later did not.
removed_lineslist
The removed passages, up to the limit asked for.
same_stored_contenttrue/false
True when the archive stored byte-identical content for both captures.
truncatedtrue/false
True when there were more changes than were listed.
urltext
The page that was compared.
Example output
{
  "added_count": 11,
  "added_lines": [
    "The global coordination of the DNS Root, IP addressing, and other Internet protocol resources is performed as the Internet Assigned Numbers Authority (IANA) functions."
  ],
  "after": {
    "captured_at": "2024-05-31T23:26:18Z",
    "characters": 1319,
    "digest": "BY6BQOTX34GXMJIKNUNLXFKQCFNR7AIO",
    "snapshot_url": "https://web.archive.org/web/20240531232618/https://www.iana.org/",
    "timestamp": "20240531232618"
  },
  "before": {
    "captured_at": "2010-05-29T12:04:41Z",
    "characters": 1124,
    "digest": "IXML4B7BOWPMNLWCDAHO3DI7EYQACFPS",
    "snapshot_url": "https://web.archive.org/web/20100529120441/http://www.iana.org:80/",
    "timestamp": "20100529120441"
  },
  "character_change": 195,
  "is_identical": false,
  "removed_count": 6,
  "removed_lines": [
    "The Internet Assigned Numbers Authority (IANA) is responsible for the global coordination of the DNS Root, IP addressing, and other Internet protocol resources."
  ],
  "same_stored_content": false,
  "truncated": true,
  "url": "iana.org"
}

Count captures day by day

How many times a page was captured on each day of a year, or of one month. This is the calendar the Wayback Machine draws, and the cheap way to find the days worth looking at before asking for the captures themselves. No API key required.

Inputs

Page or site URLurltextRequired
The page whose calendar you want. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
YearyeartextRequired
The year to count. The list holds the years this page was actually captured in.
Monthmonthtext
Narrow the count to one month of that year. Every month by default.One of: any (Every month), 01 (January), 02 (February), 03 (March), 04 (April), 05 (May), 06 (June), 07 (July), 08 (August), 09 (September), and 3 more. Default: any.

Outputs

busiest_daytext
The day with the most captures.
calendar_urltext
The Wayback Machine's own calendar page for this URL.
dayslist
One entry per day with captures, oldest first.
days_with_capturesnumber
How many days hold at least one capture.
monthnumber
The month that was counted, or null when the whole year was.
total_capturesnumber
How many captures those days hold in total.
urltext
The URL that was asked about.
yearnumber
The year that was counted.
Example output
{
  "busiest_day": "2024-03-01",
  "calendar_url": "https://web.archive.org/web/*/iana.org",
  "days": [
    {
      "calendar_url": "https://web.archive.org/web/20240301*/iana.org",
      "captures": 7,
      "date": "2024-03-01",
      "status_code": 200
    }
  ],
  "days_with_captures": 31,
  "month": 3,
  "total_captures": 103,
  "url": "iana.org",
  "year": 2024
}

Download an archived file

Download an archived file as it was captured, so a later step can attach it to an email, post it to a chat or put it in storage. Anything the archive holds comes back this way: a PDF a site has taken down, an image, a data file, a page. No API key required.

Inputs

File URLurltextRequired
The file or page to download. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
As it was ontarget_timedate and time
Download the copy captured nearest this moment. Leave it blank for the most recent copy.

Outputs

archived_urltext
The URL exactly as it was crawled.
byte_sizenumber
The file's size in bytes.
captured_attext
The same instant as an ISO 8601 UTC time.
content_typetext
The file's media type.
document_reftext
The stored file's reference, repeated for convenience.
documentslist
The stored file, in the shape every Lodol action that produces one returns, so a later step can attach or upload it.
source_urltext
The Wayback link the bytes came from.
timestamptext
The capture's Wayback timestamp, fourteen digits of YYYYMMDDhhmmss.
urltext
A link the app can serve the stored file from.
Example output
{
  "archived_url": "http://www.iana.org/about/informational-booklet.pdf",
  "byte_size": 2209338,
  "captured_at": "2015-09-06T19:20:24Z",
  "content_type": "application/pdf",
  "document_ref": "doc_9c1f0a2b6d7e4f80",
  "documents": [
    {
      "content_type": "application/pdf",
      "document_ref": "doc_9c1f0a2b6d7e4f80",
      "filename": "www.iana.org-about-informational-booklet-20150906192024.pdf",
      "size_bytes": 2209338,
      "url": "/actions/core/serve-document/doc_9c1f0a2b6d7e4f80?teamId=64b0000000000000000000aa"
    }
  ],
  "source_url": "https://web.archive.org/web/20150906192024id_/http://www.iana.org/about/informational-booklet.pdf",
  "timestamp": "20150906192024",
  "url": "/actions/core/serve-document/doc_9c1f0a2b6d7e4f80?teamId=64b0000000000000000000aa"
}

Export snapshots as CSV

Write a capture list out as a CSV file instead of into the workflow, so tens of thousands of rows can be attached to an email, put in storage or handed to a spreadsheet. Takes the same filters as the listing actions, with a much higher ceiling. No API key required.

Inputs

Page or site URLurltextRequired
The page or site whose captures you want. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
How much of the site to coverscopetext
Whether the URL above means one page, everything under its path, the whole host, or the site and all of its subdomains.One of: page (Just this exact page), path (This page and everything under it), host (The whole host (www.example.com)), site (The site and all of its subdomains). Default: page.
Captured on or aftercaptured_fromdate
Keep only captures captured on or after this date. Optional.
Captured on or beforecaptured_todate
Keep only captures captured on or before this date. Optional.
Response when capturedstatustext
Keep only the captures where the server answered this way.One of: any (Any response), ok (Only captures that loaded (200)), redirect (Only redirects (3xx)), not_found (Only pages that were missing (404)), client_error (Only client errors (4xx)), server_error (Only server errors (5xx)), broken (Only errors (4xx and 5xx)). Default: any.
File typecontent_typetext
Keep only captures of this kind of file.One of: any (Any file type), html (Web pages (HTML)), pdf (PDFs), image (Images), video, audio, css (Stylesheets (CSS)), javascript (Scripts (JavaScript)), json, xml (XML and feeds), plain_text (Plain text), office (Office documents (Word, Excel, PowerPoint)). Default: any.
Thin the list toone_capture_pertext
A busy page is captured many times a day. Keep one capture per hour, day, month or year instead of all of them.One of: all (Every capture), hour (One capture per hour), day (One capture per day), month (One capture per month), year (One capture per year). Default: all.
How many to returnlimitnumber
The most rows to return, from 1 to 50,000.From 1 to 50000. Default: 1000.

Outputs

archived_urltext
The URL the export was made for.
byte_sizenumber
The file's size in bytes.
content_typetext
The file's media type.
document_reftext
The stored file's reference, repeated for convenience.
documentslist
The stored file, in the shape every Lodol action that produces one returns, so a later step can attach or upload it.
source_urltext
The Wayback calendar page for that URL.
urltext
A link the app can serve the stored file from.
Example output
{
  "archived_url": "iana.org",
  "byte_size": 1035,
  "content_type": "text/csv",
  "document_ref": "doc_9c1f0a2b6d7e4f80",
  "documents": [
    {
      "content_type": "text/csv",
      "document_ref": "doc_9c1f0a2b6d7e4f80",
      "filename": "wayback-iana.org-20260827.csv",
      "size_bytes": 1035,
      "url": "/actions/core/serve-document/doc_9c1f0a2b6d7e4f80?teamId=64b0000000000000000000aa"
    }
  ],
  "source_url": "https://web.archive.org/web/*/iana.org",
  "url": "/actions/core/serve-document/doc_9c1f0a2b6d7e4f80?teamId=64b0000000000000000000aa"
}

Turn a URL and a date into a link to that page as it looked then, so a message, a document or a citation can point at the archived copy rather than at a page that has since changed. The archive picks the capture nearest the date and says which one it chose. No API key required.

Inputs

Page or site URLurltextRequired
The page to link to. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
As it was ontarget_timedate and time
The moment the link should point at. Leave it blank for the page as it is archived now.

Outputs

archived_urltext
The URL exactly as it was crawled.
calendar_urltext
The Wayback Machine's own calendar page for this URL.
captured_attext
The same instant as an ISO 8601 UTC time.
raw_urltext
The link that serves the capture's original bytes, with no Wayback banner added.
requested_timetext
The moment the link was wanted for.
snapshot_urltext
The Wayback link that replays this capture.
timestamptext
The capture's Wayback timestamp, fourteen digits of YYYYMMDDhhmmss.
urltext
The URL that was asked about.
Example output
{
  "archived_url": "http://example.com/",
  "calendar_url": "https://web.archive.org/web/*/https://example.com/",
  "captured_at": "2019-03-15T12:09:52Z",
  "raw_url": "https://web.archive.org/web/20190315120952id_/http://example.com/",
  "requested_time": "2019-03-15T12:00:00Z",
  "snapshot_url": "https://web.archive.org/web/20190315120952/http://example.com/",
  "timestamp": "20190315120952",
  "url": "https://example.com/"
}

Get a page's capture history

How often a page has been captured, year by year and month by month, with its first and last capture. This is the shape of a page's life in the archive: whether it is watched closely, was captured once and forgotten, or stopped being captured at some point. No API key required.

Inputs

Page or site URLurltextRequired
The page whose history you want. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.

Outputs

calendar_urltext
The Wayback Machine's own calendar page for this URL.
first_captured_attext
When the page was first captured, in UTC.
first_snapshot_urltext
A link to that first capture.
first_timestamptext
The capture's Wayback timestamp, fourteen digits of YYYYMMDDhhmmss.
is_archivedtrue/false
Whether the archive holds anything at all.
last_captured_attext
When it was most recently captured, in UTC.
last_snapshot_urltext
A link to that most recent capture.
last_timestamptext
The capture's Wayback timestamp, fourteen digits of YYYYMMDDhhmmss.
total_capturesnumber
How many captures it holds in total.
urltext
The URL that was asked about.
yearslist
One entry per year, oldest first.
years_coverednumber
How many calendar years hold captures.
Example output
{
  "calendar_url": "https://web.archive.org/web/*/iana.org",
  "first_captured_at": "1998-02-11T06:55:37Z",
  "first_snapshot_url": "https://web.archive.org/web/19980211065537/iana.org",
  "first_timestamp": "19980211065537",
  "is_archived": true,
  "last_captured_at": "2026-08-25T20:32:25Z",
  "last_snapshot_url": "https://web.archive.org/web/20260825203225/iana.org",
  "last_timestamp": "20260825203225",
  "total_captures": 10755,
  "url": "iana.org",
  "years": [
    {
      "captures": 3,
      "months": [
        {
          "captures": 0,
          "month": 1,
          "name": "January"
        },
        {
          "captures": 1,
          "month": 2,
          "name": "February"
        }
      ],
      "year": 1998
    }
  ],
  "years_covered": 29
}

Get a page's Memento timemap

A page's history in the Memento format defined by RFC 7089: the original URL, the gateway that resolves a date to a copy, and the first, last and intermediate copies with their dates. Use it when the history has to be handed to another Memento-aware tool rather than read here. No API key required.

Inputs

Page or site URLurltextRequired
The page whose timemap you want. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
How many to returnlimitnumber
The most mementos to return, from 1 to 1,000.From 1 to 1000. Default: 25.

Outputs

countnumber
How many of them this step returned.
first_mementoobject
The earliest copy the archive holds.
has_moretrue/false
True when the timemap lists more than were returned.
last_mementoobject
The most recent copy the archive holds.
limitnumber
The number that was asked for.
memento_countnumber
How many copies the timemap lists in total.
mementoslist
The most recent copies, oldest of them first.
original_urltext
The live URL the archive holds copies of, as the timemap names it.
timegate_urltext
The gateway that redirects a date to the copy nearest it.
timemap_urltext
The timemap itself, for another tool to read.
urltext
The URL that was asked about.
Example output
{
  "count": 1,
  "first_memento": {
    "captured_at": "1998-02-11T06:55:37Z",
    "relations": [
      "first",
      "memento"
    ],
    "snapshot_url": "https://web.archive.org/web/19980211065537/http://www.iana.org:80/",
    "timestamp": "19980211065537"
  },
  "has_more": true,
  "last_memento": {
    "captured_at": "2026-08-25T20:32:25Z",
    "relations": [
      "memento"
    ],
    "snapshot_url": "https://web.archive.org/web/20260825203225/http://www.iana.org/",
    "timestamp": "20260825203225"
  },
  "limit": 25,
  "memento_count": 10755,
  "mementos": [
    {
      "captured_at": "2026-08-25T20:32:25Z",
      "relations": [
        "memento"
      ],
      "snapshot_url": "https://web.archive.org/web/20260825203225/http://www.iana.org/",
      "timestamp": "20260825203225"
    }
  ],
  "original_url": "http://www.iana.org:80/",
  "timegate_url": "https://web.archive.org/web/iana.org",
  "timemap_url": "https://web.archive.org/web/timemap/link/iana.org",
  "url": "iana.org"
}

Get a snapshot's details

Everything the archive's index records about one capture: when it was taken, what the server said, what kind of file it was, how much was stored, and the content fingerprint that says whether two captures hold the same bytes. Ask for the first capture, the most recent one, or the one closest to a date. No API key required.

Inputs

Page or site URLurltextRequired
The page to look up. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
Which capturewhichtext
Which of the page's captures to describe.One of: closest (The capture closest to a date), latest (The most recent capture), first (The very first capture). Default: latest.
Closest totarget_timedate and time
The moment to look near. Required only when you asked for the capture closest to a date.
Only captures that loadedonly_successfultrue/false
On by default, so an error page or a redirect the crawler happened to catch is skipped. Turn it off to include every capture.Default: true.

Outputs

calendar_urltext
The Wayback Machine's own calendar page for this URL.
captured_attext
The same instant as an ISO 8601 UTC time.
digesttext
A fingerprint of the captured content. Two captures with the same digest hold identical bytes.
length_bytesnumber
How much was stored for this capture, in bytes.
mime_typetext
The file type the server declared when captured.
raw_urltext
The link that serves the capture's original bytes, with no Wayback banner added.
requested_urltext
The URL that was asked about.
snapshot_urltext
The Wayback link that replays this capture.
status_codenumber
The HTTP status the server returned, or null where the archive did not record one.
timestamptext
The capture's Wayback timestamp, fourteen digits of YYYYMMDDhhmmss.
unchanged_since_previoustrue/false
True when the archive stored this capture as unchanged from an earlier one. It still replays; only the bytes were not stored again.
urltext
The URL exactly as it was crawled, which can differ from the one asked about (http vs https, a www that was or was not there).
Example output
{
  "calendar_url": "https://web.archive.org/web/*/iana.org",
  "captured_at": "2024-12-31T00:36:28Z",
  "digest": "BY6BQOTX34GXMJIKNUNLXFKQCFNR7AIO",
  "length_bytes": 2289,
  "mime_type": "text/html",
  "raw_url": "https://web.archive.org/web/20241231003628id_/https://www.iana.org/",
  "requested_url": "iana.org",
  "snapshot_url": "https://web.archive.org/web/20241231003628/https://www.iana.org/",
  "status_code": 200,
  "timestamp": "20241231003628",
  "unchanged_since_previous": false,
  "url": "https://www.iana.org/"
}

List a page's content changes

Only the captures where a page actually changed, with the thousands of identical captures in between left out. This is how you find when a policy was rewritten, when a price moved or when a claim disappeared, without reading every crawl. No API key required.

Inputs

Page or site URLurltextRequired
The page whose changes you want. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
Captured on or aftercaptured_fromdate
Keep only changes captured on or after this date. Optional.
Captured on or beforecaptured_todate
Keep only changes captured on or before this date. Optional.
Newest firstnewest_firsttrue/false
On by default. Turn it off to start from the oldest capture instead.Default: true.
How many to returnlimitnumber
The most changes to return, from 1 to 1,000.From 1 to 1000. Default: 25.

Outputs

calendar_urltext
The Wayback Machine's own calendar page for this URL.
countnumber
How many captures where the content differed from the one before this step returned.
has_moretrue/false
True when the answer filled the requested size, so the archive holds more than were returned.
limitnumber
The size that was asked for.
snapshotslist
The captures where the content differed from the one before.
urltext
The URL that was asked about.
Example output
{
  "calendar_url": "https://web.archive.org/web/*/iana.org",
  "count": 1,
  "has_more": true,
  "limit": 25,
  "snapshots": [
    {
      "captured_at": "2024-12-31T00:36:28Z",
      "digest": "BY6BQOTX34GXMJIKNUNLXFKQCFNR7AIO",
      "length_bytes": 2289,
      "mime_type": "text/html",
      "raw_url": "https://web.archive.org/web/20241231003628id_/https://www.iana.org/",
      "snapshot_url": "https://web.archive.org/web/20241231003628/https://www.iana.org/",
      "status_code": 200,
      "timestamp": "20241231003628",
      "unchanged_since_previous": false,
      "url": "https://www.iana.org/"
    }
  ],
  "url": "iana.org"
}

List a page's snapshots

Every capture of one page, newest first, narrowed to the dates, the kind of response and the kind of file you care about. A busy page is captured many times a day, so thin the list to one capture per day, month or year when you want a timeline rather than every crawl. No API key required.

Inputs

Page or site URLurltextRequired
The page whose captures you want. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
Captured on or aftercaptured_fromdate
Keep only captures captured on or after this date. Optional.
Captured on or beforecaptured_todate
Keep only captures captured on or before this date. Optional.
Response when capturedstatustext
Keep only the captures where the server answered this way.One of: any (Any response), ok (Only captures that loaded (200)), redirect (Only redirects (3xx)), not_found (Only pages that were missing (404)), client_error (Only client errors (4xx)), server_error (Only server errors (5xx)), broken (Only errors (4xx and 5xx)). Default: any.
File typecontent_typetext
Keep only captures of this kind of file.One of: any (Any file type), html (Web pages (HTML)), pdf (PDFs), image (Images), video, audio, css (Stylesheets (CSS)), javascript (Scripts (JavaScript)), json, xml (XML and feeds), plain_text (Plain text), office (Office documents (Word, Excel, PowerPoint)). Default: any.
Thin the list toone_capture_pertext
A busy page is captured many times a day. Keep one capture per hour, day, month or year instead of all of them.One of: all (Every capture), hour (One capture per hour), day (One capture per day), month (One capture per month), year (One capture per year). Default: all.
Newest firstnewest_firsttrue/false
On by default. Turn it off to start from the oldest capture instead.Default: true.
How many to returnlimitnumber
The most captures to return, from 1 to 1,000.From 1 to 1000. Default: 25.

Outputs

calendar_urltext
The Wayback Machine's own calendar page for this URL.
countnumber
How many captures this step returned.
has_moretrue/false
True when the answer filled the requested size, so the archive holds more than were returned.
limitnumber
The size that was asked for.
snapshotslist
The captures.
urltext
The URL that was asked about.
Example output
{
  "calendar_url": "https://web.archive.org/web/*/iana.org",
  "count": 1,
  "has_more": true,
  "limit": 25,
  "snapshots": [
    {
      "captured_at": "2024-12-31T00:36:28Z",
      "digest": "BY6BQOTX34GXMJIKNUNLXFKQCFNR7AIO",
      "length_bytes": 2289,
      "mime_type": "text/html",
      "raw_url": "https://web.archive.org/web/20241231003628id_/https://www.iana.org/",
      "snapshot_url": "https://web.archive.org/web/20241231003628/https://www.iana.org/",
      "status_code": 200,
      "timestamp": "20241231003628",
      "unchanged_since_previous": false,
      "url": "https://www.iana.org/"
    }
  ],
  "url": "iana.org"
}

List a site's archived files

The files of one kind the archive holds under a site: the PDFs a regulator published and later withdrew, the images a brand used, the feeds a blog served. One row per file, each with a link that serves the original bytes. No API key required.

Inputs

Page or site URLurltextRequired
The site whose files you want. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
File typecontent_typetext
Which kind of file to list. PDFs by default; there is no 'any' here, because listing every file is what List a site's archived pages is for.One of: html (Web pages (HTML)), pdf (PDFs), image (Images), video, audio, css (Stylesheets (CSS)), javascript (Scripts (JavaScript)), json, xml (XML and feeds), plain_text (Plain text), office (Office documents (Word, Excel, PowerPoint)). Default: pdf.
How much of the site to coverscopetext
Whether the URL above means one page, everything under its path, the whole host, or the site and all of its subdomains.One of: page (Just this exact page), path (This page and everything under it), host (The whole host (www.example.com)), site (The site and all of its subdomains). Default: host.
Captured on or aftercaptured_fromdate
Keep only files captured on or after this date. Optional.
Captured on or beforecaptured_todate
Keep only files captured on or before this date. Optional.
How many to returnlimitnumber
The most files to return, from 1 to 5,000.From 1 to 5000. Default: 50.

Outputs

content_typetext
The kind of file that was listed.
countnumber
How many archived files this step returned.
fileslist
The archived files.
has_moretrue/false
True when the answer filled the requested size, so the archive holds more than were returned.
limitnumber
The size that was asked for.
scopetext
How much of the site was covered.
snapshotslist
The same rows as files, under the name every other capture listing uses.
urltext
The URL that was asked about.
Example output
{
  "content_type": "pdf",
  "count": 1,
  "files": [
    {
      "captured_at": "2015-09-06T19:20:24Z",
      "digest": "DMFRBBAHWAJCU7YJKJA4Z4MIW2AWI5QE",
      "length_bytes": 2209338,
      "mime_type": "application/pdf",
      "raw_url": "https://web.archive.org/web/20150906192024id_/http://www.iana.org/about/informational-booklet.pdf",
      "snapshot_url": "https://web.archive.org/web/20150906192024/http://www.iana.org/about/informational-booklet.pdf",
      "status_code": 200,
      "timestamp": "20150906192024",
      "unchanged_since_previous": false,
      "url": "http://www.iana.org/about/informational-booklet.pdf"
    }
  ],
  "has_more": true,
  "limit": 50,
  "scope": "site",
  "snapshots": [
    {
      "captured_at": "2015-09-06T19:20:24Z",
      "digest": "DMFRBBAHWAJCU7YJKJA4Z4MIW2AWI5QE",
      "length_bytes": 2209338,
      "mime_type": "application/pdf",
      "raw_url": "https://web.archive.org/web/20150906192024id_/http://www.iana.org/about/informational-booklet.pdf",
      "snapshot_url": "https://web.archive.org/web/20150906192024/http://www.iana.org/about/informational-booklet.pdf",
      "status_code": 200,
      "timestamp": "20150906192024",
      "unchanged_since_previous": false,
      "url": "http://www.iana.org/about/informational-booklet.pdf"
    }
  ],
  "url": "iana.org"
}

List a site's archived pages

The distinct pages the archive holds under a site, one row per page rather than per capture of it. This is the site map of a site that no longer exists, or the list to run the rest of a workflow over. Cover a path, a host, or the site and all of its subdomains. No API key required.

Inputs

Page or site URLurltextRequired
The site whose pages you want. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
How much of the site to coverscopetext
Whether the URL above means one page, everything under its path, the whole host, or the site and all of its subdomains.One of: path (This page and everything under it), host (The whole host (www.example.com)), site (The site and all of its subdomains). Default: host.
Captured on or aftercaptured_fromdate
Keep only pages captured on or after this date. Optional.
Captured on or beforecaptured_todate
Keep only pages captured on or before this date. Optional.
File typecontent_typetext
Which kind of file counts as a page. Web pages by default.One of: any (Any file type), html (Web pages (HTML)), pdf (PDFs), image (Images), video, audio, css (Stylesheets (CSS)), javascript (Scripts (JavaScript)), json, xml (XML and feeds), plain_text (Plain text), office (Office documents (Word, Excel, PowerPoint)). Default: html.
How many to returnlimitnumber
The most pages to return, from 1 to 5,000.From 1 to 5000. Default: 50.

Outputs

calendar_urltext
The Wayback Machine's own calendar page for this URL.
countnumber
How many archived pages, with the first capture of each this step returned.
has_moretrue/false
True when the answer filled the requested size, so the archive holds more than were returned.
limitnumber
The size that was asked for.
pageslist
The archived pages, with the first capture of each.
scopetext
How much of the site was covered.
snapshotslist
The same rows as pages, under the name every other capture listing uses.
urltext
The URL that was asked about.
Example output
{
  "calendar_url": "https://web.archive.org/web/*/iana.org",
  "count": 1,
  "has_more": true,
  "limit": 50,
  "pages": [
    {
      "captured_at": "2024-12-31T00:36:28Z",
      "digest": "BY6BQOTX34GXMJIKNUNLXFKQCFNR7AIO",
      "length_bytes": 2289,
      "mime_type": "text/html",
      "raw_url": "https://web.archive.org/web/20241231003628id_/https://www.iana.org/",
      "snapshot_url": "https://web.archive.org/web/20241231003628/https://www.iana.org/",
      "status_code": 200,
      "timestamp": "20241231003628",
      "unchanged_since_previous": false,
      "url": "https://www.iana.org/"
    }
  ],
  "scope": "host",
  "snapshots": [
    {
      "captured_at": "2024-12-31T00:36:28Z",
      "digest": "BY6BQOTX34GXMJIKNUNLXFKQCFNR7AIO",
      "length_bytes": 2289,
      "mime_type": "text/html",
      "raw_url": "https://web.archive.org/web/20241231003628id_/https://www.iana.org/",
      "snapshot_url": "https://web.archive.org/web/20241231003628/https://www.iana.org/",
      "status_code": 200,
      "timestamp": "20241231003628",
      "unchanged_since_previous": false,
      "url": "https://www.iana.org/"
    }
  ],
  "url": "iana.org"
}

List a site's broken pages

The pages under a site that a crawler found broken: 404s, server errors and redirects, as they were when the archive reached them. Run it after a migration to find what the redirects missed, or over a competitor's site to see what they took down. No API key required.

Inputs

Page or site URLurltextRequired
The site to look for broken pages on. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
Response when capturedstatustext
Which kind of failure to look for.One of: broken (Only errors (4xx and 5xx)), not_found (Only pages that were missing (404)), client_error (Only client errors (4xx)), server_error (Only server errors (5xx)), redirect (Only redirects (3xx)). Default: broken.
How much of the site to coverscopetext
Whether the URL above means one page, everything under its path, the whole host, or the site and all of its subdomains.One of: page (Just this exact page), path (This page and everything under it), host (The whole host (www.example.com)), site (The site and all of its subdomains). Default: host.
Captured on or aftercaptured_fromdate
Keep only captures captured on or after this date. Optional.
Captured on or beforecaptured_todate
Keep only captures captured on or before this date. Optional.
How many to returnlimitnumber
The most pages to return, from 1 to 5,000.From 1 to 5000. Default: 50.

Outputs

countnumber
How many captures that returned an error or a redirect this step returned.
has_moretrue/false
True when the answer filled the requested size, so the archive holds more than were returned.
limitnumber
The size that was asked for.
scopetext
How much of the site was covered.
snapshotslist
The captures that returned an error or a redirect.
status_filtertext
The kind of failure that was looked for.
urltext
The URL that was asked about.
Example output
{
  "count": 1,
  "has_more": true,
  "limit": 50,
  "scope": "host",
  "snapshots": [
    {
      "captured_at": "2024-04-23T22:12:30Z",
      "digest": "5NZPVVGL37B7BUZEJGMREP5PNNSWFPEX",
      "length_bytes": 1330,
      "mime_type": "text/html",
      "raw_url": "https://web.archive.org/web/20240423221230id_/https://www.iana.org/!161",
      "snapshot_url": "https://web.archive.org/web/20240423221230/https://www.iana.org/!161",
      "status_code": 404,
      "timestamp": "20240423221230",
      "unchanged_since_previous": false,
      "url": "https://www.iana.org/!161"
    }
  ],
  "status_filter": "not_found",
  "url": "iana.org"
}

List captures on one day

Every capture of a page on one day, with the crawl behind each one. The archive is filled by many projects at once, and this is the only view that says which: the live-web crawler, a focused crawl, an Archive-It partner's collection, or someone clicking Save Page Now. No API key required.

Inputs

Page or site URLurltextRequired
The page whose captures you want. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
DaydaydateRequired
The day to list captures for.

Outputs

calendar_urltext
The Wayback Machine's own calendar page for this URL.
captureslist
The day's captures, earliest first.
countnumber
How many captures that day holds.
crawl_countnumber
How many distinct crawls contributed to them.
crawlslist
The names of those crawls.
datetext
The day that was listed, as YYYY-MM-DD.
urltext
The URL that was asked about.
Example output
{
  "calendar_url": "https://web.archive.org/web/*/iana.org",
  "captures": [
    {
      "captured_at": "2024-03-15T00:53:05Z",
      "crawls": [
        "archiveteam",
        "archiveteam_urls"
      ],
      "raw_url": "https://web.archive.org/web/20240315005305id_/iana.org",
      "snapshot_url": "https://web.archive.org/web/20240315005305/iana.org",
      "status_code": 200,
      "timestamp": "20240315005305"
    }
  ],
  "count": 1,
  "crawl_count": 2,
  "crawls": [
    "archiveteam",
    "archiveteam_urls"
  ],
  "date": "2024-03-15",
  "url": "iana.org"
}

Read an archived page

Read a page as it was, so a later step can summarise it, search it or answer questions about it. The text comes back with the markup stripped and none of the Wayback banner in it, or as the original source if that is what you need. Leave the date blank for the most recent copy. No API key required.

Inputs

Page or site URLurltextRequired
The page to read. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.
As it was ontarget_timedate and time
Read the copy captured nearest this moment. Leave it blank for the most recent copy.
Returnoutputtext
Whether to return readable text or the raw source.One of: text (Readable text, with the markup stripped), html (The original source exactly as it was captured). Default: text.
Maximum charactersmax_charactersnumber
Stop after this many characters. The result says whether it was cut short.From 100 to 500000. Default: 20000.

Outputs

byte_sizenumber
How many bytes the capture holds.
captured_attext
The same instant as an ISO 8601 UTC time.
charactersnumber
How many characters came back.
contenttext
The archived page, as text or as source.
content_typetext
The media type the capture was served as.
digesttext
A fingerprint of the captured content. Two captures with the same digest hold identical bytes.
formattext
Which of the two was returned.
length_bytesnumber
How much was stored for this capture, in bytes.
mime_typetext
The file type the server declared when captured.
raw_urltext
The link that serves the capture's original bytes, with no Wayback banner added.
requested_urltext
The URL that was asked about.
snapshot_urltext
The Wayback link that replays this capture.
status_codenumber
The HTTP status the server returned, or null where the archive did not record one.
timestamptext
The capture's Wayback timestamp, fourteen digits of YYYYMMDDhhmmss.
total_charactersnumber
How long the whole page is.
truncatedtrue/false
True when the page was longer than the limit.
unchanged_since_previoustrue/false
True when the archive stored this capture as unchanged from an earlier one. It still replays; only the bytes were not stored again.
urltext
The URL exactly as it was crawled, which can differ from the one asked about (http vs https, a www that was or was not there).
Example output
{
  "byte_size": 6392,
  "captured_at": "2015-06-02T14:40:27Z",
  "characters": 199,
  "content": "Internet Assigned Numbers Authority The Internet Assigned Numbers Authority (IANA) is responsible for the global coordination of the DNS Root, IP addressing, and other Internet protocol resources.",
  "content_type": "text/html; charset=UTF-8",
  "digest": "OYXFV54XQL2A6V4RALRAFTBGDJZAOQTD",
  "format": "text",
  "length_bytes": 2288,
  "mime_type": "text/html",
  "raw_url": "https://web.archive.org/web/20150602144027id_/http://www.iana.org/",
  "requested_url": "iana.org",
  "snapshot_url": "https://web.archive.org/web/20150602144027/http://www.iana.org/",
  "status_code": 200,
  "timestamp": "20150602144027",
  "total_characters": 1285,
  "truncated": true,
  "unchanged_since_previous": false,
  "url": "http://www.iana.org/"
}

Search archived sites

Search the archive for sites by name or by what they are about, and get back how many captures each has and the years they run between. Use it to find the site to point the rest of a workflow at when you do not already know the address. No API key required.

Inputs

SearchquerytextRequired
A name, a word or part of an address to search for.
How many to returnlimitnumber
The most sites to return, from 1 to 100.From 1 to 100. Default: 10.

Outputs

countnumber
How many sites came back.
has_moretrue/false
True when the archive matched more than were returned.
limitnumber
The number that was asked for.
querytext
What was searched for.
siteslist
The matching sites, best match first.
Example output
{
  "count": 1,
  "has_more": true,
  "limit": 10,
  "query": "nasa",
  "sites": [
    {
      "audio_captures": 2866,
      "calendar_url": "https://web.archive.org/web/*/www.nasa.gov",
      "description": "nasa",
      "first_year": 1996,
      "host": "www.nasa.gov",
      "image_captures": 404230,
      "last_year": 2016,
      "page_captures": 335514,
      "total_captures": 9247928,
      "url": "http://nasa.gov/",
      "video_captures": 5477
    }
  ]
}

Suggest archived hosts

Complete a partly typed address into hosts the archive actually holds, subdomains and all: 'nasa' becomes www.nasa.gov, science1.nasa.gov and the rest. Run it before a site-wide query so the query is spent on a host that exists. No API key required.

Inputs

AddressquerytextRequired
A host name, or the start of one.
How many to returnlimitnumber
The most hosts to return, from 1 to 100.From 1 to 100. Default: 10.

Outputs

countnumber
How many hosts came back.
has_moretrue/false
True when the archive matched more than were returned.
hostslist
The matching hosts, best match first.
limitnumber
The number that was asked for.
looks_like_a_urltrue/false
Whether the archive read the query as an address rather than as a word to search for.
querytext
What was typed.
Example output
{
  "count": 1,
  "has_more": true,
  "hosts": [
    {
      "calendar_url": "https://web.archive.org/web/*/www.nasa.gov",
      "host": "www.nasa.gov",
      "url": "http://www.nasa.gov/"
    }
  ],
  "limit": 10,
  "looks_like_a_url": true,
  "query": "nasa.gov"
}

Summarize what is archived for a site

How much of a whole site the archive holds, year by year: how many captures it made, how many distinct pages those covered, how many pages it saw for the first time, and the breakdown by file type. Run it before a deeper crawl of the archive to know what is there. No API key required.

Inputs

SiteurltextRequired
The site to summarize. Any path is dropped: the summary covers the whole host. Paste an address with or without https://, or paste a Wayback link and the original URL is read out of it.

Outputs

calendar_urltext
The Wayback Machine's own calendar page for this URL.
file_typeslist
Every year's captures by file type, commonest first.
first_yearnumber
The first year with captures.
hosttext
The host that was summarized.
is_archivedtrue/false
Whether the archive holds anything for it.
last_yearnumber
The most recent year with captures.
summarized_attext
When the archive last rebuilt this summary, in UTC.
total_capturesnumber
How many captures it holds in total.
total_urlsnumber
How many distinct pages those captures cover.
yearslist
One entry per year, oldest first.
Example output
{
  "calendar_url": "https://web.archive.org/web/*/www.iana.org",
  "file_types": [
    {
      "captures": 1268403,
      "mime_type": "text/html"
    }
  ],
  "first_year": 1998,
  "host": "www.iana.org",
  "is_archived": true,
  "last_year": 2026,
  "summarized_at": "2026-02-12T20:47:50Z",
  "total_captures": 1576963,
  "total_urls": 59429,
  "years": [
    {
      "captures": 206,
      "file_types": [
        {
          "captures": 206,
          "mime_type": "text/html"
        }
      ],
      "new_urls": 203,
      "urls": 203,
      "year": 1998
    }
  ]
}

On this page