# arXiv API — $0.0004 per paper

> arXiv API: Preprint search on arXiv — abstracts, authors, categories and PDF links. $0.0004 per delivered paper, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*arXiv API*

# arXiv API

An arXiv API that turns the preprint server's Atom feed into rows: one per paper, carrying the arXiv id with version, title, the full abstract as plain text, up to twenty authors, submitted and updated dates, subject categories, the DOI when one is assigned and a direct PDF link. Plain queries search every field; arXiv's `ti:`, `au:` and `abs:` prefixes pass through untouched.

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/arxiv-api/#integration)

$0.0004 per delivered paper · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/arxiv_papers/run

```
$ curl $QD/arxiv_papers/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{}'
{ "status": "done", "count": 10,
  "results": [
    {
      "arxiv_id": "…",
      "title": "…",
      "abstract": "…",
      "authors": […] } ],
  "cost": 0.004 }
# 10 papers × $0.0004 · nothing delivered, nothing charged
```

**$0.0004 / paper**5,000 papers on the free $2 every month

**Semantic input**query, category, sort — no URL lists

**Up to 100**papers per run, pagination handled for you

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [What it is](/collectors/arxiv-api/#what) [Output fields](/collectors/arxiv-api/#output) [Inputs](/collectors/arxiv-api/#input) [Pricing](/collectors/arxiv-api/#pricing) [Integration](/collectors/arxiv-api/#integration) [Use cases](/collectors/arxiv-api/#use-cases) [Versus the alternatives](/collectors/arxiv-api/#compare) [FAQ](/collectors/arxiv-api/#faq)

## What an arXiv API does

arXiv's export API is free but speaks Atom XML, which is why every research paper API tutorial starts with a feed parser. Here the parsing is already done: JSON rows in the same schema every collector here shares, so a literature pipeline consumes preprints, DNS records and stock quotes through one client and one key.

As a preprint API it doubles as a feed: pin `category` to a subject class like `cs.AI`, sort by latest, and each run returns the newest submissions as rows to diff against your previous pull. The abstract on each row is the unit you embed or classify; `pdf_url` is there when a stage genuinely needs the full paper.

Input is meaning, not a URL *query* *category* *sort* *max_results*

## What one paper looks like

Every delivered paper carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

| Field | Type | What it holds |
| --- | --- | --- |
| `rank` | integer | 1-based position. |
| `arxiv_id` | string | arXiv identifier (with version). |
| `title` | string · nullable | Title. |
| `abstract` | string · nullable | Abstract. |
| `authors` | string[] | Authors (up to 20). |
| `published` | string · nullable | First submission date. |
| `updated` | string · nullable | Last version date. |
| `categories` | string[] | Subject categories. |
| `doi` | string · nullable | DOI when assigned. |
| `pdf_url` | string | Direct PDF. |
| `url` | string | Abstract page. |

## Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `query` | string | yes | Free text, or arXiv fielded syntax (ti:, au:, abs:). |
| `category` | string | no | Subject class (cs.AI, cs.CL, stat.ML…). |
| `sort` | string | no | Result order. |
| `max_results` | integer | no | How many papers to deliver at most (1–100). You pay only for delivered papers. |

Pricing

## arXiv API pricing

$0.0004 per delivered paper. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 5,000 papers before you spend anything.

**$0.0004**per delivered paper*$0.4 per 1,000 delivered papers*

**5,000 papers**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the catalog returns your key's price*

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

$299/mo

- $250 free credit / month

- 1,200 requests / min

- 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other [Data API](https://quanticdata.io/web-data-api-for-ai/). Prices are launch pricing read live from the billing config — `GET /v1/scraper/collectors` returns the price your key actually pays.

Integration

## One POST, typed rows

Base URL `https://api.quanticdata.io/v1`, Bearer auth, the same key as every other Data API. Endpoint: `POST /v1/scraper/collectors/arxiv_papers/run`.

```
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/arxiv_papers/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/arxiv_papers/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={},
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/arxiv_papers/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qd_live_your_key_here \
  -- npx -y quantumproxies-mcp

# then, in the chat:
> run the arxiv_papers collector with
```

## What people build with the arXiv API

Three shapes of work this endpoint was designed around.

### Preprint monitoring feeds

A standing query per topic, sorted by latest, turns arXiv into a table of new submissions your pipeline diffs on every run.

### Abstract corpora for embeddings

Abstracts arrive as plain strings on the row — ready to embed, cluster or classify without opening a single PDF.

### DOI crosswalks

The `doi` field, where assigned, links a preprint to its published version, so a citation dataset can bridge arXiv ids and journal records.

## arXiv API versus rolling your own

The differences that actually cost time when you build this in-house.

|  | DIY scraper | This collector |
| --- | --- | --- |
| Feed format | Atom XML parsed with feedparser | JSON rows, abstract included as plain text |
| Query language | Learn the export API syntax first | Plain text works; ti, au and abs prefixes still do |
| Freshness | Re-sort the feed on your side | Sorted by latest or updated at the source |

## FAQ

Questions we get about the arXiv API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### Do I need a wrapper library to use the arXiv API from Python?

No — the wrappers exist to hide Atom XML, and that work is already done here. One HTTPS call from `requests`, or any language's HTTP client, returns the same JSON rows.

### Is the full paper text included?

No. Rows carry the metadata and abstract, plus a direct `pdf_url` per paper — so a metadata crawl stays light, and you fetch PDFs only for the papers a later stage actually selects.

### How do I limit results to one arXiv category?

Set `category` to a subject class — `cs.CL`, `stat.ML`, `quant-ph` — and results stay inside it, which combined with the latest sort makes a clean per-field feed.

### Is there a free arXiv API?

Every account gets $2 of credit every month with no card, which is about 5,000 delivered papers on this endpoint at $0.0004 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

### How much does one run cost?

Multiply the rows you actually receive by $0.0004. A run capped at 100 papers — the maximum for this collector — costs $0.04 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and `GET /v1/scraper/collectors` returns the price your key actually pays.

## Run the arXiv API now

$2 of free credit every month, no card. Your key returns its own prices from `GET /v1/scraper/collectors`.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 74 collectors](https://quanticdata.io/collectors/) [OpenAlex API](https://quanticdata.io/collectors/academic-paper-api/) [Clinical trials API](https://quanticdata.io/collectors/clinical-trials-api/) [Wikipedia API](https://quanticdata.io/collectors/wikipedia-api/) [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/arxiv-api/ · Site index for AI: https://quanticdata.io/llms.txt
