Modulify

Manage DNS for a bought domain

Edit the DNS records and nameservers of a domain the workspace bought, and see the records Modulify keeps in it for your sites and email domains.

On this page

A domain the workspace buys on the Domains page starts out on Modulify's nameservers, ns1.modulify.ai and ns2.modulify.ai, so its DNS is managed from the domain's own page in Modulify. There you add, edit and delete its records and move it to other nameservers. When a site or an email domain of the workspace uses the domain, Modulify adds the records it needs by itself, keeps them locked, and deletes them once nothing needs them. For a domain you bought somewhere else, the records go in at its own DNS host, see Connect a custom domain.

Before you begin

Everyone in the workspace can open a domain's page and read its records and nameservers. Changing them needs the Manage domains permission, the same one that adds custom domains to a site. The workspace owner always has it, and a custom role can be given it. Without it, Add record, Change nameservers and the items in each record's menu are disabled with the tooltip You do not have permission to do this. See Members and roles.

The domain also has to be Active or Expiring soon. An Expired domain still lists its records, but every change is disabled with the tooltip Renew this domain before you change it., and a This domain has expired notice with a Renew domain button sits above the tabs, see Notices above the tabs.

Open a domain's page

On the Domains page, click the row of a registered domain, or choose Manage DNS from its row menu. The page opens at /dashboard/domains/<domain ID>, where the ID is the one Modulify gives the domain, not its name, and the Nameservers and Settings tabs add /nameservers and /settings. It is headed with the domain and its status, with a line such as Registered Oct 7, 2026. Expires Oct 7, 2027. When the domain needs renewing, a notice above the tabs says so, see Notices above the tabs.

The row of a pending, failed or released domain does not open, and its Manage DNS is disabled with the tooltip DNS opens once the domain is registered., This order failed, so the domain was never registered. on a failed one, or This workspace no longer holds this domain. on a released one. On the page of such a domain, the same tooltip disables the controls of all three tabs. Instead of the records, the DNS records tab then reads Not registered yet, Records open once the registrar confirms it., Registration failed, No records exist for an unregistered domain., or Domain released, This workspace no longer holds this domain.

The page has three tabs: DNS records, Nameservers and Settings. This page covers the first two. Settings holds auto-renew, renewing by hand, the registrant, the transfer lock and the transfer code, see Auto-renew, Renew a domain, Change the registrant and Move a domain to another registrar.

If the page cannot load the domain, it reads Could not load domain, This page retries on its own shortly., and tries again every 10 seconds.

The page belongs to the workspace you are in. The links in Modulify's domain emails switch you to the workspace that owns the domain first, and any other link to a domain outside your current workspace takes you back to the Domains page.

Read the records

DNS records lists every record the domain holds, in four columns: Type, Name, Value and TTL. Names are relative to the domain, so @ is acme.com itself and www is www.acme.com. The list runs by name, with @ first, then by type. An MX or SRV record shows its priority under the value, and an SRV record its weight and port as well, for example Priority 10 · Weight 5 · Port 5060. A lock next to the type marks a record Modulify manages, see Locked records. A name and a value are plain text, and the copy icon next to each one copies it.

Search by name or value narrows the list, and the type filter next to it, All types until you pick one, keeps a single record type.

Empty table When
No DNS records, Add a record to point this domain. The domain holds no records
No matching records, Try a different search or record type. The search or the type filter matches nothing
Could not load records, with the reason underneath, for example You are loading DNS records too fast. Try again in 42 seconds!, and a Try again button The records could not be read, or you went over the record loads for this minute

After Could not load records the list tries again on its own every 10 seconds. Otherwise it reloads on its own every 5 minutes while the DNS records tab is open, and straight away when you switch back to the browser tab, so a change a teammate makes shows up without a refresh. It waits while a record dialog is open or a change is being saved.

Add a record

Click Add record above the table. The dialog is headed Add DNS record, Changes to acme.com usually reach every DNS server within a few minutes. Fill in the fields and click Add record. The Record added toast reads It usually takes a few minutes to reach every DNS server., and the record joins the list.

A service that needs records on the domain can also hand you a link that opens Modulify with the records filled in, for you to review and add in one click, see Add records with a link.

