Export
Download the PDF with your annotations, or your notes as JSON
Three things can leave the reader: the PDF as arXiv serves it, a copy of the PDF with your highlights written into it, and a JSON file of your notes and highlights. All three work signed out as well as signed in. None of them needs anyone else to be able to read your notes, and the annotated PDF and the JSON file are produced in your browser.
Download the PDF
Open the Download Paper menu at the right of the toolbar and choose Without annotations. Substrate streams the file from arXiv and sends it as an attachment named arxiv-<id>.pdf; a slash in an old-style identifier becomes an underscore. Nothing of yours is added.
Download with your highlights
With annotations in the same menu shows the number of highlights in brackets and is disabled while there are none, with the hint Highlight some text first to export annotations. When you choose it, your browser fetches the PDF, writes one highlight annotation for each page a highlight touches, and saves the result as <title>-with-annotations.pdf, the title trimmed to 80 characters. The reader shows a spinner in the menu until the file is ready.
These are standard PDF highlight annotations, not an image layer, so any viewer that lists annotations shows and lists them. Each one carries:
| Field | Value |
|---|---|
| Colour | The swatch colour you chose, at 40% opacity. |
| Contents | Your note on the highlight; otherwise the first 300 characters of the highlighted text. |
| Author | Substrate |
| Date | When you made the highlight. |
The private paper note and any assistant conversation are not part of the PDF. The file is written without object streams so that older viewers see the annotations too. If the fetch or the write fails, the menu shows the error in place.
Export notes and highlights as JSON
In the My notes tab, press Export notes & highlights. The browser saves arxiv-<id>-notes.json containing everything the reader keeps privately for this paper:
{
"arxivId": "1706.03762",
"schemaVersion": 1,
"notes": "Your private paper note",
"highlights": [
{
"id": "…",
"color": "yellow",
"text": "the highlighted passage",
"rects": { "3": [{ "x": 0.12, "y": 0.41, "w": 0.7, "h": 0.02 }] },
"page": 3,
"note": "optional note on this highlight",
"createdAt": 1757500000000
}
],
"messages": []
}| Key | What it holds |
|---|---|
| arxivId | The paper the file belongs to. |
| schemaVersion | Always 1 at present. |
| notes | The private paper note. |
| highlights | One entry per highlight: colour, text, the marked boxes per page as fractions of the page size, the first page, an optional note, and the creation time. |
| messages | The assistant conversation for this paper, if any; see Reader assistant. |
There is no import. The file is a copy to keep, to move by hand, or to process with your own tools; the reader cannot read it back. That matters for guest notes, which are never uploaded when you sign in, and for recovering from a save conflict, both described on Highlights and notes.
PDF limits and timeouts
The reader and both PDF downloads go through Substrate’s proxy to arXiv, which applies these bounds:
| Bound | Value |
|---|---|
| Largest PDF | 100 MiB. Larger files are refused with PDF exceeds the 100 MiB reader limit. |
| Waiting for arXiv to answer | 15 seconds |
| Streaming the body | 50 seconds |
| Caching | One hour, public |
| Errors | Paper unavailable from arXiv when arXiv has no such file; Could not reach arXiv. Please retry. when the request fails. |
Byte-range requests are passed through, so the reader can load pages on demand. Substrate only ever talks to arXiv’s own hosts (arxiv.org, export.arxiv.org and oaipmh.arxiv.org) and follows at most four redirects between them.