OAuth Applications API — Agentuity Documentation

OAuth Applications API

Manage OAuth 2.0/OIDC applications, client credentials, user consent, and authorization scopes

https://catalyst-usw.agentuity.cloud

Authentication

All requests require a Bearer token. Pass your API or SDK key in the Authorization header.

HeaderValue
AuthorizationBearer YOUR_SDK_KEY

You can find your SDK key in the Agentuity Console under your project settings.


List OAuth Clients

List all OAuth clients for the current organization. Returns client metadata, user counts, and last activity timestamps.

GET/oidc/clients
https://catalyst-usw.agentuity.cloud/oidc/clients

Response

JSON array of OAuth client objects with usage statistics.

StatusDescription
200Client list returned
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions

Response Fields

FieldTypeDescription
idstring
namestring
descriptionstring
homepage_urlstring
iconstring | null (optional)
client_typestring
redirect_urisstring[]
post_logout_redirect_urisstring[]
grant_typesstring[]
response_typesstring[]
scopesstring[]
org_idstring (optional)
project_idstring (optional)
access_token_lifetime_secondsnumber (optional)
refresh_token_lifetime_secondsnumber (optional)
id_token_lifetime_secondsnumber (optional)
allowed_user_idsstring[]
internalboolean
created_atstring
updated_atstring
user_countnumber
last_activitystring | null (optional)
linkstring

Example

curl -X GET 'https://catalyst-usw.agentuity.cloud/oidc/clients' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

Create OAuth Client

Create a new OAuth client application. Returns the client details and a client secret that should be stored securely — it cannot be retrieved again.

POST/oidc/clients
https://catalyst-usw.agentuity.cloud/oidc/clients

Request Body

JSON body with the OAuth client configuration.

FieldTypeDescription
namestring
descriptionstring
homepage_urlstring
iconstring | null (optional)
client_typestring (optional)
redirect_urisstring[] (optional)
post_logout_redirect_urisstring[] (optional)
grant_typesstring[] (optional)
response_typesstring[] (optional)
scopesstring[] (optional)
project_idstring (optional)
access_token_lifetime_secondsnumber (optional)
refresh_token_lifetime_secondsnumber (optional)
id_token_lifetime_secondsnumber (optional)
allowed_user_idsstring[] (optional)

Response

JSON object containing the created client and its client secret.

StatusDescription
200Client created successfully
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions

Response Fields

FieldTypeDescription
clientobject
client.idstring
client.namestring
client.descriptionstring
client.homepage_urlstring
client.iconstring | null (optional)
client.client_typestring
client.redirect_urisstring[]
client.post_logout_redirect_urisstring[]
client.grant_typesstring[]
client.response_typesstring[]
client.scopesstring[]
client.org_idstring (optional)
client.project_idstring (optional)
client.access_token_lifetime_secondsnumber (optional)
client.refresh_token_lifetime_secondsnumber (optional)
client.id_token_lifetime_secondsnumber (optional)
client.allowed_user_idsstring[]
client.internalboolean
client.created_atstring
client.updated_atstring
client_secretstring

Example

curl -X POST 'https://catalyst-usw.agentuity.cloud/oidc/clients' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "My App",
  "description": "An example OAuth application",
  "homepage_url": "https://example.com",
  "redirect_uris": [
    "https://example.com/callback"
  ],
  "scopes": [
    "openid",
    "profile"
  ]
}'

Get OAuth Client

Retrieve a specific OAuth client by ID, including its configuration, user count, and last activity.

GET/oidc/clients/{id}
https://catalyst-usw.agentuity.cloud/oidc/clients/{id}

Parameters

path
NameTypeRequiredDescription
idstringYesThe OAuth client ID

Response

JSON object with the OAuth client details.

StatusDescription
200Client found and returned
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Client not found

Response Fields

FieldTypeDescription
idstring
namestring
descriptionstring
homepage_urlstring
iconstring | null (optional)
client_typestring
redirect_urisstring[]
post_logout_redirect_urisstring[]
grant_typesstring[]
response_typesstring[]
scopesstring[]
org_idstring (optional)
project_idstring (optional)
access_token_lifetime_secondsnumber (optional)
refresh_token_lifetime_secondsnumber (optional)
id_token_lifetime_secondsnumber (optional)
allowed_user_idsstring[]
internalboolean
created_atstring
updated_atstring
user_countnumber
last_activitystring | null (optional)
linkstring

Example

curl -X GET 'https://catalyst-usw.agentuity.cloud/oidc/clients/cli_abc123' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

Update OAuth Client

Update an existing OAuth client. Only the provided fields are updated; omitted fields remain unchanged.

PUT/oidc/clients/{id}
https://catalyst-usw.agentuity.cloud/oidc/clients/{id}

Parameters

path
NameTypeRequiredDescription
idstringYesThe OAuth client ID