Field What goes in it
Type The record type, A until you pick another. Each type in the list carries a line on what it does
TTL How long DNS servers keep the record before asking again. Pick 5 minutes, 15 minutes, 30 minutes, 1 hour, 4 hours, 12 hours, 1 day or 1 week. A new record starts at 5 minutes. The A and AAAA records at one name share a TTL, so saving a new one on any of them changes the others
Name @ for the domain itself, or the part in front of it, such as www. A line under the field shows the full name, for example Answers for www.acme.com
The value Its label follows the type: IPv4 address, IPv6 address, Target, Mail server, Nameserver or Value
Priority MX and SRV records only. A whole number from 0 to 65535, 10 until you change it
Weight SRV records only. A whole number from 0 to 65535, 0 until you change it
Port SRV records only. A port from 1 to 65535

The record types

Type Described as The value
A Points a name at an IPv4 address. An IPv4 address, such as 192.0.2.10
AAAA Points a name at an IPv6 address. An IPv6 address, such as 2001:db8::10
ANAME Points the domain itself at another hostname. A hostname
CNAME Makes a name an alias of another hostname. A hostname
MX Sends email for a name to a mail server. The mail server's hostname, with a Priority
NS Hands a subdomain to other nameservers. A nameserver's hostname
SRV Points a service at a host and port. The target hostname, with a Priority, a Weight and a Port
TXT Holds text, like a verification code or an SPF policy. Up to 2,048 characters of text

The name

  • For a record on the domain itself, type @, leave the field empty, or type the domain. A full name such as www.acme.com is saved as www.
  • Each part between dots takes letters, numbers, hyphens and underscores, up to 63 characters, and cannot start or end with a hyphen. With the domain added, the full name stays within 253 characters.
  • * as the first part makes a wildcard name, such as * or *.dev. NS and SRV records cannot use one.
  • An SRV name starts with the service and the protocol, such as _sip._tcp. The protocol is _tcp, _udp, _tls or _sctp.
  • Names are saved in lower case.

The value

  • An ANAME, CNAME, MX, NS or SRV record takes a full hostname, such as target.example.com. An IP address is refused there, and a trailing dot is dropped.
  • A CNAME record cannot point at its own name.
  • A TXT value stays on one line, with no line breaks or other control characters. A value pasted in double quotes, the way many DNS hosts display TXT records, is saved without them, and several quoted parts are joined into one.

Records that cannot exist together

Modulify refuses these, in the dialog or when you save:

  • A CNAME record on @. Use an ANAME record to point the domain itself at another hostname.
  • An ANAME record at any name other than @. Use a CNAME record there.
  • A CNAME record next to any other record at the same name, and any record at a name that already holds a CNAME.
  • An ANAME record next to an A, AAAA or other ANAME record at the same name.
  • An NS record on @. The domain's own nameservers change on the Nameservers tab.
  • An NS record at a name that already holds other records, at that name or under it. An NS record hands the name and every name under it to other nameservers, so those records would stop answering. Several NS records at the same name are fine.
  • Any other record at or under a name that holds an NS record, including another NS record further down, because it would never answer.
  • A second SPF record, a TXT record starting with v=spf1, at a name that already has one. A name can only hold one SPF record, so add to the one that is there.
  • A record that is already there: the same name, type and value, and for MX and SRV the same priority. A TXT value counts as the same whether or not it is wrapped in double quotes.
  • A new record once the domain holds 100 records.

Edit or delete a record

Each row's menu, the three dots at its end, holds Edit record and Delete record. Both are disabled with the same tooltips as Add record.

Edit record opens the same dialog, headed Edit DNS record and filled in with the record. Change what you need, the type included, and click Save record. The Record saved toast reads It usually takes a few minutes to reach every DNS server.

Delete record asks first, for example Delete the A record for www.acme.com? with Sites, email or services that rely on this record can stop working once DNS servers drop their cached copy. Click Delete record to confirm. The Record deleted toast reads It stops answering once DNS servers drop their cached copy.

When a record is refused

The dialog checks the fields as you type and shows the problem under the field. Add record and Save record send nothing until every field is right.

