Skip to content

API objects

Field Type Description
success (required) boolean
error (required) string The error type, such as Not Found or ScopeMissing, or on server errors an error code such as FILE_LIST.
message (required) string A readable explanation.
ref string On server errors, a reference to quote to your admin, such as REF-a3f8b2c1.
Field Type Description
success (required) boolean
message string

A delivered file and its shared link.

Field Type Description
id (required) string The file’s ID.
url (required) string (uri) The shared link. ZIP archives get a /p/ link that opens a page listing the files inside; other files get a /f/ link.
formatted_text (required) string The link written out with your admin’s link template, which may add the file name, size and expiry date. Dates use the time zone named in an X-Timezone request header (such as Europe/Copenhagen), or the server’s time zone without it.
filename (required) string The file’s name. For several files, the archive’s name, such as Project files.zip.
filesize (required) integer (int64) Size in bytes.
expires_at string (date-time) When the link expires. Left out when it never expires. New links expire after the number of days your admin sets (30 by default).
generated_password string The link’s password, when you asked Dew to generate one (auto_generate without a password). This is the only time it is returned.

A file you own.

Field Type Description
id string
name string
size integer (int64) Size in bytes.
mime_type string
owner_id string The ID of the user who owns the file.
downloads integer (int64) How many times the file was downloaded through its shared link.
created_at string (date-time)
expires_at string (date-time) Left out when the link never expires.
domain_hostname string The domain the shared link is on.

A file and its shared link.

Field Type Description
id (required) string
name (required) string
size (required) integer (int64) Size in bytes.
url (required) string (uri) The shared link.
formatted_text (required) string The link written out with your admin’s link template.
downloads (required) integer (int64) How many times the file was downloaded through its shared link.
created_at (required) string (date-time) When the file was uploaded. Pass it back unchanged as cursor_ts to get the next page.
expires_at string (date-time) When the link expires. Left out when it never expires.
max_expiry_at string (date-time) The latest expiry date the domain allows for this file. A token can’t set a later one.
link_type (required) string: public, protected, private, onetime Who can open the shared link. See Update link settings.
protection_method string: password, sms, email Only on protected links.
domain_hostname (required) string The domain the shared link is on.
download_receipt (required) boolean Whether the owner gets an email the first time the file is downloaded.

FileListItem + object.

A person who can open an email-protected link.

Field Type Description
id (required) string
email (required) string (email)
invitation_sent_at string (date-time) When their invitation email was sent. Left out until it is.
invitation_failed (required) boolean true when the invitation email couldn’t be sent. Resend invitations with failed_only=true to retry.

Who can open a file’s shared link. Fields beyond link_type depend on the link type.

Field Type Description
file_id (required) string
link_type (required) string: public, protected, private, onetime, locked locked is a file received through a file request: only its owner can download it.
protection_method string: password, sms, email Only on protected links.
password_auto_generated boolean Password links: whether the password was generated. The password itself is never returned to a token.
phone_number string SMS links: the number codes are sent to, in international format.
country_code string SMS links: the ISO 3166-1 alpha-2 country the number was entered for.
allowlist_id string Private links: the IP allowlist that may open the link.
allowlist_name string Private links: the allowlist’s name.
email_recipients array of LinkEmailRecipient Email links: the people who can open it.
email_message string Email links: the message included in invitations, when one is set.
is_bound boolean One-time links: whether someone has started downloading it, which uses the link up.
bound_at string (date-time) One-time links: when the download started.

The new settings for a shared link.

Field Type Description
link_type (required) string: public, protected, private, onetime public: anyone with the link. protected: needs a password, a code sent by SMS, or a code sent to an invited email address. private: only from IP addresses on an allowlist. onetime: works for one download. Left out, the link becomes public. Default "public".
protection_method string: password, sms, email Required when link_type is protected.
password string Password links: the password. Leave out both password and auto_generate to keep the current password.
auto_generate boolean Password links: generate a password instead. The response returns a generated password once, as generated_password.
phone_number string SMS links: the full international number, such as +15551234567. Spaces, dashes and brackets are allowed.
country_code string SMS links: ISO 3166-1 alpha-2 country, such as US. Used for display only.
allowlist_id string Required for private links: an allowlist available on the file’s domain.
email_recipients array of object Email links: everyone who should have access. People already on the link keep it and get no new email; new addresses get an invitation; addresses you leave out lose access.
email_message string Email links: a message included in invitations sent by this change.

A file you are about to upload.

Field Type Description
filename string The file’s name, at most 1020 bytes, without text-direction control characters.
relative_path string Where the file sits in the archive, such as 2026/photos/IMG_001.jpg. Use forward slashes; no leading slash, no . or .. parts, no control characters. For single uploads, use the file name. At most 4096 characters.
size_bytes integer (int64) The file’s exact size in bytes. Minimum 0.
mime_type string The file’s type, such as application/pdf.

Link settings for a protected or private link.

