Skip to content

Register an OAuth client dynamically (RFC 7591)

POST
/oauth/register
curl --request POST \
--url https://api.aerandil.com/oauth/register \
--header 'Content-Type: application/json' \
--data '{ "client_name": "example", "grant_types": [ "authorization_code" ], "redirect_uris": [ "example" ], "response_types": [ "code" ], "scope": "example", "software_id": "example", "software_version": "example", "token_endpoint_auth_method": "none" }'

Obtain a client_id for an interactive OAuth 2.1 client — the way an MCP client (Claude, ChatGPT, n8n, Cursor) connects to this cell without anyone provisioning a credential for it.

Public — no authentication. RFC 7591 §1.2 permits an open registration policy, and registering grants nothing: a fresh client_id can only ask a human to sign in, and the token that eventually results is capped by that person’s role. Rate-limited per IP alongside /oauth/token.

Public clients only: token_endpoint_auth_method must be none and the client must use PKCE (S256). Redirect URIs are exact-matched at authorization time and must be https: or http: on a loopback address.

Media typeapplication/json
object
client_name
string
grant_types
Array<string>
Allowed values: authorization_code
redirect_uris
required

Exact redirect targets. https:, or http: on 127.0.0.1 / [::1] / localhost.

Array<string>
response_types
Array<string>
Allowed values: code
scope
string
software_id
string
software_version
string
token_endpoint_auth_method
string
Allowed values: none

The registered client.

Media typeapplication/json
object
client_id
required
string
client_id_issued_at
required
integer format: int64
client_name
string
grant_types
Array<string>
redirect_uris
required
Array<string>
response_types
Array<string>
scope
string
token_endpoint_auth_method
string
Examplegenerated
{
"client_id": "example",
"client_id_issued_at": 1,
"client_name": "example",
"grant_types": [
"example"
],
"redirect_uris": [
"example"
],
"response_types": [
"example"
],
"scope": "example",
"token_endpoint_auth_method": "example"
}

RFC 7591 §3.2.2 error — invalid_redirect_uri or invalid_client_metadata.

Media typeapplication/json
object
error
string
error_description
string
Examplegenerated
{
"error": "example",
"error_description": "example"
}