Build on the 1990 Web Archive

Official SDKs, libraries, and CLI tools to seamlessly integrate 40+ years of preserved web history, archived assets, and historical metadata into your applications.

Quick Start

Get up and running in seconds. Install your language's package and authenticate with your API key.

~ terminal
# Install via npm
$ npm install @1990archive/sdk

# Python
$ pip install archive-1990

# Configure environment
$ export ARCHIVE_API_KEY="your_live_key_here"
[โœ“] SDK ready. Run `archive --help` to begin.

Official SDKs & Libraries

Fully typed, production-ready libraries with comprehensive documentation and active community support.

๐ŸŸจ JavaScript / TypeScript
v3.2.0

Official Node.js & browser SDK with full type definitions, streaming support, and offline cache capabilities.

npm i @1990archive/sdk
๐Ÿ Python
v2.8.1

Data-focused library optimized for historical web analysis, bulk downloads, and academic research pipelines.

pip install archive-1990
๐Ÿฆ€ Rust
v1.4.0

High-performance async client for large-scale crawling, validation, and distributed archival workflows.

cargo add archive-1990
๐Ÿน Go
v2.1.3

Concurrency-native client designed for microservices, edge functions, and real-time archive indexing.

go get github.com/1990archive/go-sdk
๐Ÿš CLI Tool
v4.0.0

Terminal-first interface for quick lookups, snapshot exports, custom crawls, and offline collection management.

npx @1990archive/cli@latest
๐Ÿ”Œ REST API
v1

Language-agnostic HTTP endpoints for direct integration. Supports GraphQL, OpenAPI 3.0, and WebSocket streaming.

api.archive1990.com/v1

Code Examples

Common patterns for retrieving archived pages, extracting metadata, and streaming historical assets.

// Initialize the SDK import { ArchiveClient } from '@1990archive/sdk'; const client = new ArchiveClient({ apiKey: process.env.ARCHIVE_KEY }); // Fetch a historical snapshot const page = await client.pages.retrieve({ url: 'https://geocities.com/Heartland/3482', date: '1998-06-15', format: 'full' // html, css, images, meta }); console.log(page.title); // "Welcome to my 90s homepage!" console.log(page.assets.length); // 24
# Initialize the client from archive1990 import Client client = Client(api_key=ENV["ARCHIVE_KEY"]) # Stream historical pages matching a query results = client.search.stream( era="1995-1999", tags=["geocities", "webring"], limit=100 ) for snapshot in results: print(f"Found: {snapshot.title} ({snapshot.year})")
# Search and export a specific snapshot $ archive search "geocities" --era "1996-1998" --limit 5 # Download full archive to local disk $ archive snapshot https://example.com --date "1999-12-31" --output ./archive-1999/ # Generate a CSV report of crawled assets $ archive report --type assets --format csv --out assets_90s.csv

Core API Endpoints

Direct HTTP access to the archive. All endpoints support pagination, filtering, and authentication via Bearer tokens.

Method Endpoint Description
GET /v1/pages List and search archived pages by URL, date, or era
GET /v1/pages/{id} Retrieve full snapshot including HTML, CSS, and assets
POST /v1/crawl Submit a URL for asynchronous historical preservation
GET /v1/assets/{id} Download original images, GIFs, MIDI, or fonts
PUT /v1/collections/{id} Update user-generated archive collections & metadata

Documentation & Resources

Everything you need to integrate, scale, and troubleshoot your archival workflows.

"}