Field Type Description
method string: password, sms, email Required for protected links.
password string Password links: the password.
auto_generate boolean Password links: generate a password instead. The response returns a generated password once, as generated_password.
phone_number string SMS links: the full international number, such as +15551234567.
country_code string SMS links: ISO 3166-1 alpha-2 country, such as US. Used for display only.
private_list_id string Required for private links: an allowlist available on the domain.
email_recipients array of object Email links: the people to invite. Each gets their own invitation email when the upload finishes.
email_message string Email links: a message included in the invitations.
Field Type Description
session_type (required) string: single, multi, folder single: one file, uploaded as it is. multi: several files behind one link. folder: like multi, keeping the folder structure and empty folders. For multi and folder you upload one ZIP archive that you write yourself. It must be exactly artifact.size_bytes long, which it is when you follow this layout: - Entries in order: the empty_dirs names first, as returned, then the files by entry_index, each named by its entry_name. - Every entry stored (no compression), with the UTF-8 name flag set and no extra fields except zip64 ones. No archive comment. - A file entry is a local header (30 bytes plus the name) with the data descriptor flag set and CRC and sizes zero, then the file’s bytes, then a data descriptor with its signature: 16 bytes, or 24 bytes when the file is 4 GiB - 1 bytes or larger. A folder entry is a local header only, with a name ending in /. - An entry uses zip64 when its size or the offset of its local header reaches 4 GiB - 1. Its central directory record then carries the 28-byte zip64 extra field with both sizes and the offset, and both 32-bit size fields are 0xFFFFFFFF. - Add the zip64 end of central directory record and locator when there are 65,535 entries or more, or the central directory’s size or offset reaches 4 GiB - 1. Finish an upload checks the archive’s central directory: exactly the files you listed (minus any you skip), stored, at their declared sizes.
files (required) array of UploadSessionFileInput The files to upload, in archive order. A single upload takes exactly one. A folder upload may send none when empty_dirs lists at least one folder. Requests are capped at 4 MiB; send more files with Add files.
link_type string: public, protected, private, onetime Who can open the shared link: public (anyone with the link), protected (password, SMS code or invited email addresses, set in protection), private (IP allowlist, set in protection) or onetime (one download). Default "public".
protection UploadLinkProtection
domain string The domain for the shared link. It must be active and one you may use. Defaults to the domain you call the API on.
folder_name string multi and folder: the archive’s name, without .zip, at most 1020 bytes. Defaults to archive- plus the date and time.
empty_dirs array of string folder: empty folders to keep, such as 2026/raw.

How to send the upload’s bytes. Always follow this plan; don’t pick a chunk size yourself.

Field Type Description
file_id (required) string The ID to use as file_id in upload URLs. Always the same as session_id.
size_bytes (required) integer (int64) Exactly how many bytes to upload: the file’s size, or the size your ZIP archive must have.
chunk_size (required) integer (int64) Bytes per chunk. 0 means send everything in one request with Upload in one request.
total_chunks (required) integer How many chunks to send, numbered from 1. 0 when chunk_size is 0.
Field Type Description
session_file_id (required) string Identifies the file in skip_file_ids when you finish the upload.
filename (required) string
entry_name string multi and folder: the name to give this file inside your ZIP archive. It may differ from what you sent: names are cleaned up and made unique.
entry_index (required) integer multi and folder: the file’s position in the archive, from 0.
Field Type Description
session_id (required) string The upload session’s ID. It also becomes the delivered file’s ID.
expires_at (required) string (date-time) The deadline to finish by. Uploading chunks moves it forward.
files (required) array of UploadSessionFile Your files, in the order you sent them.
empty_dirs array of string folder: the names to give the empty folders inside your archive, in archive order, each ending in /.
artifact (required) UploadArtifactPlan
direct_upload (required) boolean true when chunks can go straight to the storage bucket through Get upload URLs for chunks.
upload_limit_bps (required) integer (int64) The most you can send to the server, in bits per second, or 0 for no limit. Uploads straight to the bucket are not limited.
generated_password string The link’s password, when you asked Dew to generate one (auto_generate without a password). This is the only time it is returned.
Field Type Description
files (required) array of UploadSessionFile The new files. They come after every earlier file in the archive.
artifact (required) UploadArtifactPlan
Field Type Description
session_id (required) string
status (required) string: active, finalizing, completed, failed, expired active: accepting bytes. finalizing: being finished. completed: the shared link exists. failed: finishing failed on the server; finish again. expired: start a new upload.
session_type (required) string: single, multi, folder
total_files (required) integer
created_at (required) string (date-time)
expires_at (required) string (date-time)
artifact (required) UploadArtifactPlan
artifact_status (required) string: pending, completed completed once an upload in one request arrived or the upload finished. Chunk progress is under List uploaded chunks.
Field Type Description
session_file_id (required) string The upload’s file_id.
completed_chunks (required) array of integer Chunk numbers the server already has, including chunks sent straight to the bucket. Skip these when resuming.
uploaded_bytes (required) integer (int64)
total_bytes (required) integer (int64)
chunk_size (required) integer (int64)
total_chunks (required) integer
Field Type Description
urls (required) object One URL per chunk number. PUT exactly that chunk’s bytes to it. URLs stop working after 6 hours: if the bucket answers 403, get a new URL and try again.
Field Type Description
files (required) array of FileUploadResult single: the delivered file. Empty for multi and folder.
zip_file FileUploadResult multi and folder: the archive and its shared link, which opens a page listing the files.

Someone on a file request: a person you invited, or someone who sent files through the shared link.

Field Type Description
id (required) string The person’s ID on this request.
email (required) string (email)
name string The name they gave when sending files through the shared link.
source (required) string: invite, link invite for people you invited, link for people who came through the shared link. People who opened the shared link but never sent files are not listed.
email_verified (required) boolean Whether the address is confirmed: always for invitees, and for shared-link senders who confirmed it with a code.
invite_failed_at string (date-time) When the invitation email couldn’t be delivered. Left out once a later invitation goes through.
reminded_at string (date-time) When they were last sent a reminder.
created_at (required) string (date-time)
file_count (required) integer How many files they have sent.

A file request with its people and totals.