Request Body

JSON body with the fields to update.

FieldTypeDescription
namestring
descriptionstring
homepage_urlstring
iconstring | null
client_typestring
redirect_urisstring[]
post_logout_redirect_urisstring[]
grant_typesstring[]
response_typesstring[]
scopesstring[]
project_idstring
access_token_lifetime_secondsnumber
refresh_token_lifetime_secondsnumber
id_token_lifetime_secondsnumber
allowed_user_idsstring[]

Response

JSON object containing the updated client. May include a new client secret if the client type was changed.

StatusDescription
200Client updated successfully
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Client not found

Response Fields

FieldTypeDescription
clientobject
client.idstring
client.namestring
client.descriptionstring
client.homepage_urlstring
client.iconstring | null (optional)
client.client_typestring
client.redirect_urisstring[]
client.post_logout_redirect_urisstring[]
client.grant_typesstring[]
client.response_typesstring[]
client.scopesstring[]
client.org_idstring (optional)
client.project_idstring (optional)
client.access_token_lifetime_secondsnumber (optional)
client.refresh_token_lifetime_secondsnumber (optional)
client.id_token_lifetime_secondsnumber (optional)
client.allowed_user_idsstring[]
client.internalboolean
client.created_atstring
client.updated_atstring
client_secretstring (optional)

Example

curl -X PUT 'https://catalyst-usw.agentuity.cloud/oidc/clients/cli_abc123' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Updated App Name",
  "scopes": [
    "openid",
    "profile",
    "email"
  ]
}'

Delete OAuth Client

Delete an OAuth client and revoke all associated tokens and user consent grants.

DELETE/oidc/clients/{id}
https://catalyst-usw.agentuity.cloud/oidc/clients/{id}

Parameters

path
NameTypeRequiredDescription
idstringYesThe OAuth client ID

Response

JSON object confirming deletion.

StatusDescription
200Client deleted successfully
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Client not found

Response Fields

FieldTypeDescription
deletedboolean

Example

curl -X DELETE 'https://catalyst-usw.agentuity.cloud/oidc/clients/cli_abc123' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

Rotate Client Secret

Generate a new client secret for a confidential OAuth client. The old secret is immediately invalidated. Store the new secret securely — it cannot be retrieved again.

POST/oidc/clients/{id}/rotate-secret
https://catalyst-usw.agentuity.cloud/oidc/clients/{id}/rotate-secret

Parameters

path
NameTypeRequiredDescription
idstringYesThe OAuth client ID

Response

JSON object containing the client ID and new client secret.

StatusDescription
200Secret rotated successfully
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Client not found

Response Fields

FieldTypeDescription
client_idstring
client_secretstring

Example

curl -X POST 'https://catalyst-usw.agentuity.cloud/oidc/clients/cli_abc123/rotate-secret' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

List Client Users

List all users who have granted consent to an OAuth client, including their authorized scopes.

GET/oidc/clients/{id}/users
https://catalyst-usw.agentuity.cloud/oidc/clients/{id}/users

Parameters

path
NameTypeRequiredDescription
idstringYesThe OAuth client ID

Response

JSON array of consent grant objects for the client.

StatusDescription
200User list returned
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Client not found

Response Fields

FieldTypeDescription
user_idstring
scopesstring[]
created_atstring
updated_atstring

Example

curl -X GET 'https://catalyst-usw.agentuity.cloud/oidc/clients/cli_abc123/users' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

Revoke All Client Users

Revoke consent for all users of an OAuth client. All active tokens for this client are invalidated.

DELETE/oidc/clients/{id}/users
https://catalyst-usw.agentuity.cloud/oidc/clients/{id}/users

Parameters

path
NameTypeRequiredDescription
idstringYesThe OAuth client ID

Response

JSON object confirming revocation.

StatusDescription
200All user consent revoked
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Client not found

Response Fields

FieldTypeDescription
deletedboolean

Example

curl -X DELETE 'https://catalyst-usw.agentuity.cloud/oidc/clients/cli_abc123/users' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

Revoke Client User

Revoke a specific user's consent for an OAuth client. The user's active tokens for this client are invalidated.

DELETE/oidc/clients/{id}/users/{user_id}
https://catalyst-usw.agentuity.cloud/oidc/clients/{id}/users/{user_id}

Parameters

path
NameTypeRequiredDescription
idstringYesThe OAuth client ID
user_idstringYesThe user ID to revoke

Response

JSON object confirming revocation.

StatusDescription
200User consent revoked
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Client or user not found

Response Fields

FieldTypeDescription
deletedboolean

Example

curl -X DELETE 'https://catalyst-usw.agentuity.cloud/oidc/clients/cli_abc123/users/usr_xyz789' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

Get Client Activity

Get daily activity statistics for an OAuth client, including total access counts and unique user counts.

