Written and maintained by CASRAI Editorial Board
Last updated
The arXiv API is arXiv’s programmatic search interface: a single HTTP endpoint that accepts a query and returns matching article metadata as Atom 1.0 XML. Before writing any code, note the three rules that decide whether a script is acceptable: no more than one request every three seconds on a single connection, a hard ceiling of 30,000 results per query, and a licence split in which the metadata is CC0 but the e-prints are not freely redistributable. Those limits are spread across three different arXiv pages, and this guide puts them side by side.
What the arXiv API is
arXiv describes the API as “real-time programmatic access” to its metadata and search, with every response returned in the body as Atom 1.0 rather than HTML or JSON. Requests go to export.arxiv.org, the host arXiv names for programmatic access: http://export.arxiv.org/api/query?{parameters}. One example in the user manual uses the https form of the same host. Errors also come back as Atom, as a single entry holding the error message.
The API returns descriptive metadata (titles, authors, abstracts, categories, dates and links). It is a search and lookup tool, not a bulk-download tool; for bulk work arXiv points elsewhere (see the access-route table below).
Who runs it and what it covers
The API is run by arXiv itself and documented in its user manual and in a separate Terms of Use for arXiv APIs. It covers arXiv’s own records, so it answers questions about arXiv preprints only, not the wider literature. The manual says new articles are only available to the API at midnight, so results for a given query change at most once a day, and it asks users to cache their results.
How to query the arXiv API
- Build the base request. Start from
http://export.arxiv.org/api/query?and add parameters separated by&. - Set
search_query. Prefix each term with a field:ti(title),au(author),abs(abstract),cat(category) orall(all fields). The manual also listsco,jr,rnandid, but advises usingid_listinstead ofid:. - Combine terms. Use
AND,ORandANDNOT. Spaces are written as+, parentheses as%28and%29, and phrase quotes as%22. - Or fetch known records with
id_list. Give a comma-separated list of arXiv IDs. If you supply bothsearch_queryandid_list, the API returns only those IDs from the list that also match the search. - Restrict by date if needed. Use
submittedDate:[YYYYMMDDTTTT+TO+YYYYMMDDTTTT], with times in 24-hour GMT to the minute. - Page through results.
startis a 0-based offset (default 0) andmax_resultsis the page size (default 10). - Sort.
sortBytakesrelevance,lastUpdatedDateorsubmittedDate;sortOrdertakesascendingordescending. - Parse the Atom feed. Each match is an entry in the feed. arXiv’s manual gives example code in Python (using
urllibandfeedparser), Perl and Ruby.
Worked examples built from the manual’s own syntax
| Goal | search_query pattern (from the user manual) |
|---|---|
| Articles by one author in a date window | au:del_maestro+AND+submittedDate:[202301010600+TO+202401010600] |
| Same author, excluding a title word | au:del_maestro+ANDNOT+ti:checkerboard |
| Author plus an exact title phrase | au:del_maestro+AND+ti:%22quantum+criticality%22 |
| Two terms anywhere in the record | all:electron+AND+all:proton |
For a recurring feed, the manual’s pattern is to add sortBy=submittedDate (or lastUpdatedDate) with sortOrder=descending to a stored query and cache the result, since results change only when new articles are added.
Strengths and limits
Rate and usage rules
The Terms of Use for the legacy APIs (OAI-PMH, RSS and the arXiv API) say to make no more than one request every three seconds and to limit requests to a single connection at a time. The limit applies to all machines under your control as a whole; adding machines to evade it is prohibited, and arXiv asks anyone needing a higher rate to contact support. The user manual separately encourages a 3-second delay in your code and asks users to cache their results.
The bulk-data page suggests a different pattern, bursts of up to 4 requests per second followed by a 1-second sleep. That figure conflicts with the Terms of Use. A cautious implementation follows the stricter, binding rule: one request every three seconds, one connection.
Result ceilings
- A single query can return at most 30,000 results in total; a
max_resultsabove 30,000 returns HTTP 400. - Retrieve large result sets in slices of at most 2,000 using
startandmax_results. - The manual advises refining queries that match more than 1,000 results, and says the OAI-PMH interface is more suitable for bulk metadata harvesting.
What you may do with the data
The Terms of Use put arXiv’s descriptive metadata under the CC0 1.0 public domain dedication. E-prints are different: redistribution needs the copyright holder’s permission, you may retrieve them for personal or research use, and hosting or serving e-prints yourself is prohibited unless the copyright holder or the submission licence permits it. arXiv encourages linking to the abstract page and asks that you not present a project as endorsed by arXiv without permission. For repository and CRIS teams this means a harvested metadata record can be stored and reused freely, while a harvested PDF cannot be assumed to be.
Alternatives: which arXiv access route to use
| Route | What arXiv says it provides | Use it when |
|---|---|---|
| arXiv API | Real-time programmatic search and metadata access, Atom 1.0 XML | You need live queries, small result sets or lookups by ID |
| OAI-PMH | Metadata for all articles, updated daily; arXiv calls it the preferred way to bulk-download or keep an up-to-date copy of its metadata | You maintain a local copy of arXiv metadata (see OAI-PMH) |
| Amazon S3 | Processed PDF and source files for all available articles | You need the full files in bulk; arXiv asks that the complete corpus not be downloaded programmatically through the API |
| Kaggle dataset | The full machine-readable arXiv dataset, hosted on Kaggle | You want a ready-made dataset for analysis |
If your question spans more than arXiv, two sibling guides cover other open scholarly indexes: OpenAlex and the Semantic Scholar API. To compare arXiv with a life-sciences server, see arXiv vs bioRxiv.
FAQ
What format does the arXiv API return?
Atom 1.0 XML. Everything in the body of the HTTP responses is Atom 1.0, including errors, which arrive as a single entry containing the message.
How fast can I call the arXiv API?
The Terms of Use allow no more than one request every three seconds, on a single connection, counted across all machines you control.
What is the maximum number of results?
30,000 per query, retrieved in slices of at most 2,000. A larger max_results returns HTTP 400.
Can I download arXiv in bulk through the API?
No. arXiv names OAI-PMH as the preferred route for bulk metadata, Amazon S3 for the processed PDF and source files, and a Kaggle dataset for the machine-readable corpus.
Can I republish arXiv papers I retrieve?
Metadata is CC0 1.0. The e-prints themselves cannot be redistributed without the copyright holder’s permission, or a licence on the submission that allows it.
Sources
- arXiv, arXiv API User’s Manual, checked 2026-10-29.
- arXiv, Terms of Use for arXiv APIs, checked 2026-10-29.
- arXiv, Bulk Data Access, checked 2026-10-29.
Related CASRAI reading: preprint servers explained and what is an institutional repository.








