Programmatic Users
Manage machine identities that authenticate with the Platform SDK. Programmatic users are assigned role configurations that determine their access level.
Contents
ListProgrammaticUsers
Lists all programmatic users.
Input
| Parameter | Type | Required |
|---|---|---|
nextToken |
string | No |
maxResults |
integer | No |
Sample Request
await client.send(new ListProgrammaticUsersCommand({}));
Output
{ "items": [ { "userId": "u1a2b3c4-5678-90ab-cdef-1234567890ab", "teamId": "team-uuid", "name": "ci-deploy-bot", "roleConfig": { "accountRole": "administrator" }, "createdAt": "2026-08-01T12:00:00.000Z", "updatedAt": "2026-08-01T12:00:00.000Z" } ], "nextToken": null }
Errors
-
ValidationException(400) -
InternalServerException(500)
CreateProgrammaticUser
Creates a new programmatic user.
Input
| Parameter | Type | Required |
|---|---|---|
name |
string | Yes |
roleConfig |
object | Yes |
Sample Request
await client.send(new CreateProgrammaticUserCommand({ name: "ci-deploy-bot", roleConfig: { accountRole: "administrator", }, }));
Output
{ "userId": "u1a2b3c4-5678-90ab-cdef-1234567890ab", "teamId": "team-uuid", "name": "ci-deploy-bot", "roleConfig": { "accountRole": "administrator" }, "createdAt": "2026-08-01T12:00:00.000Z", "updatedAt": "2026-08-01T12:00:00.000Z" }
Errors
-
ValidationException(400) -
ConflictException(409) -
InternalServerException(500)
GetProgrammaticUser
Gets a single programmatic user by ID.
Input
| Parameter | Type | Required |
|---|---|---|
userId |
string | Yes |
Sample Request
await client.send(new GetProgrammaticUserCommand({ userId: "u1a2b3c4-5678-90ab-cdef-1234567890ab", }));
Output
{ "userId": "u1a2b3c4-5678-90ab-cdef-1234567890ab", "teamId": "team-uuid", "name": "ci-deploy-bot", "roleConfig": { "accountRole": "administrator" }, "createdAt": "2026-08-01T12:00:00.000Z", "updatedAt": "2026-08-01T12:00:00.000Z" }
Errors
-
ValidationException(400) -
ResourceNotFoundException(404) -
InternalServerException(500)
UpdateProgrammaticUser
Updates a programmatic user's name or role configuration.
Input
| Parameter | Type | Required |
|---|---|---|
userId |
string | Yes |
name |
string | No |
roleConfig |
object | No |
Sample Request
await client.send(new UpdateProgrammaticUserCommand({ userId: "u1a2b3c4-5678-90ab-cdef-1234567890ab", name: "ci-deploy-bot-updated", roleConfig: { accountRole: "administrator", }, }));
Output
{ "userId": "u1a2b3c4-5678-90ab-cdef-1234567890ab", "teamId": "team-uuid", "name": "ci-deploy-bot-updated", "roleConfig": { "accountRole": "administrator" }, "createdAt": "2026-08-01T12:00:00.000Z", "updatedAt": "2026-08-01T12:00:00.000Z" }
Errors
-
ValidationException(400) -
ResourceNotFoundException(404) -
InternalServerException(500)
DeleteProgrammaticUser
Deletes a programmatic user. Fails if API keys are still associated, delete all keys first.
Input
| Parameter | Type | Required |
|---|---|---|
userId |
string | Yes |
Sample Request
await client.send(new DeleteProgrammaticUserCommand({ userId: "u1a2b3c4-5678-90ab-cdef-1234567890ab", }));
Output
No response body.
Errors
-
ValidationException(400) -
ResourceNotFoundException(404) -
ConflictException(409) API keys still exist for this user -
InternalServerException(500)
Request Parameters
userId-
Type: String
The programmatic user ID.
teamId-
Type: String
The team/account this user belongs to (read-only).
name-
Type: String
Display name for the programmatic user. 1–128 characters.
roleConfig-
Type: Object
Role configuration determining access level. See Role Config.
createdAt-
Type: String
When the user was created (ISO 8601).
updatedAt-
Type: String
When the user was last modified (ISO 8601).
nextToken-
Type: String
Pagination token. See Common Types.
maxResults-
Type: Integer
Max items per page. See Common Types.
Role Config
Provide exactly one variant:
accountRole-
Type: String
Account-level role granting full access across all workspaces. Currently the only value is
administrator.
{ "roleConfig": { "accountRole": "administrator" } }
workspaceRoles-
Type: Array
Workspace-scoped role assignments. Each entry grants access to a specific workspace with a designated role.
{ "roleConfig": { "workspaceRoles": [ { "workspaceId": "ws-uuid-1", "role": "developer" }, { "workspaceId": "ws-uuid-2", "roleId": "custom-role-uuid" } ] } }
Workspace Role Assignment
| Field | Type | Required |
|---|---|---|
workspaceId |
string | Yes |
role |
string | No |
roleId |
string | No |
workspaceId-
Type: String
The workspace this assignment applies to.
role-
Type: String
A pre-defined role name. One of:
administrator,developer,contentManager,readOnly. ProvideroleORroleId, not both. roleId-
Type: String
A custom role ID (created via the Roles API). Provide
roleORroleId, not both.