Domains
Adding domains, the DNS records they need, their logo, their addresses, the web app address and the workspace brand.
Domains tools
| Tool | What it does |
|---|---|
| listDomains | The domains in this workspace, with whether each is verified, can send, has its catch-all on, and how many addresses it has. Returned a page at a time. |
| getDomain | Everything about one domain, by id or name, including every DNS record to publish and whether it is found, missing or not checked yet. |
| addDomain | Add a domain and get back the DNS records to publish at its DNS host. |
| verifyDomain | Check a domain’s DNS again now and say which records are still missing. |
| setDomainCatchAll | Turn the catch-all on or off, so either any address on the domain or only its listed addresses take mail. |
| getDomainLogo | The domain’s logo, its mark certificate, what public DNS publishes for it and, for a subdomain, the DMARC of the domain it belongs to. |
| setDomainLogo | Upload the logo inboxes show next to mail from a domain, as SVG. |
| removeDomainLogo | Remove the logo and take its record down. A chat always asks first. |
| setDomainLogoCertificate | Upload the VMC or CMC that Gmail and Apple Mail need before they show the logo. |
| removeDomainLogoCertificate | Remove the mark certificate. A chat always asks first. |
| setDomainDmarcPolicy | Set the DMARC policy to none, quarantine or reject. Inboxes show a logo only at quarantine or reject. A chat always asks first. |
| removeDomain | Remove a domain and withdraw the records written to a connected DNS host. A chat always asks first. |
| listDomainAddresses | The addresses on one domain, with their label, whether each takes mail, and when it last received any. Returned a page at a time. |
| addDomainAddress | Create an address on a domain, with an optional label. |
| updateDomainAddress | Change an address’s label, whether it takes mail, or both. |
| setAddressPhoto | Upload the photo shown for an address in Nextmail, as base64 with its type. |
| removeAddressPhoto | Remove an address’s photo. A chat always asks first. |
| removeDomainAddress | Remove an address, so it stops taking mail and any sign-in for it ends. A chat always asks first. |
| getAppHost | The web app address of the workspace, whether people can sign in there or it is paused, and the DNS records it needs. |
| setAppHost | Set the web app address, a subdomain such as mailbox.example.com on any domain, and get the records to publish. |
| verifyAppHost | Check the web app address again now. |
| removeAppHost | Remove the web app address and sign everyone out of it. A chat always asks first. |
| getBranding | The brand of the workspace: its mark, its logo, its logo for dark mode, its sign-in photo, its two fonts and its sign-in background. |
| updateBranding | Change the primary and secondary fonts, or the sign-in background: a preset, a colour or the uploaded photo. |
| setBrandImage | Set the mark, the logo, the logo for dark mode or the sign-in photo from an image in Files. |
| removeBrandImage | Remove one of the brand images, so the default shows in its place. |
| setDomainTrackingHost | Set or remove the tracking host of a domain, the subdomain its tracked links and open pixel go through, and get the record to publish. |
| setDomainStorageHost | Set or remove the files host of a domain, the subdomain its public download links are served from, and get the record to publish. |
| listAddressForwards | Where the mail of an address is forwarded, whether each destination confirmed it, and whether the address keeps a copy here. |
| addAddressForwards | Forward the mail of an address to more places. Each one is asked by email to confirm before it receives anything. |
| setAddressForwardEnabled | Pause a forwarding destination, or switch it back on. |
| removeAddressForward | Stop forwarding to a destination. A chat always asks first. |
| resendAddressForwardConsent | Send a destination that has not answered the email asking it to confirm, once more. |
| setAddressForwardMode | Keep the mail of an address here as well as forwarding it, or only forward it. A chat always asks first. |
| listAddressMembers | Who can read an address and how: as the owner, through a role, through a grant of its domain or through a grant of the address. |
| getAddressLogin | Whether an address has a password of its own to sign in with, and when it was set and last used. |
| removeAddressLogin | Take the password away from an address and sign out whoever used it. A chat always asks first. |
| listDnsConnections | The DNS provider accounts connected to the workspace, with the domains each one serves and the records it keeps there. |
| getDnsConnection | One DNS connection and what disconnecting it would leave behind, including the verified domains that would stop receiving mail. |
| disconnectDnsConnection | Disconnect a DNS provider account and take down the records written through it, or remove one that is already disconnected. A chat always asks first. |
| getDomainDns | How the DNS of a domain is set up, where each kind of record stands, and which connected zone answers for it. |
| setDomainDnsZone | Choose the zone a domain is set up through, when several connected zones could answer for it. |
| syncDomainDns | Write or repair the DNS records a domain needs through its connected zone, as Sync does in the app. |
| getMailAppSettings | The server settings that put an address into Apple Mail, Outlook, Thunderbird, the Gmail app or any other mail app: the IMAP, SMTP and POP3 hosts and ports, the CalDAV and CardDAV servers with their principal URLs, the username, and which of those connections the address accepts. |
| listAppPasswords | The app passwords that let mail apps sign in to an address: who holds each one, when it was created and when a mail app last used it. The passwords themselves are never shown again. |
| revokeAppPassword | Revoke one app password, so the mail app using it is signed out within minutes. The address and its mail stay. A chat always asks first. |
| sendMailAppSetup | Email someone a one-time link that sets up an address in their mail app. The app password it creates acts as you, for that address alone, and the link expires after three days. A chat asks first unless you asked for it. |
| createAppPassword | Create an app password that signs a mail, calendar or contacts app in to one address as you. The password comes back once, with the server settings, and appleProfile: true adds the Apple configuration profile as XML. A chat always asks first, an OAuth connection needs a verification code, and a client limited to some addresses or domains cannot use it. |
| renameAppPassword | Rename one app password, such as when the device it is for changes. The password itself stays the same and keeps working. |
| updateMailAppSettings | Turn imap, smtp, pop3, caldav and carddav on or off for an address, passing only the ones to change. A switched-off kind refuses every sign-in, and apps connected over it are signed out within minutes. Only the workspace owner or someone who manages domains may change them. A chat asks first unless you asked for it. |
| setDomainSenderName | Set the name mail from a domain goes out under when the address has no name of its own, or clear it. A chat asks first unless you asked for it. |
Reading needs domains:read and changing needs domains:write. A domain reaches every address on it, so a client limited to some addresses or domains cannot add one, and changes a domain or its addresses only when it holds that whole domain.
The workspace’s last domain cannot be removed from here, because removing it deletes the whole mailbox with it. That is done in the app, where it is confirmed first.
The tools act exactly as the REST API does, and the /domains pages of the API reference describe every field and refusal.
Removing a domain or an address also needs workspace:manage in your role unless you own the workspace, the same permission the app asks for. It is console-only, so no approval can give it to a client.
Some tools on this server make a change the REST API guards with a verification code, and ask for the same code. Until the client has verified a code in the last 60 minutes, or the person has chosen Allow changes for 60 minutes on it in Account → Connected apps, such a tool answers with a result that starts Refused (step_up_required): and changes nothing. emptyAudience never asks for a code. The API Authentication page lists every tool that asks, and shows how to ask for a code and verify it.
Changing a logo, its certificate or the DMARC policy also publishes the DNS record where Nextmail writes the domain’s DNS, and the result says how that went or which record to publish yourself.
The web app address belongs to the whole workspace, so any client with domains:read can read it, and only the workspace owner’s client, connected with every address, sets or removes it. Setting one needs a paid plan, and the /app-host pages of the API reference describe every field and refusal.
The brand belongs to the whole workspace too. Reading it needs settings:read and changing it settings:write, and a client limited to some addresses or domains can read it but not change it. A personal space carries no brand, and the /branding pages of the API reference describe every field and refusal.
Forwarding needs domains:write and reaches only an address you reach yourself. Seeing who reaches an address needs members:read, and its sign-in needs members:write. Setting the password of an address is not a tool: it is done in the app or with PUT /domains/{id}/addresses/{addressId}/login.
A DNS provider account is connected in the app, because the provider asks the person to sign in. Once one is, these tools read it and write records through it. Disconnecting one needs the whole workspace, and workspace:manage in your role unless you own it.
Reading the mail app settings needs domains:read, and turning their connections on or off needs domains:write. Listing, creating, renaming and revoking app passwords and emailing a setup link need members:write, which a client limited to some addresses or domains never holds. createAppPassword shows the password once, in its result, so anyone who can read the chat can read the password. createAppPassword and sendMailAppSetup hand the address to a mail app, so the client must itself hold every one of these permissions that your role holds: threads:read, threads:write, emails:send, drafts:write, labels:write, calendar:read, calendar:write, contacts:read and contacts:write. Without one of them the tool is refused.
Reference
listDomainsgetDomainaddDomainverifyDomainsetDomainCatchAllgetDomainLogosetDomainLogoremoveDomainLogosetDomainLogoCertificateremoveDomainLogoCertificatesetDomainDmarcPolicyremoveDomainlistDomainAddressesaddDomainAddressupdateDomainAddresssetAddressPhotoremoveAddressPhotoremoveDomainAddressgetAppHostsetAppHostverifyAppHostremoveAppHostgetBrandingupdateBrandingsetBrandImageremoveBrandImagesetDomainTrackingHostsetDomainStorageHostlistAddressForwardsaddAddressForwardssetAddressForwardEnabledremoveAddressForwardresendAddressForwardConsentsetAddressForwardModelistAddressMembersgetAddressLoginremoveAddressLoginlistDnsConnectionsgetDnsConnectiondisconnectDnsConnectiongetDomainDnssetDomainDnsZonesyncDomainDnsgetMailAppSettingslistAppPasswordsrevokeAppPasswordsendMailAppSetupcreateAppPasswordrenameAppPasswordupdateMailAppSettingssetDomainSenderName
listDomains
The domains in this workspace, by name: whether each is verified, whether it can send, whether its catch-all is on, and how many addresses it has. getDomain gives the DNS records of one. One page at a time: when more follow, the last line gives a cursor to pass back for the next page.
Inputs
limitinteger- At least 1At most 100
cursorstring
Also available in
- API
GET /domainsGET /domains/{id}GET /rolesGET /roles/permissions- TypeScript
nextmail.domains.list()nextmail.domains.listAll()nextmail.domains.iterate()nextmail.domains.get()nextmail.roles.list()nextmail.roles.listAll()nextmail.roles.iterate()nextmail.roles.listPermissions()- Python
domains.list()domains.list_all()domains.iterate()domains.get()roles.list()roles.list_all()roles.iterate()roles.list_permissions()- Ruby
domains.listdomains.list_alldomains.iteratedomains.getroles.listroles.list_allroles.iterateroles.list_permissions- PHP
domains->listdomains->listAlldomains->iteratedomains->getroles->listroles->listAllroles->iterateroles->listPermissions- Go
Domains.ListDomains.ListAllDomains.IterateDomains.GetRoles.ListRoles.ListAllRoles.IterateRoles.ListPermissions- Java
domains().listdomains().listAlldomains().iteratedomains().getroles().listroles().listAllroles().iterateroles().listPermissions- C#
Domains.ListAsyncDomains.ListAllAsyncDomains.IterateAsyncDomains.GetAsyncRoles.ListAsyncRoles.ListAllAsyncRoles.IterateAsyncRoles.ListPermissionsAsync
getDomain
Everything about one domain: whether it is verified and why not, whether it can send and what stops it, the catch-all, DMARC, the tracking and files hosts, and every DNS record to publish with its status (found, missing, or not checked yet).
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characters
Also available in
- API
GET /domainsGET /domains/{id}- TypeScript
nextmail.domains.list()nextmail.domains.listAll()nextmail.domains.iterate()nextmail.domains.get()- Python
domains.list()domains.list_all()domains.iterate()domains.get()- Ruby
domains.listdomains.list_alldomains.iteratedomains.get- PHP
domains->listdomains->listAlldomains->iteratedomains->get- Go
Domains.ListDomains.ListAllDomains.IterateDomains.Get- Java
domains().listdomains().listAlldomains().iteratedomains().get- C#
Domains.ListAsyncDomains.ListAllAsyncDomains.IterateAsyncDomains.GetAsync
addDomain
Add a domain you own to this workspace. It starts unverified with its catch-all on, and the answer lists the DNS records to publish at its DNS host. Once they answer, verifyDomain confirms it. Refused when the domain is already claimed, when a parent or child domain belongs to someone else, or when the plan allows no more domains.
Inputs
domainstringRequiredThe bare domain, e.g. example.com
Also available in
- API
POST /domains- TypeScript
nextmail.domains.create()- Python
domains.create()- Ruby
domains.create- PHP
domains->create- Go
Domains.Create- Java
domains().create- C#
Domains.CreateAsync
verifyDomain
Check the DNS of one domain again now, instead of waiting for the next scheduled check, and say which records are still missing. A check made in the last few seconds is reused rather than repeated.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characters
Also available in
setDomainCatchAll
Turn the catch-all of a domain on or off. On, mail to any address at the domain arrives here, listed or not. Off, only the addresses listed on it take mail and the rest is refused.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characterscatchAllbooleanRequired
Also available in
getDomainLogo
The brand logo inboxes show next to mail from one domain (BIMI): the logo, its record and whether public DNS answers with it right now, the mark certificate, and the DMARC policy. For a subdomain it also reads the DMARC record of its parent domain, which Nextmail never changes. Inboxes show the logo only once the DMARC policy of the domain quarantines or rejects (setDomainDmarcPolicy), and for a subdomain only once the DMARC record of its parent domain does too. Gmail also needs a Verified or Common Mark Certificate (setDomainLogoCertificate), and Apple Mail a Verified one.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characters
Also available in
setDomainLogo
Set the brand logo inboxes show next to mail from a domain (BIMI), replacing any there was. Pass the whole SVG file as svg. It is converted to the SVG Tiny PS format inboxes require: CSS becomes attributes, the shape is made square and titled after the workspace, and anything inboxes do not draw is refused with the reason. Where Nextmail writes the DNS of the domain it publishes the logo record too, and otherwise the answer gives the record to publish. The domain has to be verified. Inboxes show the logo only once the DMARC policy of the domain quarantines or rejects (setDomainDmarcPolicy), and for a subdomain only once the DMARC record of its parent domain does too. Gmail also needs a Verified or Common Mark Certificate (setDomainLogoCertificate), and Apple Mail a Verified one.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characterssvgstringRequiredThe logo, the whole SVG file as text.
1 to 1048576 characters
Also available in
removeDomainLogo
Remove the brand logo of a domain and delete the stored file. Where Nextmail writes the DNS of the domain it takes the logo record down too, and otherwise the answer names the record to remove. Any mark certificate stays, ready for the next logo. Removing a logo from a domain that has none changes nothing.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characters
Also available in
setDomainLogoCertificate
Set the mark certificate of a domain logo, replacing any there was: the Verified Mark Certificate (VMC) or Common Mark Certificate (CMC) a certificate authority issued for the domain. Gmail shows the logo only with one, and only a VMC earns the blue checkmark and the logo in Apple Mail. The chain is put in order and served, and the logo record points at it. Inboxes show nothing when the logo inside the certificate differs from the published one, so the logo from the certificate then becomes the published one. The domain has to be verified.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characterscertificatestringRequiredThe certificate file: PEM text as it came, or a DER or PKCS #7 file in base64.
1 to 175020 characters
Also available in
removeDomainLogoCertificate
Remove the mark certificate of a domain logo and delete the stored file. The logo stays, but its record no longer points at a certificate, so Gmail and Apple Mail stop showing it. Removing a certificate from a domain that has none changes nothing.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characters
Also available in
setDomainDmarcPolicy
Set the DMARC policy of a domain: what its DMARC record tells receivers to do with mail that fails its checks. none only monitors, quarantine sends that mail to spam and reject refuses it. Inboxes show the domain logo only at quarantine or reject. A policy stricter than none needs mail from the domain to be signed first, and anything else that sends as the domain, such as a newsletter tool or a help desk, has to sign as it too, or its mail lands in spam or is refused. Where Nextmail writes the DNS of the domain the record is updated straight away, keeping its other tags such as rua, and otherwise the answer gives the record to publish.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersdmarcPolicystringRequirednone to only monitor, quarantine to send failing mail to spam, reject to refuse it.
One of"none""quarantine""reject"
Also available in
removeDomain
Remove a domain from this workspace. Its addresses stop taking mail, its tracking and files hosts retire, and records written to a connected DNS host are withdrawn. The last domain of a workspace cannot be removed here, because that deletes the whole mailbox; that is done in the app. This cannot be undone. Anybody but the workspace owner also needs a role that may remove domains (workspace:manage).
- Asks for a verification code
DELETE /domains/{id}
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characters
Also available in
listDomainAddresses
The addresses listed on one domain, by address: the label, whether each takes mail, and when it last received any. With the catch-all on, unlisted addresses take mail too. One page at a time: when more follow, the last line gives a cursor to pass back for the next page.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characterslimitinteger- At least 1At most 100
cursorstring
Also available in
- API
GET /domains/{id}/addresses- TypeScript
nextmail.domains.listAddresses()nextmail.domains.listAllAddresses()nextmail.domains.iterateAddresses()- Python
domains.list_addresses()domains.list_all_addresses()domains.iterate_addresses()- Ruby
domains.list_addressesdomains.list_all_addressesdomains.iterate_addresses- PHP
domains->listAddressesdomains->listAllAddressesdomains->iterateAddresses- Go
Domains.ListAddressesDomains.ListAllAddressesDomains.IterateAddresses- Java
domains().listAddressesdomains().listAllAddressesdomains().iterateAddresses- C#
Domains.ListAddressesAsyncDomains.ListAllAddressesAsyncDomains.IterateAddressesAsync
addDomainAddress
Add an address to a domain, such as sales on example.com, with an optional label. Adding one that was removed brings it back. Refused for an address reserved for an account, or when the workspace holds as many addresses as it may.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characterslocalPartstringRequiredThe part before the @, e.g. sales
1 to 64 charactersPattern^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*$labelstring- Up to 120 characters
Also available in
updateDomainAddress
Change an address on a domain: its label, whether it takes mail, or both. A disabled address keeps its settings, and enabling it again restores it. An empty label clears it.
- Asks for a verification codeOnly when it sets a forwarding mode
PATCH /domains/{id}/addresses/{addressId}
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characterslabelstring- Can be nullUp to 120 characters
enabledboolean
Also available in
setAddressPhoto
Set the photo of an address on a domain, replacing any there was. Mail from the address shows it in Nextmail, in place of the domain logo. Pass the image in base64 as image, with its type: image/png, image/jpeg, image/webp, image/gif, up to 5MB. It is cropped to a square and stored as JPEG or PNG.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 charactersimagestringRequiredThe image in base64, or as a data: URL.
1 to 7340032 characterscontentTypestringRequiredThe type of the image: image/png, image/jpeg, image/webp, image/gif.
1 to 100 characters
Also available in
removeAddressPhoto
Remove the photo of an address on a domain and delete the stored image, so mail from it shows the domain logo again. Removing a photo from an address that has none changes nothing.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characters
Also available in
removeDomainAddress
Remove an address from a domain. It stops taking mail as a listed address, the people it was shared with lose it, and any sign-in for it ends. Adding it again later starts it fresh. Anybody but the workspace owner also needs a role that may remove domains (workspace:manage).
- Asks for a verification code
DELETE /domains/{id}/addresses/{addressId}
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characters
Also available in
getAppHost
The web app address of this workspace: a subdomain on any domain, such as mailbox.example.com, where its people open Nextmail with the workspace brand. Says whether it is live, waiting for its DNS records, or paused because the workspace is on the free plan, and gives the records to publish. With none set, it names the verified domains of the workspace and the suggested address.
Inputs
Takes no input.
Also available in
- API
GET /app-host- TypeScript
nextmail.appHost.get()- Python
app_host.get()- Ruby
app_host.get- PHP
appHost->get- Go
AppHost.Get- Java
appHost().get- C#
AppHost.GetAsync
setAppHost
Set the web app address of this workspace, replacing any it had: a subdomain on any domain, such as mailbox.example.com, where only its members, the people who sign in with one of its addresses and its invitees can sign in, under the workspace brand. Under a verified domain of the workspace it takes one CNAME record. Under any other domain it also takes a TXT record that proves the domain is yours. The answer gives the records to publish. Needs a paid plan. Setting the address it already has checks it again.
- Asks for a verification codeOnly when it replaces the web app address
PUT /app-host
Inputs
hoststringRequiredThe subdomain, e.g. mailbox.example.com, on any domain.
1 to 253 characters
Also available in
verifyAppHost
Check the web app address of this workspace again now: whether its DNS records answer and its certificate is issued. A check made in the last few seconds is reused rather than repeated.
Inputs
Takes no input.
Also available in
removeAppHost
Remove the web app address of this workspace. Everyone signed in there is signed out and the address stops opening the workspace, while nextmail.sh keeps working for the same people. The CNAME record stays at the DNS host until someone removes it.
- Asks for a verification code
DELETE /app-host
Inputs
Takes no input.
Also available in
getBranding
The brand of this workspace: the links to its mark, its logo, its logo for dark mode and the image behind its sign-in page, its primary and secondary fonts, and the background of its sign-in page (a preset, a colour or the uploaded image). A personal space carries no brand.
Inputs
Takes no input.
Also available in
- API
GET /branding- TypeScript
nextmail.branding.get()- Python
branding.get()- Ruby
branding.get- PHP
branding->get- Go
Branding.Get- Java
branding().get- C#
Branding.GetAsync
updateBranding
Change the fonts or the sign-in page background of this workspace brand. Give fonts with primary, secondary or both, each a font id or null for the default; a font left out keeps its value. Give loginBackground as { kind: "preset", preset }, { kind: "color", color: "#rrggbb" } or { kind: "image" } for the uploaded image, or null for the default. Add logo: "dark" or "light" to choose the sign-in logo, or leave it null to match the background. Upload the image itself with setBrandImage first: { kind: "image" } is refused while no sign-in photo is uploaded. The fonts apply in the web app for everyone in the workspace, the primary to its text and the secondary to page headings, and the sign-in background shows on its web app address.
Inputs
fontsobjectThe fonts to change. Font ids: system, arial, helvetica, verdana, tahoma, trebuchet-ms, georgia, times-new-roman, courier-new, dm-sans, inter, roboto, open-sans, lato, montserrat, poppins, nunito, work-sans, source-sans-3, ibm-plex-sans, merriweather, playfair-display, instrument-serif, jetbrains-mono, dm-mono, geist-mono.
primarystring- Can be nullOne of
"system""arial""helvetica""verdana""tahoma""trebuchet-ms""georgia""times-new-roman""courier-new""dm-sans""inter""roboto""open-sans""lato""montserrat""poppins""nunito""work-sans""source-sans-3""ibm-plex-sans""merriweather""playfair-display""instrument-serif""jetbrains-mono""dm-mono""geist-mono" secondarystring- Can be nullOne of
"system""arial""helvetica""verdana""tahoma""trebuchet-ms""georgia""times-new-roman""courier-new""dm-sans""inter""roboto""open-sans""lato""montserrat""poppins""nunito""work-sans""source-sans-3""ibm-plex-sans""merriweather""playfair-display""instrument-serif""jetbrains-mono""dm-mono""geist-mono"
loginBackgroundobjectThe sign-in page background, or null for the default. Presets: dusk, mist, sand, night, meadow, dots, brush, trail, ember, canvas, bloom, field, wanderer, gold. Logo: dark, light.
Can be nullkindstringRequired- One of
"preset""color""image" presetstring- Can be nullOne of
"dusk""mist""sand""night""meadow""dots""brush""trail""ember""canvas""bloom""field""wanderer""gold" colorstring- Can be nullPattern
^#[0-9a-f]{6}$ logostring- Can be nullOne of
"dark""light"
Also available in
setBrandImage
Set one of the brand images of this workspace from an image in Files, replacing the one there was: the mark (a square icon), the logo, the logo for dark mode, or the photo behind the sign-in page of its web app address. Setting the sign-in photo also switches the sign-in page to it. The image is fitted and stored as WebP; it can start from up to 5MB.
Inputs
variantstringRequiredWhich image: mark, wordmark, wordmark-dark, login-background. mark is the square icon, wordmark the logo, wordmark-dark the logo for dark mode, and login-background the photo behind the sign-in page of the web app address.
One of"mark""wordmark""wordmark-dark""login-background"fileIdstringRequiredThe fileId of an image in Files: one the user attached in this chat, or one listFiles found.
1 to 128 characters
Also available in
removeBrandImage
Remove one of the brand images of this workspace and delete the stored image, so the default shows in its place. Removing the sign-in photo while the sign-in page shows it switches the page back to the preset or colour chosen before, or to the default. Removing an image that is not set changes nothing.
Inputs
variantstringRequiredWhich image: mark, wordmark, wordmark-dark, login-background. mark is the square icon, wordmark the logo, wordmark-dark the logo for dark mode, and login-background the photo behind the sign-in page of the web app address.
One of"mark""wordmark""wordmark-dark""login-background"
Also available in
setDomainTrackingHost
Set the tracking host of a domain, the subdomain the links and the open pixel of its mail go through, or remove it with null. The domain has to be verified, and the answer gives the CNAME record to publish for the host.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactershoststringRequiredA subdomain of the domain, such as track.example.com, or null to remove it.
Can be nullUp to 253 characters
Also available in
setDomainStorageHost
Set the files host of a domain, the subdomain its public download links are served from, or remove it with null. The domain has to be verified, and the answer gives the record to publish for the host.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactershoststringRequiredA subdomain of the domain, such as track.example.com, or null to remove it.
Can be nullUp to 253 characters
Also available in
listAddressForwards
Where the mail of one address is forwarded: every destination, whether it confirmed it wants the mail, and whether the address also keeps a copy here.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characters
Also available in
addAddressForwards
Forward the mail of an address to other places. Each destination gets an email asking it to confirm and receives nothing until it does. Addresses hosted here, ones already on the list and ones that would loop are skipped with the reason. 10 destinations per address at most.
- Asks for a verification code
POST /domains/{id}/addresses/{addressId}/forwards
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 charactersemailsstring[]Required- 1 to 10 items
Also available in
setAddressForwardEnabled
Pause a forwarding destination, or switch it back on. A paused destination keeps its confirmation. When the last one that is on is paused, the address keeps its mail here again.
- Asks for a verification code
PATCH /domains/{id}/addresses/{addressId}/forwards/{forwardId}
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 charactersforwardstringRequiredThe forwarding destination, by its id or by the address it forwards to. listAddressForwards names every one.
1 to 320 charactersenabledbooleanRequired
Also available in
- API
PATCH /domains/{id}/addresses/{addressId}/forwards/{forwardId}- TypeScript
nextmail.domains.updateAddressForward()- Python
domains.update_address_forward()- Ruby
domains.update_address_forward- PHP
domains->updateAddressForward- Go
Domains.UpdateAddressForward- Java
domains().updateAddressForward- C#
Domains.UpdateAddressForwardAsync
removeAddressForward
Stop forwarding the mail of an address to one destination. When it was the last one that was on, the address keeps its mail here again.
- Asks for a verification code
DELETE /domains/{id}/addresses/{addressId}/forwards/{forwardId}
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 charactersforwardstringRequiredThe forwarding destination, by its id or by the address it forwards to. listAddressForwards names every one.
1 to 320 characters
Also available in
- API
DELETE /domains/{id}/addresses/{addressId}/forwards/{forwardId}- TypeScript
nextmail.domains.deleteAddressForward()- Python
domains.delete_address_forward()- Ruby
domains.delete_address_forward- PHP
domains->deleteAddressForward- Go
Domains.DeleteAddressForward- Java
domains().deleteAddressForward- C#
Domains.DeleteAddressForwardAsync
resendAddressForwardConsent
Send the confirmation email to a forwarding destination again, for one that has not answered. It reaches a real inbox.
- Asks for a verification code
POST /domains/{id}/addresses/{addressId}/forwards/{forwardId}/resend
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 charactersforwardstringRequiredThe forwarding destination, by its id or by the address it forwards to. listAddressForwards names every one.
1 to 320 characters
Also available in
- API
POST /domains/{id}/addresses/{addressId}/forwards/{forwardId}/resend- TypeScript
nextmail.domains.resendAddressForwardConsent()- Python
domains.resend_address_forward_consent()- Ruby
domains.resend_address_forward_consent- PHP
domains->resendAddressForwardConsent- Go
Domains.ResendAddressForwardConsent- Java
domains().resendAddressForwardConsent- C#
Domains.ResendAddressForwardConsentAsync
setAddressForwardMode
Choose where the mail of an address goes. mailbox keeps it here, with a copy to every forwarding destination that is on. forward only sends it to the destinations and keeps no copy, so it needs one that is on first.
- Asks for a verification codeOnly when it sets a forwarding mode
PATCH /domains/{id}/addresses/{addressId}
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 charactersmodestringRequired- One of
"mailbox""forward"
Also available in
listAddressMembers
Who can read one address and how: the owner of the workspace, a role that reaches every address, a grant of the whole domain, or a grant of the address itself.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characters
Also available in
getAddressLogin
Whether an address has a password of its own, which lets somebody sign in as that address alone, and when it was set and last used. Setting a password is not done from here.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characters
Also available in
removeAddressLogin
Take the password away from an address and sign out whoever used it. The address and its mail stay.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characters
Also available in
listDnsConnections
The DNS provider accounts connected to this workspace, through which Nextmail writes the records of a domain itself, with the domains each one serves and how many records it keeps there.
Inputs
Takes no input.
Also available in
getDnsConnection
One DNS connection and what disconnecting it would leave behind: the domains it serves, the records Nextmail wrote through it, and the verified domains that would stop receiving mail.
Inputs
connectionstringRequiredThe id of a DNS connection, as listDnsConnections names it.
1 to 64 characters
Also available in
disconnectDnsConnection
Disconnect a DNS provider account: the records Nextmail wrote through it come down, every domain it serves is detached and the connection is revoked, so a verified domain whose records come down stops receiving mail. A connection that is already disconnected is removed from the list instead. Check getDnsConnection first. Anybody but the workspace owner also needs a role that may manage the workspace (workspace:manage).
- Asks for a verification code
DELETE /dns-connections/{id}
Inputs
connectionstringRequiredThe id of a DNS connection, as listDnsConnections names it.
1 to 64 characters
Also available in
getDomainDns
How the DNS of one domain is set up: whether Nextmail writes its records itself and through which connection and zone, where each kind of record stands, the records left to delete by hand, and which connected zone answers for the domain.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersrefreshbooleanTrue asks the providers again which zone answers for the domain, rather than using the answer from the last minutes.
Also available in
setDomainDnsZone
Choose the zone of a connected DNS account that a domain is set up through, when several could answer for it. The zone has to cover the domain, be active and take a test record. Nothing is written yet: syncDomainDns writes the records.
- Asks for a verification code
PUT /domains/{id}/dns
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersconnectionstringRequiredThe id of a DNS connection, as listDnsConnections names it.
1 to 64 characterszonestringRequiredThe id of the zone, as getDomainDns lists the zones that could answer for the domain.
1 to 64 characters
Also available in
syncDomainDns
Write or repair the DNS records a domain needs, through the connected zone that answers for it, the way Sync does in the app. When only one zone answers it is attached first. With purpose, only that kind of record. A domain waiting for its records is verified once they are in place.
- Asks for a verification code
POST /domains/{id}/dns/sync
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characterspurposestringWrite only this kind of record. Left out, every record the domain needs.
One of"dmarc""tracking""storage""bimi""app-host"
Also available in
getMailAppSettings
The server settings that put an address into Apple Mail, Gmail, Outlook, Thunderbird or any other mail app: the IMAP, SMTP and POP3 hosts and ports, the CalDAV and CardDAV addresses that put its calendar and contacts into calendar and contacts apps, the username, and which of those connections the address accepts. The password is an app password, which createAppPassword makes.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characters
Also available in
listAppPasswords
The app passwords that let mail apps sign in to an address: who holds each, when it was made and when a mail app last used it. The passwords themselves are never shown again.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characters
Also available in
revokeAppPassword
Revoke one app password so the mail app using it is signed out within minutes. The address and its mail stay.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characterspasswordstringRequired- 1 to 128 characters
Also available in
- API
DELETE /domains/{id}/addresses/{addressId}/app-passwords/{passwordId}- TypeScript
nextmail.domains.deleteAppPassword()- Python
domains.delete_app_password()- Ruby
domains.delete_app_password- PHP
domains->deleteAppPassword- Go
Domains.DeleteAppPassword- Java
domains().deleteAppPassword- C#
Domains.DeleteAppPasswordAsync
sendMailAppSetup
Email someone a one-time link to set up an address in their mail app. The link creates an app password that acts as you for that address alone, shows it once and expires in three days. It reaches a real inbox.
- Asks for a verification code
POST /domains/{id}/addresses/{addressId}/mail-app-setup
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 charactersrecipientstringRequired- Up to 320 charactersFormat
email
Also available in
createAppPassword
Create an app password that signs a mail, calendar or contacts app in to an address as you. The password is shown this once, with the server settings, so hand it to the person straight away. Pass appleProfile to also get an Apple configuration profile that sets up an iPhone, iPad or Mac in one step. Both are secrets.
- Asks for a verification code
POST /domains/{id}/addresses/{addressId}/app-passwords
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 charactersnamestringRequiredWhat to call it, such as the device it is for.
1 to 64 charactersappleProfilebooleanAlso return the Apple configuration profile, the XML of a .mobileconfig file.
Also available in
renameAppPassword
Rename an app password, such as when the device it is for changes. The password itself stays the same and keeps working.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 characterspasswordstringRequiredThe ID listAppPasswords shows.
1 to 128 charactersnamestringRequired- 1 to 64 characters
Also available in
- API
PATCH /domains/{id}/addresses/{addressId}/app-passwords/{passwordId}- TypeScript
nextmail.domains.updateAppPassword()- Python
domains.update_app_password()- Ruby
domains.update_app_password- PHP
domains->updateAppPassword- Go
Domains.UpdateAppPassword- Java
domains().updateAppPassword- C#
Domains.UpdateAppPasswordAsync
updateMailAppSettings
Turn each kind of mail app connection on or off for an address: imap, smtp and pop3 for mail, caldav for its calendar and carddav for contacts. Pass only the ones to change. A switched-off kind refuses every sign-in to it, and connections of that kind that are already open end within minutes. Only the workspace owner or someone who manages domains may change them.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 charactersaddressstringRequiredThe address, by its id, by the whole address (sales@example.com) or by the part before the @. listDomainAddresses names every one.
1 to 320 charactersimapbooleanAccept IMAP sign-ins, which keep folders and read state in step.
smtpbooleanAccept SMTP sign-ins, for sending from a mail app.
pop3booleanAccept POP3 sign-ins, for apps that only download the inbox.
caldavbooleanServe the calendar of the address over CalDAV.
carddavbooleanServe the contacts of the workspace over CardDAV.
Also available in
- API
PATCH /domains/{id}/addresses/{addressId}/mail-apps- TypeScript
nextmail.domains.updateMailAppSettings()- Python
domains.update_mail_app_settings()- Ruby
domains.update_mail_app_settings- PHP
domains->updateMailAppSettings- Go
Domains.UpdateMailAppSettings- Java
domains().updateMailAppSettings- C#
Domains.UpdateMailAppSettingsAsync
setDomainSenderName
Set the name mail from a domain goes out under when the address has no name of its own, such as "Acme Support", or clear it with null so that mail goes out under the name of the workspace. An address with a name of its own keeps it: change that with updateDomainAddress.
Inputs
domainstringRequiredThe domain, by its id or by its name (example.com). listDomains names every one.
1 to 253 characterssenderNamestringRequiredThe name, at most 120 characters, or null to clear it.
Can be nullUp to 120 characters
Google Workspace