01

Overview & Scope

The 1990 Web Archive maintains a rigorous technical framework designed to capture, normalize, and preserve early internet artifacts with bit-perfect accuracy. All archival operations adhere to international digital preservation standards while accommodating the unique constraints of legacy web technologies.

Scope: This document covers WARC generation, legacy HTML/CSS normalization, metadata serialization, fixity verification, and API access protocols. Experimental specifications are clearly marked. Last updated:
StandardVersionAdoptionStatus
OAIS Reference ModelISO 14721:2012FullRequired
WARC Format1.1 / 1.0FullRequired
Dublin Core Metadata1.1ExtendedRequired
1990WAM Schema2.4.0InternalOptional
JS2WARC Renderer0.8.1LimitedExperimental
02

Data Format Specifications

All captured content is serialized using the Web ARChive (WARC) format. Legacy assets are normalized to ensure long-term readability without requiring deprecated rendering engines.

2.1 WARC Generation Rules

Crawlers must generate WARC-1.1 files by default. WARC-1.0 is permitted for interoperability with legacy ingestion pipelines. All records must include:

  • Content-Type headers matching original capture
  • WARC-Date in ISO 8601 format
  • WARC-Block-Digest (SHA-256)
  • WARC-Profile tags per IANA registration
WARC Record Example
WARC/1.1
WARC-Type: response
WARC-Target-URI: http://example.geocities.com/home.html
WARC-Date: 2024-11-15T14:32:00Z
WARC-Record-ID: <urn:uuid:7f8a9c2e-11d4-4b6a-9e3f-005056c00001>
Content-Type: application/warc-fields
WARC-Block-Digest: sha256:A1B2C3D4...

HTTP/1.1 200 OK
Content-Type: text/html; charset=iso-8859-1
Content-Length: 4821
...

2.2 Legacy Asset Normalization

Binary formats common to the 1990–1999 era are preserved in their original encoding. Where lossy compression is detected, a parallel lossless variant is generated and linked via WARC-Profile.

Asset TypePreservation StrategyFallback Format
Animated GIFBit-exact preservationAPNG (archival backup)
MIDI/SMFOriginal container + metadata extractionOPUS (access copy only)
Frame-based HTMLFrameset disassembly + standalone serializationSingle-page HTML5 rebuild
Flash/SWFSWF dump + Ruffle-compatible extractionVideo/IMG sequence
03

Crawling & Capture Protocols

Crawling operations follow a deterministic, politeness-aware schedule. Historical targets are accessed via proxy chains that emulate early HTTP/1.0 and 1.1 clients to ensure compatibility with legacy server responses.

3.1 Politeness & Throttling

Default crawl rate: 1 request / 3s per origin. Origins publishing robots.txt are respected unless explicitly overridden by archival mandate. Rate limits are enforced at the network egress level.

3.2 JavaScript & Dynamic Content

For sites relying on early DOM manipulation or client-side frames, the JS2WARC renderer executes content in a sandboxed Netscape Navigator 4.08 / IE 5.5 emulation environment. All network calls are intercepted and logged as separate WARC records.

Experimental Notice: JS2WARC is currently in beta. Rendering artifacts may occur with complex DHTML layouts. Always verify via the /verify endpoint before production ingestion.
04

Metadata & Indexing Schema

Metadata is serialized using a hybrid approach: Dublin Core for interoperability, extended with the internal 1990WAM namespace for era-specific attributes.

JSON-LD Metadata Snippet
{
  "@context": "https://schema.org/1990wam",
  "@type": "WebArchiveRecord",
  "dc:title": "Welcome to My Homepage",
  "dc:creator": "[Redacted]",
  "dc:date": "1997-08-12",
  "1990wam:era": "GeoCities",
  "1990wam:techStack": ["HTML3.2", "Table-Layout", "GIF-89a"],
  "1990wam:renderingProfile": "netscape-3.0-compat",
  "1990wam:fixityStatus": "verified"
}

All index entries are searchable via Elasticsearch 8.x. Faceted navigation supports filtering by era, technology, geolocation, and hosting-provider.

05

Preservation Integrity & Verification

Bit-level integrity is guaranteed through cryptographic fixity checks. Every WARC file and embedded asset is hashed upon ingestion and verified quarterly.

5.1 Fixity Workflow

  1. Ingest → Compute SHA-256 block digests
  2. Store → Append to immutable ledger (IPFS + local Cold Storage)
  3. Verify → Automated cron job compares stored digests against computed values
  4. Remediate → Trigger re-crawl or fallback copy if mismatch detected

Cryptographic signatures are applied using RSA-4096. Public verification keys are published monthly at keys.1990webarchive.org.

06

API & Integration Standards

Programmatic access is provided via RESTful endpoints. All requests require Bearer token authentication. Rate limits are enforced at 120 req/min for standard tier, unlimited for institutional partners.

EndpointMethodDescription
/v4/archive/searchGETFull-text & faceted search across indexed records
/v4/archive/{id}/warcGETStream raw WARC payload
/v4/archive/{id}/metadataGETRetrieve 1990WAM + Dublin Core JSON
/v4/verify/{digest}POSTValidate fixity against ledger
/v4/crawl/submitPOSTQueue custom archival job (auth required)
cURL Example
curl -X GET "https://api.1990webarchive.org/v4/archive/search?era=geocities&sort=desc" \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Accept: application/json"
07

Versioning & Deprecation Policy

All specifications follow Semantic Versioning (MAJOR.MINOR.PATCH). Breaking changes are restricted to major releases. Deprecated endpoints remain operational for a minimum of 18 months post-announcement.

Current Active Versions:
API: v4.x | WARC Generation: 1.1 | Metadata Schema: 2.4.0
Sunset Schedule: v3.x decommissioned on

Changelogs and RFC drafts are maintained in the public repository. Community proposals follow the RFC-1990 submission template.