OAuth Clients

Update OAuth client

Changed on

Update an OAuth client's name, description, redirect_uris, or active status.

patch/admin/oauth-clients/{id}

Request

  • Base URL: / (relative, and the document was published on a file host, not at the API’s origin)
  • URL: /admin/oauth-clients/{id}
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL /authorize, token URL /oauth/token)

Path parameters

idstring required

Record ID of the OAuth client (oac_…), not its public client_id.

Example:oac_6968b39840a935d9f7e2714b

Request body

activeboolean nullable

False disables the client and true re-enables it; null means no change.

allowed_scopesstring[] nullable

Scope restriction list. Null means no change; an empty list denies all non-OIDC scopes; the wildcard ["*"] resets to unrestricted.

descriptionstring nullable

New description for the client; null means no change.

namestring nullable

New name for the client; null means no change.

redirect_urisstring[] nullable

Replacement list of allowed OAuth callback URLs; null means no change.

require_consentboolean nullable

Whether to show a consent screen during authorization; null means no change.

Example request

{
  "active": true,
  "allowed_scopes": [
    "apis:read",
    "capabilities:execute"
  ],
  "description": "Billing assistant production deployment",
  "name": "billing-assistant-prod",
  "redirect_uris": [
    "https://client.example.com/oauth/callback"
  ],
  "require_consent": true
}

Response

Successful Response

activeboolean required

Whether the client is enabled; false for disabled, pending or denied clients.

active_grant_countinteger

Number of active consent→agent grants for this client. Computed on the read endpoints (list/get); write-path responses report 0.

allowed_scopesstring[] nullable required

Scopes this client may request. Null means unrestricted.

approval_statusstring required

Admin approval lifecycle: pending, approved, or denied. Only approved clients may enter OAuth flows; active remains the independent kill switch.

client_idstring required

Public client identifier used in OAuth flows.

consent_modelstring required

What a user's consent grants for this client: user or agent.

created_atstring date-time required

When the client was created (RFC 3339).

created_bystring nullable required

ID of the actor that created the client; null if not recorded.

descriptionstring nullable required

Description of the client; null if none.

idstring required

Record ID of the OAuth client (oac_…), not its public client_id.

namestring required

Human-readable name for the client.

redirect_urisstring[] required

Allowed OAuth callback URLs.

registration_sourcestring required

How the client entered the registry: admin or dcr.

require_consentboolean required

Whether a consent screen is shown during authorization.

software_idstring nullable required

RFC 7591 software identifier claimed at registration, if any.

token_endpoint_auth_methodstring required

Client authentication method at the token endpoint: client_secret_basic (confidential) or none (public, PKCE-only).

updated_atstring date-time nullable required

When the client was last updated (RFC 3339); null if never updated.

Example response

{
  "active": true,
  "active_grant_count": 0,
  "allowed_scopes": [
    "agents:read",
    "credentials:read"
  ],
  "approval_status": "approved",
  "client_id": "oc_abc123...",
  "consent_model": "user",
  "created_at": "2026-08-18T12:00:00Z",
  "created_by": "usr_abc123",
  "description": "My application production deployment",
  "id": "oac_2NxYz...",
  "name": "my-app-production",
  "redirect_uris": [
    "https://app.example.com/auth/callback"
  ],
  "registration_source": "admin",
  "require_consent": true,
  "software_id": "com.example.my-app",
  "token_endpoint_auth_method": "client_secret_basic",
  "updated_at": "2026-08-18T12:00:00Z"
}

Changes