Skip to main content
Every pod belongs to a team, and every request acts on your active team. See Teams for what a team is and how billing is scoped to it. Most write operations here are owner-only. There are two roles, owner and member.

List Your Teams

Response: 200 OK
Every team you belong to, whether you own it or were invited to it.

Create a Team

Response: 201 Created - returns the team. The slug is derived from the name; you don’t set it. You become the owner.

Get a Team

Returns 404 if the team doesn’t exist or you’re not a member of it - the two are deliberately indistinguishable.

Update a Team

Renaming re-derives the slug. Owner-only (403 otherwise).

Delete a Team

Response: 200 OK
Owner-only.
A team that still owns pods cannot be deleted. You get a 409 naming the count: delete or transfer its pods first. This is a guard, not an inconvenience - pods orphaned from their team keep running and keep accruing charges with nothing able to bill or reach them.

Switch Active Team

Sets which team subsequent requests act on. Returns the updated user object. Returns 403 if you aren’t a member of that team.
An API token is bound to the team that was active when you created it, and switching does not move it. A token always acts on its own team, which is what makes it safe to leave in CI.

Members

List Members

List Members With Names

The same list with each member’s name and email resolved, which is what the team settings screen renders. Use this when you want to show who someone is rather than just their user ID.

Add a Member

Adds someone who already has an InstaPods account directly, with no invitation step. Use invitations for anyone else. Response: 201 Created - returns the membership. Owner-only.

Remove a Member

Response: 200 OK
The owner can remove anyone; anyone can remove themselves (that’s how you leave a team). The team owner cannot be removed - transfer ownership or delete the team instead.

Invitations

For inviting someone who doesn’t have an account yet. An invitation is a signed link, valid for 7 days.

Send an Invitation

Response: 201 Created
Owner-only. Returns 409 if that email already belongs to a member of this team.

List Pending Invitations

Owner-only.

Revoke an Invitation

Owner-only. Returns {"status": "deleted"}.

Look Up an Invitation

Public - this is what the invitation landing page calls before the recipient has an account. It returns only what’s needed to render “you’ve been invited”, never the team’s contents:
Returns 404 for a token that is unknown or expired.

Accept an Invitation

Works two ways, depending on whether the caller is signed in. Already signed in - send just the token:
No account yet - sign up and join in one call:
This registers the account, logs it in (setting the session cookie) and joins the team. Omitting any of email, name or password while signed out returns 401. Response: 200 OK
status is already_member if you were already on the team; either way the invitation is consumed and the team becomes your active one.