Modulify

Set up an email domain in one click

get_site_email_domain_connect_url

Checks whether the DNS provider of an email domain offers one-click setup and, when it does, returns the link that adds its records there.

POST /v1/get_site_email_domain_connect_urlScopeconfig:writeMakes changes

One-click setup is Domain Connect, and the link adds every record the domain needs at once: the ownership record and the three DKIM records, never the DMARC record or the receiving MX record. The answer carries supported, true when the DNS provider speaks Domain Connect at all, ready, true when it can also set up the records of an email domain, so a link exists, the provider in provider and providerDisplayName, and applyUrl.

You open applyUrl in your own browser, sign in at your DNS provider and approve the change there. Nothing is added until you do, and Modulify then checks the records on its own like any others.

When ready is false there is no applyUrl, the answer says Your DNS provider does not support one-click setup for email domains yet, so add the records below by hand., and the records in emailDomains.items are added by hand at the DNS host. The tool tells the client never to build a link itself.

It is refused with This domain is already verified, so there is nothing to set up! for a verified domain, and with The sending records are not ready yet. Try again in a minute! in the first minute or so after the domain was added. It needs the Manage domains permission. See Use your own domain.

Request

Call it with a POST to https://api.modulify.ai/v1/get_site_email_domain_connect_url, sending the inputs below as a JSON object. The token needs the config:write scope.

It makes changes, so send an Idempotency-Key header whenever you might retry it. A retry with the same key gets the first answer back instead of running again.

curl -X POST https://api.modulify.ai/v1/get_site_email_domain_connect_url \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"PROJECT_ID","domainId":"DOMAIN_ID"}'

Over MCP, the same method is the get_site_email_domain_connect_url tool.

Inputs

Input Type Required Description
projectId string Yes The site id.
domainId string Yes The id of the email domain, from emailDomains.items in get_site_email_settings.

Response

Every call answers with the JSON envelope of success, message, data, code and version. data holds the result described above, and on a method that returns a total, count carries it. The response headers carry the call's X-Request-Id and what is left of your per-minute budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Errors explains every status code a call can answer with.