USB Web Interface
There is an optional web interface that can be turned on that allows you upload and export files from the device.
Contents
Enable the interface¶
See the official Transferring files using a USB cable article for up to date information.
- Open the Menu from the main page.
- Select "Settings".
- Select "Storage".
- Toggle "USB web interface" on.
API¶
The USB Web Interface exposes the following API endpoints that can be used to interact with the xochitl filesystem.
GET http://10.11.99.1/documents/¶
Get the document and folders list for the root folder. This will also respond to POST requests.
Example:
curl \
--silent \
http://10.11.99.1/documents/ \
| jq -r 'map({(.ID): {VissibleName,Type}}) | add'
GET http://10.11.99.1/documents/{guid}¶
Get the documents and folders list for a specific folder. This will also respond to POST requests.
Example:
guid=fd2c4b2c-3849-46c3-bf2d-9c80994cc985
curl \
--silent \
"http://10.11.99.1/documents/$guid" \
| jq -r 'map({(.ID): {VissibleName,Type}}) | add'
GET http://10.11.99.1/download/{guid}/pdf¶
Download the PDF for a specific document.
Example:
guid=fd2c4b2c-3849-46c3-bf2d-9c80994cc985
curl \
-I "http://10.11.99.1/download/$guid/pdf"
GET http://10.11.99.1/download/{guid}/rmdoc¶
Download the raw notebook archive for a specific document. This was added in v3.9.
Example:
guid=fd2c4b2c-3849-46c3-bf2d-9c80994cc985
curl \
-I "http://10.11.99.1/download/$guid/rmdoc"
POST http://10.11.99.1/upload¶
Upload a document to the last folder that was listed.
Example:
file=Get_started_with_reMarkable.pdf
curl \
'http://10.11.99.1/upload' \
-H 'Origin: http://10.11.99.1' \
-H 'Accept: */*' \
-H 'Referer: http://10.11.99.1/' \
-H 'Connection: keep-alive' \
-F "file=@$file;filename=$(basename "$file");type=application/pdf"
GET http://10.11.99.1/log.txt¶
Download the xochitl log file found at /home/root/log.txt.
Example:
curl \
--silent \
--remote-name \
--remote-header-name \
'http://10.11.99.1/log.txt'
GET http://10.11.99.1/thumbnail/{guid}¶
Download the thumbnail for a specific document (latest page opened).
Example:
guid=fd2c4b2c-3849-46c3-bf2d-9c80994cc985
curl \
-I "http://10.11.99.1/thumbnail/$guid"
POST 'http://10.11.99.1/search/{keyword}'¶
Search for documents matching a specific keyword. This endpoint is currently under development, and may not work as expected.
Example:
keyword="planning"
curl \
-X POST \
"http://10.11.99.1/search/$keyword" \
| jq -r 'map({(.ID): {VissibleName,Type}}) | add'
External links¶
- Make the usb web interface available immediately after starting the device: webinterface-onboot
- Make the usb web interface available over wifi: webinterface-wifi
- Add an upload button to the usb web interface: webinterface-upload-button
- The usb web interface is likely using this to serve itself: reMarkable/qtwebapp