API Endpoints
Access the complete 1990 Web Archive programmatically. Our RESTful API allows you to search, retrieve, and submit web content for preservation. All responses are returned in JSON format.
v1. All endpoints require authentication via API key. Sandboxes are available for testing.
Base URL & Response Format
All API requests should be made to:
https://api.1990webarchive.com/v1
Responses follow a consistent envelope structure:
{
"status": "success",
"data": { ... },
"meta": {
"request_id": "a8f3-1990-x729",
"timestamp": "2024-11-12T08:30:00Z"
}
}
Authentication
Authenticate by passing your API key in the X-Archive-Key header. Keys can be generated from your dashboard.
curl -X GET "https://api.1990webarchive.com/v1/archives/latest" \
-H "X-Archive-Key: your_api_key_here"
Archives
Retrieve metadata, snapshots, and raw HTML for archived webpages.
Returns full metadata and available snapshots for a specific archived URL.
Parameters
| Parameter | Type | Description |
|---|---|---|
id REQUIRED | String | Unique archive identifier (UUID v4) |
Response Example
{
"status": "success",
"data": {
"id": "a1b2c3d4-1990-e5f6",
"original_url": "http://www.geocities.com/area51/cyber/1998.html",
"captured_at": "1998-07-15T14:22:00Z",
"format": "html",
"size_bytes": 24580,
"snapshots": ["1998-07-15", "2001-03-02", "2005-11-18"]
}
}
Returns the raw, unmodified HTML source of the archived page exactly as captured.
Headers
| Header | Description |
|---|---|
Accept: text/html | Optional. Defaults to HTML. Use application/json for encoded payload. |
Search & Query
Query the archive index using full-text and metadata filters.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
q REQUIRED | String | Search query (supports boolean operators) |
era | String | Filter by year range (e.g., 1995-1999) |
domain | String | Filter by registered domain |
limit | Integer | Results per page (max 100, default 20) |
Response Example
{
"status": "success",
"data": {
"total_results": 4821,
"results": [
{"id": "x9y8z7-1990-w6v5", "title": "Welcome to the Information Superhighway", "year": 1996}
]
}
}
Preservation Jobs
Submit a live or dead URL for archival crawling and preservation.
Request Body
{
"url": "http://example.com/old-site",
"priority": "standard",
"capture_assets": true,
"web_archive_format": "warc"
}
Response
{
"status": "success",
"data": {
"job_id": "job_1990_arch_8f29",
"status": "queued",
"estimated_completion": "2024-11-12T09:15:00Z"
}
}
Check the status of an active or completed preservation job.
Rate Limits
API access is tiered based on your plan. Exceeding limits returns 429 Too Many Requests.
| Plan | Requests / Min | Concurrent Crawls |
|---|---|---|
| Free | 60 | 1 |
| Researcher | 600 | 5 |
| Institution | Unlimited | 20 |
Error Codes
| Code | Meaning | Description |
|---|---|---|
| 400 | Bad Request | Missing parameters or malformed JSON |
| 401 | Unauthorized | Invalid or missing API key |
| 403 | Forbidden | Insufficient permissions for requested resource |
| 404 | Not Found | Archive ID or endpoint does not exist |
| 429 | Rate Limited | Too many requests. Check Retry-After header |
| 500 | Server Error | Internal archive processing failure |