跳到正文

arXiv API: Python Guide, API Key, Pricing and Rate Limits

摘要

arXiv API 是免费检索论文元数据与摘要的接口,官方公开检索流程无需 API Key,返回 Atom 1.0 XML 而非 JSON。速率限制为每 3 秒一次请求、单连接,且在你控制的所有机器上共享;官方文档标注结果上限 30000 条、每页最多 2000 条,而 arxiv.py 文档称每查询 30 万条,两者存在冲突。

摘要由模型根据原文撰写,以原文为准。

正文 · 原文

The arXiv API is a free interface for searching paper metadata and abstracts; its documented quickstart needs no API key and returns Atom XML, according to API Basics and the terms. With requests installed, this Python example queries the official search endpoint and prints one normalized title.

Output:

Tested Oct 22, 2026.

Run examples one at a time, wait at least three seconds between runs, and do not run other arXiv clients concurrently, following the shared request limit in the terms. These shortened examples stop on HTTP errors rather than retrying automatically.

arXiv API at a glance

Item

What developers need to know

Query endpoint

https://export.arxiv.org/api/query. See the User's Manual.

Authentication

No key in the documented public-search workflow. See API Basics.

Response format

Atom 1.0 XML, not JSON. See API Basics.

Rate limit

One request every three seconds, one connection, shared across machines you control. See the terms.

Documented result cap

30,000 results, with slices of at most 2,000. See the User's Manual.

Update frequency

Daily submission cycle; cache repeated production queries. See the User's Manual.

Metadata license

Descriptive metadata is CC0 1.0; article files have separate rights. See the terms.

Bulk metadata

OAI-PMH for downloads and ongoing synchronization. See the bulk-data guide.

Bulk full text

PDFs and source files through Amazon S3 requester-pays access. See the S3 guide.

Python application queries arXiv and transforms an Atom feed into paper records with PDF reference links, without downloading documents.

API key, pricing and rate limits

API key and pricing

No key is used by the documented public-search quickstart in API Basics. This applies to the search interface, not every arXiv service.

The official terms describe “Providing free Application Programming Interfaces (APIs)”. Bulk full-text transfer is separate: the S3 guide states that “the downloader pays Amazon for the download based on bandwidth used”.

Request spacing and refreshes

The terms specify “one request every three seconds, and limit requests to a single connection at a time.” The restriction applies collectively across machines you control. Share a request queue rather than creating a limiter per worker.

The User's Manual describes a “24 hour submission cycle”. Cache repeated production queries and refresh around the daily cycle rather than repeatedly polling an unchanged search.

Search queries and pagination

The arXiv API combines fielded queries with zero-based start offsets and max_results page sizes, as documented in the User's Manual. Pass parameters through requests rather than manually assembling an encoded URL.

Search task

Parameter or query

Meaning

Search across fields

all:electron

The introductory query in API Basics.

Combine author and title

au:del_maestro AND ti:checkerboard

Require both conditions. See the User's Manual.

Exclude a condition

ANDNOT

Exclude matching records. See the User's Manual.

Filter submission dates

submittedDate:[202301010600 TO 202401010600]

Timestamps use GMT with minute precision; preserve spaces around TO. See the User's Manual.

Select a page

start, max_results

Set the offset and requested page size. See the User's Manual.

Read the total for one page

This self-contained example reads opensearch:totalResults, checks for Atom error entries and prints a compact page summary using the response fields in the User's Manual.

Output:

Conflicting result-cap documentation: the official User's Manual says “30000 in slices of at most 2000”, while the arxiv.py documentation says “300,000 results per query”. Plan around the official ceiling. For bulk ingestion, use the recommended metadata interface.

Python libraries

The arxiv package is a maintainer-published wrapper; feedparser is an optional feed parser rather than a dedicated arXiv SDK, as described on arxiv's PyPI page and feedparser's PyPI page.

Library

Install command

When to use it

arxiv / arxiv.py

python -m pip install arxiv==4.0.1

Client and paper-result objects; requires Python >=3.10. See PyPI.

feedparser

python -m pip install feedparser