Field Type Description
id (required) string
creator_id (required) string The ID of the user who owns the request.
label string The title.
message string Instructions shown to people sending files. Left out when empty.
domain_hostname (required) string The domain the request and its upload links are on.
created_at (required) string (date-time)
due_at (required) string (date-time) The deadline. The request closes then unless closed earlier.
closed_at string (date-time) When the request was closed by hand.
deletes_at string (date-time) When the request and every file received through it are permanently deleted. Left out when your administrator keeps received files until deleted.
link_enabled (required) boolean Whether the shared link is on.
notify_mode (required) string: each, digest, off Email notifications to the owner: one per upload (each), a daily summary (digest) or none (off).
people (required) array Everyone on the request. In the list of requests, null when there is nobody yet.
file_count (required) integer How many files the request has received.
total_size (required) integer (int64) Their total size in bytes.
new_upload_count (required) integer Uploads not yet marked as seen.
last_submitted_at string (date-time) When the latest upload arrived.
link_count (required) integer How many shared links made from received files still share them. Those files are kept after the request is deleted.
status (required) string: open, closed closed once closed by hand or past the deadline.
closed_since string (date-time) When the request closed: the manual close, else the deadline.
link_url string (uri) The shared link people use to send files. Left out while the link is off or your administrator has turned off shared links for file requests.

A file request’s settings after a change. Fetch the request for its people, totals, status and shared link.

Field Type Description
id (required) string
creator_id (required) string
label string
message string
domain_hostname (required) string
created_at (required) string (date-time)
due_at (required) string (date-time)
closed_at string (date-time)
deletes_at string (date-time)
link_enabled (required) boolean
notify_mode (required) string: each, digest, off

One upload a request received: a single file, or several files and folders sent together, stored as one ZIP.

Field Type Description
file_id (required) string The upload’s ID, used by the received-file endpoints.
name (required) string
size (required) integer (int64) Size in bytes.
mime_type (required) string
kind (required) string: file, archive file for a single file, archive for several files sent together.
file_count (required) integer How many files the upload holds.
sender_email (required) string (email)
sender_name string
sender_message string The note the sender added, up to 500 characters.
recipient_id string The sender’s person ID. Left out when that person was removed from the request.
received_at (required) string (date-time)
is_new (required) boolean Not yet marked as seen.
link_count (required) integer How many shared links made from this upload still share it.

One event on a file request.

Field Type Description
event_type (required) string The audit event, such as file_request.created or file.deleted.
actor_email string
actor_name string
target_name string
metadata object Details of the event.
timestamp (required) string (date-time)
Field Type Description
file_request (required) FileRequest
uploads (required) array of FileRequestUpload Every upload, newest first.
activity (required) array of FileRequestActivity The latest events on the request, up to 50, newest first.
Field Type Description
emails (required) array of string (email) Addresses being emailed. The emails go out after the response; a person the email couldn’t reach gets invite_failed_at on the request.

A file or folder inside an upload of several files.

Field Type Description
name (required) string
path (required) string The path to pass to the entry, download and link endpoints. Folders end in /.
is_dir (required) boolean
file_count (required) integer For a folder, how many files are under it; 1 for a file.
size (required) integer (int64) Size in bytes; for a folder, of everything under it.

One file a request received, wherever it is.

Field Type Description
file_id (required) string The upload it belongs to.
path (required) string Its path inside the upload. Empty for a single-file upload.
name (required) string
size (required) integer (int64)
sender_email (required) string (email)
sender_name string
received_at (required) string (date-time)

Part of what a request received: a whole upload, or a file or folder inside one.

Field Type Description
file_id (required) string The upload’s ID.
path string Leave out or empty for the whole upload. Otherwise a file’s path inside it, or a folder’s path ending in /, as the contents endpoint lists them.

Who can open the new shared link.

Field Type Description
link_type string: public, protected, private, onetime public: anyone with the link. protected: needs a password, a text message code or an email code. private: only from the network addresses on an allowlist. onetime: works for one download. Default "public".
protection_method string: password, sms, email Required for protected links. sms needs text messages set up for the domain, email needs email set up.
password string For password protection.
auto_generate boolean For password protection without a password: the server picks one.
phone_number string Required for sms protection.
country_code string For sms protection.
allowlist_id string Required for private links: an allowlist available on the request’s domain.
email_recipients array of object For email protection: the people who may open the link. Each is emailed an invitation.
email_message string For email protection: a message included in the invitation.
Field Type Description
file (required) object The new file behind the link. It is yours and appears with your other files.
url (required) string (uri) The shared link.
formatted_text (required) string The link as your administrator’s link template formats it, ready to paste.
generated_password string The link’s password, when you asked Dew to generate one (auto_generate without a password). This is the only time it is returned.
Field Type Description
id (required) string The user’s ID.
displayname (required) string The user’s name.
email (required) string (email)
user_status (required) string: active, inactive inactive users can’t sign in and don’t take a seat.
is_admin (required) boolean
domain_ids (required) array of string IDs of the domains the user has access to, through their own place on a domain’s access list or through a group.
auth_provider (required) string How the user signs in: local for a password, otherwise the single sign-on type, such as saml.
is_break_glass (required) boolean The emergency admin who can always sign in with a password.
created_at (required) string (date-time)
is_scim_connection (required) boolean The user’s single sign-on connection uses SCIM, so their status and SCIM groups are managed in the identity provider.
is_sso_orphan (required) boolean The user signs in with single sign-on, but their email domain is no longer on the connection, so they can’t sign in until the domain is added back or the account is converted to a password account.
avatar_url (required) string The user’s profile picture, or an empty string when they have none.
Field Type Description
displayname (required) string The user’s name.
email (required) string (email) Stored in lowercase. Must not belong to another user.
password (required) string Must meet the server’s password policy.
is_admin boolean Must be false under an API token. Default false.
domain_ids array of string Domains whose access list the user is put on, by ID from GET /api/admin/domains. Required under an API token, and only the service account’s domains.
group_ids array of string Local groups the user joins, by ID from GET /api/admin/groups. Under an API token, needs groups:write.
Field Type Description
id (required) string The new user’s ID.
Field Type Description
shared_links (required) integer Files the user uploaded, each with its shared link. Minimum 0.
file_requests (required) integer File requests the user created. Minimum 0.
received_files (required) integer Files the user received through their file requests. Minimum 0.
Field Type Description
to_user_id (required) string ID of the user who receives the files and file requests. Must be another active user.
Field Type Description
user_status (required) string: active, inactive Case-insensitive.
Field Type Description
groups (required) array of UserGroup The groups the user is in or excluded from: Everyone first, then by name.
domains (required) array of UserDomainAccess Every domain the user has access to, by hostname.
Field Type Description
id (required) string The group’s ID.
kind (required) string: local, scim, everyone local made in Dew, scim synced from the identity provider, everyone the built-in group of every user.
name (required) string
source (required) string: added, rule, everyone, excluded added by an admin or the identity provider, rule by the group’s email rule, everyone for Everyone, excluded when the rule matches but the user was excluded.
Field Type Description
domain_id (required) string
hostname (required) string
is_active (required) boolean The domain is turned on.
routes (required) array of AccessRoute How the user has access: their own place on the access list first, then each group.

