
Website Content Crawler
scrape.ly/store/querystone/website-content-crawlerAIDeveloper tools
1 monthly user

Search arXiv by keywords, categories, authors and dates, get each day's new submissions per category, or look up papers by ID. Clean JSON with abstracts, authors, DOIs and BibTeX, plus optional full text as Markdown for RAG and AI agents. No login needed.
Search arXiv the way researchers do (keywords, field syntax, categories, authors, submission dates), pull each day's new submissions for any category, or look up papers by ID, and get clean JSON back in seconds. Every paper comes with its abstract, authors, categories, DOI, journal reference, code links and a ready BibTeX entry. Switch on full text and you also get the whole paper as Markdown, ready for RAG pipelines and AI agents. No login, no API key.
$...$.ti:transformer AND au:vaswani), and/or paste paper IDs or arXiv URLs, and/or list categories for new submissions.| Field | What it does |
|---|---|
searchQueries | Keywords (all words must match, "quoted phrases" stay together) or arXiv syntax with all:, ti:, au:, abs:, co:, jr:, cat:, rn: and AND / OR / ANDNOT. |
urls | arXiv IDs (new and old style, with or without version), abs/pdf/html links, arXiv DOIs, arxiv.org search URLs and /list/<category>/new URLs. |
newSubmissionsCategories | Category codes whose latest daily announcement you want. |
maxResults | Papers per query or category (default 20, 0 = up to 30,000). |
categories, authors | Filters added to every search; used alone they list the newest papers. |
dateFrom, dateTo | First-submission date range. |
sortBy, sortOrder | Relevance, submission date or last update. |
announceTypes | new, cross, replace, replace-cross (for daily listings). |
includeFullText, fullTextSource, includeReferences, maxFullTextChars | Full text options. |
{
"searchQueries": ["retrieval augmented generation"],
"categories": ["cs.CL", "cs.IR"],
"dateFrom": "2025-01-01",
"maxResults": 50,
"sortBy": "submittedDate",
"includeFullText": true
}
| Field | Description |
|---|---|
arxivId, arxivIdVersioned, version | Paper ID, ID with the latest version, version number |
title, abstract | Title and abstract as plain text |
authors, authorCount, firstAuthor, authorDetails | Author names; affiliations when arXiv has them |
published, updated, publishedDate, updatedDate | First submission and latest version timestamps |
primaryCategory, primaryCategoryName, categories, categoryNames | arXiv categories with readable names |
comment, journalRef, doi, doiUrl, arxivDoi | Author comment, journal reference, publisher DOI and arXiv DOI |
publicationStatus, isWithdrawn | preprint, accepted (venue named in the comment) or published (journal ref or DOI); withdrawal flag |
hasCode, codeUrls | GitHub, GitLab, Hugging Face and similar links found in the comment or abstract |
absUrl, pdfUrl, htmlUrl | Paper links |
bibtex | BibTeX entry |
input, inputType, query, rank | Which input found the paper and its position |
announceType, announcedDate, license | Daily listings only |
fullText, fullTextSource, fullTextFormat, fullTextChars, fullTextWords, fullTextTruncated, pdfPages, fullTextError | Full text (when switched on) |
Example from a real run (abstract, full text and BibTeX shortened):
{
"arxivId": "1706.03762",
"arxivIdVersioned": "1706.03762v7",
"version": 7,
"title": "Attention Is All You Need",
"abstract": "The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performi...",
"authors": [
"Ashish Vaswani",
"Noam Shazeer",
"Niki Parmar",
"..."
],
"authorCount": 8,
"firstAuthor": "Ashish Vaswani",
"published": "2017-06-12T17:57:34Z",
"updated": "2023-08-02T00:41:18Z",
"publishedDate": "2017-06-12",
"primaryCategory": "cs.CL",
"primaryCategoryName": "Computation and Language",
"categories": [
"cs.CL",
"cs.LG"
],
"comment": "15 pages, 5 figures",
"journalRef": null,
"doi": null,
"arxivDoi": "10.48550/arXiv.1706.03762",
"publicationStatus": "preprint",
"hasCode": false,
"codeUrls": [],
"absUrl": "https://arxiv.org/abs/1706.03762v7",
"pdfUrl": "https://arxiv.org/pdf/1706.03762v7",
"htmlUrl": "https://arxiv.org/html/1706.03762v7",
"bibtex": "@misc{vaswani2017attention,\n title={{Attention Is All You Need}},\n author={Ashish Vaswan...",
"input": "1706.03762",
"inputType": "paper",
"scrapedAt": "2026-10-15T22:54:24Z",
"fullText": "Provided proper attribution is provided, Google hereby grants permission to reproduce the tables and figures in this paper solely for use in journalistic or scholarly works.\n\n# Attention Is All You Need\n\n## Abstract\n\nThe dominant sequence transduction models a...",
"fullTextSource": "html",
"fullTextFormat": "markdown",
"fullTextWords": 6053,
"fullTextError": null
}
Is it legal to scrape arXiv? The actor uses arXiv's public API and export mirror and follows arXiv's rate guidance. Paper metadata is free to reuse; full texts keep their authors' licenses, so check each paper's license before redistributing it.
Do I need an arXiv account, API key or proxy? No. The default datacenter proxy is enough.
How many papers can I get? Up to 30,000 per search query (an arXiv API limit). Split bigger jobs by date range or category.
Why is full text slower? arXiv asks clients to wait three seconds between requests, so each full text adds about 3 to 6 seconds. Metadata comes in pages of up to 500 papers, so it stays fast.
What if a field is empty?
It is null (or an empty list) when arXiv has no value, for example doi for papers that were never published in a journal, or authorDetails when no affiliations were submitted.
Can I use it from an AI agent or on a schedule?
Yes. Call it through the API or MCP with a query and read the dataset, or schedule it with newSubmissionsCategories for a daily feed.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch queries
Keywords such as retrieval augmented generation (all words must match; put "quotes" around exact phrases), or arXiv search syntax with field prefixes and Boolean operators, e.g. ti:transformer AND au:vaswani, abs:"diffusion model" ANDNOT cat:cs.CV. Prefixes: all, ti (title), au (author), abs (abstract), co (comment), jr (journal ref), cat (category), rn (report number). Each query is searched separately.
urlsarrayOptionalPaper IDs or arXiv URLs
arXiv IDs (2310.06825, 2310.06825v2, hep-th/9901001, arXiv:1706.03762), abs/pdf/html links, arXiv DOIs (10.48550/arXiv.1706.03762), arxiv.org search result URLs, or listing URLs such as https://arxiv.org/list/cs.AI/new.
newSubmissionsCategoriesarrayOptionalNew submissions in categories
Category codes (cs.AI, cs.CL, stat.ML, q-bio.GN, hep-th, ...) whose latest daily announcement you want: the papers in today's 'new' listing. On days without an announcement (weekends, holidays) the newest submissions in the category are returned instead.
maxResultsintegerOptionaldefault 20Max papers per query or category
How many papers to return for each search query or new-submissions category (0 = as many as arXiv returns). The arXiv API pages through at most 30,000 results per query. Paper IDs are always all returned.
categoriesarrayOptionalCategories
Only papers in at least one of these categories (cs.LG, cs.CL, math.CO, physics.optics, ...). Used alone, without a query, it lists the newest papers in these categories.
authorsarrayOptionalAuthors
Only papers by at least one of these authors, e.g. Geoffrey Hinton or Hinton_G. Used alone, it lists the author's papers.
dateFromstringOptionalSubmitted from
Only papers first submitted on or after this date (YYYY-MM-DD).
dateTostringOptionalSubmitted to
Only papers first submitted on or before this date (YYYY-MM-DD).
sortByenumOptionaldefault "auto"Sort by
Auto sorts keyword searches by relevance and category or author lists by newest submission.
sortOrderenumOptionaldefault "descending"Sort order
Descending puts the newest or most relevant papers first.
announceTypesarrayOptionaldefault ["new","cross"]Announcement types (new submissions)
Which entries of a daily listing to keep: new (first announced today), cross (cross-listed from another category), replace (new versions), replace-cross.
includeFullTextbooleanOptionaldefault falseInclude full text
Add the whole paper to each row: arXiv's HTML version as Markdown (sections, tables, LaTeX math as $...$), or the PDF as plain text when there is no HTML version. Adds about 3 to 6 seconds per paper, because arXiv asks for one request every three seconds.
fullTextSourceenumOptionaldefault "auto"Full text source
Auto uses the HTML version and falls back to the PDF.
includeReferencesbooleanOptionaldefault trueInclude reference list
Keep the bibliography at the end of HTML full texts.
maxFullTextCharsintegerOptionaldefault 300000Max full text characters
Cut the full text after this many characters (0 = no limit).
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for arXiv.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| title | any | Title |
| absUrl | any | arXiv page |
| publishedDate | any | Submitted |
| firstAuthor | any | First author |
| authorCount | any | Authors |
| primaryCategory | any | Category |
| publicationStatus | any | Status |
| doi | any | DOI |
| pdfUrl | any | |
| input | any | Input |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Paper | Charged for each paper saved with its metadata, abstract and BibTeX. Empty searches and invalid inputs are free. | $0.0015 |
| Paper with full text | Charged instead of 'Paper' when full text is switched on and the paper's full text was loaded. Papers whose full text is unavailable are billed as 'Paper'. | $0.003 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/arxiv-scraper').call({
"searchQueries": [
"retrieval augmented generation"
],
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/arxiv-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/arxiv-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Papers with abstracts and references.
Papers including their full text.
Latest daily announcements in cs.AI.
Metadata for papers given by ID or link.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.