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

# Run Server Reinstall



## OpenAPI

````yaml https://spec.speakeasy.com/latitude/latitude/latitude-sh-api-with-code-samples post /servers/{server_id}/reinstall
openapi: 3.0.1
info:
  title: Latitude.sh API
  version: '2023-06-01'
  description: >-
    The Latitude.sh API is a RESTful API to manage your Latitude.sh account. It
    allows you to perform the same actions as the Latitude.sh dashboard.
servers:
  - url: https://api.latitude.sh
    variables:
      latitude_api_key:
        default: <insert your api key here>
  - url: http://api.latitude.sh
    variables:
      latitude_api_key:
        default: <insert your api key here>
security: []
tags:
  - name: API keys
  - name: Baselines (Preview)
    description: >-
      Preview. Available to teams with the `baselines_api` feature flag. The
      shape of these endpoints may change before general availability.
  - name: Billing
  - name: Elastic Ips
  - name: Events
  - name: Firewalls
  - name: IP Addresses
  - name: Kubernetes Clusters
  - name: Marketplace apps
  - name: Operating Systems
  - name: Plans
  - name: Public Networks
  - name: Private Networks
  - name: Projects
  - name: Regions
  - name: Roles
  - name: SSH Keys
  - name: Servers
  - name: Block Storage
  - name: Filesystem Storage
  - name: Object Storage
  - name: Tags
  - name: Teams
  - name: Team members
  - name: Traffic
  - name: User data
  - name: User profile
  - name: VPN Sessions
  - name: Virtual machines
  - name: Virtual machine backups
  - name: Virtual machine restores
