Create Oauth Provider
const url = 'https://example.com/api/settings/oauth-providers/';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"slug":"example","display_name":"example","provider_type":"google","client_id":"example","client_secret":"example","discovery_url":"example","authorize_url":"example","token_url":"example","userinfo_url":"example","scopes":"openid profile email","default_role":"viewer","group_claim":"example","group_role_mapping":{},"enabled":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/settings/oauth-providers/ \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "slug": "example", "display_name": "example", "provider_type": "google", "client_id": "example", "client_secret": "example", "discovery_url": "example", "authorize_url": "example", "token_url": "example", "userinfo_url": "example", "scopes": "openid profile email", "default_role": "viewer", "group_claim": "example", "group_role_mapping": {}, "enabled": true }'Create a new OAuth provider (admin only).
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”Schema for creating a new OAuth provider.
object
URL-safe identifier used in callback URLs (e.g. ‘google’, ‘azure-ad’). Lowercase, digits, and hyphens only.
Human-readable label shown on the login page button.
OAuth provider type. ‘google’ and ‘microsoft’ auto-populate the discovery URL; ‘oidc’ is generic.
OAuth client ID issued by the IdP.
OAuth client secret issued by the IdP. Stored encrypted; never returned in responses.
Space-separated OAuth scopes.
Role assigned to new users created via this provider: ‘viewer’, ‘editor’, or ‘admin’.
Whether the provider button appears on the login page.
Responses
Section titled “ Responses ”Successful Response
Response schema for OAuth provider. Never exposes client_secret.
object
Unique provider identifier.
URL-safe identifier used in the callback URL.
Label shown on the login page button.
Provider type: ‘google’, ‘microsoft’, or ‘oidc’.
OAuth client ID. Visible to admins; never exposes client_secret.
Space-separated OAuth scopes.
Default role assigned to new users.
Whether the provider button appears on the login page.
Timestamp the provider was created.
Timestamp the provider was last updated.
Example generated
{ "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "slug": "example", "display_name": "example", "provider_type": "example", "client_id": "example", "discovery_url": "example", "authorize_url": "example", "token_url": "example", "userinfo_url": "example", "scopes": "example", "default_role": "example", "group_claim": "example", "group_role_mapping": {}, "enabled": true, "created_at": "2026-04-15T12:00:00Z", "updated_at": "2026-04-15T12:00:00Z"}Validation Error
object
object
object
Example generated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}