---
title: "Start website setup"
method: POST
path: "/api/hosting/v1/orders/{order_id}/onboardings"
tags: ["Hosting: Websites"]
---

# Start website setup

`POST /api/hosting/v1/orders/{order_id}/onboardings`

Starts a website setup on a Web or Cloud hosting order and returns the created setup
right away; the website itself is provisioned asynchronously. Poll the list website
setups endpoint with the `domain` filter every 10 to 15 seconds and wait for
`status: completed` before uploading files, deploying or creating databases.

Omit `type` for an empty website. `type: wordpress` installs WordPress in the website
root with the admin user, email and password from `wordpress`, the domain as the site
title, and `en_US` when `wordpress.language` is omitted. The headless types
(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless
website; `headless_wordpress` additionally installs WordPress into the `cms` directory
of the website root with generated credentials.

Omit `domain` to set the website up on a generated temporary free subdomain.

The order must already have a hosting account: to create the first website on a new
hosting plan use the create website endpoint, which takes the `datacenter_code`.
Returns 404 when the order does not exist or is not accessible to the authenticated
client, and 409 with a `Retry-After` header while a setup for the same domain is still
running.

## Path parameters

- `order_id` integer, required

## Request body

- HostingV1OnboardingsStartOnboardingRequest — Website type, domain and WordPress settings for a new website setup
  - `type` 'wordpress' | 'headless_wordpress' | 'headless_ecommerce' | 'headless_pocketbase', nullable — Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials.
  - `domain` string, nullable — Customer-owned domain. Cannot start with "www.". Omit or `null` to set the website up on a generated temporary free subdomain.
  - `wordpress` object, nullable — WordPress install settings. Required when `type` is `wordpress`, not allowed otherwise. The site title is the domain.
    - `language` string, nullable — WordPress locale, for example `en_US` or `lt_LT`. Defaults to `en_US` when omitted.
    - `is_ai_builder` boolean, nullable — When `true`, installs the Hostinger AI theme (`hostinger-ai-theme`). Defaults to `false` when omitted.
    - `admin` object, required — WordPress administrator account
      - `user` string, required — WordPress admin username (letters, numbers, and underscore)
      - `password` string, password, required — WordPress admin password (8-50 characters, mixed case, a digit, and not compromised)
      - `email` string, required — WordPress admin email address

## Response `201`

Created response

- HostingV1OnboardingsOnboardingResource
  - `domain` string, required — Domain of the website being set up.
  - `username` string, required — Hosting account username.
  - `type` string, nullable — Website type requested for the setup: `wordpress`, `headless_wordpress`, `headless_ecommerce` or `headless_pocketbase`. `null` for an empty website. Setups started outside this API may report other legacy types.
  - `status` 'running' | 'completed' | 'failed', required — `running` while the website is still being set up, `completed` once the setup has finished, `failed` when it stopped before finishing or has not reported progress for over an hour.
  - `created_at` string, date-time, required — When the setup was requested.
  - `updated_at` string, date-time, required — When the setup last reported progress.

## Other responses

- `401` — Unauthenticated response
- `404` — Error response
- `409` — Conflict response. `Retry-After`, when present, is the number of seconds to wait before retrying.
- `422` — Validation error response
- `500` — Error response

## Changes

- **2026-10-06** `f086c8278a09` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/hostinger/apis/hostinger-api/changes/api/hosting/v1/orders/:order_id/onboardings/post.md)

---

[API](https://skmtc.dev/hostinger/apis/hostinger-api.md) · [All operations](https://skmtc.dev/hostinger/apis/hostinger-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hostinger/apis/hostinger-api/revisions/f086c8278a09?raw)