paths:
  /servers/{server_id}/reinstall:
    post:
      tags:
        - Servers
      summary: Run Server Reinstall
      operationId: create-server-reinstall
      parameters:
        - name: server_id
          in: path
          required: true
          examples:
            Created:
              value: sv_aNmodj6ydbE8W
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - reinstalls
                    attributes:
                      type: object
                      properties:
                        operating_system:
                          type: string
                          description: The OS selected for the reinstall process
                          enum:
                            - 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
                        hostname:
                          type: string
                          description: The server hostname to set upon reinstall
                        ssh_keys:
                          type: array
                          description: SSH Key IDs to set upon reinstall
                          items:
                            type: string
                          nullable: true
                        user_data:
                          type: string
                          description: User data ID to set upon reinstall
                          nullable: true
                        raid:
                          type: string
                          description: >-
                            RAID mode for the server. Set to 'raid-0' for RAID
                            0, 'raid-1' for RAID 1, or omit/null for no RAID
                            configuration
                          enum:
                            - raid-0
                            - raid-1
                          nullable: true
                        disk_layout:
                          type: array
                          nullable: true
                          items:
                            type: object
                            required:
                              - count
                              - role
                            properties:
                              count:
                                type: integer
                                minimum: 1
                              role:
                                type: string
                                enum:
                                  - os
                                  - storage
                                  - raw
                              raid_level:
                                type: string
                                enum:
                                  - raid-0
                                  - raid-1
                                nullable: true
                              filesystem:
                                type: string
                                enum:
                                  - ext4
                                  - xfs
                                nullable: true
                              mount_point:
                                type: string
                                nullable: true
                        ipxe:
                          type: string
                          description: >-
                            URL where iPXE script is stored on, OR the iPXE
                            script encoded in base64. This attribute is required
                            when operating system iPXE is selected.
                          nullable: true
                        persistent_netboot:
                          type: boolean
                          description: >-
                            Keep network boot enabled so the server iPXE-boots
                            on every reboot instead of booting from disk. Only
                            supported with the 'ipxe' operating system.
                        public_network:
                          type: boolean
                          nullable: true
                          description: >-
                            **Preview** (`public_network` feature flag). Set to
                            'true' to attach the server onto the given
                            'public_network_id', or 'false' to detach an
                            existing public network, during the reinstall.
                            Requires 'public_network_id' when attaching.
                        public_network_id:
                          type: string
                          nullable: true
                          description: >-
                            ID of a customer public network to attach this
                            server to during the reinstall. The public network
                            must belong to the same project and be in the same
                            location as the server, and must have at least one
                            free IP address. Applies to this reinstall only;
                            omit it to leave any existing public network
                            unchanged.
                  required:
                    - type
              required:
                - data
            examples:
              Created:
                summary: Created
                value:
                  data:
                    type: reinstalls
                    attributes:
                      operating_system: ipxe
                      ipxe: https://some-host.com/image.ipxe
                      hostname: BRC1
          application/vnd.api+json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - reinstalls
                    attributes:
                      type: object
                      properties:
                        operating_system:
                          type: string
                          description: The OS selected for the reinstall process
                          enum:
                            - 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
                        hostname:
                          type: string
                          description: The server hostname to set upon reinstall
                        ssh_keys:
                          type: array
                          description: SSH Key IDs to set upon reinstall
                          items:
                            type: string
                          nullable: true
                        user_data:
                          type: string
                          description: User data ID to set upon reinstall
                          nullable: true
                        raid:
                          type: string
                          description: >-
                            RAID mode for the server. Set to 'raid-0' for RAID
                            0, 'raid-1' for RAID 1, or omit/null for no RAID
                            configuration
                          enum:
                            - raid-0
                            - raid-1
                          nullable: true
                        disk_layout:
                          type: array
                          nullable: true
                          items:
                            type: object
                            required:
                              - count
                              - role
                            properties:
                              count:
                                type: integer
                                minimum: 1
                              role:
                                type: string
                                enum:
                                  - os
                                  - storage
                                  - raw
                              raid_level:
                                type: string
                                enum:
                                  - raid-0
                                  - raid-1
                                nullable: true
                              filesystem:
                                type: string
                                enum:
                                  - ext4
                                  - xfs
                                nullable: true
                              mount_point:
                                type: string
                                nullable: true
                        ipxe:
                          type: string
                          description: >-
                            URL where iPXE script is stored on, OR the iPXE
                            script encoded in base64. This attribute is required
                            when operating system iPXE is selected.
                          nullable: true
                        persistent_netboot:
                          type: boolean
                          description: >-
                            Keep network boot enabled so the server iPXE-boots
                            on every reboot instead of booting from disk. Only
                            supported with the 'ipxe' operating system.
                        public_network:
                          type: boolean
                          nullable: true
                          description: >-
                            **Preview** (`public_network` feature flag). Set to
                            'true' to attach the server onto the given
                            'public_network_id', or 'false' to detach an
                            existing public network, during the reinstall.
                            Requires 'public_network_id' when attaching.
                        public_network_id:
                          type: string
                          nullable: true
                          description: >-
                            ID of a customer public network to attach this
                            server to during the reinstall. The public network
                            must belong to the same project and be in the same
                            location as the server, and must have at least one
                            free IP address. Applies to this reinstall only;
                            omit it to leave any existing public network
                            unchanged.
                  required:
                    - type
              required:
                - data
            examples:
              Created:
                summary: Created
                value:
                  data:
                    type: reinstalls
                    attributes:
                      operating_system: ipxe
                      ipxe: https://some-host.com/image.ipxe
                      hostname: BRC1
        required: true
      responses:
        '201':
          description: Created
          content:
            application/vnd.api+json:
              examples:
                Created:
                  value: {}
        '403':
          description: Forbidden
          content:
            application/vnd.api+json:
              examples:
                FeatureNotEnabled:
                  value:
                    errors:
                      - code: FEATURE_NOT_ENABLED
                        title: Feature Not Enabled
                        detail: Public networks are not enabled for this team
                        status: '403'
              schema:
                $ref: '#/components/schemas/error_object'
        '404':
          description: Not Found
          content:
            application/vnd.api+json:
              examples:
                ServerNotFound:
                  value:
                    errors:
                      - code: REINSTALL_SERVER_NOT_FOUND
                        title: Reinstall Server Not Found
                        detail: Sorry, we're unable to reinstall
                        status: '404'
              schema:
                $ref: '#/components/schemas/error_object'
        '422':
          description: Unprocessable Entity
          content:
            application/vnd.api+json:
              examples:
                ReinstallUnavailable:
                  value:
                    errors:
                      - code: REINSTALL_UNAVAILABLE
                        title: Reinstall Unavailable
                        detail: >-
                          Your server has outdated hardware information and is
                          unable to reinstall. Please contact support for
                          assistance.
                        status: '422'
                ServerBeingProvisioned:
                  value:
                    errors:
                      - code: SERVER_BEING_PROVISIONED
                        title: Unable to reinstall
                        detail: Server is being provisioned
                        status: '422'
                ServerInRescueMode:
                  value:
                    errors:
                      - code: SERVER_IN_RESCUE_MODE
                        title: Server in Rescue Mode
                        detail: Server is in rescue mode and cannot be reinstalled
                        status: '422'
                NetworkConfigError:
                  value:
                    errors:
                      - code: NETWORK_CONFIG_ERROR
                        title: Network Config Error
                        detail: >-
                          Failed to reinstall due to invalid network config on
                          the server.
                        status: '422'
                ReinstallServerFailure:
                  value:
                    errors:
                      - code: REINSTALL_SERVER_FAILURE
                        title: Reinstall Server Failure
                        detail: Failed to reinstall server
                        status: '422'
                PublicNetworkNotSupported:
                  value:
                    errors:
                      - code: PUBLIC_NETWORK_NOT_SUPPORTED
                        title: Public network not supported
                        detail: >-
                          Attaching a public network is not supported for this
                          server
                        status: '422'
                PublicNetworkHasNoFreeAddresses:
                  value:
                    errors:
                      - code: VALIDATION_ERROR
                        title: Validation Error
                        detail: has no free IP addresses
                        status: '422'
                        source:
                          pointer: public_network_id
              schema:
                $ref: '#/components/schemas/error_object'
      security:
        - Bearer: []
      x-codeSamples:
        - lang: python
          label: Python (SDK)
          source: |-
            import latitudesh_python_sdk
            from latitudesh_python_sdk import Latitudesh
            import os


            with Latitudesh(
                bearer=os.getenv("LATITUDESH_BEARER", ""),
            ) as latitudesh:

                latitudesh.servers.reinstall(server_id="sv_aNmodj6ydbE8W", data={
                    "type": latitudesh_python_sdk.CreateServerReinstallServersType.REINSTALLS,
                    "attributes": {
                        "operating_system": latitudesh_python_sdk.CreateServerReinstallServersOperatingSystem.IPXE,
                        "hostname": "BRC1",
                        "ipxe": "https://some-host.com/image.ipxe",
                    },
                })

                # Use the SDK ...
        - lang: go
          label: Go (SDK)
          source: "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := latitudeshgosdk.New(\n        latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n    )\n\n    res, err := s.Servers.Reinstall(ctx, \"sv_aNmodj6ydbE8W\", operations.CreateServerReinstallServersRequestBody{\n        Data: operations.CreateServerReinstallServersData{\n            Type: operations.CreateServerReinstallServersTypeReinstalls,\n            Attributes: &operations.CreateServerReinstallServersAttributes{\n                OperatingSystem: operations.CreateServerReinstallServersOperatingSystemIpxe.ToPointer(),\n                Hostname: latitudeshgosdk.Pointer(\"BRC1\"),\n                Ipxe: latitudeshgosdk.Pointer(\"https://some-host.com/image.ipxe\"),\n            },\n        },\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res != nil {\n        // handle response\n    }\n}"
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            import { Latitudesh } from "latitudesh-typescript-sdk";

            const latitudesh = new Latitudesh({
              bearer: process.env["LATITUDESH_BEARER"] ?? "",
            });

            async function run() {
              await latitudesh.servers.reinstall({
                serverId: "sv_aNmodj6ydbE8W",
                requestBody: {
                  data: {
                    type: "reinstalls",
                    attributes: {
                      operatingSystem: "ipxe",
                      hostname: "BRC1",
                      ipxe: "https://some-host.com/image.ipxe",
                    },
                  },
                },
              });


            }

            run();
components:
  schemas:
    error_object:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                nullable: true
              status:
                type: string
              title:
                type: string
              detail:
                type: string
              source:
                type: object
                properties:
                  pointer:
                    type: string
                  parameter:
                    type: string
              meta:
                type: object
  securitySchemes:
    Bearer:
      type: apiKey
      name: Authorization
      in: header

````