One way a user has access to a domain. Without group_id, the user is on the domain’s access list themselves.

Field Type Description
group_id string The group that gives access. Left out when the user is on the access list themselves.
group_name string Left out when the user is on the access list themselves.
Field Type Description
id (required) string The group’s ID. Everyone’s is everyone.
kind (required) string: local, scim, everyone local made in Dew, scim synced from the identity provider, everyone the built-in group of every user except service accounts. Only Local groups can be changed here.
name (required) string
email_domains (required) array of string The email rule: users with an email at one of these domains are members. Empty when there is no rule.
member_count (required) integer Minimum 0.
created_at (required) string (date-time)
updated_at (required) string (date-time)

Group + object.

Field Type Description
user_id (required) string
email (required) string (email)
displayname (required) string
source (required) string: added, rule, excluded added by an admin or the identity provider, rule by the group’s email rule, excluded when the rule matches but the user was excluded and is not a member.
avatar_url (required) string The user’s profile picture, or an empty string when they have none.
Field Type Description
domain_id (required) string
hostname (required) string
sole_access_count (required) integer How many users would lose access to the domain if the group were taken off its access list. Admins never do. Minimum 0.
Field Type Description
name (required) string Must not be the name of another Local group or Everyone, ignoring case. At most 100 characters.
email_domains array of string The email rule, such as example.com: users with an email at these domains become members. Leave out or empty for no rule. API tokens can’t set or change it: a request that would is refused with 403.
Field Type Description
user_ids (required) array of string The users to add, by ID.
Field Type Description
email (required) string (email) Who to invite. Must not belong to an existing user.
domain_ids array of string Domains the person gets access to when they accept. The invitation link uses the first active one, or the primary domain.
source_domain_id string The domain whose email settings and branding the invitation uses. Leave out to use the global settings.
is_admin boolean Must be false under an API token. Default false.
group_ids array of string Local groups the person joins when they accept, by ID from GET /api/admin/groups. Under an API token, needs groups:write.
Field Type Description
id (required) string The invitation’s ID.
email (required) string (email)
domain_ids (required) array of string Domains the person gets access to when they accept.
group_ids (required) array of string Local groups the person joins when they accept.
expires_at (required) string (date-time)
created_at (required) string (date-time)
expired (required) boolean The invitation link no longer works. The invitation can still be resent.
Field Type Description
id (required) string The device’s ID, used to sign it out.
user_id (required) string
user_email (required) string (email)
device_name (required) string The computer’s name, as the desktop app reports it.
platform (required) string The operating system, as the desktop app reports it.
os_version (required) string
app_version (required) string
first_seen_at (required) string (date-time) When the desktop app first signed in on this computer.
last_seen_at (required) string (date-time) When the desktop app last signed in on this computer.
last_used_at string (date-time) When the desktop app last made a request. Left out when unknown.
last_ip (required) string The IP address of the last sign-in.

A named email sending setup: an SMTP server or a Microsoft 365 (Microsoft Graph) app registration. Passwords and client secrets are never returned, only whether one is saved.

Field Type Description
id (required) string Email setup ID.
name (required) string
description string Left out when empty.
is_default (required) boolean Whether this is the server-wide default for sending email.
is_active (required) boolean
provider (required) string: smtp, microsoft_graph How email is sent.
host (required) string SMTP server host. Empty for Microsoft Graph.
port (required) integer SMTP server port.
encryption (required) string: none, starttls, tls SMTP connection security.
username string SMTP user name. Left out when not set.
password_set (required) boolean Whether an SMTP password is saved. The password itself is never returned.
from_email (required) string (email) Sender address. For Microsoft Graph, the mailbox the app sends as.
from_name string Sender name. Left out when not set.
reply_to string Reply-to address. Left out when not set.
created_at (required) string (date-time)
updated_at (required) string (date-time)
ms_tenant_id string Microsoft Graph only: the Entra tenant ID.
ms_client_id string Microsoft Graph only: the app registration’s client ID.
ms_client_secret_set (required) boolean Microsoft Graph only: whether a client secret is saved. The secret itself is never returned.
ms_secret_expires_at string (date-time) Microsoft Graph only: when the client secret expires, as entered by the admin.

