---
title: "List the organization's workspaces"
description: "The organization's workspaces, newest first and cursor-paginated (limit, after, before). `GET /api/v1/organizations/{id}/workspaces`"
url: https://www.unitpost.com/docs/platform/get-organizations-id-workspaces
section: "Platform API reference"
updated: 2026-11-02
---
# List the organization's workspaces

`GET /api/v1/organizations/{id}/workspaces`

The organization's workspaces, newest first and cursor-paginated (`limit`, `after`, `before`). `external_id` narrows to the workspace you gave that id. Takes an organization key (`ok_live_…`) with `organizations:read`.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The organization's id (`org_…`), from `GET /whoami` or Organization → API. |
| `limit` | query | integer | no | — |
| `after` | query | string | no | — |
| `before` | query | string | no | — |
| `external_id` | query | string | no | — |

## Response fields (200)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | enum | yes | One of: `workspace`. |
| `id` | string | yes | `ws_…` |
| `name` | string | yes | — |
| `slug` | string | yes | — |
| `external_id` | string | yes | Your own id for it, unique in the organization. |
| `plan` | string | yes | `free`, or the paid plan's key. |
| `paid_by` | enum | yes | One of: `workspace`, `organization`. |
| `requires_paid_plan` | boolean | yes | No free allowance: the Owner already has a free workspace, so it sends once a plan is bought. |
| `closed_at` | string | yes | — |
| `restorable_until` | string | yes | — |
| `created_at` | string | yes | — |
| `hosted_invoice_url` | string | no | On create only: the card asked for authentication; paying here starts the plan. |

## Responses

| Status | Description |
| --- | --- |
| 200 | A page of workspaces. |
| 401 | Missing or invalid organization key (a workspace key is refused). |
| 403 | API access not approved for the organization, the key lacks the capability, or no User-Agent. |
| 404 | Not this key's organization, or not one of its workspaces. |
| 429 | The organization's rate limit. |

## Example request

```bash
# API: no generated example for GET https://www.unitpost.com/api/v1/organizations/:id/workspaces
```

## Example response (200)

```json
{
  "object": "list",
  "has_more": false,
  "data": [
    {
      "object": "workspace",
      "id": "id_123",
      "name": "Example",
      "slug": "string",
      "external_id": "external_123",
      "plan": "string",
      "paid_by": "workspace",
      "requires_paid_plan": false,
      "closed_at": "2026-01-01T00:00:00.000Z",
      "restorable_until": "2026-01-01T00:00:00.000Z",
      "created_at": "2026-01-01T00:00:00.000Z",
      "hosted_invoice_url": "https://example.com"
    }
  ]
}
```

## Links

- HTML reference (with Node.js, Python, Ruby, PHP, Laravel, Go, Java, Rust, .NET and CLI examples): https://www.unitpost.com/docs/platform/get-organizations-id-workspaces
- OpenAPI 3.1 (full schemas): https://www.unitpost.com/api/v1/openapi.json
