> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hq.zone/llms.txt
> Use this file to discover all available pages before exploring further.

# Update an OAuth client

> RFC 7592 update of a dynamically registered OAuth client identified by client_id in
the path, authenticated with the client's registration_access_token as a Bearer
token. Re-validates and replaces the mutable metadata (name, redirect URIs, and
requestable scopes); the client type and its secret lifecycle are fixed at
registration and cannot be changed. Returns the updated client metadata.



## OpenAPI

````yaml PUT /v1/oauth/register/{client_id}
openapi: 3.1.0
info:
  title: HQ API
  description: >-
    Public HTTP API for HQ. Authenticate with a Personal Access Token
    (`Authorization: Bearer hq_pat_...`) for server-side integrations, or an
    OAuth 2.1 authorization-code + PKCE flow for browser apps acting on a user's
    behalf. Both grant from the same resource:action scope vocabulary; an
    endpoint's required scope is listed under its `security`.
  license:
    name: Apache-2.0
    identifier: Apache-2.0
  version: 1.0.0
servers:
  - url: https://api.hq.zone
    description: HQ API (production)
security: []
tags:
  - name: me
    description: The signed-in user's own account
  - name: conversations
    description: Conversations and their messages
  - name: documents
    description: The content-addressed documents library
  - name: schedules
    description: Scheduled prompts and recurring tasks
  - name: agents
    description: Agents, their skills and integrations
  - name: memory
    description: What the assistant remembers (L5 governance)
  - name: tokens
    description: Personal Access Token management
  - name: billing
    description: Usage and billing
  - name: notifications
    description: In-app notification center
  - name: admin
    description: Workspace administration
  - name: integrations
    description: Workspace integrations (Slack, MCP, skills)
  - name: onboarding
    description: New-workspace onboarding wizard
  - name: auth
    description: Sign-in, sessions, and OAuth
paths:
  /v1/oauth/register/{client_id}:
    put:
      tags:
        - auth
      summary: Update an OAuth client
      description: >-
        RFC 7592 update of a dynamically registered OAuth client identified by
        client_id in

        the path, authenticated with the client's registration_access_token as a
        Bearer

        token. Re-validates and replaces the mutable metadata (name, redirect
        URIs, and

        requestable scopes); the client type and its secret lifecycle are fixed
        at

        registration and cannot be changed. Returns the updated client metadata.
      operationId: update_client
      parameters:
        - name: client_id
          in: path
          description: Client id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientMetadata'
        required: true
      responses:
        '200':
          description: Updated client metadata (RFC 7592)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientInfo'
        '400':
          description: Invalid metadata
        '401':
          description: Invalid registration_access_token
components:
  schemas:
    ClientMetadata:
      type: object
      properties:
        client_name:
          type:
            - string
            - 'null'
        grant_types:
          type:
            - array
            - 'null'
          items:
            type: string
        redirect_uris:
          type: array
          items:
            type: string
        response_types:
          type:
            - array
            - 'null'
          items:
            type: string
        scope:
          type:
            - string
            - 'null'
          description: Space-delimited capability scopes the client may request.
        token_endpoint_auth_method:
          type:
            - string
            - 'null'
    ClientInfo:
      type: object
      required:
        - client_id
        - client_id_issued_at
        - registration_client_uri
        - redirect_uris
        - client_name
        - token_endpoint_auth_method
        - grant_types
        - response_types
        - scope
      properties:
        client_id:
          type: string
        client_id_issued_at:
          type: integer
          format: int64
        client_name:
          type: string
        client_secret:
          type:
            - string
            - 'null'
        client_secret_expires_at:
          type:
            - integer
            - 'null'
          format: int64
        grant_types:
          type: array
          items:
            type: string
        redirect_uris:
          type: array
          items:
            type: string
        registration_access_token:
          type:
            - string
            - 'null'
        registration_client_uri:
          type: string
        response_types:
          type: array
          items:
            type: string
        scope:
          type: string
        token_endpoint_auth_method:
          type: string

````