Message under the field Cause
Use letters, numbers, hyphens and underscores between dots, with * only at the start. The name has another character, a * that is not its first part, or a part or a whole name that is too long
A CNAME record cannot sit on the domain itself. Use an ANAME record there. A CNAME record on @
An ANAME record can only sit on the domain itself. Use a CNAME record for other names. An ANAME record at a name other than @
Change the nameservers of the domain itself on the Nameservers tab. An NS record on @
NS records cannot use * in their name. or SRV records cannot use * in their name. An NS or SRV record with a wildcard name
Start with the service and the protocol, like _sip._tcp. An SRV name without them
Enter an IPv4 address like 192.0.2.10. An A record whose value is not an IPv4 address
Enter an IPv6 address like 2001:db8::10. An AAAA record whose value is not an IPv6 address
Enter a full hostname like example.com. An ANAME, CNAME, NS or SRV value that is not a hostname
Enter the mail server as a full hostname like mail.example.com. An MX value that is not a hostname
A CNAME record cannot point at itself. A CNAME record whose target is its own name
Enter the text this record holds. An empty TXT value
Keep it to 2,048 characters or fewer. A TXT value over 2,048 characters
Remove line breaks and other control characters. A TXT value with a line break
Use a whole number from 0 to 65535. A priority or a weight outside that range
Use a port from 1 to 65535. A port outside that range
Pick a TTL from 5 minutes to 1 week. A record, such as one added before the domain came here, whose TTL is outside that range
Choose a record type. A record of a type the dialog does not offer

The rest come back from the server, in a Could not add record or Could not save record toast.

Message in the toast Cause
This record already exists! The same record is already there
A CNAME record cannot share its name with other records! The name of the new CNAME record already holds other records
This name already has a CNAME record, and a CNAME record cannot share its name with other records! The name already holds a CNAME record
An ANAME record cannot share its name with A, AAAA or other ANAME records! The name of the new ANAME record already holds one of those
This name already has an ANAME record, which cannot share its name with A or AAAA records! An A or AAAA record at a name that holds an ANAME record
sub.acme.com is handed to other nameservers by an NS record, so a record at or under it would not answer! A record at or under a name that holds an NS record
An NS record hands sub.acme.com and every name under it to other nameservers, so the records already there would stop answering. Delete them first! An NS record at a name that already holds other records, at it or under it
This name already has an SPF record, and a name can hold only one. Edit that record instead! A second TXT record starting with v=spf1 at the same name
A domain can hold at most 100 DNS records! The domain is full. Delete a record first
This DNS record no longer exists! You saved a record someone deleted in the meantime
This workspace is changing its domains too fast. Try again in 12 seconds! The workspace went over its changes for this minute, see Limits
This DNS change was refused: <reason>! The record was refused, with the reason
The DNS records could not be loaded: <reason>! The records of the domain could not be read before the change, with the reason
Name.com does not list this domain right now. Try again later! Name.com did not find the domain the last time Modulify checked it. Modulify checks again every hour. If Name.com still does not list it after a day, and also shows the name as free or registered elsewhere, because it moved to another registrar or was deleted, it shows as released
The DNS of this domain is busy right now. Try again in a moment! Its DNS is still being set up, or asked for a pause
The DNS of this domain did not answer. Try again in a moment! Its DNS did not answer

Change the nameservers

The Nameservers tab lists the nameservers the domain uses, with a badge that says who answers for it. Each nameserver is plain text, and the copy icon next to it copies it.

Badge Line under it
Managed here Modulify answers for this domain, so the records on the DNS records tab are live.
Other nameservers Other nameservers answer for this domain, so its records are managed where those nameservers are hosted.

The DNS column of the Domains list shows the same badge for each registered domain.

To hand the domain's DNS to another host, click Change nameservers. The dialog reads Point the domain at the nameservers of another DNS host. Its records here stop answering until you switch back. Type the nameservers your DNS host gave you into Nameserver 1, Nameserver 2 and the rows after them, add a row with Add nameserver or drop one with the cross next to it, and click Save nameservers. A domain takes at least 2 nameservers and at most 13.

The dialog checks the rows as you type and shows an error under the exact field that is wrong.

Message under the field Cause
Use a hostname, not an IP address. The value is an IP address, such as 192.0.2.10
Enter a hostname like ns1.example.com. The value is not a full hostname
It cannot be under this domain itself. The nameserver is the domain itself or a name under it, such as ns1.acme.com for acme.com
Already listed above. The same nameserver sits in a row above

