arXiv API
Live read-only access to arXiv paper search, paper metadata, and the full category taxonomy.
Endpoint health
Loading verification…
Connect your agent
Connect through MCP so your agent can find this API, read its docs, and call its endpoints.
Add the server from your terminal.
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcpIn Claude Code, run /mcp, select agent-data, then Authenticate. Sign in to your agent-data account in the browser.
Then ask your agent to use the arXiv API for your task.
Call it over HTTP
Get an API keySign up free, generate an API key, and set it as AGENT_DATA_API_KEY in your environment. Your first 100 calls each month are free.
curl --request GET --get 'https://api.agent-data.dev/arxiv-org/v1/papers/search' \
--header "Authorization: Bearer $AGENT_DATA_API_KEY"Endpoints
Inputs and response fields for every endpoint in this API.
GETPapers search/v1/papers/search
Search Papers
Input
queryOptionalQuery · string | nullFull-text term matched across arXiv fields.
Example: attention
startOptionalQuery · integer, min: 0, max: 100000, default: 0Zero-based result offset.
Example: 0
titleOptionalQuery · string | nullTerm matched in paper titles.
Example: attention
authorOptionalQuery · string | nullAuthor name or surname filter.
Example: Vaswani
sortByOptionalQuery · "relevance" | "lastUpdatedDate" | "submittedDate"arXiv result ordering field.
Example: relevance
categoryOptionalQuery · string | nullarXiv category identifier, such as cs.AI.
Example: cs.AI
sortOrderOptionalQuery · "ascending" | "descending"Sort direction.
Example: descending
maxResultsOptionalQuery · integer, min: 1, max: 100, default: 10Number of papers to return, at most 100.
Example: 1
Response
papersobject[]papers[].doi?string | nullpapers[].titlestringpapers[].abs_urlstring (uri)papers[].authorsstring[]papers[].comment?string | nullpapers[].pdf_urlstring (uri)papers[].summarystringpapers[].updatedstringpapers[].arxiv_idstringpapers[].publishedstringpapers[].categoriesstring[]papers[].journal_ref?string | nullstart_indexinteger, min: 0total_resultsinteger, min: 0Fields marked ? are optional.
GETPapers by arxiv id/v1/papers/{arxiv_id}
Get Paper
Input
arxiv_idRequiredPath · stringThe arXiv paper identifier, modern or legacy, optionally with version.
Example: 1706.03762
Response
doi?string | nulltitlestringabs_urlstring (uri)authorsstring[]comment?string | nullpdf_urlstring (uri)summarystringupdatedstringarxiv_idstringpublishedstringcategoriesstring[]journal_ref?string | nullFields marked ? are optional.
GETCategories/v1/categories
Get Category Taxonomy
Input
groupOptionalQuery · string | nullOptional taxonomy group ID, such as grp_cs or grp_math.
Example: grp_cs
Response
groupsobject[]groups[].idstringgroups[].namestringgroups[].categoriesobject[]groups[].categories[].idstringgroups[].categories[].namestringgroups[].categories[].descriptionstringDon’t see the endpoint you need?
Ask agent-data to add an endpoint or return more fields. Extensions are free and keep existing endpoints working.
An account is required to submit an extension. Prepare your request, then sign in to build.