---
title: "Register an OAuth client"
method: POST
path: "/api/oauth/register"
tags: ["Agent Discovery"]
---

# Register an OAuth client

`POST /api/oauth/register`

## Request

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

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

## Request body

- OAuthClientRegistrationRequest: Metadata of the client to register.
  - `client_name` string: The name the consent page shows.
  - `redirect_uris` string[], 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_types` string[]: Must include authorization_code.
  - `response_types` string[]

## Response `201`

The registered client. client_secret appears only for client_secret_post.

- OAuthClientRegistration: A registered OAuth client.
  - `client_id` string, uuid, required
  - `client_id_issued_at` integer, required: Unix time in seconds.
  - `client_name` string, required
  - `grant_types` string[], required
  - `redirect_uris` string[], required
  - `response_types` string[], required
  - `token_endpoint_auth_method` 'none' | 'client_secret_post', required
  - `client_secret` string: Only client_secret_post clients get it. Xquik shows it once, so store it now.
  - `client_secret_expires_at` 0: 0, since a client_secret never expires.

## Other responses

- `400`: The metadata is invalid, the body isn't JSON or it exceeds 16 KiB.
- `429`: Too many registration requests. Retry after Retry-After.
- `500`: Unexpected error.
- `default`: Unexpected error.

## Changes

- **2026-11-02** `20d4bcaa8f4e`: 2 breaking, 1 info
  - the `client_id_issued_at` response's property format changed from `int64` to no format for status `201`
  - the `client_secret_expires_at` response's property format changed from `int64` to no format for status `201`
  - removed the non-success response with the status `500`
- **2026-11-02** `48f2012c62b3`: 1 info
  - added the non-success response with the status `500`
- **2026-11-01** `1863d7ef8b4d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/xquik-dev/apis/xquik-api/changes/api/oauth/register/post.md)

---

[API](https://skmtc.dev/xquik-dev/apis/xquik-api.md) - [All operations](https://skmtc.dev/xquik-dev/apis/xquik-api/llms.txt) - [OpenAPI document](https://skmtc.dev/xquik-dev/apis/xquik-api/revisions/db6708e077dc?raw)
