Install the SDK
Authentication
Postbreeze authenticates every request with a Bearer API key. Keys look likepb_live_<random> and are mintable from the dashboard.
Getting your API key
Open Settings → Developers → New API key in the dashboard. Leave Full access toggled ON for the simplest setup — the key will work across every workspace you belong to.Set up the client
Key concepts
Four foundational primitives in Postbreeze:- Workspaces — containers that group connected accounts, posts, and team members together (think “brands” or “clients”)
- Social accounts — your connected Instagram, X, TikTok, etc., belonging to a workspace
- Posts — content to publish, schedulable to multiple accounts across platforms simultaneously
- Media — images and videos uploaded to your library, reusable across posts
Step 1: Create a workspace
A workspace is the top-level tenant. If you’re an agency managing multiple brands, create one workspace per brand.id value — you’ll need it for the next step.
Step 2: Connect a social account
Now connect a social media account to the workspace. This uses OAuth, so it returns anauthorizeUrl that the user opens in a
browser to grant access.
Available platforms
INSTAGRAM, FACEBOOK_PAGE, X, LINKEDIN_PERSON,
LINKEDIN_COMPANY, TIKTOK_PERSONAL, TIKTOK_BUSINESS, YOUTUBE,
PINTEREST, THREADS, BLUESKY.
Step 3: Get your connected accounts
List the accounts your key can act on. By default the call returns every account across every workspace — each row carries its ownworkspaceId.
workspaceId:
Step 4: Schedule your first post
Use anaccountId from the previous step. The workspace is derived
from the account — no workspaceId argument needed here.
Posting to multiple platforms
Add more entries to theplatforms array to cross-post the same
content. Same caption goes to every account unless you override it
per-platform with captionOverride.
Publishing immediately
To publish right now instead of scheduling, setscheduledFor to a
few seconds in the future:
Creating a draft
To save a post without scheduling, omitscheduledFor:
DRAFT and won’t publish until you
later call posts.schedule({ postId, scheduledAt }).
What’s next?
- Platform guides — Instagram, TikTok, X, …
- Adding media — images, videos, URL ingest
- Webhooks — react to events as they happen
- Workspaces — multi-tenant patterns
- MCP install — drive Postbreeze from Claude / Cursor