# Remove a domain attachment (https://developer.godaddy.com/en/docs/references/rest/hosting/detach-domain)

---
title: Remove a domain attachment
description: Detaches a custom domain from the application.
full: true
---

Full description

> Detaches a custom domain from the application. DNS records at the registrar are not modified. Returns `204 No Content` on success.

## DELETE /apps/{appId}/domains/{domainId}

Remove a domain attachment

Detaches a custom domain from the application. DNS records at the registrar are not modified. Returns `204 No Content` on success.


### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `appId` | string | yes | Application identifier in `{PRODUCT}-{id}` form. The prefix is the application type in upper case — an upper-case letter followed by any number of upper-case letters, digits, or underscores — then a hyphen, then the identifier. For `NODEJS`, the suffix is a 10-character nanoid. Example: `NODEJS-aBcDeFgHiJ`. |
| `domainId` | string | yes | Domain attachment identifier returned in the `domainId` field of `POST /apps/{appId}/domains`. |

### Header parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `traceparent` | string | no | W3C Trace Context identifier for this request. Clients should send a `traceparent` on every request so the trace can be correlated across services. See https://www.w3.org/TR/trace-context/ for the format. |

### Responses

**204** — Domain detached.

**401** — Authentication credentials are missing or invalid.

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — The caller is authenticated, but the request is not permitted: either the access token does not carry the scope this operation requires, or the operation is disabled for this account.

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — The requested resource does not exist.

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Rate limit exceeded. A `429` response may come in one of two shapes: an empty body with `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset` headers; or a JSON `Error` body with `Retry-After` and `RateLimit-*` headers. Clients should honour whichever headers are present and should not assume a JSON body is available on every `429`.

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**501** — The request is contract-valid, but the operation, or a value the request names, is not applicable to this deployment. `details[].issue` is always `NOT_APPLICABLE`. For example, deployments and restarts are offered for `NODEJS` applications only, and a hosting product this deployment does not serve is answered here rather than with a `400`.

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**503** — The service is temporarily unable to handle the request. Retry after a short delay. May include a `Retry-After` header hinting at when to retry.

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `bearerAuth`.
