Skip to content

Organizations

An organization the authenticated user belongs to.

Operation Method + path Token scope Role Notes
List organizations GET /organizations.json read or write Authenticated user Paginated
Show organization GET /organizations/:id.json read or write Organization member ETag on show
Create organization POST /organizations.json write Authenticated user Creator becomes owner
Update organization PATCH /organizations/:id.json write Organization admin Avatar upload requires multipart
Delete organization avatar DELETE /organizations/:organization_id/avatar write Organization admin Removes the attached avatar
Delete organization DELETE /organizations/:id.json write Organization owner Guarded by subscription and resource checks
{
"id": "gKpMxN",
"name": "Acme Cosmetics",
"privacy_setting": "public",
"website": "https://acme.example.com",
"created_at": "2026-04-01T10:00:00Z",
"updated_at": "2026-05-01T10:00:00Z",
"url": "https://app.paidcollabs.com/organizations/gKpMxN.json",
"avatar_url": "https://app.paidcollabs.com/rails/active_storage/..."
}

privacy_setting is one of public, private, restricted. avatar_url is omitted when no avatar is attached.

GET /organizations.json

Returns the organizations the authenticated user belongs to. Paginated — see Pagination.

GET /organizations/:id.json

Returns one organization. Sets an ETag — supply If-None-Match for 304 Not Modified. Returns 404 if the organization exists but you’re not a member.

POST /organizations.json
{ "organization": { "name": "Hot new organization", "privacy_setting": "public" } }

Requires a write-scoped token. The authenticated user becomes the organization’s owner. Returns 201 Created with the new organization. Avatar upload requires a multipart request.

PATCH /organizations/:id.json
{ "organization": { "name": "Renamed", "website": "https://new.example.com" } }

Requires write scope and an admin role on the organization. Avatar upload requires a multipart request. To remove an existing avatar, call DELETE /organizations/:organization_id/avatar.

DELETE /organizations/:id.json

Returns 204 No Content. Fails with 422 if the organization still has an active subscription, any campaigns, or any collabs.

Code When
401 Missing token, or read token attempting a write
403 Authenticated, but role does not permit this action
404 Organization does not exist for you
422 Validation failed, or a delete guard blocked the operation