How it will work: 3 steps
- Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
- Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example:
cs.AIin Categories. Each start is one run. - Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.
This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.
What it does
Search arXiv paper metadata by query, categories and dates. Get authors, abstracts, DOI links and version changes for your research feed, without an API key.
Who uses it
Research teams
Build a weekly paper feed for your topic.
PhD students
Export papers for a literature search.
Librarians and indexers
Track version changes and withdrawal notices.
Price
Prices will be shown after release.
Questions
Do I need an arXiv API key?
No. The tool uses the public arXiv metadata API.
Does it download PDFs?
No. It saves metadata and article links.
How do I get only new papers?
Paste your last snapshot and turn on onlyNew.
Does it schedule itself?
No. Set a schedule in Apify if you want regular runs.
Details
Step by step on Apify
- Open Input.
- Keep the example:
categories: ["cs.AI"],lastDays: 7,maxResults: 25. - Click Start.
- Open Papers in the output. Check
id,title,authorsandupdated. - Export JSON or CSV. Open Snapshot and summary to copy the snapshot for another run.
Use cases
| Task | Useful settings | Key fields |
|---|---|---|
| A team research feed | Categories and recent days | Title, authors, abstract, links |
| A literature search | Query plus subject codes | ID, abstract, DOI, journal reference |
| Watch paper revisions | Previous snapshot and onlyNew | Version, updated, changeType |
| Review withdrawal notices | Query or categories, then review text | Comment, withdrawalEvidence |
| Prepare a metadata index | Export JSON or CSV | ID, categories, provenance |
Tips for better results
- Use arXiv search rules, like ti: for title or au: for author.
- Save the snapshot from each run and paste it into the next run.
- A run can check up to 500 papers. Use short date windows for old topics.
Limits and good to know
- At most 500 saved papers and 500 scanned source records per run. Broad searches are not full-archive exports
- Updated-date filtering and
onlyNewcan scan many records without saving rows. Narrow the query or date scope and read the summary - Source retries, response size and total work are bounded. Source work stops within an internal 180-second limit, even with a longer platform timeout. Use the default 300-second timeout and 256 MB memory
- arXiv may reject a query, delay an update or become unavailable. Source failure is reported as error or partial, not an empty successful search
- Withdrawal is a text-notice check, not a full registry of retractions. Absence never proves withdrawal. No notice means unknown, not confirmed active
- Article licenses are normally not provided by Atom. Review the article page and license before reusing full content
- No PDFs, full text, citation counts, peer-review checks or enrichment from other databases
Troubleshooting
| Problem | Check | Action |
|---|---|---|
| Zero rows | Query, categories, dates and onlyNew | Remove a restrictive filter or expand the window. |
SCAN_LIMIT | Source count and filtered/unchanged counters | Narrow the query; do not treat the snapshot as a full archive. |
CHARGE_LIMIT | Maximum cost | Raise it enough for the start and desired saved papers, or reduce output. |
SOURCE_QUERY_ERROR | arXiv query syntax | Use a small valid field query such as ti:transformer. |
RATE_LIMITED, SOURCE_TIMEOUT, SOURCE_UNAVAILABLE | Source status and overlapping runs | Stop parallel clients and retry later. |
INVALID_INPUT | Exact keys, real dates and snapshot shape | Use the schema; avoid renamed fields from other Actors. |
| Version did not change | Baseline version and source updated date | A metadata correction may not create a higher version. |
For developers
Sample result
One result from a real test run, in JSON. Real values change from run to run. Some values are changed for privacy. In Excel or CSV each field is a column.
{
"id": "2610.13948",
"version": 1,
"title": "Can Language Models Play the Wikipedia Game?",
"authors": [
"Author One",
"Author Two",
"Author Three"
],
"primaryCategory": "cs.AI",
"published": "2026-10-09T17:59:56Z",
"updated": "2026-10-09T17:59:56Z",
"doi": null,
"license": null,
"changeType": "new",
"absUrl": "https://arxiv.org/abs/2610.13948v1"
}Data fields (25)
| Field | Type | Meaning |
|---|---|---|
id | string | Unversioned arXiv ID, such as 2610.13948 or hep-th/9711200. |
versionedId | string | arXiv ID with version suffix, such as 2610.13948v1. |
title | string | Paper title with line breaks and repeated spaces normalized. |
published | string | ISO timestamp of the first submission (v1). |
updated | string | ISO timestamp of the received version. |
absUrl | string | HTTPS arXiv abstract page for this version. |
provider | string | Data provider name: arXiv. |
sourceUrl | string | HTTPS source article URL on arXiv. |
fetchedAt | string | ISO time when the Actor parsed this source response. |
sourceUpdatedAt | string | Source timestamp of the record, same as updated. |
licenseStatus | string | source_provided when a paper license was in the feed, otherwise not_in_atom_feed. |
metadataLicense | string | License of the descriptive metadata (CC0-1.0); it does not cover the PDF. |
changeType | string | Change against previousSnapshot: new, new_version, withdrawn, metadata_updated, unchanged or older_version. |
abstract | string | Metadata abstract with TeX and Unicode preserved. Null if missing or includeAbstract is false. |
primaryCategory | string | Main arXiv category, such as cs.AI. Null if absent. |
doi | string | DOI supplied by arXiv. Null if absent. |
journalRef | string | Journal reference supplied by arXiv. Null if absent. |
comment | string | Author comment from arXiv, such as page counts or a withdrawal notice. Null if absent. |
pdfUrl | string | arXiv PDF link when the feed provides one. The PDF is not downloaded. Null if absent. |
license | string | Full-paper license when the Atom feed provides it. Normally null, meaning unknown, not a reuse permission. |
withdrawalEvidence | string | explicit_notice_in_comment_or_abstract when a withdrawal notice was found, otherwise null. |
version | integer | Source version number of the received record, such as 1. |
authors | array | Author names in source order. |
categories | array | All arXiv category codes of the paper, such as cs.AI and cs.LG. |
withdrawn | boolean | True for an explicit withdrawal text notice; null when no notice is known. Not an authoritative status check. |
Input settings (12)
The main fields of the input form. With the API you send them as JSON.
| Setting | Name in the API | Type | Example value |
|---|---|---|---|
| Search query | query | string | "" |
| Categories | categories | array | ["cs.AI"] |
| From date (UTC) | dateFrom | string | |
| To date (UTC) | dateTo | string | |
| Recent days | lastDays | integer | 7 |
| Date to filter | dateField | string | "submitted" |
| Maximum saved papers | maxResults | integer | 25 |
| Sort by | sortBy | string | "submittedDate" |
| Sort order | sortOrder | string | "descending" |
| Previous snapshot | previousSnapshot | array | [] |
| Only changed papers | onlyNew | boolean | false |
| Include abstracts | includeAbstract | boolean | true |
