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

# Workspaces

> Create, read, and edit workspaces — the isolated folder for instances, keys, plan, and team.

<Tip>
  A workspace is the **client folder** at Notifique: instances, keys, plan, balance, and webhooks all live inside it.
</Tip>

## In short

* Every `/v1/...` call runs in the workspace of your **API key**
* The **first workspace** is created on `POST /v1/platform/verify` (registration)
* Additional workspaces: `POST /v1/workspaces` with `workspace:create`
* Login with `workspaceId` + `createApiKey: true` for a key in another workspace

Full flow: [Registration and verification](/en/platform-api/como-funciona/registro-e-verificacao).

## One or many?

| Situation                        | Recommendation             |
| -------------------------------- | -------------------------- |
| One brand, one team              | **1 workspace**            |
| Separate prod and staging        | **2 workspaces**           |
| SaaS with one account per client | **1 workspace per client** |

## API (`/v1/workspaces`)

Scopes: `workspace:read`, `workspace:create`, `workspace:update`, `workspace:delete`.

| Method | Route                 | Use                                                           |
| ------ | --------------------- | ------------------------------------------------------------- |
| GET    | `/v1/workspaces`      | Key's workspace (`data: [workspace]`); `?include=billing`     |
| POST   | `/v1/workspaces`      | Create (slot limit → **403** `WORKSPACE_SLOTS_LIMIT_REACHED`) |
| GET    | `/v1/workspaces/{id}` | Read (only the key's workspace)                               |
| PUT    | `/v1/workspaces/{id}` | Edit name, color, `inboundSettingsPatch`                      |
| DELETE | `/v1/workspaces/{id}` | Delete (requires **≥2** workspaces on account)                |

## List with session (all workspaces)

With login `sessionToken` (not messaging API key):

`GET /v1/platform/workspaces` — all account workspaces with `role` (OWNER, ADMIN, MEMBER). `?include=billing` requires `billing:read`.

## Workspace billing

Plan, balance, and cards use **Platform** routes with the same `workspaceId`:

* `GET /v1/platform/workspaces/:id/subscription`
* `GET /v1/platform/workspaces/:id/balance`
* `GET /v1/platform/workspaces/:id/payment-methods`
* `GET /v1/platform/workspaces/:id/credits/usage` — credit ledger with `correlationId`, channel, and key used (`billing:read`)

See [Billing](/en/platform-api/como-funciona/billing).

## Team (members and invites)

Manage workspace access via Platform API — scopes `workspace:members:read` / `workspace:members:manage`:

| Method | Route                                           | Use                                  |
| ------ | ----------------------------------------------- | ------------------------------------ |
| GET    | `/v1/platform/workspaces/:id/members`           | List members with role and join date |
| DELETE | `/v1/platform/workspaces/:id/members/:userId`   | Remove member                        |
| GET    | `/v1/platform/workspaces/:id/invites`           | Pending invites                      |
| POST   | `/v1/platform/workspaces/:id/invites`           | Invite by email (`email`, `role`)    |
| DELETE | `/v1/platform/workspaces/:id/invites/:inviteId` | Cancel invite                        |

Same routes exist at `/v1/workspaces/:id/*` with a messaging API key.

## Next steps

* [Platform introduction](/en/platform-api/como-funciona/introducao)
* [Scopes](/en/platform-api/como-funciona/escopos-api-key)