Feed parsing for direct HTTP implementations; do not assume the current wrapper requires it. See PyPI.

Migrate older arxiv.py examples

Older pattern

Current replacement

search.results()

Use client.results(search); Search.results was removed in 4.0.0. See the release notes.

result.download_pdf()

Read result.pdf_url; download separately only where permitted. See the release notes.

result.download_source()

Read result.source_url(); download separately only where permitted. See the release notes.

Treating result.summary as generated analysis

It is the paper's abstract. See the wrapper documentation.

Set Search.max_results explicitly. For submission-date ordering, the package example on PyPI uses arxiv.SortCriterion.SubmittedDate.

Metadata and bulk access

Convert search records to JSONL

The search response is Atom XML, so JSON is an application-side conversion, as established in API Basics. This self-contained example normalizes titles and abstracts, preserves the returned identifier, and stores the PDF URL without downloading the document.

Output:

Keep these distinctions in stored records:

  • Versioned identifiers: an unversioned identifier refers to the latest version. Preserve the returned version to identify the exact paper used. See the identifier guide.
  • DOI metadata: the author-supplied DOI identifies another version, such as a journal publication, rather than the arXiv-assigned DOI. It can contain space-separated DOIs. See the metadata guidance.
  • PDF references: a URL is not a reuse license. Check the work's license before storing or redistributing files. See the reuse guidance.

Move bulk synchronization to OAI-PMH

arXiv recommends OAI-PMH for bulk metadata downloads and maintaining an updated local copy in its bulk-data guide. The March 2025 rewrite changed its base URL to https://oaipmh.arxiv.org/oai, according to the migration notes.

OAI-PMH datestamps track metadata changes, including administrative updates; the interface does not support selective harvesting by submission date, according to the OAI-PMH guide. For original submission dates, use search's submittedDate filter from the User's Manual.

Common errors and terms

Successfully parsing XML does not establish that every entry is a paper: arXiv can return an error as an Atom entry, as explained in the User's Manual.

Symptom

Cause

Fix

HTTP 429

The server is throttling requests

Respect Retry-After, back off and preserve shared request spacing. See the terms.

HTTP 403

Access has been denied

Stop rapid retries and review the robots guidance.

JSON decoding fails

Search returns Atom XML

Parse XML before converting to JSON. See API Basics.

A paper titled Error appears

An API error arrived inside the feed

Inspect its summary and reject it as a paper. See the User's Manual.

Search.results is missing

The wrapper removed that method

Use Client.results(search). See the release notes.

Valid older identifiers are rejected

Validation requires five-digit sequence numbers

Accept documented four- or five-digit formats. See the identifier guide.

Terms and compliance

Use machine-access interfaces rather than indiscriminate crawling: the robots guidance states that “Indiscriminate automated downloads from this site are not permitted”. A managed scraper does not remove that obligation.

Metadata and article-file rights are separate. The default distribution license does not directly grant downstream reuse permissions, according to the reuse guidance. Check the paper's license or obtain permission before reposting full text.

The API Access page requests this acknowledgment: “Thank you to arXiv for use of its open access interoperability.” Do not imply endorsement through promotional use of arXiv's name or marks without written authorization; see the brand guidelines.

arXiv API alternatives

Choose an alternative for a different source or managed execution, not to bypass arXiv's usage rules.

Option

Strength

Access and billing

Perconey arXiv Scraper on Apify

Managed execution around the official Atom API. See the overview.

$1.00 per 1,000 result items, not upstream requests. See pricing.

OpenAlex

A separate scholarly-data API. See the documentation.

A free account includes $1 of daily usage, resetting at midnight UTC, not a fixed request allowance. See pricing.

Crossref REST API

Deposited scholarly metadata, including DOI-linked publication information. See the documentation.

Public access requires no registration. See the REST documentation.

SciSpace Search API

arXiv plus SciSpace's 280M+ paper index, Google Scholar and PubMed in one plain-language query. Returns a list of papers, each with all its relevant metadata, so there's no Atom XML to parse and no separate source clients to maintain.

