Developer Tools

Web Archive API API

The Web Archive API returns historical website snapshots from the Wayback Machine and Common Crawl as clean JSON.

7 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary snapshots endpoint returns a URL's captures with timestamp, original URL, MIME type, status code, digest and length, and you can find the nearest available capture, pull capture history, list a domain's captures, batch and search Common Crawl indexes. It is built for OSINT, brand-monitoring and research workflows that need a page's history without parsing archive.org's raw CDX API. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, snapshots, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/web-archive/v1/snapshots",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "url": "github.com",
    "limit": 10,
    "collapse": "digest"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "web-archive",
    "endpoint": "snapshots",
    "mode": "live",
    "latency_ms": 5933.3,
    "record_count": 10,
    "bytes": 1307,
    "cache_hit": false,
    "source": "wayback",
    "url": "https://web.archive.org/cdx/search/cdx?url=github.com&output=json&fl=urlkey,timestamp,original,mimetype,statuscode,digest,length&limit=10&collapse=digest&showResumeKey=true",
    "has_more": true,
    "resume_key": "eJxLzs_VSc8syShN0tRXMDIwsDCwNDAzMDIxMDEHAHRmBzE",
    "attempts": 1
  },
  "data": {
    "snapshots": [
      {
        "timestamp": "[redacted-phone]",
        "datetime": "[redacted-phone]T21:01:48Z",
        "original": "http://github.com/",
        "urlkey": "com,github)/",
        "mimetype": "text/html",
        "statuscode": "200",
        "digest": "L4YKKNIYL4FNB5SJWPQ4YII5FJTLWHRF",
        "length": 3531,
        "snapshot_url": "https://web.archive.org/web/[redacted-phone]/http://github.com/"
      },
      {
        "timestamp": "[redacted-phone]",
        "datetime": "[redacted-phone]T20:13:17Z",
        "original": "http://github.com:80/?",
        "urlkey": "com,github)/",
        "mimetype": "text/html",
        "statuscode": "200",
        "digest": "7HRNG6K4OGFHZZU4KVQO4ZMO7M7LYMLQ",
        "length": 3474,
        "snapshot_url": "https://web.archive.org/web/[redacted-phone]/http://github.com:80/?"
      },
      {
        "timestamp": "[redacted-phone]",
        "datetime": "[redacted-phone]T21:14:38Z",
        "original": "http://github.com:80/?",
        "urlkey": "com,github)/",
        "mimetype": "text/html",
        "statuscode": "200",
        "digest": "5QK7JOGEJQKSQGH2IVAX7AIT7GTOUU5A",
        "length": 4199,
        "snapshot_url": "https://web.archive.org/web/[redacted-phone]/http://github.com:80/?"
      }
    ],
    "count": 10,
    "resume_key": "eJxLzs_VSc8syShN0tRXMDIwsDCwNDAzMDIxMDEHAHRmBzE",
    "has_more": true
  }
}
Actions

What the Web Archive API API does