Once you try to save, a count that does not fit shows under the rows: Add at least 2 nameservers. with fewer than 2 rows filled in, or Use at most 13 nameservers. with more than 13. Nothing is saved until every row is right.

For an AI client or the HTTP API, set_domain_nameservers refuses a nameserver under the domain itself too, with ns1.acme.com is under acme.com itself, so it cannot be one of its nameservers!

The Nameservers updated toast reads The change can take up to 48 hours to reach every network.

The records while other nameservers answer

Changing the nameservers deletes nothing on the DNS records tab. The records stay, but they stop answering, so add the records the domain needs, and those of any site or email domain that uses it, at the new DNS host. Modulify stops managing records on the domain while it uses other nameservers, so none of them is locked.

While the domain uses other nameservers, the DNS records tab opens with This domain uses other nameservers, The records here only take effect while the domain uses the Modulify nameservers. Add records where its DNS is hosted, or switch back on the Nameservers tab., and an Open nameservers button. You can still change the records there, and they answer again once you switch back.

Switch back to Modulify's nameservers

Whenever its rows differ from Modulify's nameservers, ns1.modulify.ai and ns2.modulify.ai, the Change nameservers dialog also offers Use Modulify nameservers. It fills the rows with those nameservers. Click Save nameservers to put the domain back on them, and the records on the DNS records tab answer again. Modulify brings the records of your sites and email domains up to date straight away.

Records Modulify manages

The sites and email domains of the workspace can use the domain without anyone typing a record. While the domain is Active or Expiring soon and uses Modulify's nameservers, Modulify adds the records they need to its DNS, keeps them in step, and deletes them once nothing needs them.

What uses the domain The records Modulify keeps
A site of this workspace whose custom domain is the domain or a subdomain of it, such as blog.acme.com, with its www variant The A, AAAA, ANAME or CNAME records that point each hostname at the site
An email domain of a site of this workspace, such as mail.acme.com Its ownership TXT record and its three DKIM CNAME records, and its MX record while receiving is on

The DMARC record an email domain recommends is not one of them, so add it yourself if you want it. A site or an email domain of another workspace gets no records here, even under this domain.

When records go in and come out

  • Connecting the domain, or a subdomain of it, to a site adds its records straight away, and the Domain added toast reads, for example, acme.com and www.acme.com are connecting. Modulify adds the DNS records to acme.com for you.
  • Adding an email domain adds its records with its first check, turning on receiving adds its MX record, and restarting its verification replaces its DKIM records.
  • Removing a domain or its www variant from the site, removing the email domain, or turning off receiving deletes those records within a minute.
  • Deleting the site deletes them within a minute, and so does deleting the workspace or closing the account that owns it.
  • Moving a site to another workspace leaves the records of its custom domains in place, but this workspace no longer manages them, so they are no longer locked. Modulify still keeps track of them: once the moved site no longer uses that hostname, because it was removed from the site or the site was deleted, Modulify deletes the record within a minute if it still holds what Modulify put there. The move takes the site's email domains away from it, so their records are deleted within a minute.
  • Once the domain has gone 6 hours without a check, Modulify compares its records with what its sites and email domains need again, puts back any that went missing, and moves any that still point at an old Modulify address to the current one.
  • Opening the DNS records tab or the site's Domain tab never changes records, and neither does reading them from an AI client or through the HTTP API. When Modulify finds them out of step, it brings them up to date within a minute.

At a name a site uses, Modulify deletes the other A, AAAA, ANAME and CNAME records there, such as an address left from an earlier host, so no visitor is sent anywhere else. While an email domain receives mail, the other MX records at its name are deleted the same way, and turning receiving off again does not bring them back. Records of other types at those names stay. When Modulify replaces one of its own A, AAAA, MX or TXT records with a new value, it adds the new record before it deletes the old one, so the name keeps answering. When a change fails halfway, the records added so far are taken back and the ones deleted are put back, and the message names any record that could not be put back so you can add it again. A record of its own that Modulify puts back stays locked.

Locked records

On the DNS records tab, a record Modulify manages carries a lock next to its type. Hovering the lock says what holds the record, and Edit record and Delete record in its menu are disabled with the same text.

