The User object
A user represents an authenticated person on the platform. Users are provisioned automatically on first login via WorkOS and belong to one or more organizations through memberships.
Base path: transcodely.v1.UserService
Attributes
| Attribute | Type | Description |
|---|---|---|
id | string | Unique identifier. Prefixed with usr_. |
email | string | Email address. |
email_verified | boolean | Whether the email has been verified. |
first_name | string | First name. |
last_name | string | Last name. |
profile_picture_url | string | URL to profile picture. Omitted if not set. |
status | string | One of: active, suspended, deleted. |
last_login_at | string | ISO 8601 timestamp of last login. Omitted if never logged in. |
created_at | string | ISO 8601 timestamp. |
updated_at | string | ISO 8601 timestamp. |
{
"id": "usr_a1b2c3d4e5",
"email": "jane@acme.com",
"email_verified": true,
"first_name": "Jane",
"last_name": "Doe",
"profile_picture_url": "https://cdn.example.com/avatars/jane.jpg",
"status": "active",
"last_login_at": "2025-02-28T09:15:00Z",
"created_at": "2025-01-10T08:00:00Z",
"updated_at": "2025-02-28T09:15:00Z"
}Retrieve current user
Retrieve the authenticated user’s profile and their organization memberships.
Does not require X-Organization-ID header.
POST /transcodely.v1.UserService/GetMeParameters
No parameters. The user is identified from the authentication context.
Returns
Returns a UserWithOrganizations object containing the user profile and a list of organizations the user belongs to.
| Field | Type | Description |
|---|---|---|
user | User | The User object. |
organizations | UserOrganization[] | Organizations the user belongs to. |
UserOrganization
| Field | Type | Description |
|---|---|---|
org_id | string | Organization ID. |
org_slug | string | Organization slug. |
org_name | string | Organization display name. |
role | string | User’s role: owner, admin, member, or viewer. |
is_active | boolean | Whether this membership is active. |
curl -X POST https://api.transcodely.com/transcodely.v1.UserService/GetMe
-H "Authorization: Bearer ak_live_abc123"
-H "Content-Type: application/json"
-d '{}'const me = await client.users.getMe();
console.log(me.user?.id, me.organizations.length);me = client.users.get_me()
print(me.user.id, len(me.organizations))me, err := client.Users.GetMe(ctx)
fmt.Println(me.GetUser().GetId(), len(me.GetOrganizations())){
"user": {
"user": {
"id": "usr_a1b2c3d4e5",
"email": "jane@acme.com",
"email_verified": true,
"first_name": "Jane",
"last_name": "Doe",
"status": "active",
"last_login_at": "2025-02-28T09:15:00Z",
"created_at": "2025-01-10T08:00:00Z",
"updated_at": "2025-02-28T09:15:00Z"
},
"organizations": [
{
"org_id": "org_f6g7h8i9j0",
"org_slug": "acme-corp",
"org_name": "Acme Corporation",
"role": "owner",
"is_active": true
}
]
}
}Retrieve a user
Retrieve a user by ID. Requires admin permission on the organization, or the authenticated user must be requesting their own profile.
Requires: X-Organization-ID header.
POST /transcodely.v1.UserService/GetParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | User ID (e.g., usr_a1b2c3d4e5). |
Returns
Returns a User object.
curl -X POST https://api.transcodely.com/transcodely.v1.UserService/Get
-H "Authorization: Bearer ak_live_abc123"
-H "X-Organization-ID: org_f6g7h8i9j0"
-H "Content-Type: application/json"
-d '{"id": "usr_a1b2c3d4e5"}'const user = await client.users.get("usr_a1b2c3d4e5");user = client.users.get("usr_a1b2c3d4e5")user, err := client.Users.Get(ctx, "usr_a1b2c3d4e5"){
"user": {
"id": "usr_a1b2c3d4e5",
"email": "jane@acme.com",
"email_verified": true,
"first_name": "Jane",
"last_name": "Doe",
"status": "active",
"last_login_at": "2025-02-28T09:15:00Z",
"created_at": "2025-01-10T08:00:00Z",
"updated_at": "2025-02-28T09:15:00Z"
}
}Update current user
Update the authenticated user’s display name. Email and verification status are synced from WorkOS and cannot be changed here.
Does not require X-Organization-ID header.
POST /transcodely.v1.UserService/UpdateMeParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
first_name | string | No | New first name (max 100 chars). |
last_name | string | No | New last name (max 100 chars). |
Returns
Returns the updated User object.
curl -X POST https://api.transcodely.com/transcodely.v1.UserService/UpdateMe
-H "Authorization: Bearer ak_live_abc123"
-H "Content-Type: application/json"
-d '{
"first_name": "Jane",
"last_name": "Smith"
}'const user = await client.users.updateMe({
firstName: "Jane",
lastName: "Smith",
});user = client.users.update_me(
first_name="Jane",
last_name="Smith",
)user, err := client.Users.UpdateMe(ctx, &transcodely.UserUpdateMeParams{
FirstName: proto.String("Jane"),
LastName: proto.String("Smith"),
}){
"user": {
"id": "usr_a1b2c3d4e5",
"email": "jane@acme.com",
"email_verified": true,
"first_name": "Jane",
"last_name": "Smith",
"status": "active",
"last_login_at": "2025-02-28T09:15:00Z",
"created_at": "2025-01-10T08:00:00Z",
"updated_at": "2025-02-28T15:30:00Z"
}
}List users
List users in an organization. Requires admin permission.
Requires: X-Organization-ID header.
POST /transcodely.v1.UserService/ListParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | Filter by status: active, suspended, or deleted. |
pagination | object | No | Pagination parameters. See Pagination. |
Returns
Returns a list of User objects and pagination metadata.
curl -X POST https://api.transcodely.com/transcodely.v1.UserService/List
-H "Authorization: Bearer ak_live_abc123"
-H "X-Organization-ID: org_f6g7h8i9j0"
-H "Content-Type: application/json"
-d '{
"status": "active",
"pagination": {"limit": 20}
}'for await (const user of client.users.list({
status: UserStatus.ACTIVE,
pagination: { limit: 20 },
}).autoPage()) {
console.log(user.id, user.email);
}for user in client.users.list(limit=20).auto_paging_iter():
print(user.id, user.email)iter := client.Users.List(ctx, &transcodely.UserListParams{
Status: transcodely.UserStatusActive.Enum(),
Pagination: &transcodely.PaginationRequest{Limit: 20},
})
for iter.Next() {
user := iter.Current()
fmt.Println(user.GetId(), user.GetEmail())
}
if err := iter.Err(); err != nil {
log.Fatal(err)
}{
"users": [
{
"id": "usr_a1b2c3d4e5",
"email": "jane@acme.com",
"email_verified": true,
"first_name": "Jane",
"last_name": "Doe",
"status": "active",
"last_login_at": "2025-02-28T09:15:00Z",
"created_at": "2025-01-10T08:00:00Z",
"updated_at": "2025-02-28T09:15:00Z"
},
{
"id": "usr_q2w3e4r5t6",
"email": "bob@acme.com",
"email_verified": true,
"first_name": "Bob",
"last_name": "Johnson",
"status": "active",
"created_at": "2025-01-20T14:00:00Z",
"updated_at": "2025-02-15T11:00:00Z"
}
],
"pagination": {
"next_cursor": "",
"total_count": 2
}
}Related
For managing organization members, roles, and permissions, see Memberships.