A named text message (SMS) provider setup. API keys are never returned, only whether one is saved.

Field Type Description
id (required) string SMS setup ID.
name (required) string
description string Left out when empty.
is_default (required) boolean Whether this is the server-wide default for sending text messages.
is_active (required) boolean
provider_type (required) string: suresms, twilio, textmagic
api_key_set (required) boolean Whether an API key or auth token is saved. The key itself is never returned.
account_sid string Twilio only: the account SID. Left out when empty.
username string TextMagic only: the account user name. Left out when empty.
needs_sender boolean List only, Twilio only: true when this setup is in use but no sender is saved, so text messages can’t be sent. Left out when false.
created_at (required) string (date-time)
updated_at (required) string (date-time)

Server-wide settings. Domains use these unless their own settings override them.

Field Type Description
storage_provider (required) string ID of the default storage provider.
max_upload_size_gb (required) integer Largest upload allowed, in GB.
link_expiry_days (required) integer Days until a new shared link expires. null: 30 days.
max_link_lifetime_days (required) integer Longest lifetime a shared link may be given, in days. null: the same as link_expiry_days.
link_format_template (required) string Template for the text copied with a new link; it must contain <file_link>. null: the built-in format.
blocked_file_extensions (required) array of string File extensions that can’t be uploaded.
upload_limit_per_ip_mbps (required) integer Upload bandwidth limit per IP address, in Mbit/s. null: no limit.
upload_limit_total_mbps (required) integer Total upload bandwidth limit, in Mbit/s. null: no limit.
upload_limit_exempt_local (required) boolean Whether uploads from local networks skip the bandwidth limits.
enable_admin_ip_allowlist (required) boolean Whether admin access is limited to the addresses in admin_dashboard_allowed_ips.
admin_dashboard_allowed_ips (required) array of string IP addresses and CIDR ranges admin access is allowed from.
private_links_enabled (required) boolean Whether private links (restricted to allowed networks) are turned on.
smtp_config_id string ID of the default email setup. Left out when none is chosen.
sms_config_id string ID of the default SMS setup. Left out when none is chosen.
sms_sender_name string Sender name for text messages. Left out when not set.
display_name (required) string Name shown to people instead of the product name. null: not set.
has_logo (required) boolean
logo_not_email_safe (required) boolean The logo is SVG or WebP, which some email apps don’t show.
has_favicon (required) boolean
has_background (required) boolean
accent_color (required) string Accent color, such as #2563eb. null: not set.
email_invite_subject (required) string
email_invite_title (required) string
email_invite_body (required) string
email_alert_subject (required) string
email_alert_title (required) string
email_alert_body (required) string
email_footer (required) string
audit_log_retention_days (required) integer Days audit log entries are kept.
received_file_retention_days (required) integer Days files sent to file requests are kept.
allow_link_file_requests (required) boolean Whether file requests can be shared as an upload link anyone can use.
require_link_upload_verification (required) boolean Whether people sending files through an upload link must confirm their email address first.
avatars_enabled (required) boolean Whether users can upload profile pictures.
personal_tokens_enabled (required) boolean Whether users can create personal API tokens.
email_configured (required) boolean Whether email can be sent anywhere on the server: server-wide or from at least one domain.
disable_zip_browser (required) boolean Whether browsing inside ZIP files on the download page is turned off.
sanitize_windows_filenames (required) boolean Whether file names are made safe for Windows on download.
enable_sspr (required) boolean Whether users can reset a forgotten password themselves.
require_2fa (required) string: none, admins, all Who must use two-step verification.
password_policy_mode (required) string: simple, advanced
password_min_length (required) integer
password_require_mixed_case (required) boolean
password_require_number (required) boolean
password_require_symbol (required) boolean
password_regex (required) string The pattern passwords must match.
password_guidance (required) string The password rules shown to users.
link_not_found_behavior (required) string: informative, generic, redirect What people see when a link doesn’t exist.
link_not_found_redirect_url (required) string Where people are sent when link_not_found_behavior is redirect.
session_lifetime_hours (required) integer Hours a sign-in lasts.
idle_timeout_enabled (required) boolean
idle_timeout_hours (required) integer
alert_cert_expiry_enabled (required) boolean
alert_storage_enabled (required) boolean
alert_storage_threshold_pct (required) integer Storage use, in percent, that raises an alert.
alert_storage_health_enabled (required) boolean
alert_license_enabled (required) boolean
alert_email_provider_enabled (required) boolean
alert_api_token_enabled (required) boolean
alert_version_enabled (required) boolean Whether admins are emailed once for each newer server version the update check finds.
update_check_enabled (required) boolean Whether the server checks getdew.io once a day for a newer version.

A certificate folder on the server. Only the file locations are returned, never the certificate or key contents.

Field Type Description
cert_name (required) string Folder name, used as a domain’s certificate name.
cert_path (required) string Location of the certificate file on the server.
key_path (required) string Location of the private key file on the server. The key itself is never returned.

The certificate a domain serves and its state.

