For the complete documentation index, see llms.txt. This page is also available as Markdown.

/api/v1/WebDAV

The read/write WebDAV (RFC 4918) interface to fylr's collections, mounted at /api/v1/WebDAV. Each WebDAV directory maps to a fylr collection; each WebDAV file maps to a file linked from that collection — so you can browse, download, upload, rename and delete a collection's files live. For the separate drop-only ingest share, see /api/v1/hotfolder below; the two are independent mounts with independent enable flags.

Must be enabled in the base config (webdav.read_write_access = true), otherwise every request returns 503 with code: WebdavNotEnabled. The same flag gates both reading and writing.

This endpoint performs no client authentication — the route is registered with no token check. Knowledge of the collection's UUID, which forms the path, is the only access capability: anyone who can reach the URL with a valid collection UUID can mount it. Clients must connect as guest and send no credentials — for example, in macOS Finder's Connect to Server dialog, choose Connect As: Guest. There is no Bearer-token, X-Fylr-Authorization, access_token or HTTP Basic authentication here; the only gate is whether WebDAV is enabled (above). Server-side, the operation acts as the owner of the target collection.

WebDAV methods. GET, HEAD, OPTIONS, POST, PUT and DELETE are documented as operations below. The collection-specific WebDAV verbs — which the OpenAPI renderer cannot list as operations — behave as follows:

  • PROPFIND — the WebDAV directory listing: list a collection's contents. The Depth header must be 0 or 1 (400 otherwise); the response is a 207 multistatus XML body.

  • PROPPATCH — accepted for client compatibility only; no properties are stored. It behaves like PROPFIND and echoes the current property values.

  • MKCOL — create a collection (201; idempotent — also 201 if the collection already exists). 409 when a parent in the path is missing or the path already exists as a file.

  • MOVE — rename a collection within its parent (201). 409 for a missing source, an existing destination, a non-collection target, or a cross-parent move; files cannot be moved.

  • LOCK / UNLOCK — WebDAV write locks. LOCK returns 200 (refresh) or 201 (new) with a Lock-Token header and an XML lock-discovery body; UNLOCK returns 204. A token mismatch returns 423.

COPY is not supported and returns 405. As with the operations below, every verb returns 503 with code: WebdavNotEnabled when WebDAV is disabled, and writes return 400 ReadOnlyMode in read-only mode.

GET /WebDAV/{collectionUuid}/{path} — Download a file (or list a collection — depending on path).

Download a file (or list a collection — depending on path).

get
Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Path parameters
collectionUuidstringRequired

The first path segment is the collection UUID. The WebDAV URL of a collection (its _hotfolder_upload_urls entry of type webdav) ends in this UUID. A request to a bare collection UUID lists that collection.

pathstringRequired

Any further path segments after the collection UUID are the display names of sub-collections, ending in a file display name. May be empty to address the collection itself.

Responses
200

For a file path: the file contents. For a directory path: an HTML index page listing the entries.

string · binaryOptional

POST /WebDAV/{collectionUuid}/{path} — WebDAV POST — handled by the same code path as GET/HEAD. fylr

WebDAV POST — handled by the same code path as GET/HEAD. fylr accepts it for client compatibility.

post
Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Path parameters
collectionUuidstringRequired

The first path segment is the collection UUID. The WebDAV URL of a collection (its _hotfolder_upload_urls entry of type webdav) ends in this UUID. A request to a bare collection UUID lists that collection.

pathstringRequired

Any further path segments after the collection UUID are the display names of sub-collections, ending in a file display name. May be empty to address the collection itself.

Responses
200

The POST was processed.

No content

No content

Upload a file and link it to the collection.

put
Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Path parameters
collectionUuidstringRequired

The first path segment is the collection UUID. The WebDAV URL of a collection (its _hotfolder_upload_urls entry of type webdav) ends in this UUID. A request to a bare collection UUID lists that collection.

pathstringRequired

Any further path segments after the collection UUID are the display names of sub-collections, ending in a file display name. May be empty to address the collection itself.

Responses
201

The file was uploaded and linked to a new or existing object. The response carries an X-Fylr-System-Object-Id header for each affected object.

No content

No content

DELETE /WebDAV/{collectionUuid}/{path} — Delete a file.

Delete a file.

delete
Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Path parameters
collectionUuidstringRequired

The first path segment is the collection UUID. The WebDAV URL of a collection (its _hotfolder_upload_urls entry of type webdav) ends in this UUID. A request to a bare collection UUID lists that collection.

pathstringRequired

Any further path segments after the collection UUID are the display names of sub-collections, ending in a file display name. May be empty to address the collection itself.

Responses
200

The resource was deleted.

No content

No content

HEAD /WebDAV/{collectionUuid}/{path} — Probe a file's existence and metadata.

Probe a file's existence and metadata.

head
Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Path parameters
collectionUuidstringRequired

The first path segment is the collection UUID. The WebDAV URL of a collection (its _hotfolder_upload_urls entry of type webdav) ends in this UUID. A request to a bare collection UUID lists that collection.

pathstringRequired

Any further path segments after the collection UUID are the display names of sub-collections, ending in a file display name. May be empty to address the collection itself.

Responses
200

The file exists.

No content

No content

OPTIONS /WebDAV/{collectionUuid}/{path} — Advertise the supported WebDAV methods for this resource.

Advertise the supported WebDAV methods for this resource.

options
Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Path parameters
collectionUuidstringRequired

The first path segment is the collection UUID. The WebDAV URL of a collection (its _hotfolder_upload_urls entry of type webdav) ends in this UUID. A request to a bare collection UUID lists that collection.

pathstringRequired

Any further path segments after the collection UUID are the display names of sub-collections, ending in a file display name. May be empty to address the collection itself.

Responses
200

The DAV:, Allow: and related headers describe what is supported. Body is empty. Note that the advertised Allow set lists COPY and PROPPATCH for client compatibility, even though COPY returns 405 and PROPPATCH behaves like PROPFIND.

No content

No content

Last updated