# Archive Search

> Run Archive Search by archive online or via API. from $0.00000277/sec, no setup.

**URL:** https://inference.sh/apps/archive/search
**Last updated:** 2026-07-03

---

search the internet archive

- app: `archive/search`
- maker: [archive](https://inference.sh/apps/archive.md)
- category: [text](https://inference.sh/apps/category/text.md)
- price: from $0.00000277/sec
- runs via: api, javascript and python sdk, belt cli, mcp

## search API Guide

### About
search the internet archive

### Get an API Key
Create one in [settings → api keys](https://app.inference.sh/settings/keys). The examples read it from `INFERENCE_API_KEY`.

```bash
export INFERENCE_API_KEY="inf_your_key"
```

### 1. Calling the API

#### Install the Client

```bash
pip install inferencesh
```

#### Run and Get Result
Submit a request and wait for the final result.

```python
import os
from inferencesh import inference

client = inference(api_key=os.environ["INFERENCE_API_KEY"])

## version @6wws9m0a pinned
result = client.run({
        "app": "archive/search@6wws9m0a",
        "input": {
            "query": "query"
        }
    })

print(result["output"])
```

#### Stream Live Updates
Get real-time progress updates as the task runs.

```python
import os
from inferencesh import inference

client = inference(api_key=os.environ["INFERENCE_API_KEY"])

## version @6wws9m0a pinned
## stream=True yields updates as they arrive
for update in client.run({
        "app": "archive/search@6wws9m0a",
        "input": {
            "query": "query"
        }
    }, stream=True):
    if update.get("progress"):
        print(f"progress: {update['progress']}%")
    if update.get("output"):
        print(f"output: {update['output']}")
```

#### Run in the Background
Start the task and get its id back right away, then check on it with `GET /tasks/{id}`. It is done when `status` is 10 (completed), 11 (failed) or 12 (cancelled).

```python
import os
from inferencesh import inference, TaskStatus

client = inference(api_key=os.environ["INFERENCE_API_KEY"])

## returns as soon as the task is created
task = client.run({
        "app": "archive/search@6wws9m0a",
        "input": {
            "query": "query"
        }
    }, wait=False)

## later: read its current state
state = client.tasks.get(task["id"]).data
if state["status"] == TaskStatus.COMPLETED:
    print(state["output"])
```

### 2. Files

#### Automatic Upload

```python
## local file paths are automatically uploaded
result = client.run({
    "app": "archive/search@6wws9m0a",
    "input": {
        "image": "/path/to/local/image.png",  # detected & uploaded
        "audio": "https://example.com/audio.mp3",  # url passed through
    }
})
```

#### Manual Upload

```python
## upload and get a hosted URL
file = client.files.upload("/path/to/file.png")
print(file.uri)  # https://cloud.inference.sh/...
```

### 3. Schema

#### Input
- **query** (string) *required*: search query using lucene-like syntax
- **rows** (integer): results per page
- **page** (integer): page number
- **fields** (array): metadata fields to return (default: identifier, title, description, mediatype, date, creator)
- **sort** (string): sort field like 'downloads desc' or 'date asc'
- **mediatype** (string): filter by type: texts, movies, audio, software, image, etc.

#### Output
- **raw** (object): full api response
- **results** (array): search results
- **total** (integer): total matching items

## other text apps

- [Archive Download](https://inference.sh/apps/archive/download.md): from $0.00000277/sec
- [Archive Metadata](https://inference.sh/apps/archive/metadata.md): from $0.00000277/sec
- [Wayback Machine Availability Check](https://inference.sh/apps/archive/wayback.md): from $0.00000277/sec
- [Markdown to Word Converter](https://inference.sh/apps/infsh/markdown-to-word.md): from $0.00000277/sec
- [Fastly Domain Search](https://inference.sh/apps/fastly/domain-search.md): suggest/run: $0.00001 per call; status: $0.001/domain (precise) or $0.0005/domain (estimated)

## faq

### how much does Archive Search cost?

from $0.00000277/sec. you pay per run from your inference shell credits. no subscription is required.

### how do I run Archive Search via api?

call archive/search with the javascript or python sdk, the rest api, or `belt app run archive/search` from a terminal. the api reference on this page lists every input.

### who makes Archive Search?

Archive Search is made by archive and runs on inference shell. every archive app is listed at https://inference.sh/apps/archive.

### can my agent use Archive Search?

yes. agents call it as a tool through the inference shell mcp server (https://api.inference.sh/mcp), the belt cli or the sdk, and pay per run like you do.

### what are the alternatives to Archive Search?

other text apps on inference shell include Archive Download, Archive Metadata, Wayback Machine Availability Check, Markdown to Word Converter. they run through the same api, so switching is a one-line change.
