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

# Regions and app sizes

> See where StackShift can run your app today and which app sizes your plan allows, from the dashboard, CLI, API or Terraform.

> [!TIP]
>
> **Live.** This area is documented as current, user-reliable behavior.

## Goal

Pick a region and an app size that your plan allows before you create an app, so it lands where you expect with the resources it needs.

## Prerequisites

* A StackShift account
* The CLI or an API client if you are automating

## Workflow

**Step 1**

List regions with `stackshift project regions`. Regions where apps are available show `apps.available: true`.

**Step 2**

List app sizes with `stackshift project sizes`. Pick a size whose `plans` include your plan.

**Step 3**

Create the app with that `region` and `resource_preset`. Leave `region` empty or set it to `auto` to let StackShift choose.

**Step 4**

Check the app page: it shows the region and size you chose.

## Regions

A region is listed only when at least one product can run there right now. Each region shows which products it offers: apps (with the tier, `shared` for Free and Ignite apps and `isolated` for Pro and Enterprise apps), databases and servers. `status: "degraded"` means some machines in that region are not ready; new apps may wait longer to start.

The region is fixed when you create an app. Moving an existing app to another region is not supported yet: create a new app in the target region and move your traffic and data.

```json GET /api/v1/regions (no sign-in needed) theme={null}
{
  "success": true,
  "data": {
    "default_region": "hel1",
    "regions": [
      {
        "id": "hel1",
        "name": "Helsinki, Finland",
        "country_code": "FI",
        "default": true,
        "status": "available",
        "products": {
          "apps": { "available": true, "tiers": ["shared", "isolated"] },
          "databases": { "available": true, "tiers": ["starter"] },
          "vps": { "available": false, "tiers": [] }
        }
      }
    ]
  }
}
```

## App sizes

Each size sets the CPU and memory for every copy of your app. `memory_mb` and `cpu_millicores` show the resources; `min_plan` and `plans` show which plans can use it. Sizes with `listed: false` still work for apps that already use them but are hidden from the size picker.

`included_in_plan: true` means the size costs nothing extra on top of your plan. See [https://stackshift.cloud/pricing](https://stackshift.cloud/pricing) for plan prices.

Changing a size in the catalog never resizes your running apps; it applies when you next choose a size.

* Set the size with `resource_preset` when you create or update an app. An unknown slug is refused with the list of valid ones.
* Your plan still caps memory and CPU per app. `max_cpu_millicores: -1` means no CPU cap.
* To see your plan’s default size, read `default_resource_preset` from `GET /api/v1/billing/subscription`.

## Terraform

The Terraform provider has a `stackshift_regions` data source (filter with `product = "apps"`, `"databases"` or `"vps"`) and a `stackshift_app_sizes` data source (`listed_only = true` keeps the picker sizes). A project’s `region` is optional; when you leave it out, StackShift chooses and records it.

```hcl theme={null}
data "stackshift_regions" "apps" {
  product = "apps"
}

data "stackshift_app_sizes" "picker" {
  listed_only = true
}
```

## Expected result

> [!TIP]
>
> Your app runs in the region you chose, with the CPU and memory of the selected size.

## Common failures

> [!WARNING]
>
> * `region "x" isn't available for apps on this plan`: pick a region from `stackshift project regions` where apps are available for your plan’s tier, or leave the region empty.
> * Changing the region of an existing app is refused: create a new app in the other region instead.
> * A size is refused for your plan: choose a size whose `plans` include your plan, or upgrade the plan.

## Related guides

> **[Deploy a Docker image](https://docs.stackshift.cloud/projects/deploy-a-docker-image.md)**
>
> Run a raw container image through the project flow when you already have an image and need runtime configuration, resource sizing, storage, domains, and placement.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.