---
title: "Create server"
method: POST
path: "/servers"
tags: ["Servers"]
---

# Create server

`POST /servers`

## Request body

- object
  - `data` object
    - `type` 'servers', required
    - `attributes` object
      - `project` string, required — The project (ID or Slug) to deploy the server
      - `plan` 'c2-large-x86' | 'c2-medium-x86' | 'c2-small-x86' | 'c3-large-x86' | 'c3-medium-x86' | 'c3-small-x86' | 'c3-xlarge-x86' | 'g3-gh200' | 'g3-large-x86' | 'g3-medium-x86' | 'g3-small-x86' | 'g3-xlarge-x86' | 'g4-rtx6kpro-large' | 'm3-large-x86' | 'm4-metal-large' | 'm4-metal-small' | 'rs4-metal-xlarge' | 's2-small-x86' | 's3-large-x86', required — The plan slug to choose server from, defining the specs the server will have
      - `site` 'ASH' | 'BUE' | 'CHI' | 'DAL' | 'FRA' | 'LAX' | 'LON' | 'MEX' | 'MEX2' | 'MIA' | 'MIA2' | 'NYC' | 'SAO' | 'SAO2' | 'SGP' | 'SYD' | 'TYO' | 'TYO2', required — The site slug to deploy the server
      - `operating_system` 'centos_7_4_x64' | 'centos_8_x64' | 'debian_10' | 'debian_11' | 'debian_12' | 'ipxe' | 'rhel8' | 'rockylinux_8' | 'ubuntu22_ml_in_a_box' | 'ubuntu24_ml_in_a_box' | 'ubuntu_20_04_x64_lts' | 'ubuntu_22_04_x64_lts' | 'ubuntu_24_04_x64_lts' | 'windows_2022_std' | 'windows_server_2019_std_v1', required — The operating system slug for the new server
      - `hostname` string, required — The server hostname
      - `ssh_keys` string[], nullable — SSH Keys to set on the server
      - `user_data` string, nullable — User data ID to set on the server. This is a custom script that will run after the deploy
      - `raid` 'raid-0' | 'raid-1', nullable — RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration
      - `disk_layout` object[], nullable
        - `count` integer, required
        - `role` 'os' | 'storage' | 'raw', required
        - `raid_level` 'raid-0' | 'raid-1', nullable
        - `filesystem` 'ext4' | 'xfs', nullable
        - `mount_point` string, nullable
      - `ipxe` string, nullable — URL where iPXE script is stored on, OR the iPXE script encoded in base64. This attribute is required when iPXE is selected as operating system.
      - `public_network` boolean, nullable — **Preview.** Available to teams with public networks enabled. Set to true to deploy the server attached to the given public_network_id. Requires public_network_id; only public-network-capable stock is selected.
      - `public_network_id` string, nullable — **Preview.** Available to teams with public networks enabled. ID of a customer public network to attach the server onto. Requires public_network: true. The public network must belong to the same project and location as the deployment and have a free address.
      - `persistent_netboot` boolean — Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system.
      - `bgp_ready` boolean, nullable — Deploy the server onto hardware that can announce an Elastic IP over BGP.
      - `billing` 'hourly' | 'monthly' | 'yearly', nullable — The server billing type. Accepts `hourly` and `monthly` for on demand projects and `yearly` for reserved projects.

## Response `201`

Created

## Changes

> 29 revisions in range; 22 could not be searched.

- **2026-08-04** `018cb742936f` — 5 breaking
  - the request property `data/attributes/hostname` became required
  - the request property `data/attributes/operating_system` became required
  - the request property `data/attributes/plan` became required
  - the request property `data/attributes/project` became required
  - …1 more
- **2026-07-31** `795dfc010f2a` — 2 info
  - added the new optional request property `data/attributes/persistent_netboot` (media type: application/json)
  - added the new optional request property `data/attributes/persistent_netboot` (media type: application/vnd.api+json)
- **2026-07-21** `885dec47dd47` — 1 breaking, 5 info
  - the response property `data/attributes/ipmi_status` became nullable for the status `201`
  - added the optional property `data/attributes/price` to the response with the `201` status
  - added the optional property `data/attributes/project/stats/databases` to the response with the `201` status
  - added the optional property `data/attributes/project/stats/storages` to the response with the `201` status
  - …2 more

[Change history](https://skmtc.dev/latitude/apis/latitude-sh-api/changes/servers/post.md)

---

[API](https://skmtc.dev/latitude/apis/latitude-sh-api.md) · [All operations](https://skmtc.dev/latitude/apis/latitude-sh-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/latitude/latitude-sh-api/revisions/c80535f26dd7/schema)
