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

# Criar stack

> Cria uma stack com apps e bancos de dados que você já tem e, opcionalmente, conecta um ao outro.

Agrupa apps e bancos de dados que já existem em uma única stack. Todos os membros precisam pertencer à mesma conta ou workspace, e nenhum pode estar em outra stack. Para criar uma stack a partir de uma pasta em um único passo, veja [Transformar pasta em stack](https://docs.vertracloud.app/pt-br/api-reference/endpoint/stacks/transform.md). Precisa do escopo `stacks:write` quando chamado com uma chave de API. Só o dono de um workspace pode criar stacks nele.

**name** `string` *required*

O nome da stack.

**description** `string | null`

Descrição opcional.

**network\_mode** `string` (default: public)

Só `public` é aceito. Qualquer outro valor falha com `STACK_NETWORK_MODE_UNAVAILABLE`.

**members** `object[]`

Os recursos a colocar na stack. Cada item tem `resource_type` (`application` ou `database`) e `resource_id`. Uma pasta do Blob é adicionada depois, com [Adicionar pasta do Blob](https://docs.vertracloud.app/pt-br/api-reference/endpoint/stacks/blob/create.md).

**bindings** `object[]`

Conexões a criar entre os membros. Cada item tem `app_id` (o app que recebe as variáveis), exatamente um entre `database_id` ou `target_app_id`, e um `env_map` opcional (nome da variável para o que ela recebe; veja [Criar conexão](https://docs.vertracloud.app/pt-br/api-reference/endpoint/stacks/bindings/create.md)). Sem `env_map`, usam-se os nomes padrão do engine.

**workspace\_id** `string`

O workspace que será dono da stack.

### Resposta

**response** `object`

A stack criada (`201`), com os mesmos campos de [Obter stack](https://docs.vertracloud.app/pt-br/api-reference/endpoint/stacks/get.md), mais:

**Mostrar objeto**

**restart\_required** `boolean`

`true` quando pelo menos um app precisa reiniciar para ler as variáveis ou os certificados que as novas conexões criaram. Um app lê esses dados só quando inicia, então a plataforma não o reinicia por você.

**apps\_to\_restart** `string[]`

Os apps que precisam reiniciar. Vazio quando `restart_required` é `false`. Reinicie-os com [Reiniciar app](https://docs.vertracloud.app/pt-br/api-reference/endpoint/apps/restart.md).

Os mesmos dois campos voltam em toda alteração que possa mudar variáveis ou certificados de um app: transformar, adicionar ou remover um membro, criar ou alterar uma conexão, adicionar um banco de dados ou uma pasta do Blob.

```json Response theme={null}
{
  "response": {
    "id": "stk-abc123def456",
    "name": "shop",
    "network_mode": "public",
    "members": [],
    "bindings": [],
    "restart_required": true,
    "apps_to_restart": ["app-abc123def456"]
  }
}
```

```bash cURL theme={null}
curl -X POST https://api.vertracloud.app/v1/stacks \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "shop",
    "members": [
      { "resource_type": "application", "resource_id": "app-abc123def456" },
      { "resource_type": "database", "resource_id": "db-abc123def456" }
    ],
    "bindings": [{ "app_id": "app-abc123def456", "database_id": "db-abc123def456" }]
  }'
```

### Erros

| Status | Código | Quando |
| - | - | - |
| 400 | `STACK_NETWORK_MODE_UNAVAILABLE` | `network_mode` não é `public`. |
| 409 | `STACK_MEMBER_CONFLICT` | Um recurso já está em outra stack, ou não está na mesma conta ou workspace que a stack. |
| 403 | `WORKSPACE_OWNER_ONLY` | Você é membro do workspace, não o dono. |
| 404 | `APP_NOT_FOUND` | Um app não existe ou não é seu. |
| 404 | `DATABASE_NOT_FOUND` | Um banco de dados não existe ou não é seu. |


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