Early access now. Open to anyone at launch, with $5 in free API credits on registration. Separate from SciSpace consumer plans.

From arXiv metadata to finished research: the SciSpace API

The arXiv API tells you which papers exist. It doesn't read them, compare them or write anything up. To turn search results into a literature review, you still have to fetch permitted full text, parse PDFs, extract findings, format citations and add sources beyond arXiv yourself.

The SciSpace API puts the full SciSpace Agent behind one call. It searches, reads, analyses and writes, and delivers the result as ready-to-use files.

It comes as two APIs:

API

What you send

What you get back

Search API

A research question in plain language

A list of papers, each with all its relevant metadata, from arXiv, SciSpace's 280M+ paper index, Google Scholar and PubMed

Task API

Any research task: a literature review, an extraction table, a report, a deck

Links to every file the agent created, plus any supporting text answer. The plan and progress stream live while it runs

What this adds on top of the arXiv API

  • One search across arXiv and beyond. The Search API covers arXiv along with SciSpace's index, Google Scholar and PubMed, so you don't maintain a client for each source. Results come back as paper records with full metadata, not Atom XML.
  • A finished write-up, not a list of links. A single Task API run can return a LaTeX report compiled to PDF with its BibTeX, a Word document, a PowerPoint deck, plots or a poster. You get links to every file it created.
  • Progress you can show users. Research runs can take minutes. The Task API streams each plan step and the answer as it is written, so your app can show live progress instead of a spinner. When it finishes, send follow-ups in the same thread to refine, extend or reformat the work.
  • Questions over specific papers. Upload up to 10 PDFs at once and get answers with page-level citations, including content read from figures and tables.

What it doesn't do

  • No paywalled papers. SciSpace reads your own PDFs plus 50M+ open-access full texts. It doesn't bypass publisher access.
  • Not a bulk-metadata mirror. To keep a local copy of all arXiv metadata, use OAI-PMH as described above.

Access

The SciSpace API is in early access; it isn't open yet. At launch it's open to anyone: register on SciSpace and start, with no sales call. Every account gets $5 in free API credits, enough to try both APIs on real questions. The API is separate from SciSpace consumer plans; no consumer plan includes API usage.

SciSpace early-access workflow turns a research message into merged paper results, extracted fields and a cited answer.

Frequently asked questions

Does arXiv have an official API?

Yes. Start with arXiv's official API Access page, rather than assuming similarly named third-party services are operated by arXiv.

Does the arXiv API return JSON?

No. It returns Atom XML, according to API Basics. Parse the feed, then serialize the fields you need.

How do I use the arXiv API with Python?

Fetch and parse the feed with requests, or construct arxiv.Client and arxiv.Search and iterate client.results(search), following the package documentation.

What should I use to download all arXiv metadata?

Use OAI-PMH for bulk downloads and synchronization, as recommended in the bulk-data guide.

Last checked

Facts, prices and code examples in this guide were checked on October 22, 2026.

Sources

  1. arXiv API Basics
  2. arXiv API User's Manual
  3. arXiv API Terms of Use
  4. arXiv Bulk Data Access
  5. arXiv Bulk Data Access via Amazon S3
  6. arxiv Python package
  7. feedparser Python package
  8. arxiv.py API documentation
  9. arxiv.py 4.0.0 release notes
  10. arXiv Identifier Guide
  11. arXiv Submission Preparation and Metadata
  12. arXiv OAI-PMH Interface
  13. arXiv Robots Guidance
  14. arXiv Reuse Permissions
  15. arXiv API Access
  16. arXiv Brand Guidelines
  17. Perconey arXiv Scraper on Apify
  18. Perconey arXiv Scraper Pricing
  19. OpenAlex API Documentation
  20. OpenAlex Access and Pricing
  21. Crossref REST API Documentation

注意转载授权 · 阅读原文

来源:SciSpace · scispace.com

引用原文

SciSpace. arXiv API: Python Guide, API Key, Pricing and Rate Limits[EB/OL]. (2026-10-22)[访问日期]. https://scispace.com/guides/arxiv-api.