openapi: 3.0.0
info:
version: '1'
title: Kinde Account API Keys Connections API
description: '
Provides endpoints to operate on an authenticated user.
## Intro
## How to use
1. Get a user access token - this can be obtained when a user signs in via the methods you''ve setup in Kinde (e.g. Google, passwordless, etc).
2. Call one of the endpoints below using the user access token in the Authorization header as a Bearer token. Typically, you can use the `getToken` command in the relevant SDK.
'
termsOfService: https://docs.kinde.com/trust-center/agreements/terms-of-service/
contact:
name: Kinde Support Team
email: support@kinde.com
url: https://docs.kinde.com
tags:
- name: Connections
x-displayName: Connections
paths:
/api/v1/connections:
servers: []
get:
tags:
- Connections
operationId: GetConnections
x-scope: read:connections
description: "Returns a list of authentication connections. Optionally you can filter this by a home realm domain.\n\n
\n read:connections\n
\n"
summary: Get connections
parameters:
- name: page_size
in: query
description: Number of results per page. Defaults to 10 if parameter not sent.
schema:
type: integer
nullable: true
- name: home_realm_domain
in: query
description: Filter the results by the home realm domain.
schema:
example: myapp.com
type: string
nullable: true
- name: starting_after
in: query
description: The ID of the connection to start after.
schema:
type: string
nullable: true
- name: ending_before
in: query
description: The ID of the connection to end before.
schema:
type: string
nullable: true
responses:
'200':
description: Connections successfully retrieved.
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/get_connections_response'
application/json:
schema:
$ref: '#/components/schemas/get_connections_response'
'400':
description: Invalid request.
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
application/json:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
application/json:
schema:
$ref: '#/components/schemas/error_response'
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
post:
tags:
- Connections
operationId: CreateConnection
x-scope: create:connections
description: "Create Connection.\n\n\n create:connections\n
\n"
summary: Create Connection
requestBody:
description: Connection details.
required: true
content:
application/json:
schema:
type: object
properties:
name:
description: The internal name of the connection.
type: string
nullable: false
display_name:
description: The public facing name of the connection.
type: string
nullable: false
strategy:
description: The identity provider identifier for the connection.
type: string
enum:
- oauth2:apple
- oauth2:azure_ad
- oauth2:bitbucket
- oauth2:discord
- oauth2:facebook
- oauth2:github
- oauth2:gitlab
- oauth2:google
- oauth2:linkedin
- oauth2:microsoft
- oauth2:patreon
- oauth2:slack
- oauth2:stripe
- oauth2:twitch
- oauth2:twitter
- oauth2:xero
- saml:custom
- saml:cloudflare
- saml:okta
- saml:microsoft
- saml:google
- wsfed:azure_ad
nullable: false
enabled_applications:
description: Client IDs of applications in which this connection is to be enabled.
type: array
items:
type: string
organization_code:
description: Enterprise connections only - the code for organization that manages this connection.
type: string
nullable: true
example: org_80581732fbe
options:
oneOf:
- type: object
description: Social connection options (e.g., Google SSO).
properties:
client_id:
type: string
description: OAuth client ID.
example: hji7db2146af332akfldfded22
client_secret:
type: string
description: OAuth client secret.
example: 19fkjdalg521l23fassf3039d4ae18b
is_use_custom_domain:
type: boolean
description: Use custom domain callback URL.
example: true
is_trusted:
type: boolean
description: Trust this connection for account merging.
example: true
- type: object
description: Azure AD connection options.
properties:
client_id:
type: string
description: Client ID.
example: hji7db2146af332akfldfded22
client_secret:
type: string
description: Client secret.
example: 19fkjdalg521l23fassf3039d4ae18b
home_realm_domains:
type: array
items:
type: string
description: List of domains to limit authentication.
example:
- '@kinde.com'
- '@kinde.io'
entra_id_domain:
type: string
description: Domain for Entra ID.
example: kinde.com
is_use_common_endpoint:
type: boolean
description: Use https://login.windows.net/common instead of a default endpoint.
example: true
is_sync_user_profile_on_login:
type: boolean
description: Sync user profile data with IDP.
example: true
is_retrieve_provider_user_groups:
type: boolean
description: Include user group info from MS Entra ID.
example: true
is_extended_attributes_required:
type: boolean
description: Include additional user profile information.
example: true
is_auto_join_organization_enabled:
type: boolean
description: Users automatically join organization when using this connection.
example: true
is_create_missing_user:
type: boolean
description: Create a user record in Kinde if the user signing in does not exist.
example: true
is_force_show_sso_button:
type: boolean
description: Force showing the SSO button for this connection.
example: false
upstream_params:
type: object
description: Additional upstream parameters to pass to the identity provider.
additionalProperties: true
example:
prompt:
value: select_account
is_use_custom_domain:
type: boolean
description: Use custom domain callback URL.
example: true
is_trusted:
type: boolean
description: Trust this connection for account merging.
example: true
- type: object
description: SAML connection options (e.g., Cloudflare SAML).
properties:
home_realm_domains:
type: array
items:
type: string
description: List of domains to restrict authentication.
example:
- '@kinde.com'
- '@kinde.io'
saml_entity_id:
type: string
description: SAML Entity ID.
example: https://kinde.com
saml_idp_metadata_url:
type: string
description: URL for the IdP metadata.
example: https://kinde.com/saml/metadata
saml_sign_in_url:
type: string
description: Override the default SSO endpoint with a URL your IdP recognizes.
example: https://kinde.com/saml/signin
sign_request_algorithm:
type: string
description: Algorithm used to sign SAML requests.
enum:
- RSA-SHA256
- RSA-SHA1
example: RSA-SHA256
protocol_binding:
type: string
description: Protocol binding used to send SAML requests.
enum:
- HTTP-REDIRECT
- HTTP-POST
example: HTTP-REDIRECT
name_id_format:
type: string
description: Format for the Name ID used to identify users in SAML responses.
enum:
- Persistent
- Transient
- Email address
- Unspecified
example: Persistent
saml_email_key_attr:
type: string
description: Attribute key for the user's email.
example: email
saml_user_id_key_attr:
type: string
description: Attribute key for the user's ID.
example: user_id
saml_first_name_key_attr:
type: string
description: Attribute key for the user's first name.
example: given_name
saml_last_name_key_attr:
type: string
description: Attribute key for the user's last name.
example: family_name
is_create_missing_user:
type: boolean
description: Create user if they don't exist.
example: true
is_force_show_sso_button:
type: boolean
description: Force showing the SSO button for this connection.
example: false
upstream_params:
type: object
description: Additional upstream parameters to pass to the identity provider.
additionalProperties: true
example:
prompt:
value: select_account
saml_signing_certificate:
type: string
description: Certificate for signing SAML requests.
example: '-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgIEUjZoyDANBgkqhkiG9w0BAQsFADBzMQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCVNhbiBGcmFuYzEXMBUGA1UECgwOQ2xv
-----END CERTIFICATE-----'
saml_signing_private_key:
type: string
description: Private key associated with the signing certificate.
example: '-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCy5+KLjTzF6tvl
-----END PRIVATE KEY-----'
is_auto_join_organization_enabled:
type: boolean
description: Users automatically join organization when using this connection.
example: true
is_use_custom_domain:
type: boolean
description: Use custom domain callback URL.
example: true
is_trusted:
type: boolean
description: Trust this connection for account merging.
example: true
responses:
'201':
description: Connection successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/create_connection_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/connections/{connection_id}:
servers: []
get:
tags:
- Connections
operationId: GetConnection
description: "Get Connection.\n\n\n read:connections\n
\n"
summary: Get Connection
parameters:
- name: connection_id
in: path
description: The unique identifier for the connection.
required: true
schema:
type: string
responses:
'200':
description: Connection successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/connection'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
patch:
tags:
- Connections
operationId: UpdateConnection
description: "Update Connection.\n\n\n update:connections\n
\n"
summary: Update Connection
parameters:
- name: connection_id
in: path
description: The unique identifier for the connection.
required: true
schema:
type: string
requestBody:
description: The fields of the connection to update.
required: true
content:
application/json:
schema:
type: object
properties:
name:
description: The internal name of the connection.
type: string
nullable: false
example: ConnectionA
display_name:
description: The public facing name of the connection.
type: string
nullable: false
example: Connection
enabled_applications:
description: Client IDs of applications in which this connection is to be enabled.
type: array
example:
- c647dbe20f5944e28af97c9184fded22
- 20bbffaa4c5e492a962273039d4ae18b
items:
type: string
options:
oneOf:
- type: object
description: Social connection options (e.g., Google SSO).
properties:
client_id:
type: string
description: OAuth client ID.
example: hji7db2146af332akfldfded22
client_secret:
type: string
description: OAuth client secret.
example: 19fkjdalg521l23fassf3039d4ae18b
is_use_custom_domain:
type: boolean
description: Use custom domain callback URL.
example: true
is_trusted:
type: boolean
description: Trust this connection for account merging.
example: true
- type: object
description: Azure AD connection options.
properties:
client_id:
type: string
description: Client ID.
example: hji7db2146af332akfldfded22
client_secret:
type: string
description: Client secret.
example: 19fkjdalg521l23fassf3039d4ae18b
home_realm_domains:
type: array
items:
type: string
description: List of domains to limit authentication.
example:
- '@kinde.com'
- '@kinde.io'
entra_id_domain:
type: string
description: Domain for Entra ID.
example: kinde.com
is_use_common_endpoint:
type: boolean
description: Use https://login.windows.net/common instead of a default endpoint.
example: true
is_sync_user_profile_on_login:
type: boolean
description: Sync user profile data with IDP.
example: true
is_retrieve_provider_user_groups:
type: boolean
description: Include user group info from MS Entra ID.
example: true
is_extended_attributes_required:
type: boolean
description: Include additional user profile information.
example: true
is_create_missing_user:
type: boolean
description: Create users if they don't exist in the system.
example: true
is_force_show_sso_button:
type: boolean
description: Force showing the SSO button for this connection.
example: false
upstream_params:
type: object
description: Additional upstream parameters to pass to the identity provider.
additionalProperties: true
example:
prompt:
value: select_account
is_use_custom_domain:
type: boolean
description: Use custom domain callback URL.
example: true
is_trusted:
type: boolean
description: Trust this connection for account merging.
example: true
- type: object
description: SAML connection options (e.g., Cloudflare SAML).
properties:
home_realm_domains:
type: array
items:
type: string
description: List of domains to restrict authentication.
example:
- '@kinde.com'
- '@kinde.io'
saml_entity_id:
type: string
description: SAML Entity ID.
example: https://kinde.com
saml_idp_metadata_url:
type: string
description: URL for the IdP metadata.
example: https://kinde.com/saml/metadata
saml_sign_in_url:
type: string
description: Override the default SSO endpoint with a URL your IdP recognizes.
example: https://kinde.com/saml/signin
sign_request_algorithm:
type: string
description: Algorithm used to sign SAML requests.
enum:
- RSA-SHA256
- RSA-SHA1
example: RSA-SHA256
protocol_binding:
type: string
description: Protocol binding used to send SAML requests.
enum:
- HTTP-REDIRECT
- HTTP-POST
example: HTTP-REDIRECT
name_id_format:
type: string
description: Format for the Name ID used to identify users in SAML responses.
enum:
- Persistent
- Transient
- Email address
- Unspecified
example: Persistent
saml_email_key_attr:
type: string
description: Attribute key for the user's email.
example: email
saml_user_id_key_attr:
type: string
description: Attribute key for the user's ID.
example: user_id
saml_first_name_key_attr:
type: string
description: Attribute key for the user's first name.
example: given_name
saml_last_name_key_attr:
type: string
description: Attribute key for the user's last name.
example: family_name
is_create_missing_user:
type: boolean
description: Create user if they don't exist.
example: true
is_force_show_sso_button:
type: boolean
description: Force showing the SSO button for this connection.
example: false
upstream_params:
type: object
description: Additional upstream parameters to pass to the identity provider.
additionalProperties: true
example:
prompt:
value: select_account
saml_signing_certificate:
type: string
description: Certificate for signing SAML requests.
example: '-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgIEUjZoyDANBgkqhkiG9w0BAQsFADBzMQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCVNhbiBGcmFuYzEXMBUGA1UECgwOQ2xv
-----END CERTIFICATE-----'
saml_signing_private_key:
type: string
description: Private key associated with the signing certificate.
example: '-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCy5+KLjTzF6tvl
-----END PRIVATE KEY-----'
is_use_custom_domain:
type: boolean
description: Use custom domain callback URL.
example: true
is_trusted:
type: boolean
description: Trust this connection for account merging.
example: true
responses:
'200':
description: Connection successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
put:
tags:
- Connections
operationId: ReplaceConnection
description: "Replace Connection Config.\n\n\n update:connections\n
\n"
summary: Replace Connection
parameters:
- name: connection_id
in: path
description: The unique identifier for the connection.
required: true
schema:
type: string
requestBody:
description: The complete connection configuration to replace the existing one.
required: true
content:
application/json:
schema:
type: object
properties:
name:
description: The internal name of the connection.
type: string
example: ConnectionA
nullable: false
display_name:
description: The public-facing name of the connection.
type: string
example: Connection
nullable: false
enabled_applications:
description: Client IDs of applications in which this connection is to be enabled.
type: array
items:
type: string
example:
- c647dbe20f5944e28af97c9184fded22
- 20bbffaa4c5e492a962273039d4ae18b
options:
oneOf:
- type: object
description: Social connection options (e.g., Google SSO).
properties:
client_id:
type: string
description: OAuth client ID.
example: hji7db2146af332akfldfded22
client_secret:
type: string
description: OAuth client secret.
example: 19fkjdalg521l23fassf3039d4ae18b
is_use_custom_domain:
type: boolean
description: Use custom domain callback URL.
example: true
is_trusted:
type: boolean
description: Trust this connection for account merging.
example: true
- type: object
description: Azure AD connection options.
properties:
client_id:
type: string
description: Client ID.
example: hji7db2146af332akfldfded22
client_secret:
type: string
description: Client secret.
example: 19fkjdalg521l23fassf3039d4ae18b
home_realm_domains:
type: array
items:
type: string
description: List of domains to limit authentication.
example:
- '@kinde.com'
- '@kinde.io'
entra_id_domain:
type: string
description: Domain for Entra ID.
example: kinde.com
is_use_common_endpoint:
type: boolean
description: Use https://login.windows.net/common instead of a default endpoint.
example: true
is_sync_user_profile_on_login:
type: boolean
description: Sync user profile data with IDP.
example: true
is_retrieve_provider_user_groups:
type: boolean
description: Include user group info from MS Entra ID.
example: true
is_extended_attributes_required:
type: boolean
description: Include additional user profile information.
example: true
is_create_missing_user:
type: boolean
description: Create a user record in Kinde if the user signing in does not exist.
example: true
is_force_show_sso_button:
type: boolean
description: Force showing the SSO button for this connection.
example: false
upstream_params:
type: object
description: Additional upstream parameters to pass to the identity provider.
additionalProperties: true
example:
prompt:
value: select_account
is_use_custom_domain:
type: boolean
description: Use custom domain callback URL.
example: true
is_trusted:
type: boolean
description: Trust this connection for account merging.
example: true
- type: object
description: SAML connection options (e.g., Cloudflare SAML).
properties:
home_realm_domains:
type: array
items:
type: string
description: List of domains to restrict authentication.
example:
- '@kinde.com'
- '@kinde.io'
saml_entity_id:
type: string
description: SAML Entity ID.
example: https://kinde.com
saml_idp_metadata_url:
type: string
description: URL for the IdP metadata.
example: https://kinde.com/saml/metadata
sign_request_algorithm:
type: string
description: Algorithm used to sign SAML requests.
enum:
- RSA-SHA256
- RSA-SHA1
example: RSA-SHA256
protocol_binding:
type: string
description: Protocol binding used to send SAML requests.
enum:
- HTTP-REDIRECT
- HTTP-POST
example: HTTP-REDIRECT
name_id_format:
type: string
description: Format for the Name ID used to identify users in SAML responses.
enum:
- Persistent
- Transient
- Email address
- Unspecified
example: Persistent
saml_email_key_attr:
type: string
description: Attribute key for the user's email.
example: email
saml_user_id_key_attr:
type: string
description: Attribute key for the user's ID.
example: user_id
saml_first_name_key_attr:
type: string
description: Attribute key for the user's first name.
example: given_name
saml_last_name_key_attr:
type: string
description: Attribute key for the user's last name.
example: family_name
is_create_missing_user:
type: boolean
description: Create user if they don't exist.
example: true
is_force_show_sso_button:
type: boolean
description: Force showing the SSO button for this connection.
example: false
upstream_params:
type: object
description: Additional upstream parameters to pass to the identity provider.
additionalProperties: true
example:
prompt:
value: select_account
saml_signing_certificate:
type: string
description: Certificate for signing SAML requests.
example: '-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgIEUjZoyDANBgkqhkiG9w0BAQsFADBzMQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCVNhbiBGcmFuYzEXMBUGA1UECgwOQ2xv
-----END CERTIFICATE-----'
saml_signing_private_key:
type: string
description: Private key associated with the signing certificate.
example: '-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCy5+KLjTzF6tvl
-----END PRIVATE KEY-----'
is_use_custom_domain:
type: boolean
description: Use custom domain callback URL.
example: true
is_trusted:
type: boolean
description: Trust this connection for account merging.
example: true
responses:
'200':
description: Connection successfully updated
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
delete:
tags:
- Connections
operationId: deleteConnection
description: "Delete connection.\n\n\n delete:connections\n
\n"
summary: Delete Connection
parameters:
- name: connection_id
in: path
description: The identifier for the connection.
required: true
schema:
type: string
responses:
'200':
description: Connection successfully deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
components:
responses:
bad_request:
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
not_found:
description: The specified resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/not_found_response'
forbidden:
description: Unauthorized - invalid credentials.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
too_many_requests:
description: Too many requests. Request was throttled.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
schemas:
error:
type: object
properties:
code:
type: string
description: Error code.
message:
type: string
description: Error message.
not_found_response:
type: object
properties:
errors:
type: object
properties:
code:
type: string
example: ROUTE_NOT_FOUND
message:
type: string
example: The requested API route does not exist
create_connection_response:
type: object
properties:
message:
type: string
code:
type: string
connection:
type: object
properties:
id:
description: The connection's ID.
type: string
success_response:
type: object
properties:
message:
type: string
example: Success
code:
type: string
example: OK
error_response:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/error'
get_connections_response:
type: object
properties:
code:
type: string
description: Response code.
message:
type: string
description: Response message.
connections:
type: array
items:
$ref: '#/components/schemas/connection'
has_more:
description: Whether more records exist.
type: boolean
connection:
type: object
properties:
code:
type: string
description: Response code.
message:
type: string
description: Response message.
connection:
type: object
properties:
id:
type: string
name:
type: string
display_name:
type: string
strategy:
type: string
securitySchemes:
kindeBearerAuth:
description: 'To access these endpoints, you will need to use a user token. This can be obtained when your users sign in via the methods you''ve setup in Kinde (e.g. Google, passwordless, etc). Find this using the getToken command in the relevant SDK.
'
type: http
scheme: bearer
bearerFormat: JWT