---
title: "Create domain"
method: POST
path: "/environments/{environment}/domains"
tags: ["Domains"]
---

# Create domain

`POST /environments/{environment}/domains`

## Request

- Base URL: `https://cloud.laravel.com/api`
- URL: `https://cloud.laravel.com/api/environments/{environment}/domains`
- Auth: HTTP bearer

Create a new domain for the given environment. After creating the domain, you'll have to add the required DNS records to your DNS provider. This might be a 2-step process, depending on the verification method used. You can check the required DNS records in the response of this endpoint, and you can verify the domain using the "verify" query parameter in the "Get domain" endpoint.

## Path parameters

- `environment` string, required

## Request body

- CreateDomainRequest
  - `name` string, required
  - `www_redirect` 'root_to_www' | 'www_to_root'
  - `wildcard_enabled` boolean, nullable: Whether to enable a wildcard subdomain (*.example.com) for this domain. Not supported on environments using a load balancer.
  - `allow_downtime` boolean, nullable: Whether to allow downtime during domain verification. When true (flexible), the domain can be pointed directly without pre-verification. When false (uninterrupted), the domain is pre-verified before traffic moves: TXT-based ownership pre-verification for "none" and "dns" strategies, certificate pre-issuance via DCV CNAMEs for "dns_proxy" (Cloudflare does not accept ownership tokens for proxied hostnames).
  - `cloudflare_strategy` 'dns_proxy' | 'dns' | 'none'
  - `verification_method` 'pre_verification' | 'real_time'

## Response `200`

`DomainResource`