Record Tooltip
A site's record Modulify manages this record so www.acme.com reaches the site Shop. Remove www.acme.com from that site to release it.
An email domain's MX record Modulify manages this record so the email domain mail.acme.com of the site Shop receives mail. Turn off receiving or remove that email domain to release it.
An email domain's other records Modulify manages this record for the email domain mail.acme.com of the site Shop. Remove that email domain to release it.
A record nothing uses any more that Modulify is still trying to delete Modulify is deleting this record because nothing uses it any more.

Once at least one record in the list is marked Managed by Modulify, the tab opens with Some records are managed by Modulify, The records your sites and email domains need are added and removed for you, and are locked here. Removing the domain from its site, or the email domain, releases them.

A record that would clash with a managed one is refused too. That covers the records a site or an email domain is about to get, so a name a site was just connected to is held for it before its records are in place. The message shows in the Could not add record or Could not save record toast, and in the answer an AI client gets.

Message Cause
www.acme.com is managed for www.acme.com on the site Shop, so its address records cannot be changed here. Remove www.acme.com from that site first! An A, AAAA, ANAME or CNAME record at a name whose address records Modulify manages
mail.acme.com receives mail for the email domain mail.acme.com of the site Shop, so its MX records cannot be changed here. Turn off receiving for mail.acme.com first! An MX record at a name that receives mail for an email domain
abc._domainkey.mail.acme.com holds a CNAME record Modulify manages for the email domain mail.acme.com of the site Shop, and a CNAME record cannot share its name with other records! Any record at the name of a CNAME record Modulify manages for an email domain
An NS record there would hand www.acme.com to other nameservers, and Modulify manages the records at www.acme.com for www.acme.com on the site Shop. Remove www.acme.com from that site first! An NS record at a name whose records Modulify manages, or at a name above it
This record connects www.acme.com to the site Shop, so Modulify manages it. Remove www.acme.com from that site to release it! Editing or deleting a locked record, for example from an AI client
Nothing uses this record any more, and Modulify could not delete it yet. It tries again within 30 minutes, and unlocks the record if that keeps failing! Editing or deleting a record Modulify is still trying to delete
www.acme.com holds a record Modulify is still deleting because nothing uses it any more. Try again once it is gone! A record at a name where Modulify is still trying to delete one of its records

When Modulify cannot delete a record nothing uses any more, it keeps the record locked and tries again within 30 minutes. Meanwhile its lock reads Modulify is deleting this record because nothing uses it any more. After 5 failed tries it unlocks the record, so you can delete it yourself, and keeps trying with its regular checks.

When records cannot be added

A CNAME record cannot share its name with other records. When a name that needs one, such as www, holds an MX, SRV or TXT record of your own, Modulify adds nothing at that name. An NS record at a name, or at a name above it, hands that name to other nameservers, so Modulify adds nothing there either and reports it, even for records it added before the NS record. For the same reason, an email domain at a name a site reaches through a CNAME record does not get its MX record. The site's Domain tab then shows Records not added on the domain's card, the DNS records tab opens with Some records could not be added, and an email domain shows the reason under its name and is not ready.

Message What to do
www.acme.com has other records, so the records Modulify manages there cannot be added. Delete them under DNS records on the page of the domain! Delete the records at that name on the DNS records tab. Modulify adds its own as soon as you do
sub.acme.com is handed to other nameservers by an NS record, so the records Modulify manages at www.sub.acme.com would not answer. Delete the NS record under DNS records on the page of the domain! Delete the NS record on the DNS records tab. Modulify adds its own as soon as you do
shop.acme.com connects a site through a CNAME record, which cannot share its name with other records, so the MX record of the email domain shop.acme.com cannot be added. Use another name for the email domain, or turn off receiving for it! Use another name for the email domain, or turn off receiving for it
A domain can hold at most 100 DNS records, so the records Modulify manages cannot all be added. Delete some under DNS records on the page of the domain! Delete records the domain no longer needs. Modulify adds its own as soon as you do
The DNS of this domain did not answer. Try again in a moment! or another message about its DNS Nothing. Modulify tries again within 30 minutes

The site's Domain tab

For a domain Modulify manages, the card on the site's Domain tab has nothing to add by hand and no Connect with <your provider> strip. Under Your custom domain it reads Modulify adds the records that connect this domain for you., and the card starts with a banner whose Manage DNS button opens the domain's DNS records tab.