GET/oidc/clients/{id}/activity
https://catalyst-usw.agentuity.cloud/oidc/clients/{id}/activity

Parameters

path
NameTypeRequiredDescription
idstringYesThe OAuth client ID
query
NameTypeRequiredDescription
daysnumberNoNumber of days of activity to return (default: 30)

Response

JSON array of daily activity records.

StatusDescription
200Activity data returned
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Client not found

Response Fields

FieldTypeDescription
activity_datestring
total_accessnumber
unique_usersnumber

Example

curl -X GET 'https://catalyst-usw.agentuity.cloud/oidc/clients/cli_abc123/activity?days=7' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

Get Bulk Activity

Get aggregated activity statistics across all OAuth clients for the organization.

GET/oidc/clients/activity
https://catalyst-usw.agentuity.cloud/oidc/clients/activity

Parameters

query
NameTypeRequiredDescription
daysnumberNoNumber of days of activity to return (default: 30)

Response

JSON array of daily activity records per client.

StatusDescription
200Bulk activity data returned
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions

Response Fields

FieldTypeDescription
client_idstring
activity_datestring
unique_usersnumber

Example

curl -X GET 'https://catalyst-usw.agentuity.cloud/oidc/clients/activity?days=7' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

List all OAuth applications the current user has authorized, including granted scopes and client details.

GET/oidc/user/consent
https://catalyst-usw.agentuity.cloud/oidc/user/consent

Response

JSON array of user consent objects with client metadata.

StatusDescription
200Consent list returned
401Unauthorized — invalid or missing API key

Response Fields

FieldTypeDescription
client_idstring
scopesstring[]
created_atstring
updated_atstring
client_namestring
client_descriptionstring
client_iconstring | null
client_homepage_urlstring

Example

curl -X GET 'https://catalyst-usw.agentuity.cloud/oidc/user/consent' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

Revoke the current user's consent for a specific OAuth client. Active tokens for this client are invalidated.

DELETE/oidc/user/consent/{client_id}
https://catalyst-usw.agentuity.cloud/oidc/user/consent/{client_id}

Parameters

path
NameTypeRequiredDescription
client_idstringYesThe OAuth client ID to revoke consent for

Response

JSON object confirming revocation.

StatusDescription
200Consent revoked successfully
401Unauthorized — invalid or missing API key
404Consent not found for this client

Response Fields

FieldTypeDescription
deletedboolean

Example

curl -X DELETE 'https://catalyst-usw.agentuity.cloud/oidc/user/consent/cli_abc123' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

List Scopes

List all available OAuth scopes and permission categories. Includes scope metadata, consent descriptions, and permission groupings.

GET/oidc/scopes
https://catalyst-usw.agentuity.cloud/oidc/scopes

Response

JSON object containing available scopes and structured permission categories.

StatusDescription
200Scope list returned
401Unauthorized — invalid or missing API key

Response Fields

FieldTypeDescription
scopesobject[]
scopes[].namestring
scopes[].descriptionstring
scopes[].consent_titlestring
scopes[].consent_descriptionstring
scopes[].sensitiveboolean
scopes[].requiredboolean
scopes[].defaultboolean
permissionsobject[]
permissions[].idstring
permissions[].labelstring
permissions[].groupsobject[]
permissions[].groups[].idstring
permissions[].groups[].namestring
permissions[].groups[].descriptionstring
permissions[].groups[].levelsobject[]
permissions[].groups[].levels[].labelstring
permissions[].groups[].levels[].valuestring
permissions[].groups[].levels[].scopesstring[]
permissions[].groups[].levels[].warningboolean (optional)
permissions[].groups[].levels[].warningTitlestring (optional)

Example

curl -X GET 'https://catalyst-usw.agentuity.cloud/oidc/scopes' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

List Org Members

List all members of the current organization. Used for configuring allowed user restrictions on OAuth clients.

GET/oidc/org/members
https://catalyst-usw.agentuity.cloud/oidc/org/members

Response

JSON array of organization member objects.

StatusDescription
200Member list returned
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions

Response Fields

FieldTypeDescription
idstring
first_namestring | null
last_namestring | null
emailstring | null
photo_urlstring | null
rolestring

Example

curl -X GET 'https://catalyst-usw.agentuity.cloud/oidc/org/members' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'

Rotate Signing Keys

Rotate the OIDC signing keys for the organization. New tokens will be signed with the new key. Existing tokens remain valid until they expire.

POST/oidc/keys/rotate
https://catalyst-usw.agentuity.cloud/oidc/keys/rotate

Response

JSON object confirming key rotation.

StatusDescription
200Keys rotated successfully
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions

Response Fields

FieldTypeDescription
rotatedboolean

Example

curl -X POST 'https://catalyst-usw.agentuity.cloud/oidc/keys/rotate' \
  -H 'Authorization: Bearer $AGENTUITY_SDK_KEY'