Search API Documentation

Query millions of preserved 90s webpages programmatically. Fast, reliable, and built for digital archivists, researchers, and developers.

https://api.1990archive.com/v1

Authentication

All API requests require authentication via a Bearer token in the `Authorization` header. Generate your API key from the developer dashboard.

HTTP HeaderCopy
Authorization: Bearer your_api_key_here

Search Endpoint

GET /search

Search across the entire archive. Returns paginated results with metadata, snapshot URLs, and preview thumbnails.

cURL ExampleCopy
curl -X GET "https://api.1990archive.com/v1/search?q=geocities&year=1997" \
-H "Authorization: Bearer <API_KEY>"

Request Parameters

ParameterTypeDescription
q requiredstringSearch query. Supports exact phrases, keywords, and URL fragments.
yearintegerFilter by archival year (1990–1999).
formatstringContent type filter: `html`, `gif`, `midi`, `all`.
limitintegerResults per page. Max: 100. Default: 20.
offsetintegerPagination cursor. Default: 0.

Response Format

Returns JSON with paginated results. Includes archival metadata, original URL, and rendered preview links.

JSON ResponseCopy
{
  "total": 42891,
  "limit": 20,
  "offset": 0,
  "results": [
    {
      "id": "arc_978234",
      "url": "http://geocities.com/SunsetStrip/7892",
      "captured": "1997-04-12T14:22:00Z",
      "title": "~Welcome to My Homepage~",
      "preview": "https://cdn.1990archive.com/thumb/978234.gif"
    }
  ]
}

Rate Limits

API access is throttled based on your subscription tier. Limits reset on a rolling 60-second window.

Free
100 requests / min
5,000 requests / day
Pro
1,000 requests / min
Unlimited daily
Enterprise
Custom throughput
Dedicated endpoint

Error Codes

400
Bad Request - Invalid parameters
401
Unauthorized - Missing/invalid API key
404
Not Found - Archive ID doesn't exist
429
Too Many Requests - Rate limit exceeded
500
Server Error - Internal crawl failure

Code Samples

Integrate the archive into your applications with our official SDKs or raw HTTP.

JS Node.js Example
JavaScript / FetchCopy
const res = await fetch('https://api.1990archive.com/v1/search?q=web+ring&year=1998', {
  headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const data = await res.json();
console.log(data.results.map(r => r.title));