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.
/registerAuthentication
no credentialsNo authentication. Registering a client grants no access: a Panda IDX user still has to approve it on the consent screen.
Query Parameters
client_namestringDisplay name shown on the consent screen (max 200 characters).
redirect_urisarray1 to 20 redirect URIs. HTTPS URIs of supported clients, or loopback http URIs with an explicit port.
token_endpoint_auth_methodstringnone (public client with PKCE) or client_secret_post. Defaults to client_secret_post.
noneclient_secret_postgrant_typesarrayauthorization_code, refresh_token. Defaults to both.
response_typesarrayOnly code.
application_typestringnative or web. Inferred from the redirect URIs.
nativewebclient_uristringYour website, shown on the consent screen.
logo_uristringHTTPS URL of a logo.
Responses
application/jsonclient_idstringclient_namestringredirect_urisarray[string]grant_typesarray[string]response_typesarray[string]token_endpoint_auth_methodstringapplication_typestringErrors
400invalid_client_metadata or invalid_redirect_uri (the response lists rejected_redirect_uris)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"}'
{"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"}