Field Type Description
hostname (required) string
cert_name (required) string Certificate folder name.
cert_path (required) string Location of the certificate file on the server. Empty for Let’s Encrypt.
key_path (required) string Location of the private key file on the server. Empty for Let’s Encrypt. The key itself is never returned.
loaded (required) boolean Whether the certificate is loaded and served.
self_signed boolean Left out when false.
status string valid when a current Let’s Encrypt certificate was found. Left out otherwise.
issuer string Let’s Encrypt only: the issuer’s name. Left out otherwise.
error string Why the certificate isn’t loaded, as reported by the server. Left out when there is no problem.
dns_names array of string Host names the certificate covers.
not_after_unix integer (int64) Expiry as a Unix timestamp.
not_before_unix integer (int64) Start of validity as a Unix timestamp.
expires_at string (date-time) Expiry.
acme_email string Let’s Encrypt only: the account email.
acme_cert_expires_at string (date-time)
acme_last_success_at string (date-time)
acme_last_attempt_at string (date-time)
acme_last_error string Let’s Encrypt only: the last issuance error.
acme_renewal_window string (date-time) Let’s Encrypt only: when renewal starts, 30 days before expiry.
auto_renew (required) boolean True for Let’s Encrypt certificates.
Field Type Description
id (required) string Domain ID.
hostname (required) string
is_primary (required) boolean
is_active (required) boolean Whether the domain is served.
is_verified (required) boolean Whether the domain’s DNS has been verified. A domain can be active but not verified.
verified_at string (date-time)
last_verified_at string (date-time)
cert_name (required) string Certificate folder name.
cert_mode string: manual, letsencrypt Where the certificate comes from.
acme_email string
acme_last_error string
acme_last_attempt_at string (date-time)
acme_last_success_at string (date-time)
acme_cert_expires_at string (date-time)
hsts_enabled boolean true: browsers are told to use HTTPS only, for a year. false: browsers are told to forget an earlier HTTPS-only setting. Left out when never turned on.
created_at (required) string (date-time)
updated_at (required) string (date-time)
cert_status (required) DomainCertStatus
storage_provider string ID of the storage provider this domain uses instead of the default. Left out when it uses the default.
smtp_config_id string ID of the email setup this domain uses instead of the default. Left out when it uses the default.
sms_config_id string ID of the SMS setup this domain uses instead of the default. Left out when it uses the default.

A domain’s own settings. A null or left-out field means the domain uses the server-wide setting.

Field Type Description
domain_id (required) string
storage_provider string ID of the storage provider for this domain.
max_upload_size_gb integer
link_expiry_days integer
max_link_lifetime_days integer
link_format_template string
blocked_file_extensions (required) array of string Extensions blocked on this domain. Empty when it uses the server-wide list.
display_name string
has_logo (required) boolean
logo_not_email_safe (required) boolean The logo is SVG or WebP, which some email apps don’t show.
has_favicon (required) boolean
has_background (required) boolean
accent_color string
email_invite_subject string
email_invite_title string
email_invite_body string
email_alert_subject string
email_alert_title string
email_alert_body string
email_footer string
smtp_config_id string ID of this domain’s email setup. Left out when it uses the default.
sms_config_id string ID of this domain’s SMS setup. Left out when it uses the default.
sms_sender_name string Left out when not set.
private_links_mode string This domain’s private links setting. Left out when it uses the server-wide setting.
disable_zip_browser boolean
sanitize_windows_filenames boolean
link_not_found_behavior string: informative, generic, redirect, null
link_not_found_redirect_url string
Field Type Description
ipv4 (required) string The server’s public IPv4 address, or empty when it couldn’t be found.

Networks allowed to open private links, server-wide or for one domain.

Field Type Description
id (required) string
name (required) string
description string Left out when empty.
domain_id string The domain this list belongs to. Left out for a server-wide list.
domain_name string The domain’s host name. Left out for a server-wide list.
cidr_ranges (required) array of string Allowed networks in CIDR notation.
is_active (required) boolean
is_global (required) boolean True for a server-wide list.
created_at (required) string (date-time)
updated_at (required) string (date-time)

Where files are stored: a folder on the server, or an S3-compatible bucket. Access keys and secret keys are never returned.

Field Type Description
id (required) string Storage provider ID. The built-in local storage is storage_default.
name (required) string
provider_type (required) string: local, amazon-s3, wasabi, backblaze-b2, cloudflare-r2, storj, custom-s3
base_path (required) string Local storage only: the folder files are stored in. null for buckets.
endpoint string Buckets only: the S3 endpoint URL.
region string Buckets only.
bucket string Buckets only.
prefix string Buckets only: the key prefix files are stored under.
path_style boolean Buckets only: whether path-style addressing is used. Left out when false.
is_active (required) boolean
direct_upload_enabled (required) boolean Whether browsers upload and download straight to and from the bucket.
transfers_through_server boolean Buckets only: true when the bucket is on a private network, so transfers always go through the server. Left out when false.
total_bytes (required) integer (int64) Disk size for local storage, -1 for buckets (no fixed size), 0 when unknown.
used_by_dew (required) integer (int64) Bytes taken by files on this storage.
free_bytes (required) integer (int64) Free disk space for local storage, -1 for buckets, 0 when unknown.
file_count (required) integer (int64)
created_at (required) string (date-time)
is_global_default (required) boolean Whether this is the server-wide default storage.
domain_override_count (required) integer (int64) Domains set to use this storage.
active_session_count (required) integer (int64) Uploads in progress on this storage.
health_status string: ok, mount_missing, unwritable, missing, unverifiable Local storage only: whether the folder can be written to. Left out for buckets.
health_reason string Local storage only: why health_status isn’t ok.
is_registered (required) boolean Whether the server is using this storage right now. False when it failed its health check at startup.
Field Type Description
path (required) string Folder path inside the server container.
fs_type (required) string File system type, such as ext4 or xfs.
is_bind (required) boolean Whether the folder is mounted from the host.
writable (required) boolean Whether the server can write to it.
is_system (required) boolean True for the built-in storage folder.
Field Type Description
default_path (required) string The built-in storage folder, /app/storage.
extra_mount_prefix (required) string Where extra storage folders are mounted, /mnt/dew.
targets (required) array of StorageMountTarget
Field Type Description
sso_enabled (required) boolean Whether an active single sign-on connection exists.
oidc_available (required) boolean Always true.
saml_available (required) boolean Whether SAML sign-in can be used on this server.
saml_error (required) string Why SAML isn’t available. Empty when it is.
connection_count (required) integer

