Agent Discovery

Register an OAuth client

Changed on

Register an OAuth client by Dynamic Client Registration. Clients with a client metadata document can skip this step.

post/api/oauth/register

Request

  • Base URL
    https://xquik.com
  • URL
    https://xquik.com/api/oauth/register
  • Auth
    none required

Request body

client_namestring

The name the consent page shows.

redirect_urisstring[] required

Allowed redirect URIs. Each uses HTTPS, localhost or a native app callback.

token_endpoint_auth_method'none' | 'client_secret_post'

none for public clients. client_secret_post returns a client_secret.

grant_typesstring[]

Must include authorization_code.

response_typesstring[]

Example request

{
  "client_name": "My MCP Client",
  "redirect_uris": [
    "https://client.example/callback"
  ],
  "token_endpoint_auth_method": "none",
  "grant_types": [
    "authorization_code",
    "refresh_token"
  ],
  "response_types": [
    "code"
  ]
}

Response

The registered client. client_secret appears only for client_secret_post.

client_idstring uuid required
client_id_issued_atinteger required

Unix time in seconds.

client_namestring required
grant_typesstring[] required
redirect_urisstring[] required
response_typesstring[] required
token_endpoint_auth_method'none' | 'client_secret_post' required
client_secretstring

Only client_secret_post clients get it. Xquik shows it once, so store it now.

client_secret_expires_at0

0, since a client_secret never expires.

Example response

{
  "client_id": "550e8400-e29b-41d4-a716-446655440000",
  "client_id_issued_at": 1798761600,
  "client_name": "My MCP Client",
  "grant_types": [
    "authorization_code",
    "refresh_token"
  ],
  "redirect_uris": [
    "https://client.example/callback"
  ],
  "response_types": [
    "code"
  ],
  "token_endpoint_auth_method": "none",
  "client_secret": "CLIENT_SECRET"
}

Changes

    • breaking

      the response's property format changed from int64 to no format for status

    • breaking

      the response's property format changed from int64 to no format for status

    • info

      removed the non-success response with the status

    • info

      added the non-success response with the status