Verify domain
Restart verification for a custom domain.
Address the domain by its ID or by its name. Names are unique per workspace, so
api.acme.com is enough.
Call this after you correct the DNS records of a domain that shows failed, or to give a
pending domain a new 24-hour verification period. The domain goes back to pending and
the 24-hour period starts again.
The endpoint returns when Unkey accepts the retry. Poll domains.getDomain for the result.
A domain that is already verified returns a 412.
Required Permissions
Your root key must have one of the following permissions:
environment.*.verify_domain(to verify domains in any environment)environment.<environment_id>.verify_domain(to verify domains in a specific environment)
Authorizations
Unkey uses bearer tokens for authentication. Public integrations use root keys, while the dashboard proxy uses short-lived JWTs. To authenticate, include the token in the Authorization header of each request:
Root keys have specific permissions attached to them, controlling what operations they can perform. Legacy permissions use tuple strings like api.*.create_key; resource permissions use Unkey Resource Names plus actions, like unkey:v1:ws_123:keyspaces/*#create_key.
Security best practices:
- Keep root keys secure and never expose them in client-side code
- Use different root keys for different environments
- Rotate keys periodically, especially after team member departures
- Create keys with minimal necessary permissions following least privilege principle
- Monitor key usage with audit logs.
Body
Identifies a domain by its name or by its ID. Send the fully qualified domain name, such as 'api.acme.com', without a scheme, port, or path, or send the domain ID that domains.createDomain returns. You can send an internationalized name in Unicode or in Punycode form. Both forms address the same domain.
4 - 253"api.acme.com"
Response
Verification retry accepted. The workflow runs in the background.