Organizations
All paths are relative to the base URL. :orgId accepts either a UUID or a slug.
A key only sees the organization it belongs to.
BASE URL
https://api.builderbase.com Read
Get organization GET /organizations/:slug
{ "success": true, "data": { "organization": { "id": "8f2a9c14-3b7e-4d61-a0f5-6c1b9e2d4a83", "name": "Northwind Labs", "slug": "northwind-labs" }, "member_count": 4, "can_create_events": true, "onboarding_state": { "team_setup_complete": true, "invitation_count": 2, "member_count": 4 } }}Caller must be a member of the org.
List members GET /organizations/:orgId/members
{ "data": { "members": [ { "user_id": "b3d8e1f0-2c5a-4e9b-8d17-3f6a0c2b5e94", "role": "OWNER", "email": "alice.rivera@northwind.io", "name": "Alice Rivera", "avatar_url": "https://cdn.builderbase.com/avatars/alice.png" } ], "pagination": { "total": 4, "limit": 50, "offset": 0, "has_more": false } }} Get my permissions GET /organizations/:orgId/me/permissions
{ "data": { "role": "ADMIN", "permissions": { "events_manage": true, "members_manage": true } }}Write
Creating an organization is not available via the API - it’s an account-level onboarding step and must be done from the dashboard.
Update organization PATCH /organizations/:id
{ "data": { "id": "8f2a9c14-3b7e-4d61-a0f5-6c1b9e2d4a83", "name": "Northwind Labs", "slug": "northwind-labs" }}{ "name": "Northwind Labs", "tagline": "Where builders ship", "company_type": "startup", "size_band": "1-10", "hq_country_id": 56, "industry_tags": [ "ai", "fintech" ], "operating_regions": [ 12, 34 ], "linkedin_url": "https://linkedin.com/company/northwind-labs"}All fields optional - send any subset.
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | No | Changing it regenerates the org slug. |
tagline, bio | string | No | |
logo_url, website, website_blog_url, linkedin_url, github_url, twitter_url, facebook_url, instagram_url, youtube_url, discord_url, tiktok_url | string (URL) | No | |
company_type | string | No | Must be one of the allowed company types, else 400 INVALID_COMPANY_TYPE. |
size_band | string | No | Must be one of the allowed size bands, else 400 INVALID_SIZE_BAND. |
hq_city | string | No | |
hq_country_id | number | No | Country id (numeric, not a UUID). |
industry_tags | string[] | No | Array of tag strings. |
operating_regions | number[] | No | Array of region ids. |
Add member POST /organizations/:orgId/members
{ "data": { "id": "a1c7e9d3-8b2f-4a60-9d15-6e3c0b7a2f48", "user_id": "c4e9f2a1-5d6b-4f0c-9e28-4a7b1d3c6f05", "role": "MEMBER" }}{ "user_id": "c4e9f2a1-5d6b-4f0c-9e28-4a7b1d3c6f05", "role": "MEMBER"}| Field | Type | Required | Notes |
|---|---|---|---|
user_id | string (UUID) | Yes | An existing BuilderBase user (36-char UUID). |
role | string (enum) | Yes | One of OWNER, ADMIN, EVENT_MANAGER, COMMUNICATIONS, FINANCE, VIEWER, MEMBER. |
Allowed roles (case-sensitive, UPPERCASE): OWNER, ADMIN, EVENT_MANAGER,
COMMUNICATIONS, FINANCE, VIEWER, MEMBER. Lowercase returns
400 INVALID_ROLE. Returns 409 if the user is already a member.
Update member role PATCH /organizations/:orgId/members/:userId
{ "data": { "updated": true }}{ "role": "ADMIN"}| Field | Type | Required | Notes |
|---|---|---|---|
role | string (enum) | Yes | One of OWNER, ADMIN, EVENT_MANAGER, COMMUNICATIONS, FINANCE, VIEWER, MEMBER. |
Remove member DELETE /organizations/:orgId/members/:userId
{ "data": { "deleted": true }}