A single sign-on connection to an identity provider. Client secrets and SCIM tokens are never returned, only whether one is saved.

Field Type Description
id (required) string
name (required) string
description string Left out when empty.
provider_type (required) string: saml, oidc
provider (required) string: entra, okta, google, generic The identity provider product.
oidc_issuer_url string OIDC only.
oidc_client_id string OIDC only.
client_secret_set (required) boolean OIDC only: whether a client secret is saved. The secret itself is never returned.
saml_metadata_url string SAML only: where the identity provider’s metadata is fetched from.
saml_metadata_raw string SAML only: identity provider metadata XML pasted by the admin.
saml_additional_cert string SAML only: an extra identity provider signing certificate, exactly as entered by the admin.
saml_idp_sso_url string SAML only: the identity provider’s sign-in URL.
saml_idp_entity_id string SAML only.
saml_idp_cert_count integer SAML only: number of identity provider signing certificates.
saml_idp_cert_expires_at string (date-time) SAML only: when the first identity provider signing certificate expires.
saml_certificates array of object SAML only: every identity provider signing certificate Dew accepts, including the one kept after Update certificate.
saml_attr_email string SAML only: attribute that holds the email address.
saml_attr_first_name string
saml_attr_last_name string
saml_attr_user_id string
email_domains (required) array of string Email domains that sign in through this connection.
is_active (required) boolean
allow_user_creation (required) boolean Whether new users are created on their first sign-in.
scim_enabled (required) boolean Whether users are provisioned through SCIM.
scim_bearer_token_set (required) boolean Whether a SCIM token exists. The token itself is never returned.
enforce_mode (required) string: optional, required required: users on the connection’s email domains can’t sign in with a password. optional: they can.
created_at (required) string (date-time)
updated_at (required) string (date-time)
sp_acs_url string SAML only: the reply (ACS) URL to register with the identity provider. Left out until a primary domain exists.
sp_entity_id string SAML only: the entity ID to register with the identity provider.
sp_metadata_url string SAML only: this server’s metadata URL.
oidc_redirect_url string OIDC only: the redirect URL to register with the identity provider.
scim_base_url string The SCIM base URL to give the identity provider.
Field Type Description
connection_id (required) string
attached_user_count (required) integer Users who sign in through this connection.
active_user_count (required) integer
inactive_user_count (required) integer
Field Type Description
affected_user_count (required) integer Active users on the connection’s email domains who have a password and would no longer be able to sign in with it. Break-glass accounts are not counted.
Field Type Description
id (required) integer (int64)
connection_id string Left out when empty.
event_type (required) string: login, login_failed, user_provisioned, user_linked, scim_provision, scim_deprovision, scim_group_update
user_email string Left out when empty.
external_id string The user’s ID at the identity provider. Left out when empty.
details object More about the event, such as reason and error for a refused sign-in, action and user_id for a sign-in, or group_id and group_name for a SCIM group change.
created_at (required) string (date-time)

One audit event. The audit log, its export, the audit feed, the activity feed and the audit.log file on the server all use this same record. Optional fields are left out when they have no value.

Field Type Description
id (required) integer (int64) Increasing number, assigned in the order events are saved. The feed cursor. Gaps are normal and never mean an event was deleted.
event_id (required) string (uuid) Stable across every way of reading the audit log. Deduplicate on it.
timestamp (required) string (date-time) When the action happened: UTC, always with six fraction digits, such as 2026-09-25T14:03:11.120000Z.
event_type (required) string <object>.<action>, such as file.downloaded. The full list is at GET /api/admin/audit-logs/event-types.
category (required) string The <object> part of event_type, for grouping.
outcome (required) string: success, failure failure for an attempt that was refused.
reason string Why an attempt failed, or why the system acted, as a snake_case code such as wrong_password or expired.
severity (required) string: info, warn Fixed per event type; a failure is at least warn.
description (required) string The event’s label, such as “File downloaded” (the failure label for failures).
actor (required) object Who did it.
target object What was acted on. Left out when the event has no target.
domain string The hostname of the domain a file.* or file_request.* event happened on. Left out on every other event, and on events saved before October 2026.
client_ip string The client’s address.
user_agent string The client’s User-Agent header, at most 512 bytes.
request_id string Matches system log entries and access log lines. The reference shown with an error, such as REF-a3f8b2c1, is REF- plus its first 8 characters.
metadata object Event details; the keys for each event are listed in the event catalog, and a key keeps one JSON type across all events. changes holds updates as {"field": {"old": …, "new": …}}, with secret values shown as [redacted]. Actions taken through an API token add token_name; when a service account acts as a person, on_behalf_of holds that person’s email.
Field Type Description
entries (required) array of AuditEvent Newest first.
next_cursor (required) string Pass as cursor to get the next page. Empty when has_more is false.
has_more (required) boolean Whether older events match the filters.
Field Type Description
entries (required) array of AuditEvent Oldest first, every id above after_id.
next_after_id (required) integer (int64) The id of the last event returned, or the after_id you sent when nothing was returned. Store it and send it as after_id on the next call.
has_more (required) boolean True when the page is full (limit events). Poll again right away while it is true; the next page can be empty.
Field Type Description
event_type (required) string
category (required) string
severity (required) string: info, warn
label (required) string The description of a successful event. Empty for events that only record refused attempts.
failure_label string The description of a refused attempt. Left out for events that are only recorded as successes.
Field Type Description
category (required) string
label (required) string
Field Type Description
category (required) string
count (required) integer (int64)

