---
title: "List custom domains"
method: GET
path: "/api/apps/{app_id}/custom-domains"
---

# List custom domains

`GET /api/apps/{app_id}/custom-domains`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns every custom domain attached to the app.

The list covers domains at any stage:

- Added, but not linked
- Linked, but not yet verified
- Live
- Redirecting to another domain
- Disabled

Adding a domain and linking it are separate steps. DNS propagation happens outside Base44, so a linked domain can sit unverified for as long as its nameservers take.

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Path parameters

- `app_id` string, required — ID of the app the domain belongs to.

## Response `200`

The app's custom domains.

- CustomDomainResource[]
  - `id` string, required — ID of the domain. Pass it as `domain_id` to the other domain endpoints.
  - `domain` string, required — The domain name, normalized to lower case with any scheme, trailing slash and leading `www.` removed.
  - `app_id` string, required — ID of the app the domain serves.
  - `disabled` boolean, required — Whether Base44 has stopped serving the domain. A disabled domain stays attached to the app and keeps its DNS, and serves a placeholder page instead of the app.
  - `last_status_check` string, date-time, nullable — When [Get custom domain status](/api-reference/get-custom-domain-status) last ran for this domain, as a UTC timestamp in ISO 8601 format, or `null` if it never has.
  - `last_status_payload` CustomDomainStatusPayload — What the hosting provider last reported about the domain.
    - `verificationStatus` string, nullable — Whether the provider has verified the domain's DNS. Only `verified` means the domain serves the app, and anything else means it doesn't yet. Absent until [Get custom domain status](/api-reference/get-custom-domain-status) has run once.
  - `redirect_target_domain` string, nullable — The domain that visitors to this one are sent to with a 301 redirect. The value is `null` when this domain serves the app itself.
  - `provider_id` string, nullable — Names the registrar when the domain was bought through Base44's Wix flow. The value is `null` otherwise, which covers both a domain you own elsewhere and one bought through the Entri flow, so this isn't a purchased-versus-external signal.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app, or you used a workspace API key. These endpoints take a personal API key.
- `404` — App not found.

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adexad/base44-app-management-api/revisions/7f5ce8287501/schema)
