Search Documentation
Search across all documentation pages
Memberships

Memberships

Memberships represent a user’s role and access within an organization. Each membership defines what a user can do — from read-only viewing to full owner access.

Base path: transcodely.v1.MembershipService Requires: X-Organization-ID header on all endpoints.


Roles

RoleDescription
ownerFull access. Can manage billing, delete the organization, and perform all admin actions.
adminCan manage members and resources. Cannot delete the organization or manage billing.
memberCan manage resources (jobs, presets, origins). Cannot manage members.
viewerRead-only access to all resources.

List Memberships

List members of an organization with their user details. Requires viewer permission or higher.

POST /transcodely.v1.MembershipService/List

Request

FieldTypeRequiredDescription
statusstringNoFilter by membership status: "active", "invited", or "suspended".
paginationobjectNoPagination parameters. See Pagination.

Response

FieldTypeDescription
membershipsMembershipWithUser[]List of memberships with user details.
paginationobjectPagination metadata.

MembershipWithUser object

FieldTypeDescription
membershipMembershipThe membership record.
user_emailstringUser’s email address.
user_namestringUser’s display name.
user_is_activebooleanWhether the user account is active.

Membership object

FieldTypeDescription
idstringUnique identifier (e.g., "mem_a1b2c3d4e5").
user_idstringUser ID.
org_idstringOrganization ID.
rolestringOne of: "owner", "admin", "member", "viewer".
statusstringOne of: "active", "invited", "suspended".
invited_bystringID of the user who sent the invitation. Omitted if not applicable.
invited_atstringISO 8601 timestamp of invitation. Omitted if not applicable.
accepted_atstringISO 8601 timestamp of acceptance. Omitted if not applicable.
created_atstringISO 8601 timestamp.
updated_atstringISO 8601 timestamp.

Example

curl -X POST https://api.transcodely.com/transcodely.v1.MembershipService/List 
  -H "Authorization: Bearer {{API_KEY}}" 
  -H "X-Organization-ID: {{ORG_ID}}" 
  -H "Content-Type: application/json" 
  -d '{
    "status": "active",
    "pagination": {"limit": 20}
  }'
{
  "memberships": [
    {
      "membership": {
        "id": "mem_a1b2c3d4e5",
        "user_id": "usr_a1b2c3d4e5",
        "org_id": "org_f6g7h8i9j0",
        "role": "owner",
        "status": "active",
        "created_at": "2025-01-10T08:00:00Z",
        "updated_at": "2025-01-10T08:00:00Z"
      },
      "user_email": "jane@acme.com",
      "user_name": "Jane Doe",
      "user_is_active": true
    },
    {
      "membership": {
        "id": "mem_f6g7h8i9j0",
        "user_id": "usr_q2w3e4r5t6",
        "org_id": "org_f6g7h8i9j0",
        "role": "member",
        "status": "active",
        "invited_by": "usr_a1b2c3d4e5",
        "invited_at": "2025-01-20T14:00:00Z",
        "accepted_at": "2025-01-20T15:30:00Z",
        "created_at": "2025-01-20T14:00:00Z",
        "updated_at": "2025-01-20T15:30:00Z"
      },
      "user_email": "bob@acme.com",
      "user_name": "Bob Johnson",
      "user_is_active": true
    }
  ],
  "pagination": {
    "next_cursor": "",
    "total_count": 2
  }
}

Get Membership

Retrieve a specific membership by its ID. Requires viewer permission or higher.

POST /transcodely.v1.MembershipService/Get

Request

FieldTypeRequiredDescription
idstringYesMembership ID (e.g., "mem_a1b2c3d4e5").

Response

FieldTypeDescription
membershipMembershipWithUserThe requested membership with user details.

Example

curl -X POST https://api.transcodely.com/transcodely.v1.MembershipService/Get 
  -H "Authorization: Bearer {{API_KEY}}" 
  -H "X-Organization-ID: {{ORG_ID}}" 
  -H "Content-Type: application/json" 
  -d '{"id": "mem_a1b2c3d4e5"}'

Update Role

Change a member’s role within the organization. Requires admin permission. Cannot demote the last owner.

POST /transcodely.v1.MembershipService/UpdateRole

Request

FieldTypeRequiredDescription
idstringYesMembership ID.
rolestringYesNew role: "owner", "admin", "member", or "viewer".

Response

FieldTypeDescription
membershipMembershipThe updated membership.

Example

curl -X POST https://api.transcodely.com/transcodely.v1.MembershipService/UpdateRole 
  -H "Authorization: Bearer {{API_KEY}}" 
  -H "X-Organization-ID: {{ORG_ID}}" 
  -H "Content-Type: application/json" 
  -d '{
    "id": "mem_f6g7h8i9j0",
    "role": "admin"
  }'
{
  "membership": {
    "id": "mem_f6g7h8i9j0",
    "user_id": "usr_q2w3e4r5t6",
    "org_id": "org_f6g7h8i9j0",
    "role": "admin",
    "status": "active",
    "invited_by": "usr_a1b2c3d4e5",
    "invited_at": "2025-01-20T14:00:00Z",
    "accepted_at": "2025-01-20T15:30:00Z",
    "created_at": "2025-01-20T14:00:00Z",
    "updated_at": "2025-02-28T15:00:00Z"
  }
}

Remove Member

Remove a member from the organization. Requires admin permission. Cannot remove the last owner.

POST /transcodely.v1.MembershipService/Remove

Request

FieldTypeRequiredDescription
idstringYesMembership ID.

Response

Empty response on success.

{}

Example

curl -X POST https://api.transcodely.com/transcodely.v1.MembershipService/Remove 
  -H "Authorization: Bearer {{API_KEY}}" 
  -H "X-Organization-ID: {{ORG_ID}}" 
  -H "Content-Type: application/json" 
  -d '{"id": "mem_f6g7h8i9j0"}'