One warning or error the server logged. Optional fields are left out when they have no value.

Field Type Description
id (required) integer (int64)
timestamp (required) string (date-time)
level (required) string: warn, error
message (required) string
component string The part of the server that logged it, such as storage or email.
error_code string A code naming the failure, such as FILE_WRITE. The full list is at GET /api/admin/system-logs/error-codes.
request_id string The request that failed. The reference shown with an error, such as REF-a3f8b2c1, is REF- plus its first 8 characters.
attributes object Further details logged with the message.
stack_trace string
acknowledged_at string (date-time) When an admin marked the entry as handled. Left out until then.
Field Type Description
entries (required) array of SystemLogEntry Newest first.
next_cursor (required) string Pass as cursor to get the next page. Empty when has_more is false.
has_more (required) boolean
Field Type Description
component (required) string unknown for entries logged without a component.
count (required) integer (int64)
Field Type Description
server_version (required) string
os (required) string Operating system and architecture, such as linux/amd64.
uptime_seconds (required) integer (int64)
postgres_version (required) string
total_users (required) integer (int64) People with an account; service accounts are not counted.
total_files (required) integer (int64)
total_domains (required) integer (int64)
storage_providers (required) array of object The active storage providers.
saml_sp_cert object The server’s single sign-on (SAML) signing certificate. Left out when none is loaded.
sso_enabled (required) boolean Whether any single sign-on connection is turned on.
log_level (required) string The server’s log level; info unless set otherwise.
https_port (required) string The port the server listens on for HTTPS.
public_https_port (required) string The HTTPS port people reach the server on.
reverse_proxy (required) string: trusted, untrusted, none, checking trusted: trusted proxies are configured. untrusted: proxied traffic came from a proxy that isn’t trusted. none: no proxied traffic was seen. checking: still watching the first requests.
trusted_proxies (required) array of string Networks whose forwarding headers the server trusts, in CIDR notation.
trusted_proxies_from_env (required) boolean true when the trusted proxies come from DEW_TRUSTED_PROXIES, false when an admin trusted them on the System page.
detected_proxy string Set when reverse_proxy is untrusted and every proxied request came from one address: that address.
detected_proxy_via_docker_gateway boolean true when the detected proxy reaches the server through a Docker network’s gateway, the address Docker also delivers other outside connections from.

The current state of one area of the server.

Field Type Description
area (required) string: storage, email, certificates, license, errors
status (required) string: ok, warn, error warn needs attention soon; error means something is not working now.
summary (required) string A short description of the state, as the System page shows it.
link string The admin page that fixes the problem. Only set when status is not ok.
Field Type Description
hostname (required) string The primary domain’s hostname.
checks (required) array of HealthCheck
stored_bytes (required) integer (int64) Size of all stored files. A file shared through several links counts once.
available_version string A newer server version, when the update check found one.
update_check_enabled (required) boolean Whether the server checks getdew.io once a day for a newer version.
update_checked (required) boolean Whether getdew.io has answered the update check since the server started. Until then, no available_version does not mean the server is up to date.
debug_logging_until string (date-time) When debug logging, turned on from the System page, turns itself off. Absent when it is off.
Field Type Description
name (required) string Pass as file to GET /api/admin/access-logs.
date (required) string today for the current file, otherwise the file’s date as YYYY-MM-DD.
size (required) integer (int64) Size on disk in bytes (compressed for .gz files).
Field Type Description
tier (required) string: Free, Pro, Enterprise
valid (required) boolean
license_key string The license key, masked to its first and last 4 characters. Empty without a key.
max_users (required) integer Seats the license includes.
machine_id string This server’s activation at the license service. Empty until activated.
fingerprint string The identity this server activates the license with.
activated (required) boolean
trial (required) boolean
validation_error string Why the last license check failed. Empty when it succeeded.
needs_activation (required) boolean True when the license is held by an earlier installation, for example after restoring a backup or moving the server: activate it again from System > License.
active_users (required) integer (int64)
pending_invites (required) integer (int64)
effective_users (required) integer (int64) active_users plus pending_invites: what counts against max_users.
domain_count (required) integer (int64) Active domains.
max_domains (required) integer 0 means unlimited.
last_validated string (date-time) Left out before the first check.
expires_at string (date-time) Left out when the license never expires.
valid_until string (date-time) Set while a failed check is being tolerated: when licensed features stop unless it is resolved.
grace_expires_at string (date-time) Set while the server uses more than the license covers: when the changes in enforcement take effect.
enforcement array of string What happens at grace_expires_at, such as “1 extra domain will be turned off”.
Field Type Description
id (required) string (uuid)
category (required) string What the alert is about, such as cert_expiry, storage, storage_health, license, license_grace, version, email_provider or api_token.
severity (required) string: info, warn, error
title (required) string
message (required) string
metadata object Details for some alerts, such as license grace periods.
dismissed (required) boolean Always false here: dismissed alerts are not listed.
created_at (required) string (date-time)