Developers

Workspaces

A workspace is the account boundary an API key acts within. It owns the channels, media, and posts you can reach. Each key is scoped to exactly one workspace; the org behind the key is resolved from the key itself, never from the request.

List workspaces

GET/api/v1/workspaces

Returns the workspaces this key can act on. Because a key is scoped to one workspace today, this is a single-item array, but it stays a list so the contract doesn't break if a key ever spans several workspaces. Scope workspaces:read.

bash
curl https://postme.live/api/v1/workspaces \
  -H "Authorization: Bearer pml_live_..."

Response: 200 OK

json
{
  "data": [
    {
      "id": "9f3a4b2c-6d7e-4a1b-8c9d-0e1f2a3b4c5d",
      "name": "Outback Yak",
      "plan": "community"
    }
  ]
}

This list isn't cursor-paginated; there's never more than one workspace to return. The id here is the workspace you'll see echoed in GET /me.

Get a workspace

GET/api/v1/workspaces/{id}

Single workspace detail, with the workspace's brand inlined. The id must equal the key's own workspace; any other id is a 404, deliberately indistinguishable from "doesn't exist" so a key can't probe for other organizations.

bash
curl https://postme.live/api/v1/workspaces/9f3a4b2c-6d7e-4a1b-8c9d-0e1f2a3b4c5d \
  -H "Authorization: Bearer pml_live_..."

Response: 200 OK

json
{
  "id": "9f3a4b2c-6d7e-4a1b-8c9d-0e1f2a3b4c5d",
  "name": "Outback Yak",
  "plan": "community",
  "brand": {
    "id": "1a2b3c4d-5e6f-4708-9a0b-1c2d3e4f5061",
    "name": "Outback Yak"
  }
}

For the plan's actual limits and current usage, read GET /me. That's where api_rpm, storage, and post caps live.

Workspaces: Public API