All products › REST API · JSON · through RapidAPI
Internet Archive Search Scraper API
Search the Internet Archive's catalog of free books, movies, audio, software and web items and get one row per item with its identifier, title, media type, download count and date added.
Source: Internet Archive (archive.org: item search and metadata), under the Internet Archive's Terms of Use. Every answer carries this attribution in its sources field.
Free plan
Free plan: 500 calls a month. Paid from $8.99 a month. Billed by RapidAPI; no card for the free plan.
One call:
curl -G "https://internet-archive-search-api-books-movies-audio-software.p.rapidapi.com/v1/internet-archive" \ --data-urlencode query=collection:prelinger \ --data-urlencode limit=20 \ -H "X-RapidAPI-Key: $RAPIDAPI_KEY" \ -H "X-RapidAPI-Host: internet-archive-search-api-books-movies-audio-software.p.rapidapi.com"
Answers {"product", "count", "items", "fetched_at"}; reads archive.org when you call.
Parameters
| Parameter | Type | What it does | Example |
|---|---|---|---|
query | string | Internet Archive search query, e.g. collection:prelinger or title:(moon landing) AND mediatype:movies. | "collection:prelinger" |
limit | integer | At most this many results (1–1000, default 100). | 20 |
What each result holds
| Field | Type |
|---|---|
identifier | id |
title | text |
mediatype | text |
publicdate | text |
downloads | integer |
Sample results
The first 3 results of the same source's latest test run (long values shortened).
[
{
"downloads": 12552,
"identifier": "0001_Beef_Rings_the_Bell_00_00_41_00",
"mediatype": "movies",
"publicdate": "2012-05-22T20:49:25Z",
"title": "Beef Rings the Bell"
},
{
"downloads": 12270,
"identifier": "0001_Let_Us_Break_Bread_Together_00_00_24_00",
"mediatype": "movies",
"publicdate": "2013-09-30T18:06:11Z",
"title": "Let Us Break Bread Together"
},
{
"downloads": 5755,
"identifier": "0002_Baking_Industry_The_02_49_25_00",
"mediatype": "movies",
"publicdate": "2012-05-22T20:39:00Z",
"title": "Baking Industry, The"
}
]
First call in 60 seconds
Run one call with the example input (curl, through RapidAPI):
curl -G "https://internet-archive-search-api-books-movies-audio-software.p.rapidapi.com/v1/internet-archive" \ --data-urlencode query=collection:prelinger \ --data-urlencode limit=20 \ -H "X-RapidAPI-Key: $RAPIDAPI_KEY" \ -H "X-RapidAPI-Host: internet-archive-search-api-books-movies-audio-software.p.rapidapi.com"
Read the answer. The first result of the record's own sample run, fields identifier, title, mediatype, publicdate, downloads:
{ "downloads": 12552, "identifier": "0001_Beef_Rings_the_Bell_00_00_41_00", "mediatype": "movies", "publicdate": "2012-05-22T20:49:25Z", "title": "Beef Rings the Bell" }
Call it
With curl:
curl -G "https://internet-archive-search-api-books-movies-audio-software.p.rapidapi.com/v1/internet-archive" \ --data-urlencode query=collection:prelinger \ --data-urlencode limit=20 \ -H "X-RapidAPI-Key: $RAPIDAPI_KEY" \ -H "X-RapidAPI-Host: internet-archive-search-api-books-movies-audio-software.p.rapidapi.com"
With Python (pip install requests):
import os, requests
r = requests.get(
"https://internet-archive-search-api-books-movies-audio-software.p.rapidapi.com/v1/internet-archive",
params={'query': 'collection:prelinger', 'limit': 20},
headers={"X-RapidAPI-Key": os.environ["RAPIDAPI_KEY"], "X-RapidAPI-Host": "internet-archive-search-api-books-movies-audio-software.p.rapidapi.com"},
timeout=120,
)
for item in r.json()["items"]:
print(item)
For code and AI agents that pick tools at run time, GET /v1/products lists every endpoint with its parameters and fields.
Guides
Questions
What does it cost? Free plan: 500 calls a month. Paid from $8.99 a month.
How fresh is it? Each call reads the official source then; an identical query within 15 minutes is answered from a cache.
Data last read 14 Nov 2026; the company's freshness target: 7 days (a search or lookup, read at call time; late after 7 days 6 h) — on time.
What if the source is down? The answer says so: a 502, or "partial": true when only some of its requests failed. Whether it is down now: the status page.
Can a field change? Yes, without notice: this API doesn't record its changes yet, and the OpenAPI document is the contract as it stands today. How changes are announced.