Register a client
/oauth/registerRegisters an OAuth client (RFC 7591 dynamic client registration) and returns its client_id. MCP clients call it once per install, before their first authorization, so nobody has to create an app by hand.
Scope | Heavy call | Long poll | CLI |
|---|---|---|---|
None, no key | No | No | None |
Guidance
It lives at the root of
https://api.chartnaut.com, not under/v1.Every client is public. Whatever
token_endpoint_auth_methodyou ask for, the answer saysnone: there is no client secret, and PKCE protects the code instead.Keep the
client_id. It does not expire. Registering again makes a new client, and a new row under Connected apps once the person approves it.client_nameis what the consent page and Connected apps show. People also see the redirect host beside it, so a misleading name does not hide where the code goes.Limited to 20 registrations an hour from one IP address.
Request body
JSON, up to 16 KB. Unknown fields are ignored.
Field | Type | Required | Description |
|---|---|---|---|
| array of string | Yes | 1 to 10, up to 2,000 characters each. Each is |
| string | No | Up to 100 characters. Defaults to the first redirect URI's host |
| string | No | An |
| string | No | An |
| array of string | No |
|
| array of string | No |
|
| string | No | Always answered as |
| string | No | Space-separated scopes. Default all three |
Response
201 with the registered client:
Field | Type | Description |
|---|---|---|
| string |
|
| integer | Unix seconds |
| string | As stored |
| array of string | As registered |
| array of string | As accepted |
| array of string |
|
| string |
|
| string | Space-separated scopes |
| string | Present when sent |
Errors use OAuth's shape, {"error": "...", "error_description": "..."}, not the API's envelope.
Status codes
Status | Code | Meaning |
|---|---|---|
| - | The client is registered |
|
| No redirect URI, too many, or one Chartnaut does not accept |
|
| The body is not a JSON object, or a field is invalid |
|
| More than 20 registrations in an hour from your IP address |
|
| The client could not be stored. Retry |
