---
title: "Create Custom Domain"
method: POST
path: "/v3/portals/{portalId}/custom-domain"
tags: ["Portal Custom Domains"]
---

# Create Custom Domain

`POST /v3/portals/{portalId}/custom-domain`

## Request

- Base URL: `https://global.api.konghq.com`
- URL: `https://global.api.konghq.com/v3/portals/{portalId}/custom-domain`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer

Creates the custom domain associated with the portal. Only one custom domain can be associated with a portal at a time.

## Request body

- CreatePortalCustomDomainRequest
  - `hostname` string, required
  - `enabled` boolean, required
  - `ssl` union, required
    - object
      - `domain_verification_method` 'custom_certificate', required
      - `custom_certificate` string, required: Custom certificate to be used for the SSL termination.
      - `custom_private_key` string, required: Custom certificate private key to be used for the SSL termination.
      - `skip_ca_check` boolean: Advanced option. If true, the custom certificate is served exactly as provided, without attempting to bundle against a public trust store. Required for certificates issued by an internal/private CA.
    - object
      - `domain_verification_method` 'http', required

## Response `201`

Portal custom domain

- PortalCustomDomain
  - `hostname` string, required
  - `enabled` boolean, required
  - `ssl` PortalCustomDomainSSL, required
    - `domain_verification_method` 'http' | 'custom_certificate', required
    - `verification_status` 'verified' | 'pending' | 'error', required
    - `validation_errors` string[]
    - `uploaded_at` string, date-time: An ISO-8601 timestamp representation of the ssl certificate upload date.
    - `expires_at` string, date-time: An ISO-8601 timestamp representation of the ssl certificate expiration date.
    - `skip_ca_check` boolean: True when the provided certificate chain is served as-is without validation against a public trust store.
  - `cname_status` 'verified' | 'pending', required
  - `created_at` string, date-time, required: An ISO-8601 timestamp representation of entity creation date.
  - `updated_at` string, date-time, required: An ISO-8601 timestamp representation of entity update date.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found

## Changes

- **2026-10-15** `7aab863a6daa`: 1 breaking, 2 warning
  - added `#/components/schemas/InvalidParameterMinimumTime, #/components/schemas/InvalidParameterMaximumTime` to the `invalid_parameters/items/` response property `oneOf` list for the response status `400`
  - added the new `key_invalid` enum value to the `invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterStandard]/rule` response property for the response status `400`
  - added the new `unique` enum value to the `invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterStandard]/rule` response property for the response status `400`
- **2026-09-25** `68d43091b84d`: 3 warning
  - added the new `400.00` enum value to the `status` response property for the response status `400`
  - added the new `403.00` enum value to the `status` response property for the response status `403`
  - added the new `404.00` enum value to the `status` response property for the response status `404`
- **2026-09-18** `f324fb7610e4`: 3 breaking, 24 info
  - the response's body type changed from no type to `object` for status `400`
  - the response's body type changed from no type to `object` for status `403`
  - the response's body type changed from no type to `object` for status `404`
  - removed `#/components/schemas/BaseError, subschema #2` from the response body `allOf` list for the response status `400`
  - …23 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/kong/apis/konnect-api-go-sdk/changes/v3/portals/:portalId/custom-domain/post.md)

---

[API](https://skmtc.dev/kong/apis/konnect-api-go-sdk.md) · [All operations](https://skmtc.dev/kong/apis/konnect-api-go-sdk/llms.txt) · [OpenAPI document](https://skmtc.dev/kong/apis/konnect-api-go-sdk/revisions/7aab863a6daa?raw)
