- Its own set of connected social accounts (one Instagram account, one TikTok handle, etc.)
- Its own posts, drafts, and publish history
- Its own media library and folders
- Its own team (owner, admins, editors, client reviewers)
API key access models
When you mint a key in the dashboard you pick between two access modes:- Full access (default) — the key can act on every workspace its owner is a member of. A new workspace the owner joins later is automatically reachable.
- Scoped — the key is restricted to an explicit allow-list of
workspaces. Toggle “Full access” off in the create-key sheet and
pick the workspaces from the list. Any call targeting a workspace
outside the allow-list returns
403.
postbreeze.posts.get, postbreeze.media.move) derive the workspace
from the referenced row server-side — you never have to look it up
client-side.
Workspace inference
How the workspace gets resolved on each call:
Fan-out lists (no
workspaceId) query every workspace the key can
act on and return a single merged list, newest-first. Each row carries
its own workspaceId so callers can group or filter client-side.
Resource calls don’t need a workspaceId either: the server reads it
off the referenced row. The SDK accepts an optional workspaceId on
those for client-side defense-in-depth (“assert that this post lives
in workspace X”) but it’s purely informational.