The records of each hostname on the card stay folded behind a DNS records toggle, whether the hostname is connected or not. Opening it shows Modulify adds these records to acme.com for you, and deletes them once the domain leaves this site. above the records and their status. The copy icon next to a name or a value copies it.

Banner When
Adding records, This workspace owns acme.com, so Modulify adds the DNS records of this domain and its www variant for you. There is nothing to add at a DNS provider. The records are not all in place yet
Records added, Modulify added the DNS records of this domain and its www variant to acme.com. The domain connects once DNS servers pick them up, usually within a few minutes. Every record is in place, and the domain waits for DNS servers and its certificate
Records not added, with the reason Something blocks the records, see When records cannot be added

and its www variant is left out when the card has no www variant. The banner shows while a hostname on the card is not connected, and is hidden while the site's custom domains are paused.

A bought domain that uses other nameservers gets the usual card: the records to add at that DNS host, and the Connect with <your provider> strip when that host supports one-click setup, see One click setup.

Chat tells you there is nothing to add for a domain Modulify manages. An AI client, or your own code through the HTTP API, reads the same state: get_domain_status returns the domain as OwnedDomain with ManagedDns, Ready and Error, and list_dns_records marks each managed record Locked, with ManagedBy naming what holds it and CleanupPending set to true while Modulify is still trying to delete it. Neither changes any record.

Limits

Limit Value
Record loads, per person, across every domain 20 a minute
Changes, per workspace, across every domain 30 a minute
Records on one domain 100
Records in one add-records link 20

Changes cover adding, editing and deleting records, saving nameservers, saving the registrant, turning the transfer lock or auto-renew on or off and getting a transfer code. The records Modulify adds and deletes by itself do not count. Record loads and changes made by an AI client or through the HTTP API count toward the same limits, see Bought domains. Each minute starts on the clock. Past a limit, the message says how long to wait, for example You are loading DNS records too fast. Try again in 42 seconds! or This workspace is changing its domains too fast. Try again in 12 seconds!

On the mobile app

On a domain's page in the Modulify app for iPhone and Android, the DNS records, Nameservers and Settings tabs work like the web, through the same requests.

  • DNS records lists each record as a card with its type, TTL, Name and Value. Tap a name or a value to copy it. The search box, the record type filter and Add record sit above the list.
  • Add record and Edit record open the same form as a sheet, with Type, TTL, Name, the value and, for the types that need them, Priority, Weight and Port.
  • The three dots on a record open Edit record and Delete record. A record Modulify manages shows a lock and writes why it is locked under it.
  • Change nameservers on the Nameservers tab opens the nameservers as a sheet, with Add nameserver and Use Modulify nameservers. Tap a nameserver to copy it.
  • The link in an email about a domain opens its page in the app, see Emails about your domains.
  • Where the web shows a tooltip on a disabled control, the app writes the same text under it.
Does managing DNS need a paid plan?

No. A bought domain's records and nameservers can be changed on every plan. Connecting the domain to a site as a custom domain needs a paid plan, like any custom domain.

Why does my new record not answer yet?

Look at the Nameservers tab first: the records answer only while the domain uses Modulify's nameservers. If it does, give the change a few minutes. A DNS server that already holds the old answer keeps it until its TTL runs out.

Can I use the domain for email?

Yes. Add the MX and TXT records your mail provider gives you on the DNS records tab. To have a site send email from the domain, add it under Email domains on the Settings tab of the site's Emails tab, and Modulify adds the records it needs here by itself. See Use your own domain.

Can chat or an AI client change these records?

Yes. Ask a site's chat in plain words, such as add a TXT record on acme.com for Google verification. It reads, adds, changes and deletes the records of a domain the workspace bought and moves its nameservers, asking you first before it changes or deletes a record or moves the nameservers. An AI client connected over MCP can too, and so can your own code through the HTTP API, with a token that holds the domains:write scope. Each acts only within your role, so it needs the Manage domains permission like this page does, and none of them can change the records Modulify manages. See Bought domains.

Who can change the registrant or get the transfer code?

Only the workspace owner. They do it on the Settings tab, or through an AI client over MCP or their own code through the HTTP API, with a token of theirs that holds the domains:write scope: update_domain_registrant changes the registrant, and get_domain_transfer_code returns the transfer code when the token also holds credentials:reveal. See Change the registrant.

Next