Structure of file URLs in Joplin Server🔗

To identify a file, Joplin Server supports two types of URLs:

Access by ID🔗

Format: BASE_URL/files/FILE_ID

This is the simplest way and it matches how other API items are accessed by ID.

For example: https://example.com/api/files/5c7e0f3f54434ba

Access by full path🔗

Format: BASE_URL/files/SPECIAL_DIR:/path/to/file/:

This is to access a file by its full path. In this case, the path must be prefixed by SPECIAL_DIR, which can only be root at the moment. Then to differentiate the path from URL segments, it needs to be wrapped in colons :.

For example, to access the metadata of file /my/file.txt

https://example.com/api/files/root:/my/file.txt:

To access its content:

https://example.com/api/files/root:/my/file.txt:/content

To access the root only (for example to list its content):

https://example.com/api/files/root:/:

Which can also be written as:

https://example.com/api/files/root

Difference between API and web app end points🔗

The API and web app end points are consistent in the way they access files, except that in one case the URLs will start with /api and the other with just /. For example, this would access the same file:

  • API: https://example.com/api/files/root:/my/file.txt:
  • Web: https://example.com/files/root:/my/file.txt: