Skip to main content

Overview

Proliferate uses Organizations as the top-level container for teams. Each organization can have multiple members with different roles and permissions, and contains all your projects, issues, and settings.

Organizations

Creating an Organization

Every user automatically gets an organization when they sign up. You can create additional organizations for different companies or teams.
curl -X POST https://api.proliferate.com/api/v1/organizations \
  -H "Authorization: Bearer YOUR_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corp",
    "slug": "acme-corp"
  }'
Request Body:
name
string
required
Organization name (1-255 characters)
slug
string
URL-friendly identifier (auto-generated from name if not provided)

Listing Organizations

Get all organizations you’re a member of:
GET /api/v1/organizations
Response:
[
  {
    "id": 123,
    "name": "Acme Corp",
    "slug": "acme-corp",
    "created_at": "2025-01-01T00:00:00Z",
    "updated_at": "2025-01-15T10:30:00Z"
  }
]

Organization Details

Get detailed information about an organization, including members:
GET /api/v1/organizations/{org_id}
Response:
{
  "id": 123,
  "name": "Acme Corp",
  "slug": "acme-corp",
  "created_at": "2025-01-01T00:00:00Z",
  "updated_at": "2025-01-15T10:30:00Z",
  "user_role": "owner",
  "members": [
    {
      "id": 456,
      "email": "[email protected]",
      "first_name": "John",
      "last_name": "Doe",
      "profile_picture_url": "https://...",
      "role": "owner",
      "joined_at": "2025-01-01T00:00:00Z"
    }
  ],
  "member_count": 1
}

Roles and Permissions

Proliferate has three role levels:

Owner

Full control over the organization. Permissions:
  • All admin permissions
  • Delete the organization
  • Transfer ownership to another member
  • Remove other owners
Limitations:
  • Cannot leave the organization (must delete it or transfer ownership first)
  • Cannot be removed by non-owners

Admin

Manage organization settings and members. Permissions:
  • Create, update, and delete projects
  • Create and revoke API keys
  • Invite new members
  • Update member roles (except owners)
  • Remove members (except owners)
  • Update organization settings
Limitations:
  • Cannot delete the organization
  • Cannot transfer ownership
  • Cannot modify owner roles

Member

Basic access to view and work with projects. Permissions:
  • View projects and issues
  • View session replays
  • View logs
  • Create comments and updates on issues
Limitations:
  • Cannot invite new members
  • Cannot modify organization settings
  • Cannot create or delete projects
  • Cannot manage API keys

Managing Members

Inviting Members

Owners and admins can invite new members via email:
curl -X POST https://api.proliferate.com/api/v1/organizations/{org_id}/invite \
  -H "Authorization: Bearer YOUR_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "role": "member"
  }'
Request Body:
email
string
required
Email address of the person to invite
role
string
required
Role to assign: owner, admin, or member
Response:
{
  "id": 789,
  "organization_id": 123,
  "email": "[email protected]",
  "role": "member",
  "token": "inv_abc123...",
  "expires_at": "2025-01-22T10:30:00Z",
  "created_at": "2025-01-15T10:30:00Z",
  "organization_name": "Acme Corp"
}
Invitations expire after 7 days. An invitation email is automatically sent to the recipient.

Viewing Members and Invites

Get a combined view of active members and pending invitations:
GET /api/v1/organizations/{org_id}/members-and-invites
Response:
{
  "members": [
    {
      "id": 456,
      "email": "[email protected]",
      "first_name": "John",
      "last_name": "Doe",
      "profile_picture_url": "https://...",
      "role": "owner",
      "joined_at": "2025-01-01T00:00:00Z"
    }
  ],
  "invites": [
    {
      "id": 789,
      "email": "[email protected]",
      "role": "member",
      "invited_at": "2025-01-15T10:30:00Z",
      "expires_at": "2025-01-22T10:30:00Z",
      "is_expired": false
    }
  ],
  "total_members": 1,
  "total_invites": 1
}

Accepting an Invitation

When a user receives an invitation email, they click the link to accept:
1

Get Invitation Details

GET /api/v1/organizations/invites/accept/{token}
2

Sign In or Sign Up

The user must be authenticated to accept the invitation
3

Accept Invitation

POST /api/v1/organizations/invites/accept/{token}
Response:
{
  "message": "Successfully joined the organization",
  "organization_id": 123,
  "organization_name": "Acme Corp",
  "membership_id": 999
}
The invitation email must match the user’s account email, or the user must already have an account to accept the invitation.

Updating Member Roles

Owners and admins can change a member’s role:
PATCH /api/v1/organizations/{org_id}/members/{user_id}
Request Body:
{
  "role": "admin"
}
Restrictions:
  • You cannot change your own role
  • Only owners can modify other owners’ roles
  • Admins cannot modify owner roles

Removing Members

Remove a member from the organization:
DELETE /api/v1/organizations/{org_id}/members/{user_id}
Restrictions:
  • You cannot remove yourself (use the leave endpoint instead)
  • Only owners can remove other owners
  • Admins cannot remove owners

Leaving an Organization

Members can leave an organization they didn’t create:
DELETE /api/v1/organizations/{org_id}/leave
Restrictions:
  • You cannot leave an organization you created (delete it instead)
  • If you’re the last owner, you must transfer ownership first

Revoking Invitations

Cancel a pending invitation:
DELETE /api/v1/organizations/{org_id}/invites/{invite_id}
Only owners and admins can revoke invitations.

Transferring Ownership

Owners can transfer ownership to another member:
POST /api/v1/organizations/{org_id}/transfer-ownership
Request Body:
{
  "user_id": 789
}
1

New Owner Promoted

The target user becomes an owner
2

Original Owner Demoted

The original owner becomes an admin
This action is immediate and cannot be undone. Ensure the new owner is trustworthy and understands their responsibilities.

Deleting an Organization

Owners can delete an organization:
DELETE /api/v1/organizations/{org_id}
Deleting an organization is permanent and will delete:
  • All projects
  • All error events and issues
  • All session replays
  • All logs
  • All API keys
  • All member associations

Best Practices

Role Assignment

  • Start with member role: Invite new team members as members by default
  • Promote when needed: Upgrade to admin when they need to manage projects or keys
  • Limit owners: Keep the number of owners small (1-2 people)

Invitation Management

  • Review pending invitations regularly: Revoke expired or outdated invitations
  • Use descriptive emails: Ensure the invitation email matches the recipient’s work email
  • Set expectations: Let invitees know what role they’re being assigned

Security

  • Remove inactive members: Regularly audit your member list
  • Use SSO when available: Integrate with WorkOS for enterprise SSO
  • Rotate owners carefully: Only transfer ownership to trusted, long-term team members

Multiple Organizations

Create separate organizations for:
  • Different companies: If you’re a consultant or agency
  • Different departments: For large companies with separate teams
  • Testing: Create a test organization for experimenting
Users can be members of multiple organizations. Switch between them using the organization selector in the dashboard.