API Documentation
Programmatically access, capture, and render the preserved history of the early web.
The 1990 Web Archive API provides RESTful endpoints for querying our archive, submitting new URLs for preservation, and retrieving historically accurate renderings of archived pages. All responses are JSON-formatted, and requests require authentication via API key.
Base URL: https://api.1990webarchive.com/v1
Authentication
All API requests require a valid API key passed in the Authorization header using the Bearer scheme. You can generate and manage your keys in the developer dashboard.
Authorization: Bearer YOUR_API_KEY
Invalid or missing keys will return a 401 Unauthorized response. Keys are scoped to specific access levels (read-only, capture, full).
API Endpoints
Query the archive for preserved pages matching your criteria. Supports era filtering, tech stack filtering, and full-text search across archived HTML.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| q required | string | Search query term |
| era | string | Filter by decade (1990s, 2000s) |
| limit | integer | Max results (default: 20, max: 100) |
Submit a live or historical URL for archival capture. The system will crawl, fingerprint, and store the resource with full metadata.
Request Body
| Parameter | Type | Description |
|---|---|---|
| url required | string | Valid HTTP/HTTPS URL to archive |
| priority | string | Processing priority (normal, high, critical) |
| tags | array | Custom metadata tags for organization |
Check the processing status of a submitted capture request. Returns current state, estimated completion time, and preliminary metadata.
Retrieve the archived resource. Supports returning raw HTML, reconstructed DOM, or timestamped screenshot captures. Use query parameter format=html|json|png.
Code Examples
Quick integration examples for common workflows.
curl -X GET https://api.1990webarchive.com/v1/search?q=geocities \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json"
import requests headers = {"Authorization": "Bearer YOUR_API_KEY"} params = {"q": "web ring 1998", "era": "1990s"} response = requests.get( "https://api.1990webarchive.com/v1/search", headers=headers, params=params ) print(response.json())
const fetch = require("node-fetch"); const response = await fetch("https://api.1990webarchive.com/v1/search?q=netscape", { headers: { "Authorization": "Bearer YOUR_API_KEY", "Accept": "application/json" } }); console.log(await response.json());
Error Codes & Status
The API uses standard HTTP status codes to indicate success or failure of requests.
Rate Limits
To ensure fair usage and archive stability, API requests are rate-limited based on your plan tier. Limits are calculated as a rolling window over 60 seconds.
- Free Tier: 100 requests / minute (Read-only)
- Pro Tier: 1,000 requests / minute (Full access)
- Enterprise: Custom limits with dedicated infrastructure
Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
SDKs & Libraries
Official client libraries are available for popular development environments. They handle authentication, retries, pagination, and response parsing automatically.
Unofficial community libraries are also available. See our GitHub organization for integration examples and developer tools.