Getting started overview
arXiv functions as an open-access repository for scholarly articles, primarily in physics, mathematics, computer science, quantitative biology, quantitative finance, statistics, electrical engineering and systems science, and economics. Unlike many commercial APIs, arXiv's API does not require authentication or API keys for general access to its public data (arXiv API documentation). This means developers can begin making requests immediately after understanding the API's structure and query parameters.
The arXiv API is designed for programmatic search and retrieval of metadata and full-text articles. It utilizes the Atom syndication format, extended with Qualified Dublin Core metadata, for results (arXiv API user manual on response format). This guide focuses on quickly making a first successful API call to retrieve information from the archive.
Here is a quick reference table outlining the initial steps:
| Step | What to do | Where |
|---|---|---|
| 1. Review API Docs | Understand parameters and response format. | arXiv API documentation |
| 2. Formulate Query | Construct a URL with desired search parameters. | arXiv API query details |
| 3. Make Request | Use a web browser, curl, or HTTP client. |
Command line or programming environment |
| 4. Parse Response | Process the Atom XML feed for relevant data. | Programming environment |
Create an account and get keys
For accessing the arXiv API for search and retrieval, there is no requirement to create an account or obtain API keys. The API operates without authentication, making all public metadata and full-text PDFs directly accessible via HTTP GET requests (arXiv API authentication details). This open model simplifies the getting started process significantly, removing the need for credential management during development.
While an arXiv user account is required for submitting new articles to the repository, this account is separate from API usage and does not grant any special privileges or access tokens for the public API (arXiv submission help). Therefore, developers can proceed directly to constructing API queries.
The only constraint to be aware of is the rate limit, which is set at 100,000 requests per day per IP address. Exceeding this limit temporarily blocks access from that IP (arXiv API rate limits). Developers should implement appropriate request throttling in their applications to adhere to these limits.
Your first request
To make your first request, you will construct a URL using the base API endpoint and specific query parameters. The primary endpoint for API queries is https://export.arxiv.org/api/query (arXiv API base URL). The API supports various parameters for searching, sorting, and pagination.
Example: Searching for articles by a specific author
Let's find articles by a hypothetical author "D. Knuth". The query parameter for author search is search_query=au:"D Knuth".
curl "https://export.arxiv.org/api/query?search_query=au:%22D+Knuth%22&start=0&max_results=1"
This curl command performs the following actions:
https://export.arxiv.org/api/query: The base API endpoint.search_query=au:%22D+Knuth%22: Searches for articles where the author field (au:) matches "D Knuth". The spaces are encoded as+and quotes as%22.start=0: Specifies that results should start from the first entry.max_results=1: Limits the number of returned results to one.
Expected Response (excerpt)
The API will return an Atom XML feed. An excerpt of a typical response might look like this:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<link href="http://arxiv.org/api/query?search_query=au%3A%22D+Knuth%22&id_list=&start=0&max_results=1" rel="self" type="application/atom+xml"/>
<title type="html">arXiv Query: au:"D Knuth"</title>
<id>http://arxiv.org/api/9Jt2l9/GgqF6g==</id>
<updated>2026-05-29T00:00:00-04:00</updated>
<opensearch:totalResults xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">1234</opensearch:totalResults>
<opensearch:startIndex xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">0</opensearch:startIndex>
<opensearch:itemsPerPage xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">1</opensearch:itemsPerPage>
<entry>
<id>http://arxiv.org/abs/1234.56789v1</id>
<updated>2020-01-01T12:00:00-05:00</updated>
<published>2020-01-01T12:00:00-05:00</published>
<title type="html">A Sample Title by D. Knuth</title>
<summary type="html">Abstract text here...</summary>
<author>
<name>D. Knuth</name>
</author>
<link href="http://arxiv.org/abs/1234.56789v1" rel="alternate" type="text/html"/>
<link title="pdf" href="http://arxiv.org/pdf/1234.56789v1" rel="related" type="application/pdf"/>
<arxiv:primary_category xmlns:arxiv="http://arxiv.org/schemas/atom" term="cs.DM" scheme="http://arxiv.org/schemas/atom"/>
<category term="cs.DM" scheme="http://arxiv.org/schemas/atom"/>
</entry>
</feed>
To process this, developers would typically use an XML parser in their chosen programming language to extract elements such as <title>, <author>, <summary>, and links to the full PDF (MDN Web Docs on XMLDocument).
Common next steps
After successfully retrieving your first set of results, consider the following steps to integrate the arXiv API more deeply into your application:
- Explore Advanced Query Parameters: The API supports a wide range of search parameters beyond simple author queries, including title, abstract, subject category, and identifier searches (arXiv API query details). Experiment with combinations to refine your searches.
- Implement Pagination: For queries that return many results, implement
startandmax_resultsparameters to paginate through the data efficiently (arXiv API paging documentation). The maximummax_resultsis 2000 per request. - Parse XML Responses: Develop robust XML parsing logic within your application to extract specific metadata fields from the Atom feed. Libraries are available in most programming languages for this purpose.
- Handle Rate Limits: Integrate error handling for HTTP 403 Forbidden responses, which indicate rate limit breaches. Implement exponential backoff or token bucket algorithms to manage your request frequency and avoid exceeding the 100,000 requests per day per IP limit (arXiv API rate limit information).
- Download Full-Text Articles: The API response includes a link to the PDF of the full article (e.g.,
<link title="pdf" href="http://arxiv.org/pdf/1234.56789v1" rel="related" type="application/pdf"/>). You can use this URL to programmatically download the full text, respecting arXiv's terms of use. - Stay Updated: Regularly consult the official arXiv API documentation for any updates to endpoints, parameters, or policies.
Troubleshooting the first call
When making your first API call to arXiv, you might encounter a few common issues. Here are some troubleshooting tips:
- Incorrect URL Encoding: Ensure all special characters in your query parameters (like spaces, colons, or quotation marks) are properly URL-encoded. For example, a space becomes
%20or+, and a double quote becomes%22. Many HTTP client libraries handle this automatically, but when constructing URLs manually or usingcurl, it's crucial (MDN Web Docs on URL encoding). - Network Connectivity Issues: Verify your internet connection is active and that no firewall or proxy is blocking your request to
export.arxiv.org. - Exceeding Rate Limits: Although unlikely on a first call, repeated rapid requests can trigger the rate limit, resulting in an HTTP 403 error. If you encounter this, pause your requests and review the rate limit policy (arXiv API rate limits).
- Malformed Query Parameters: Double-check the spelling and syntax of your query parameters against the arXiv API user manual's query details. Incorrect parameter names (e.g.,
author_queryinstead ofsearch_query=au:) will lead to unexpected or empty results. - XML Parsing Errors: If your application is failing to parse the response, ensure your XML parser is correctly configured to handle Atom feeds and namespaces. Atom feeds use the
http://www.w3.org/2005/Atomnamespace, and arXiv adds its own schema for specific elements (W3C on XML Namespaces). - Empty Results: If your query returns an empty feed even though you expect results, try simplifying your search query or broadening the search terms. Verify that the terms you are searching for actually exist in the arXiv database via the web interface (arXiv search interface).