List domains
const url = 'http://localhost:8000/clusters/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/domains?limit=25&offset=0&verification_status=unverified';
const options = {
method: 'GET',
headers: {'API-Version': '2026-06-01.beta', 'API-Key': '<API-Key>'}
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}curl --request GET \
--url 'http://localhost:8000/clusters/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/domains?limit=25&offset=0&verification_status=unverified' \
--header 'API-Key: <API-Key>' \
--header 'API-Version: 2026-06-01.beta'Returns custom domains registered to the cluster.
Required scope: domains:read
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”Maximum number of results to return.
Number of results to skip from the start.
Filter by verification status.
Header Parameters
Section titled “Header Parameters”Responses
Section titled “Responses”The request has succeeded.
A custom domain registered to a cluster.
object
The registered custom domain.
Optional subdomain prefix.
CNAME target. Point your domain’s DNS CNAME record to this value to route traffic to the cluster.
DNS records to configure for domain verification and routing.
A DNS record to configure in your domain’s DNS settings.
object
The DNS record name (host).
The DNS record value (target).
true when the domain is verified and its SSL certificate is active.
When Skycloak last checked this domain’s status with Cloudflare. Pending domains are checked every few minutes for 48 hours, then hourly, then daily after 30 days. Absent until the first check.
Cloudflare’s reason the domain is not active yet, from the last check. Absent when there is none.
Example
[
{
"domain": "auth.mycompany.com",
"subdomain": "auth",
"verification_status": "unverified",
"ssl_status": "pending",
"dns_records": [
{
"type": "CNAME"
}
],
"last_check_error": "custom hostname does not CNAME to this zone."
}
]Headers
Section titled “Headers”Total number of results across all pages, before pagination is applied.
RFC 8288 Link header containing next, prev, first, and last relations.
Access is unauthorized.
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Access is forbidden.
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}The server cannot find the requested resource.
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Client error
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Headers
Section titled “Headers”Server error
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Server error
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}