- object
  - `data` DomainResource, required
    - `id` string, required
    - `type` 'domains', required
    - `attributes` object
      - `name` string, required
      - `type` 'root' | 'www' | 'wildcard', required
      - `stage` 'pre_verification' | 'origin', required: The stage of onboarding a domain is in. | | |---| | `pre_verification` <br/> Ownership is being proven with temporary DNS records. | | `origin` <br/> The domain is ready for its origin A/CNAME records. |
      - `hostname_status` 'pending' | 'verified' | 'failed' | 'disabled', required
      - `ssl_status` 'pending' | 'verified' | 'failed' | 'disabled', required
      - `origin_status` 'pending' | 'verified' | 'failed' | 'disabled', required
      - `redirect` 'root_to_www' | 'www_to_root', required
      - `cloudflare_strategy` 'dns_proxy' | 'dns' | 'none', required
      - `downtime` boolean, nullable, required
      - `wildcard_enabled` boolean, required
      - `dns_records` object, required
        - `ssl` object[], required
          - `type` 'CNAME' | 'TXT', required
          - `name` string, nullable, required
          - `value` string, nullable, required
        - `pre_verification` string, required
        - `origin` string, required
        - `origin_cname` string, required
        - `dcv` string, required
      - `wildcard` object, nullable, required
        - `hostname_status` 'pending' | 'verified' | 'failed' | 'disabled', required
        - `ssl_status` 'pending' | 'verified' | 'failed' | 'disabled', required
        - `origin_status` 'pending' | 'verified' | 'failed' | 'disabled', required
        - `dns_records` object, required
          - `ssl` object[], required
            - `type` 'CNAME' | 'TXT', required
            - `name` string, nullable, required
            - `value` string, nullable, required
          - `pre_verification` string, required
          - `origin` string, required
          - `origin_cname` string, required
          - `dcv` string, required
      - `www` object, nullable, required
        - `hostname_status` 'pending' | 'verified' | 'failed' | 'disabled', required
        - `ssl_status` 'pending' | 'verified' | 'failed' | 'disabled', required
        - `origin_status` 'pending' | 'verified' | 'failed' | 'disabled', required
        - `dns_records` object, required
          - `ssl` object[], required
            - `type` 'CNAME' | 'TXT', required
            - `name` string, nullable, required
            - `value` string, nullable, required
          - `pre_verification` string, required
          - `origin` string, required
          - `origin_cname` string, required
          - `dcv` string, required
      - `action_required` 'add_txt_records' | 'add_dns_records' | 'failed', required
      - `last_verified_at` string, date-time, nullable, required
      - `created_at` string, date-time, nullable, required
    - `relationships` object
      - `environment` object
        - `data` EnvironmentResourceIdentifier, required
          - `type` 'environments', required
          - `id` string, required
    - `links` object, required
      - `self` Link, required
        - `href` string, uri, required
        - `rel` string
        - `describedby` string
        - `title` string
        - `type` string
        - `hreflang` union
          - string
          - string[]
        - `meta` object
  - `included` EnvironmentResource[]
    - `id` string, required
    - `type` 'environments', required
    - `attributes` object
      - `name` string, required
      - `slug` string, required
      - `status` 'deploying' | 'running' | 'hibernating' | 'stopped', required
      - `color` 'blue' | 'green' | 'orange' | 'purple' | 'red' | 'yellow' | 'cyan' | 'gray', required
      - `created_from_automation` boolean, required
      - `vanity_domain` string, required
      - `framework` 'laravel' | 'symfony' | 'jigsaw' | 'html' | 'php' | 'express' | 'hono' | 'nuxt' | 'next' | 'tanstack' | 'elysia' | 'nestjs' | 'astro' | 'javascript' | 'go' | 'hugo' | 'ruby' | 'rails' | 'jekyll' | 'django' | 'fastapi' | 'flask' | 'pelican' | 'python' | 'java' | 'spring' | 'rust' | 'zola' | 'axum' | 'rocket' | 'actix' | 'warp', required
      - `language` 'html' | 'php' | 'javascript' | 'python' | 'go' | 'ruby' | 'java' | 'rust', required
      - `php_major_version` string, required
      - `serving` string
      - `build_command` string, nullable, required
      - `node_version` '20' | '22' | '24' | '26', required
      - `deploy_command` string, nullable, required
      - `start_command` string, nullable, required
      - `uses_octane` boolean, required
      - `uses_hibernation` boolean, required
      - `hibernation_wake_up_interval` integer, nullable, required
      - `timeout` integer, required: The number of seconds the environment will wait for your application to respond before timing out. Changes take effect on the next deployment.
      - `shutdown_timeout` integer, required: The number of seconds to wait before stopping the previous deployment's compute instances, allowing it to finish processing requests and jobs after a new deployment becomes active. Changes take effect on the next deployment.
      - `uses_push_to_deploy` boolean, required
      - `uses_deploy_hook` boolean, required
      - `resend` object, nullable, required
        - `from_address` string, required
        - `from_name` string, required
        - `key_name` string, required
      - union
        - object
          - `environment_variables` object[], required
            - `key` string, required
            - `value` string, required
        - string[]
      - `network_settings` object, required
        - `cache` object, required
          - `strategy` string, required
        - `response_headers` object, required
          - `frame` string, required
          - `content_type` string, required
          - `hsts` object, required
            - `max_age` integer, required
            - `include_subdomains` boolean, required
            - `preload` boolean, required
        - `firewall` object, required
          - `bot_categories` BotControlCategory[], required
          - `rate_limit` object, required
            - `429` boolean, required
            - `level` 'challenge' | 'throttle' | 'ban', required
            - `per_minute` 100 | 300 | 500 | 750 | 1000, required
            - `4xx` boolean, required
          - `under_attack_mode_started_at` string, required
          - `block_path` boolean, required
        - `content_converter` boolean, required
      - `created_at` string, date-time, nullable, required
    - `relationships` object
      - `application` object
        - `data` ApplicationResourceIdentifier, required
          - `type` 'applications', required
          - `id` string, required
      - `branch` object
        - `data` BranchResourceIdentifier, required
          - `type` 'branches', required
          - `id` string, required
      - `deployments` object
        - `data` DeploymentResourceIdentifier[], required
          - `type` 'deployments', required
          - `id` string, required
      - `currentDeployment` object
        - `data` DeploymentResourceIdentifier, required
          - `type` 'deployments', required
          - `id` string, required
      - `domains` object
        - `data` DomainResourceIdentifier[], required
          - `type` 'domains', required
          - `id` string, required
      - `primaryDomain` object
        - `data` DomainResourceIdentifier, required
          - `type` 'domains', required
          - `id` string, required
      - `instances` object
        - `data` InstanceResourceIdentifier[], required
          - `type` 'instances', required
          - `id` string, required
      - `database` object
        - `data` DatabaseSchemaResourceIdentifier, required
          - `type` 'databaseSchemas', required
          - `id` string, required
      - `cache` object
        - `data` CacheResourceIdentifier, required
          - `type` 'caches', required
          - `id` string, required
      - `buckets` object
        - `data` FilesystemResourceIdentifier[], required
          - `type` 'filesystems', required
          - `id` string, required
      - `websocketApplication` object
        - `data` WebsocketApplicationResourceIdentifier, required
          - `type` 'websocketApplications', required
          - `id` string, required
      - `secrets` object
        - `data` SecretResourceIdentifier[], required
          - `type` 'secrets', required
          - `id` string, required
    - `links` object, required
      - `self` Link, required
        - `href` string, uri, required
        - `rel` string
        - `describedby` string
        - `title` string
        - `type` string
        - `hreflang` union
          - string
          - string[]
        - `meta` object

## Other responses

- `403`: Authorization error
- `404`: Not found
- `422`: Validation error

---

[API](https://skmtc.dev/laravel/apis/laravel-cloud.md) - [All operations](https://skmtc.dev/laravel/apis/laravel-cloud/llms.txt) - [OpenAPI document](https://skmtc.dev/laravel/apis/laravel-cloud/revisions/af603f54ff33?raw)
