Register OAuth Client

Dynamic Client Registration (RFC 7591). MCP clients such as Claude, ChatGPT and Cursor call it by themselves. Developers building their own connector can call it too: the redirect URIs must belong to a supported client (Claude, ChatGPT, Cursor) or be a loopback address such as http://127.0.0.1:8765/callback. A client that cannot use those can publish a Client ID Metadata Document and use its HTTPS URL as client_id instead.

POST/register

Authentication

Noneno credentials

No authentication. Registering a client grants no access: a Panda IDX user still has to approve it on the consent screen.

Query Parameters

client_namestring
required

Display name shown on the consent screen (max 200 characters).

redirect_urisarray
required

1 to 20 redirect URIs. HTTPS URIs of supported clients, or loopback http URIs with an explicit port.

token_endpoint_auth_methodstring
optional

none (public client with PKCE) or client_secret_post. Defaults to client_secret_post.

noneclient_secret_post
grant_typesarray
optional

authorization_code, refresh_token. Defaults to both.

response_typesarray
optional

Only code.

application_typestring
optional

native or web. Inferred from the redirect URIs.

nativeweb
client_uristring
optional

Your website, shown on the consent screen.

logo_uristring
optional

HTTPS URL of a logo.

Responses

200Success
application/json
client_idstring
client_namestring
redirect_urisarray[string]
grant_typesarray[string]
response_typesarray[string]
token_endpoint_auth_methodstring
application_typestring

Errors

400invalid_client_metadata or invalid_redirect_uri (the response lists rejected_redirect_uris)
Request
curl --request POST \
--url "https://api.pandaidx.com/register" \
--header "Content-Type: application/json" \
--data-raw '{
"client_name": "My Panda connector",
"redirect_uris": ["http://127.0.0.1:8765/callback"],
"token_endpoint_auth_method": "none"
}'
Response200 OK
{
"client_id": "panda_dcr_0123456789abcdef0123456789abcdef",
"client_name": "My Panda connector",
"redirect_uris": [
"http://127.0.0.1:8765/callback"
],
"grant_types": [
"authorization_code",
"refresh_token"
],
"response_types": [
"code"
],
"token_endpoint_auth_method": "none",
"application_type": "native"
}