Docs › Concepts › Workspaces and members
Workspaces and members: share with your team
A workspace holds channels, posts and keys. Invite people to share one, give them a role, and switch between the workspaces you belong to.
A workspace is where everything in OmniPosts lives: connected channels, posts and drafts, media, the posting queue, webhooks, API keys and the plan. When you sign up you get one workspace of your own. You can create more, and you can invite other people into a workspace so you work on the same channels together.
The API calls a workspace an organization in GET /v1/me. It is the same thing.
One workspace at a time
You can belong to several workspaces, but each signed-in session acts for one of them, the current workspace. Everything you see and do (channels, posts, the queue) is in the current workspace.
GET /v1/workspaceslists the workspaces you belong to.currentmarks the one you are in.POST /v1/workspaces/{id}/switchmakes another one current for this session. Other browsers where you are signed in stay where they are.
An API key always acts for the workspace it was created in. A key sees only that workspace in
GET /v1/workspaces.
Roles
A member is either an owner or a member.
| Owner | Member | |
|---|---|---|
| Connect channels, post, schedule, upload media, use the queue | Yes | Yes |
| Create and revoke API keys | Yes | Yes |
| Rename or delete the workspace | Yes | No |
| Invite people, change roles, remove members | Yes | No |
| Change the plan | Yes | No |
| Delete their own account | Yes | Yes |
A workspace always has at least one owner. To step down as the last owner, make someone else an owner
first. PATCH /v1/workspaces/{id}/members/{userId} changes a role. Trying to remove the last owner gets
409 last_owner.
Invite someone
An owner creates an invite with POST /v1/workspaces/{id}/invites. The answer holds an inviteUrl, a link to
the OmniPosts web app (https://omniposts.dev/app/invite/...) where the person signs in, or signs up, and accepts. OmniPosts does
not send emails, so send the link yourself.
{ "email": "grace@example.com", "role": "member" }
- The link works once, for 7 days. An invite to become an owner must name the person's email and works for 48 hours. OmniPosts stores only a hash of the link, so it is shown only in this answer.
- An invite carries its creator's authority: it stops working if they stop being an owner, and their pending invites are revoked when they are demoted or removed.
- With
email, only the account with that address can accept it. Leaveemailout for a link anyone signed in can use, and share it with care. - The address is compared with the email of the OmniPosts account that opens the link. OmniPosts does not confirm email addresses at sign-up, so treat the link itself as the secret: send it only to the person you mean.
GET /v1/workspaces/{id}/inviteslists invites still waiting, andDELETE /v1/workspaces/{id}/invites/{inviteId}revokes one.
The person who opens the link signs in (or signs up), sees which workspace it is for with
GET /v1/invites/{token}, and joins with POST /v1/invites/{token}/accept. Joining does not switch them to
the workspace; they switch when they are ready.
Leave or remove someone
DELETE /v1/workspaces/{id}/members/{userId} removes a member. An owner can remove anyone, and anyone can
remove themselves to leave. Access stops at once: their sessions move to another workspace they belong to, and
the API keys they created in this workspace are revoked. The channels they connected are disconnected
when they leave: the platform sign-in was theirs, so OmniPosts deletes its copy of the tokens. Their pending
connects and invites there go too. Keys and channels made by others keep working. Settings → Agents & API
shows who created each key, and each channel shows who connected it. A channel connected before OmniPosts
recorded who connected it shows no one, and is never disconnected on anyone's behalf.
- You cannot leave your only workspace (
409 last_workspace). Create or join another one first. - If an owner removes someone from the only workspace they had, that person gets a new, empty workspace of their own, so they can still sign in.
Delete a workspace
An owner deletes a workspace with DELETE /v1/workspaces/{id}, sending the workspace's name to confirm:
{ "confirm": "Marketing" }
You can delete a workspace only when you are its only member (remove the others first, else
409 members_remain) and it is not your only workspace (409 last_workspace). Your sessions in it move to
your other workspace.
Limits
You can own up to 10 workspaces, and a workspace can have up to 50 invites waiting at once. Each workspace has its own plan: a new one starts on the plan a new sign-up gets.
Delete your account
Deleting your account (POST /v1/settings/delete-account) deletes you, not a workspace you share. You
leave every workspace that has other members (the channels you connected there are disconnected), and
every workspace where you are the only member is deleted. Nobody else's account changes. If you are the only owner of a workspace that has other members,
OmniPosts refuses with 409 sole_owner_with_members until you make one of them an owner or remove them. See
Export or delete your data.