> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Unlink custom domain

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

Stops serving the domain, keeping it attached to the app.

Base44 stops serving the domain, any email domain on it is disabled, and other domains redirecting to this one stop redirecting. The domain keeps its row and its redirect target, so [Link custom domain](/api-reference/link-custom-domain) puts it back into service.

<Note>A 200 means Base44 recorded the unlink, not that the domain has certainly stopped resolving. Removing it from the routing table is best-effort: if that step fails the call still succeeds, and the domain can keep serving from a stale routing entry. Read it back with [Get custom domain](/api-reference/get-custom-domain) when it matters, and unlink again if it is still serving.</Note>

Use this to take a domain out of service reversibly. To remove it altogether, use [Delete custom domain](/api-reference/delete-custom-domain).

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json post /api/apps/{app_id}/custom-domains/{domain_id}/unlink
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - ApiKeyAuth: []
paths:
  /api/apps/{app_id}/custom-domains/{domain_id}/unlink:
    post:
      summary: Unlink custom domain
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Stops serving the domain, keeping it attached to the app.


        Base44 stops serving the domain, any email domain on it is disabled, and
        other domains redirecting to this one stop redirecting. The domain keeps
        its row and its redirect target, so [Link custom
        domain](/api-reference/link-custom-domain) puts it back into service.


        <Note>A 200 means Base44 recorded the unlink, not that the domain has
        certainly stopped resolving. Removing it from the routing table is
        best-effort: if that step fails the call still succeeds, and the domain
        can keep serving from a stale routing entry. Read it back with [Get
        custom domain](/api-reference/get-custom-domain) when it matters, and
        unlink again if it is still serving.</Note>


        Use this to take a domain out of service reversibly. To remove it
        altogether, use [Delete custom
        domain](/api-reference/delete-custom-domain).


        <Note>This endpoint accepts a personal API key. Workspace API keys are
        not authorized for it and are rejected with a 403.</Note>
      operationId: >-
        unlink_render_connection_api_apps__app_id__custom_domains__domain_id__unlink_post
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app the domain belongs to.
            title: App Id
          description: ID of the app the domain belongs to.
          example: 6820f3a4e7b91d003c45a1f2
        - name: domain_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              ID of the custom domain, as returned in `id` by [List custom
              domains](/api-reference/list-custom-domains).
            title: Domain Id
          description: >-
            ID of the custom domain, as returned in `id` by [List custom
            domains](/api-reference/list-custom-domains).
          example: 68b1c0d4e7b91d003c45a1f7
      responses:
        '200':
          description: The domain is no longer served.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainMessageResponse'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, or you used a workspace API key.
            These endpoints take a personal API key.
        '404':
          description: The app has no custom domain with this ID.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    DomainMessageResponse:
      properties:
        message:
          type: string
          title: Message
          description: What happened, in plain text.
          example: Domain successfully unlinked
      type: object
      required:
        - message
      title: DomainMessageResponse
      description: A one-line confirmation.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````