| 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 |
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) |
|