Skip to content

Update a service account

PATCH
/v1/oauth/clients/{id}
curl --request PATCH \
--url https://api.adversarial.com/api/v1/oauth/clients/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Content-Type: application/json' \
--cookie arm-session=<arm-session> \
--data '{ "allowed_ips": [ "example" ], "client_name": "example", "expires_at": "2026-04-15T12:00:00Z", "revoked": true, "roles": [ "example" ] }'

Changes a service account’s name, assigned role, or revoked status. Revoking one stops its tokens from being accepted without deleting it, so it can be restored later.

id
required
string format: uuid

OAuth client ID

Media typeapplication/json
object
allowed_ips
Array<string> | null
client_name
string | null
expires_at
string | null format: date-time
revoked

Toggle the revoked state. Some(true) stamps revoked_at = now(); Some(false) clears it. None leaves the field unchanged.

boolean | null
roles

Replaces the SA user’s role assignments by role name. Requires ORGANIZATION_MANAGE and roles bounded by the caller’s permissions.

Array<string> | null
Examplegenerated
{
"allowed_ips": [
"example"
],
"client_name": "example",
"expires_at": "2026-04-15T12:00:00Z",
"revoked": true,
"roles": [
"example"
]
}

OAuth client updated

Media typeapplication/json
object
allowed_ips
Array<string> | null
client_id
required
string
client_name
required
string
client_secret
string | null
created_by
string | null format: uuid
created_date
required
string format: date-time
expires_at
string | null format: date-time
id
required
string format: uuid
last_used
string | null format: date-time
org_id
required
string format: uuid
revoked_at
string | null format: date-time
roles
required
Array<string>
user
required

The service-account user this key authenticates as — one user per key.

object
email
required
string
first_name
required
string
icon

Relative path to the user’s avatar endpoint, e.g. "users/{id}/avatar?v={hash}". None when the user has no avatar.

string | null
id
required
string format: uuid
last_name
required
string
user_id
required
string format: uuid
Examplegenerated
{
"allowed_ips": [
"example"
],
"client_id": "example",
"client_name": "example",
"client_secret": "example",
"created_by": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"created_date": "2026-04-15T12:00:00Z",
"expires_at": "2026-04-15T12:00:00Z",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"last_used": "2026-04-15T12:00:00Z",
"org_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"revoked_at": "2026-04-15T12:00:00Z",
"roles": [
"example"
],
"user": {
"email": "example",
"first_name": "example",
"icon": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"last_name": "example"
},
"user_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
}

Invalid request

Unauthorized

Forbidden

Not found