# Create a server at Hostinger

You generate an API token in the Hostinger hPanel, store it in the platform, and let the platform create a VPS in your Hostinger account with it.

> Source: https://www.application-platform.com/en/docs/hostinger-tutorial/

The platform creates the server as a VPS through the Hostinger API in your own account. Unlike with Hetzner, you do not pick plan, data center, and operating system from a list but enter the IDs Hostinger assigns to them. You store the API token once as a credential and select it when creating the server.

## 1. Generate an API token in hPanel

1. Sign in to the Hostinger **hPanel**.
2. Generate a new **API token** in the API settings of your account.
3. Copy the token so you can paste it in the next step.

## 2. Store the token in the platform

1. In the platform, open **Servers** → **Manage credentials**.
2. Create a new credential of type **Hostinger API** and paste the token.
3. Save. The platform validates the token right away; if it is rejected, check that you copied it completely.

## 3. Create the VPS

1. Open **Servers** → **Add server** and choose **Hostinger server**.
2. Select the API credential you created in the previous step.
3. Set a **name** and a **server ID**. The server ID is a slug, a short identifier without spaces or special characters.
4. Enter the three Hostinger-specific values. The **VPS plan ID** determines which VPS plan is created, the **data center ID** picks the data center, and the **OS template ID** selects the operating system image. You find the valid IDs in your Hostinger account or in the [Hostinger API and Terraform reference](https://registry.terraform.io/providers/hostinger/hostinger/latest/docs/resources/vps).
5. Confirm. The platform creates the VPS in your Hostinger account, generates a dedicated SSH key for it, and sets up deploy access.

The server is then available when creating or editing projects. Hostinger bills the VPS costs directly to you; the platform only creates the server inside your account. To make the project reachable under a name of your own, continue with the [domain]({{< relref "domain" >}}).

