---
title: How to Create a Cluster Using an Instance Template
url: https://docs.vultr.com/products/compute/clusters/how-to-create-a-cluster-using-an-instance-template
description: Create a Vultr cluster using a reusable instance template that defines the plan, OS, SSH keys, and startup script for consistent deployments.
publish_date: 2026-04-17T14:08:47.623314Z
last_updated: 2026-04-23T16:39:05.235179Z
---

Instance templates define a reusable blueprint for instances including the plan, OS, SSH keys, startup script, VPC, and storage configuration. Using a template when creating a cluster ensures consistent deployments and simplifies scaling.

This guide explains how to create a cluster using an existing instance template via the Vultr API. To create a cluster by specifying a plan directly, see [How to Create a Cluster](https://docs.vultr.com/products/compute/clusters/how-to-create-a-cluster).

1. Send a `GET` request to the [**List Instance Templates** endpoint](https://www.vultr.com/api/#tag/instance-templates/operation/list-instance-templates) to retrieve all available templates. If you do not have a template, create one by following [How to Create an Instance Template](https://docs.vultr.com/products/compute/clusters/instance-templates/how-to-create-an-instance-template).

    ```console
    $ curl "https://api.vultr.com/v2/instances/templates" \
        -X GET \
        -H "Authorization: Bearer ${VULTR_API_KEY}"
    ```

    Note the `id` of the template you want to use.

1. Send a `POST` request to the [**Create Cluster** endpoint](https://www.vultr.com/api/#tag/clusters/operation/create-cluster) to create a new cluster using the template. Replace `REGION` with the region identifier, `TEMPLATE-ID` with the instance template id, and `CLUSTER-LABEL` with a descriptive name. Set `type` to `vps`, `bare-metal`, or `gpu-fabric` depending on your cluster configuration. The `desired_pool_count` must be equal to or greater than `min_pool_count`.

    ```console
    $ curl "https://api.vultr.com/v2/clusters" \
        -X POST \
        -H "Authorization: Bearer ${VULTR_API_KEY}" \
        -H "Content-Type: application/json" \
        -d '{
            "region": "REGION",
            "instance_template": "TEMPLATE-ID",
            "label": "CLUSTER-LABEL",
            "type": "vps",
            "min_pool_count": 2,
            "desired_pool_count": 2,
            "hostname": "HOSTNAME",
            "notify_activate": true
        }'
    ```

    A successful request returns an HTTP `200 OK` response with the cluster details. Note the cluster `id` for future operations.

1. Send a `GET` request to the [**Get Cluster** endpoint](https://www.vultr.com/api/#tag/clusters/operation/get-cluster) to retrieve the cluster details. Replace `{cluster-id}` with the id from the previous step.

    ```console
    $ curl "https://api.vultr.com/v2/clusters/{cluster-id}" \
        -X GET \
        -H "Authorization: Bearer ${VULTR_API_KEY}"
    ```

    Verify that the cluster status progresses from `Pending` to `Active` once all instances are provisioned.