ActionDescriptionConcrete use caseKey params
snapshotsAll Wayback captures for a URL (timestamp, status, mimetype, digest, archival size, snapshot_url), date/status/mime filtered, collapsible, RESUME-KEY PAGINATED.Ops teams call snapshots to get all Wayback captures for a URL (timestamp, status, mimetype, digest, archival size, snapshot_….url, from, to, limit, collapse, ...
availableClosest single Wayback snapshot to a given date (or the latest). Fast existence check.Developer tools call available to get closest single Wayback snapshot to a given date (or the latest).url, timestamp
historyLifespan + capture cadence for a URL: EXACT first_seen/last_seen + span, plus per-year capture counts and status/mime breakdown — the SEO/due-diligence summary.Validation workflows call history to get lifespan + capture cadence for a URL.url, from, to, match
domain_capturesAll archived URLs under a domain (the domain + its subdomains), one row per unique URL — the 'every page this site ever had' view. Resume-key paginated.Data-quality teams call domain_captures to get all archived URLs under a domain (the domain + its subdomains), one row per unique URL.url, from, to, limit, status, ...
batchClosest-snapshot existence + capture-count for up to 20 URLs in one call (bulk archival presence — competitor/portfolio sweeps).Ops teams call batch to get closest-snapshot existence + capture-count for up to 20 URLs in one call (bulk archival presence.urls, timestamp
cc_searchCommon Crawl index lookup for a URL — alternate/broader coverage with richer fields (detected language, encoding, WARC offset/filename). Cross-source corroboration.Developer tools call cc_search to get common Crawl index lookup for a URL.url, collection, match, limit, from, ...
cc_indexesList the available Common Crawl monthly indexes (id, name, date range) — pick a collection for cc_search.Validation workflows call cc_indexes to list the available Common Crawl monthly indexes (id, name, date range).none
Code samples

Call snapshots from your stack

curl -X POST https://api.reefapi.com/web-archive/v1/snapshots \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"url":"github.com","limit":10,"collapse":"digest"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.web-archive.snapshots with {"url":"github.com","limit":10,"collapse":"digest"}.
Use cases

Who uses this API and why

  • OSINT researchers call snapshots to see how a page or claim looked at a point in time.
  • Brand-monitoring tools use history to track how a competitor's pricing or messaging changed.
  • Compliance teams use available to retrieve the archived version of a page for evidence.
FAQ

Questions developers ask before integrating

What is the Web Archive API API?

Web Archive API API is a ReefAPI endpoint group for web archive api It returns live JSON through POST requests under /web-archive/v1.

Is the Web Archive API API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Web Archive API calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Web Archive API login or account?

No login to Web Archive API is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Web Archive API data?

The page example is captured from a live snapshots call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Web Archive API API use?

Web Archive API actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Web Archive API from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call web-archive actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Web Archive API API a Web Archive API scraper?

It is the managed alternative to a DIY Web Archive API scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same web archive api back as clean JSON.

Why does my Web Archive API scraper keep getting blocked?

Most Web Archive API scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / web-archive

Web Archive API

Web Archive API

base /web-archive/v17 endpoints
post/web-archive/v1/snapshots1 credit

All Wayback captures for a URL (timestamp, status, mimetype, digest, archival size, snapshot_url), date/status/mime filtered, collapsible, RESUME-KEY PAGINATED.

ParameterAllowed / rangeDescription
urlrequiredThe URL, host, or path to look up in the archive (e.g. 'github.com', 'github.com/torvalds', 'https://example.com/page'). Scheme optional. Use with match=prefix/domain/host to widen.
fromoptionalEarliest capture to include. ISO date (YYYY-MM-DD) or a Wayback timestamp (YYYYMMDDhhmmss, any 4-14 digit prefix). Inclusive.
tooptionalLatest capture to include. ISO date or Wayback timestamp prefix. Inclusive.
limit = 100optional1–1000Max captures to return (1-1000, default 100). Page further with meta.resume_key on the snapshots action.
collapseoptionaldigest · timestamp:4 · timestamp:6 · timestamp:8 · timestamp:10 · urlkey · original · statuscode · mimetypeDeduplicate consecutive captures on a field (CDX 'collapse'). collapse=digest is the change-detection workhorse.
match = exactoptionalexact · prefix · host · domainHow to match url: exact | prefix | host | domain. domain_captures forces 'domain'.
statusoptionalKeep only captures with this HTTP status (e.g. 200, 404, 301). Prefix with '!' to exclude (e.g. '!200').
mimeoptionalKeep only captures of this MIME type (e.g. text/html, application/pdf, image/png). Prefix with '!' to exclude.
filteroptionalAdvanced raw CDX filter expression(s), comma-separated. Format [!]field:regex over urlkey/timestamp/original/mimetype/statuscode/digest/length (e.g. 'original:.*\.pdf$'). Power-user escape hatch.
resume_keyoptionalOpaque pagination token from meta.resume_key of the previous page; returns the next page of captures.
Try in playground →
post/web-archive/v1/available1 credit

Closest single Wayback snapshot to a given date (or the latest). Fast existence check.

ParameterAllowed / rangeDescription
urlrequiredThe URL, host, or path to look up in the archive (e.g. 'github.com', 'github.com/torvalds', 'https://example.com/page'). Scheme optional. Use with match=prefix/domain/host to widen.
timestampoptionalTarget date for the closest snapshot. ISO date or Wayback timestamp prefix. Omitted → the most recent capture.
Try in playground →
post/web-archive/v1/history1 credit

Lifespan + capture cadence for a URL: EXACT first_seen/last_seen + span, plus per-year capture counts and status/mime breakdown — the SEO/due-diligence summary.

ParameterAllowed / rangeDescription
urlrequiredThe URL, host, or path to look up in the archive (e.g. 'github.com', 'github.com/torvalds', 'https://example.com/page'). Scheme optional. Use with match=prefix/domain/host to widen.
fromoptionalEarliest capture to include. ISO date (YYYY-MM-DD) or a Wayback timestamp (YYYYMMDDhhmmss, any 4-14 digit prefix). Inclusive.
tooptionalLatest capture to include. ISO date or Wayback timestamp prefix. Inclusive.
match = exactoptionalexact · prefix · host · domainHow to match url: exact | prefix | host | domain. domain_captures forces 'domain'.
Try in playground →
post/web-archive/v1/domain_captures1 credit

All archived URLs under a domain (the domain + its subdomains), one row per unique URL — the 'every page this site ever had' view. Resume-key paginated.

ParameterAllowed / rangeDescription
urlrequiredThe URL, host, or path to look up in the archive (e.g. 'github.com', 'github.com/torvalds', 'https://example.com/page'). Scheme optional. Use with match=prefix/domain/host to widen.
fromoptionalEarliest capture to include. ISO date (YYYY-MM-DD) or a Wayback timestamp (YYYYMMDDhhmmss, any 4-14 digit prefix). Inclusive.
tooptionalLatest capture to include. ISO date or Wayback timestamp prefix. Inclusive.
limit = 100optional1–1000Max captures to return (1-1000, default 100). Page further with meta.resume_key on the snapshots action.
statusoptionalKeep only captures with this HTTP status (e.g. 200, 404, 301). Prefix with '!' to exclude (e.g. '!200').
mimeoptionalKeep only captures of this MIME type (e.g. text/html, application/pdf, image/png). Prefix with '!' to exclude.
filteroptionalAdvanced raw CDX filter expression(s), comma-separated. Format [!]field:regex over urlkey/timestamp/original/mimetype/statuscode/digest/length (e.g. 'original:.*\.pdf$'). Power-user escape hatch.
resume_keyoptionalPagination token from the previous page's meta.resume_key.
Try in playground →
post/web-archive/v1/batch1 credit

Closest-snapshot existence + capture-count for up to 20 URLs in one call (bulk archival presence — competitor/portfolio sweeps).

ParameterAllowed / rangeDescription
urlsrequiredUp to 20 URLs/hosts to look up at once (JSON array or comma/newline-separated string).
timestampoptionalTarget date for the closest snapshot. ISO date or Wayback timestamp prefix. Omitted → the most recent capture.
Try in playground →
post/web-archive/v1/cc_indexes1 credit

List the available Common Crawl monthly indexes (id, name, date range) — pick a collection for cc_search.

Try in playground →