# get_domain_status

Source: https://modulify.ai/docs/mcp/domains/get-domain-status

Reads the custom domains of a site, with whether each one is connected and the exact DNS records each hostname needs.

- Title: Check custom domains
- Scope: `config:read`
- Access: Read only

A site can have up to 10 custom domains, and every connected one serves the same site. Each entry in `domains` carries its `_id`, which is the `domainId` the other domain tools take, the hostname in `Domain` and its www companion in `WwwDomain` if it has one, and whether each is connected in `IsConnected` and `WwwIsConnected`.

Every DNS record listed for a hostname, in `RequiredDnsRecords` and `WwwRequiredDnsRecords`, has a `valid` flag saying whether it is already in place and a `checked` flag saying whether the lookup could be completed. `IsCloudflare` says whether the domain's DNS is on Cloudflare. While one of its hostnames is not connected, `DomainConnect` says whether its DNS provider supports one-click setup, and it is `null` once every hostname of that domain is connected or when no supported provider is found.

Pass `domainId` to check one domain, or leave it out to check them all. A site with no custom domains answers with an empty list, and a domain still waiting on `start_domain_verification` is not listed until `verify_domain` adds it. The primary domain, the one links to the live site use, is the first entry whose domain is connected, or failing that the first connected www companion, and a domain whose root was removed counts with its www hostname in the root's place.

It runs live DNS lookups against public resolvers, so it is slow and its answer lags a change just made at a registrar. It is also the call that re-checks DNS and marks a domain connected once its records are in place, so call it once after a change rather than polling it.

When the workspace has no paid plan any more, the custom domains are [paused](https://modulify.ai/docs/publish/custom-domains#when-your-plan-ends). The answer then carries `paused` true and lists the domains as they are, without any DNS lookup, and none of them serves the site until the workspace is on a paid plan again, when they come back on their own. See [Connect a custom domain](https://modulify.ai/docs/publish/custom-domains).

## Inputs

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `projectId` | string | Yes | The site id. |
| `workspaceId` | string | Yes | The workspace the site belongs to. |
| `domainId` | string | No | The `_id` of one custom domain to check, as `get_domain_status` or `add_custom_domain` returned it. Leave it out to check every domain of the site. |