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.

📡 API v1 is now in production The current stable version is 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"
⚠️ Security Notice Never expose your API key in client-side code or public repositories. Use environment variables and server-side proxying for web applications.

Archives

Retrieve metadata, snapshots, and raw HTML for archived webpages.

GET /archives/{id} Stable

Returns full metadata and available snapshots for a specific archived URL.

Parameters

ParameterTypeDescription
id REQUIREDStringUnique 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"]
  }
}
GET /archives/{id}/raw Stable

Returns the raw, unmodified HTML source of the archived page exactly as captured.

Headers

HeaderDescription
Accept: text/htmlOptional. Defaults to HTML. Use application/json for encoded payload.

Preservation Jobs

POST /preservations Stable

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"
  }
}
GET /preservations/{job_id} Stable

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.

PlanRequests / MinConcurrent Crawls
Free601
Researcher6005
InstitutionUnlimited20

Error Codes

CodeMeaningDescription
400Bad RequestMissing parameters or malformed JSON
401UnauthorizedInvalid or missing API key
403ForbiddenInsufficient permissions for requested resource
404Not FoundArchive ID or endpoint does not exist
429Rate LimitedToo many requests. Check Retry-After header
500Server ErrorInternal archive processing failure