mcp
POST /v1/oauth/register
Register an AI app as an OAuth client (RFC 7591 dynamic client registration).
Authentication
This endpoint is public. It takes no credential and no organisation — it is what our own marketing site and AI answer engines read.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X POST https://api.zinndigital.com/v1/oauth/register \
-H "Content-Type: application/json" \
-d '{ "redirect_uris": <string[]> }'Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
Open registration, as both connector directories require. redirect_uris must be https, loopback http or an app scheme; a public client (none) uses PKCE only, a confidential one receives a client_secret once (stored only as a hash). Bounded per source address per hour. Registering grants nothing: a person still has to approve the app on the consent page. Unauthenticated.
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
redirect_uris | string[] | Yes | — |
client_name | string | No | — |
client_uri | string | No | — |
logo_uri | string | No | — |
token_endpoint_auth_method | string<none, client_secret_post, client_secret_basic> | No | — |
grant_types | string[] | No | — |
software_id | string | No | — |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
client_id | string | Yes | — |
client_id_issued_at | integer | Yes | — |
client_name | string | Yes | — |
redirect_uris | string[] | Yes | — |
grant_types | string[] | No | — |
response_types | string[] | No | — |
token_endpoint_auth_method | string | Yes | — |
client_uri | string | No | — |
logo_uri | string | No | — |
client_secret | string | No | Returned once, for a confidential client only. |
client_secret_expires_at | integer | No | — |
Errors this endpoint can return
400 · 429 · 503