Arxiv Read Paper
arxiv_read_paperFetch the full text of an arXiv paper. Tries arxiv.org/html first, falls back to ar5iv.labs.arxiv.org, and falls back again to text extracted from the PDF when neither has an HTML render — check the source field to know which one answered. Page through long papers with start and max_characters, or pass max_characters null to get the entire body in one call.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| start | No | Character offset into the cleaned body to begin reading from. Defaults to 0. Use with max_characters to page through long papers — e.g., start=100000 with max_characters=100000 returns chars 100,000–199,999. The total length is reported as body_characters in the response. | |
| paper_id | Yes | arXiv paper ID (e.g., "2401.12345" or "2401.12345v2"). | |
| max_characters | No | Maximum characters of paper body to return, counted after boilerplate stripping. Defaults to 100,000; pass null to return the entire body in one call. Whole-paper reads can exceed a client tool-result size cap — math-heavy bodies run 300KB-1MB+ — so prefer the default plus start-based paging unless the full text is needed. When truncated, a notice and the total character count are included. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | Present when the call failed. Absent on success. | |
| start | No | Character offset of the first character in content within the cleaned body. | |
| title | No | Paper title (from metadata, not parsed from HTML). | |
| source | No | Which upstream artifact the body was read from. arxiv_html and ar5iv are HTML renders; pdf_text is text extracted from the PDF, where prose is reliable but math, tables, and heading structure are flattened. | |
| content | No | Paper body for the requested slice — cleaned HTML when source is arxiv_html or ar5iv, plain text when source is pdf_text. Empty when start is past body_characters. | |
| pdf_url | No | Direct PDF download URL. | |
| paper_id | No | arXiv paper ID. | |
| truncated | No | True when more body content exists past this slice (start + content.length < body_characters). | |
| abstract_url | No | arXiv abstract page URL for attribution. | |
| body_characters | No | Character count of the full cleaned body. Use with start and max_characters to page. Typically 3-4× smaller than total_characters for math-heavy HTML papers. | |
| total_characters | No | Character count of the body before cleaning — the unprocessed HTML body for arxiv_html and ar5iv, and equal to body_characters for pdf_text, which needs no cleaning. |