Available Domains
List the domains the calling user can use when creating an endpoint. The list combines two sources: shared platform domains (e.g. ngris.io, ngris.dev) accessible to everyone on the right plan, and custom domains the user owns (registered via POST /v1/domains/self).
Account scope: custom domains here are those of your active account, shared with its members per your role's permissions. Use switch account to work with a different account's domains.
Permissions: any member of the active account can call it, so every member can pick a domain when creating an endpoint; it never answers 403. What each item carries depends on the domains:read permission:
- With
domains:read(the account owner, and any role that has it): every field in the table below. - Without it: a reduced item with only
uuid,name,account_uuid(your account's own domains only, as in the full item),plan_access,provisioning_mode(so you know whether ngris creates an endpoint's DNS record or it rides your wildcard CNAME),system_managed,is_active,statusandcert_expiry. It has no DNS provider, provider settings, creator, certificate status or issuer, issuance state, registration or expiry suspension.
The list is the same in both cases: the same domains in the same order, with the same include_inactive and paging.
Use this to populate the domain dropdown when provisioning a new endpoint. The uuid returned here is what you pass as domain_uuid to POST /v1/endpoints.
By default only active domains are listed. Pass include_inactive=1 to also list your account's switched-off custom domains — for example one suspended because its registration expired (the dashboard's Domains page uses this).
Query parameters
1 (or true) also returns the account's custom domains that are switched off (is_active: false). Omit it for active domains only (the default).page_size. Default 1.Response (200 OK)
[] when there are none.1 when page was not sent).0 when page_size was not sent (every domain returned).Each domain has the fields below when you have domains:read. Without it you get only the reduced item described under Permissions above.
domain_uuid; custom domains also use it in paths like /domains/self/{uuid}.example.com).account_uuid. Omitted when unset, and never sent for a shared platform domain (system_managed: true). Do not use this to detect platform domains; use system_managed.true for the platform's own domains and admin-provisioned shared domains (under which you pick a subdomain); false for a custom domain you registered.cloudflare, route53, digitalocean, cpanel, webmin, namecheap, or none). Always none on platform-shared domains.false until DNS verification completes.auto (ngris holds your DNS provider credentials, writes the records and issues the wildcard certificate), manual (you added the CNAME at your provider; ngris only validates it) or wildcard (a wildcard CNAME already points at ngris, so per-endpoint records are skipped; ngris still issues the certificate).api_token, password, secret, secret_access_key, api_key) blanked, e.g. {"api_token":"","zone_id":"…"}. "" on shared platform domains and when none is set.pending_issuance, issuing, active, issuance_failed, renewal_failed or revoked; expired while a custom domain is suspended for an expired registration (see expiry_suspension).issued, expiring (within 30 days), expired, or none when it has no active certificate. Omitted if the certificate lookup failed.Let's Encrypt). Omitted when unknown.all | plan-restricted. Restricted shared domains are only available on certain paid plans.registration). During a registry's auto-renew grace it stays the old date. Omitted when unknown. Not the TLS certificate's expiry (that is cert_expiry).status: "expired", is_active: false — so it is listed only with include_inactive=1). See the expiry_suspension object and Check again.expires_at, source (rdap | whois | cloudflare), statuses (the registry's EPP statuses), not_renewed_status (e.g. auto renew period: the registry's date isn't a paid renewal yet), checked_at and lookup_error (why the last lookup failed). Field by field: the registration object. Absent on shared platform domains, and while registration lookups aren't enabled on the platform yet. The same object is on each item of GET /v1/domains/self (the account's own domains).Deprecated: until the sunset this response also carries the legacy integer id, created_by and account_id fields (the reduced item carries only id and account_id; a shared platform domain never carries created_by). Don't use them; read uuid, created_by_uuid and account_uuid.