Connect your storage with WebDAV.
Browse and transfer ordinary workspace files from a compatible file manager or command-line tool. Start with a small file, then check the limits before moving a photo archive or video project.
Before you connect
- Use your account email and an API key. Open Profile → API to create a key with WebDAV enabled. Your account password is not the WebDAV password. Sign in first; create a free account if needed.
- Choose the right path and scope. A workspace-wide read/write mount uses
All/and a full-scoped key. A key restricted to a folder starts at that folder instead. Read scope is for browsing; upload scope cannot list files. - Keep large originals off a single-request upload. Plan below the 100 MB gateway request-body ceiling; your client, workspace or key can impose a lower limit. For larger files, use the web app or S3 multipart uploads. See the rclone setup and S3 fallback for command-line transfers.
- A mount is not a separate backup. Changes and deletions can affect your stored files. Test with disposable files, coordinate edits and keep an independent copy of important work.
Reviewed October 26, 2026. The gateway ceiling follows Cloudflare's published request limits; it is not a tested boundary-sized upload. Check storage and download allowances separately.
WebDAV clients
WebDAV support verified in official documentation. Choose a client for your platform, review its setup considerations and follow the connection check before moving important files.
| Client / platform | Setup considerations | Documentation check |
|---|---|---|
| FindermacOS | Built-in Connect to Server workflow. Try a small upload and download before mounting a working project. | Verified |
| File ExplorerWindows | Depends on the deprecated WebClient service, which is not started by default. A dedicated HTTPS WebDAV client is an alternative. | Verified |
| GNOME FilesLinux | Connect to Server supports secure WebDAV. Use the davs:// address below. | Verified |
| CyberduckmacOS / Windows | Choose WebDAV over HTTPS (called HTTP/SSL in its documentation), then enter the host, path and credentials separately. | Verified |
| rclone WebDAVCommand line | Configure a WebDAV remote with the mount URL and credentials. For larger originals, consider the S3 route instead. | Verified |
Get API Key
Profile > API Connect
api.dosya.dev/webdav/mount/{workspace_id}/{name}/All/ Browse
Test a small upload and download Connect with your API key
Sign in with your account email as the username and an API key as the password. Create a key in Profile → API, then copy the workspace URL from WebDAV setup. Enable WebDAV on the key and confirm your workspace role allows it.
https://api.dosya.dev/webdav/mount/{workspace_id}/{name}/All/
your account email
dos_your_api_key
WebDAV (HTTPS)
The examples below use a workspace-wide key and write under All/. If your key is anchored to a folder, use its mount root instead. Treat your API key as a password: do not put it in a shared URL or screenshot. The curl examples prompt for it.
Why the URL has your workspace twice
Finder, Explorer and most clients name the mounted drive after the last part of the URL. The workspace ID identifies the mount; the name after it is what you see on your desktop.
https://api.dosya.dev/webdav/mount/ws_k3n8fq2p4x/Design Team/
The ID decides which workspace you reach. The name is only a label. Two of these means you can mount two workspaces that share a name - your own Design Team and a client's - side by side, and both still read as Design Team on your desktop.
Because the label is only a label, renaming a workspace will not break a drive you have already mounted, and you can put your own wording there if you prefer a different caption.
The shorter /webdav/{workspace_id}/
form is also supported. It also accepts a workspace name
or slug in place of the ID - though a name shared by two of your
workspaces is refused, since it does not say which one you meant.
What's at the root
The workspace root is not your folder tree. It holds six collections: one real, five read-only.
All
Your real folder tree, and the only writable collection. Uploads,
new folders, renames and deletes all go under
All/. Access still depends on key scope, workspace permissions and locks.
Documents, Videos, Images, Shared, Deleted
Flat, read-only views of the whole workspace, filtered by type or
state. Browse and download freely; any write returns
403. Some clients report that as a generic error
rather than a permission problem, so a copy into one of these can
look like it silently did nothing.
Folder-anchored keys
A key pinned to a folder has no view namespace at all. Its mount
root is that folder, writable directly, and a folder of yours
genuinely named Documents is an ordinary folder
rather than a reserved name.
Connect from Finder
Mount your workspace as a network drive directly in macOS Finder.
# Open Finder
1. Press Cmd + K (or Go > Connect to Server)
2. Enter: https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/
3. Click Connect
4. Username: your account email
5. Password: dos_your_api_key
# Your workspace appears as a network drive in Finder Map as network drive
File Explorer relies on Windows WebClient. Microsoft has deprecated that service, and it is not started by default. If mapping is unavailable, try the HTTPS settings for a dedicated client below.
# Map Network Drive in File Explorer
1. Open File Explorer
2. Right-click This PC > Map network drive
3. Folder: https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/
4. Check "Connect using different credentials"
5. Username: your account email
6. Password: dos_your_api_key Mount on Linux
Use GNOME Files, or try the davfs2 command-line recipe below. Client packages and configuration vary by Linux distribution; these recipes have not been client-tested for this revision.
# GNOME Files (Nautilus)
1. Press Ctrl + L (or Other Locations > Connect to Server)
2. Enter: davs://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/
3. Username: your account email
4. Password: dos_your_api_key
# Or mount via command line with davfs2
$ sudo apt install davfs2
$ sudo mkdir -p /mnt/dosya
$ sudo mount -t davfs https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/ /mnt/dosya Third-party WebDAV clients
Start with these HTTPS connection fields. Labels vary by client; confirm the path and key scope, then test a small transfer.
# Cyberduck / Mountain Duck / WinSCP
1. Protocol: WebDAV (HTTPS)
2. Server: api.dosya.dev
3. Port: 443
4. Path: /webdav/mount/your_workspace_id/Your%20Workspace/All/
5. Username: your account email
6. Password: dos_your_api_key Cyberduck, Mountain Duck and WinSCP use separate host and path fields. Their setup examples here are not a tested compatibility guarantee. Cyberduck's WebDAV documentation explains the HTTPS option.
Supported operations
The server supports these operations, subject to permissions and the limitations below. Client behavior can differ.
PROPFIND List folders and file details, one level at a time (Depth 0 or 1).
GET / HEAD Download files. Supports resumable downloads (byte ranges) and ETag caching.
PUT Upload files. Overwriting a file keeps the previous copy as a version.
MKCOL Create new folders.
DELETE Delete files and folders. Deleted files go to the trash.
MOVE Move or rename files and folders without re-uploading.
COPY Duplicate a file on the server without downloading it. Files only.
OPTIONS Lets clients discover what the server supports.
PROPPATCH Stores supported modification timestamps. Unsupported properties are refused individually.
LOCK / UNLOCK Compatibility responses only: lock tokens do not enforce exclusive editing between clients. Dashboard locks are separate.
Use with curl
Test and automate WebDAV operations directly from the command line.
# List files in your workspace root
# --user prompts for your API key as the password
$ curl --fail --show-error --user you@example.com \
-X PROPFIND \
-H "Depth: 1" \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/
# The root lists six collections: All (your real, writable tree)
# plus Documents, Videos, Images, Shared and Deleted - flat,
# read-only views. Everything you write goes under All/.
# List a folder in your real tree
$ curl --fail --show-error --user you@example.com \
-X PROPFIND \
-H "Depth: 1" \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/Reports/
# List a smart view - every PDF and doc in the workspace, flat
$ curl --fail --show-error --user you@example.com \
-X PROPFIND \
-H "Depth: 1" \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/Documents/ # Upload a file. Writes go under All/ - the five type views
# (Documents, Videos, Images, Shared, Deleted) are read-only.
$ curl --fail --show-error --user you@example.com \
-T ./report.pdf \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/Reports/report.pdf
# Overwrite creates a new version automatically
$ curl --fail --show-error --user you@example.com \
-T ./report-v2.pdf \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/Reports/report.pdf
# Refuse to overwrite: 412 if the name is already taken
$ curl --fail --show-error --user you@example.com \
-T ./report.pdf \
-H "If-None-Match: *" \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/Reports/report.pdf # Download a file
$ curl --fail --show-error --user you@example.com \
-o report.pdf \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/Reports/report.pdf
# Partial / resumable download (byte ranges)
$ curl --fail --show-error --user you@example.com \
-H "Range: bytes=0-1048575" \
-o report.pdf.part \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/Reports/report.pdf # Create a folder
$ curl --fail --show-error --user you@example.com \
-X MKCOL \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/NewFolder/
# Delete a file
$ curl --fail --show-error --user you@example.com \
-X DELETE \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/old-file.txt
# Move / rename a file
$ curl --fail --show-error --user you@example.com \
-X MOVE \
-H "Destination: /webdav/mount/your_workspace_id/Your%20Workspace/All/Archive/old-file.txt" \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/old-file.txt
# Copy a file
$ curl --fail --show-error --user you@example.com \
-X COPY \
-H "Destination: /webdav/mount/your_workspace_id/Your%20Workspace/All/backup.pdf" \
https://api.dosya.dev/webdav/mount/your_workspace_id/Your%20Workspace/All/report.pdf API key scopes
What each key scope can do
| Operation | read | upload | full |
|---|---|---|---|
| PROPFIND (list) | ✓ | ✕ | ✓ |
| GET / HEAD (download) | ✓ | ✕ | ✓ |
| PUT (upload) | ✕ | ✓ | ✓ |
| MKCOL (create folder) | ✕ | ✓ | ✓ |
| LOCK / UNLOCK / PROPPATCH | ✕ | ✓ | ✓ |
| DELETE | ✕ | ✕ | ✓ |
| MOVE (rename) | ✕ | ✕ | ✓ |
| COPY | ✕ | ✕ | ✓ |
Limitations
| Large file uploads | Plan below the 100 MB gateway request-body ceiling for a single WebDAV PUT. Client, workspace and credential limits may be lower. For large files that should remain accessible in dosya.dev and other clients, use the web app or S3 multipart uploads. Rclone users can use a chunker remote with 64 MiB chunks, but those uploads appear as separate parts and metadata in dosya.dev and ordinary WebDAV clients. Use the same chunker remote to read them as one file. |
| Listing depth | PROPFIND lists one folder level at a time (Depth 0 or 1) - no deep recursive listings. |
| Folder copy | COPY works on single files. To copy a folder, copy its files individually. |
| PROPPATCH | Supported modification timestamps are saved. Unsupported properties return a per-property 403; invalid timestamp values return 409 inside the multi-status response. |
| LOCK / UNLOCK | Lock tokens are not enforced between clients. Permission checks and preconditions can refuse a request. If-Match with the current ETag can prevent a stale overwrite when the client sends it; coordinate edits instead of relying on exclusive WebDAV locking. |
| Locked files | Files locked in the dashboard can't be changed over WebDAV. Fully-locked files can't be downloaded either. |
| Rate limits | An abuse ceiling on request rate, on every plan: 600 requests per minute per user, 1,200 per minute per IP. It is not a usage quota and nothing is billed against it. Plan request and concurrency ceilings do not apply to this protocol; explicit credential restrictions and daily egress allowances still apply. |
Verify a small transfer first
Use a new test folder and disposable files. This is a checklist for your client, not a report of a live Dosya transfer.
- Record the client version and operating system. Create a dedicated key, enable WebDAV and restrict it to the test folder where possible.
- Connect and list the folder. For a workspace-wide key, enter
All/; for a folder-anchored key, use its mount root directly. - Upload a small text file with a distinctive name, such as
test café.txt. Download it to a different local filename. Compare byte counts and SHA-256 values with the original. - In the test folder only, check rename, a second upload to the same name, and deletion. Confirm the results in the Dosya web app. Keep the original local file.
- Disconnect and revoke the test key in Profile → API. Confirm a fresh connection with that key is refused. Locally cached files can remain readable after revocation.
Use shasum -a 256 on macOS, sha256sum on Linux, or Get-FileHash -Algorithm SHA256 in PowerShell for both local copies. See the download checksum guide for the full steps.
If the check fails
- Sign-in fails (401)
- Use the key owner's email and API key, not the account password. Check whether the key expired or was revoked.
- Access denied or locked (403 / 423)
- Check the key's WebDAV permission and scope, your workspace role, the mount path and any dashboard locks. Upload-only keys cannot list folders.
- Upload refused (411 / 413 / 507)
- A PUT needs Content-Length. Check file size, client and credential limits, and remaining storage. For large files, use S3 multipart or the web app.
- Conflict or temporary limit (412 / 429)
- For 412, download the current file and resolve the conflict before retrying. For 429, pause and honor Retry-After; do not repeatedly retry at full speed.
Common WebDAV questions
Can I use WebDAV with a free Dosya account?
Yes. Free includes 5 GB of storage and WebDAV access. Remaining storage, workspace permissions, credential restrictions and download allowances still apply. A paid storage plan does not remove the gateway's single-request upload ceiling.
Why can I connect but not upload?
For a workspace-wide key, write under All/. Documents, Videos, Images, Shared and Deleted are read-only views. A read-scoped key cannot upload. With a folder-anchored key, the mount root is already that folder: do not add the virtual All/ prefix. Workspace permissions, locks and storage limits can also refuse a write.
Why does an upload-only key fail in my file manager?
Upload scope permits writes but not folder listings or downloads. Most file managers need to list the destination first. Use read for browsing, or full for a read/write mount, and restrict the key to the folder and protocols you need.
Can I upload a large video or resume an interrupted upload?
A normal WebDAV PUT sends the file in one request. Use the web app or S3 multipart for files near or above the 100 MB gateway ceiling. A client may restart a failed PUT from the beginning; resumable GET downloads do not imply resumable uploads. Workspace and credential limits still apply to alternative upload methods.
Does WebDAV unlock my encrypted Vault?
No. These instructions are for ordinary workspace files. An API key and a WebDAV mount do not replace Vault's client-side encryption and unlock flow. Use a supported Dosya Vault client for encrypted content.
Can two people edit the same mounted file safely?
Do not rely on WebDAV LOCK for exclusive editing: the service does not enforce those lock tokens between clients. A client that sends If-Match can refuse a stale overwrite, but not all clients do. Coordinate edits, keep a separate backup and test your application's save behavior.
Does this prove Zotero or Joplin sync will work?
No. General WebDAV support is not a client-specific sync test. Zotero and Joplin workflows have not been verified for this guide. Keep a separate backup and validate the exact app/version with disposable data before relying on it.
For encrypted storage, read how Vault works. For large originals, compare rclone connection methods. Rclone's chunker documentation explains why split uploads need the same overlay to read them as a single file.