arXiv API 使用指南:Python 调用、API Key、定价与速率限制
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 | |
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. |

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 |
| The introductory query in API Basics. |
Combine author and title |
| Require both conditions. See the User's Manual. |
Exclude a condition |
| Exclude matching records. See the User's Manual. |
Filter submission dates |
| Timestamps use GMT with minute precision; preserve spaces around |
Select a page |
| 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 |
| Client and paper-result objects; requires Python >=3.10. See PyPI. |
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 |
|---|---|
| Use |
| Read |
| Read |
Treating | 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 |
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. |
| The wrapper removed that method | Use |
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.

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
- arXiv API Basics
- arXiv API User's Manual
- arXiv API Terms of Use
- arXiv Bulk Data Access
- arXiv Bulk Data Access via Amazon S3
- arxiv Python package
- feedparser Python package
- arxiv.py API documentation
- arxiv.py 4.0.0 release notes
- arXiv Identifier Guide
- arXiv Submission Preparation and Metadata
- arXiv OAI-PMH Interface
- arXiv Robots Guidance
- arXiv Reuse Permissions
- arXiv API Access
- arXiv Brand Guidelines
- Perconey arXiv Scraper on Apify
- Perconey arXiv Scraper Pricing
- OpenAlex API Documentation
- OpenAlex Access and Pricing
- 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.