delete many entries
the hashes of the entries to delete
Optionalrefresh: booleanmove many entries
an array of entry hashes to move
the directory id to move the entries to, "" (root) and "trash" are special ids
Optionalrefresh: booleancompletely delete the cache
If the cache is causing memory issues, you can clear it, but this will hurt performance.
delete an entry
the hash of the entry to delete
Optionalrefresh: booleanget the current cache value as a string
You can use this to warm start a new instance of
remarkable with any previously cached results.
get the entire contents of a remarkable document
This gets every file of associated with a document, and puts them into a zip archive.
the hash of the document to get the contents for (e.g. the
hash received from listItems)
get the epub associated with a document hash
This returns the raw input epub if a document was created from an epub.
the hash of the document to get the pdf for (e.g. the hash
received from listItems)
the epub bytes
get the pdf associated with a document hash
This returns the raw input pdf, not the rendered pdf with any markup.
the hash of the document to get the pdf for (e.g. the hash
received from listItems)
the pdf bytes
similar to listItems but backed by the low level api
Optionalrefresh: booleanif true, refresh the root hash before listing
list all items
Items include both collections and documents. Documents that are in folders will have their parent set to something other than "" or "trash", but everything will be returned by this function.
Optionalrefresh: booleanif true, refresh the root hash before listing
a list of all items with some metadata
move an entry
the hash of the file to move
the id of the directory to move the entry to, "" (root) and "trash" are special parents
Optionalrefresh: booleanprune the cache so that it contains only reachable hashes
The cache is append only, so it can grow without bound, even as hashes become unreachable. In the future, this may have better cache management to track this in real time, but for now, you can call this method, to keep it from growing continuously.
Optionalrefresh: booleanwhether to refresh the root hash before pruning
use the low-level api to add an epub document
Since this uses the low-level api, it provides more options than
uploadEpub, but is a little more finicky. Notably, it
may throw a GenerationError if the generation
doesn't match the current server generation, requiring you to retry until
it works.
the name to display on the reMarkable
the raw epub
Optionalopts: PutOptionsput options
the entry for the newly inserted document
create a folder
Optionalopts: FolderOptionsOptionalrefresh: booleanuse the low-level api to add a pdf document
Since this uses the low-level api, it provides more options than
uploadPdf, but is a little more finicky. Notably, it
may throw a GenerationError if the generation
doesn't match the current server generation, requiring you to retry until
it works.
the name to display on the reMarkable
the raw pdf
Optionalopts: PutOptionsput options
the entry for the newly inserted document
rename an entry
the hash of the entry to rename
the new name to assign
Optionalrefresh: booleanset if an entry is stared
the hash of the entry to rename
whether the entry should be stared or not
Optionalrefresh: booleanupdate content metadata for a collection
the hash of the file to update
the fields of content to update
Optionalrefresh: booleanupdate content metadata for a document
the hash of the file to update
the fields of content to update
Optionalrefresh: booleanupdate content metadata for a template
the hash of the file to update
the fields of content to update
Optionalrefresh: booleanupload an epub
the name to show for the uploaded epub
the epub contents
upload a pdf
the name to show for the uploaded epub
the epub contents
the api for accessing remarkable functions
There are roughly two types of functions.
Most of these functions validate the return values so that typescript is accurate. However, sometimes those return values are more strict than the "true" underlying types. If this happens, please submit a an issue. In the mean time, you should be able to use the low level api to work around any restrictive validation.