---
title: "Register an OAuth client (RFC 7591)"
method: POST
path: "/api/oauth/register"
tags: ["Auth"]
---

# Register an OAuth client (RFC 7591)

`POST /api/oauth/register`

## Request

- Base URL: `https://domani.run`
- URL: `https://domani.run/api/oauth/register`
- Auth: HTTP bearer

Dynamic client registration for OAuth-capable MCP clients (Claude.ai, ChatGPT, Grok Bot connectors). Open registration: it grants nothing by itself - every authorization still passes the user consent screen. Public clients (token_endpoint_auth_method=none) must use PKCE S256. Discovery: /.well-known/oauth-authorization-server.

## Request body

- object
  - `redirect_uris` string[], required: Exact redirect URIs (https, http on loopback, or a native custom scheme)
  - `client_name` string: Shown on the consent screen
  - `token_endpoint_auth_method` 'none' | 'client_secret_post' | 'client_secret_basic'
  - `client_uri` string
  - `logo_uri` string

## Response `201`

Client registered

- object
  - `client_id` string
  - `client_name` string
  - `redirect_uris` string[]
  - `token_endpoint_auth_method` string
  - `grant_types` string[]
  - `response_types` string[]
  - `client_id_issued_at` integer
  - `client_secret` string: Only for confidential clients; returned once

## Other responses

- `400`: Invalid client metadata (RFC 7591 error body)

---

[API](https://skmtc.dev/domani/apis/domani-run-api.md) · [All operations](https://skmtc.dev/domani/apis/domani-run-api/llms.txt) · [OpenAPI document](https://skmtc.dev/domani/apis/domani-run-api/revisions/7679f8159533?raw)
