openapi: 3.0.0
info:
version: '1'
title: Kinde Account API Keys Organizations 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: Organizations
x-displayName: Organizations
paths:
/api/v1/organization/{org_code}/invites:
servers: []
get:
tags:
- Organizations
operationId: getOrganizationInvites
x-scope: read:organization_invites
summary: Get organization invites
description: "Get a list of invitations for an organization. By default, only pending (non-revoked, non-accepted) invitations are returned.\n\n
\n read:organization_invites\n
\n"
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
example: org_1ccfb819462
- name: sort
in: query
description: Field and order to sort the result by.
schema:
type: string
nullable: true
enum:
- created_on_asc
- created_on_desc
- email_asc
- email_desc
- name_asc
- name_desc
example: created_on_desc
- name: page_size
in: query
description: Number of results per page. Defaults to 10 if parameter not sent.
schema:
type: integer
nullable: true
example: 10
- name: next_token
in: query
description: A string to get the next page of results if there are more results.
schema:
type: string
nullable: true
- name: include_revoked
in: query
description: Include revoked invitations in the results.
schema:
type: boolean
nullable: true
default: false
- name: include_accepted
in: query
description: Include accepted invitations in the results.
schema:
type: boolean
nullable: true
default: false
responses:
'200':
description: Invitations successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/get_organization_invites_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
post:
tags:
- Organizations
operationId: createOrganizationInvite
x-scope: create:organization_invites
summary: Create organization invite
description: "Create a new invitation for an organization. An invitation email will be sent to the provided email address if `send_email` is set to `true`.\n\nInvitations cannot be created for organizations that are managed by directory sync; user and role changes for those organizations must be made in the upstream identity provider.\n\nRoles that require an explicit assignment permission cannot be granted to an invitee unless the caller (or the user the token represents) holds that permission. On Kinde-hosted plans, roles outside `owner`/`admin` additionally require the `extended_roles` entitlement.\n\nPer-organization rate limits apply: a maximum number of invitations may be created per rolling 24 hour window, and a maximum number of active (non-accepted, non-revoked) invitations may exist at any time. Requests that exceed either limit are rejected.\n\n\n create:organization_invites\n
\n"
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
example: org_1ccfb819462
requestBody:
description: Invitation details. `email` is capped at 254 characters (RFC 5321). `first_name` and `last_name` are capped at 64 characters each. Inputs over these limits are rejected with `EMAIL_TOO_LONG`, `FIRST_NAME_TOO_LONG`, or `LAST_NAME_TOO_LONG`.
required: true
content:
application/json:
schema:
type: object
required:
- email
- roles
properties:
email:
description: The email address of the user to invite. Maximum 254 characters.
type: string
maxLength: 254
example: user@example.com
first_name:
description: The first name of the user to invite. Maximum 64 characters.
type: string
maxLength: 64
nullable: true
example: John
last_name:
description: The last name of the user to invite. Maximum 64 characters.
type: string
maxLength: 64
nullable: true
example: Doe
roles:
description: Array of role keys to assign to the user.
type: array
items:
type: string
example:
- admin
- manager
send_email:
description: Whether to send an invitation email to the user. Defaults to false.
type: boolean
default: false
responses:
'201':
description: Invitation successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/create_organization_invite_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/organization/{org_code}/invites/{invite_code}:
servers: []
get:
tags:
- Organizations
operationId: getOrganizationInvite
x-scope: read:organization_invites
summary: Get organization invite
description: "Get details of a specific invitation by its code.\n\n\n read:organization_invites\n
\n"
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
example: org_1ccfb819462
- name: invite_code
in: path
description: The invitation's code.
required: true
schema:
type: string
example: inv_abc123def456
responses:
'200':
description: Invitation successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/get_organization_invite_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:
- Organizations
operationId: deleteOrganizationInvite
x-scope: delete:organization_invites
summary: Delete organization invite
description: "Revoke (delete) an invitation. This will mark the invitation as revoked and prevent it from being accepted.\n\n\n delete:organization_invites\n
\n"
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
example: org_1ccfb819462
- name: invite_code
in: path
description: The invitation's code.
required: true
schema:
type: string
example: inv_abc123def456
responses:
'200':
description: Invitation successfully revoked.
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: []
/api/v1/organization:
servers: []
get:
tags:
- Organizations
operationId: getOrganization
x-scope: read:organizations
summary: Get organization
description: "Retrieve organization details by code.\n\n\n read:organizations\n
\n"
parameters:
- in: query
name: code
description: The organization's code.
schema:
type: string
example: org_1ccfb819462
- in: query
name: expand
description: 'Additional data to include in the response. Allowed value: "billing".'
schema:
type: string
example: billing
responses:
'200':
description: Organization successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/get_organization_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
post:
tags:
- Organizations
operationId: createOrganization
x-scope: create:organizations
summary: Create organization
description: "Create a new organization. To learn more read about [multi tenancy using organizations](https://docs.kinde.com/build/organizations/multi-tenancy-using-organizations/)\n\n\n create:organizations\n
\n"
requestBody:
description: Organization details.
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
description: The organization's name.
type: string
example: Acme Corp
feature_flags:
type: object
description: The organization's feature flag settings.
additionalProperties:
type: string
enum:
- str
- int
- bool
description: Value of the feature flag.
external_id:
description: The organization's external identifier - commonly used when migrating from or mapping to other systems.
type: string
example: some1234
background_color:
description: The organization's brand settings - background color.
type: string
button_color:
description: The organization's brand settings - button color.
type: string
button_text_color:
description: The organization's brand settings - button text color.
type: string
link_color:
description: The organization's brand settings - link color.
type: string
background_color_dark:
description: The organization's brand settings - dark mode background color.
type: string
button_color_dark:
description: The organization's brand settings - dark mode button color.
type: string
button_text_color_dark:
description: The organization's brand settings - dark mode button text color.
type: string
link_color_dark:
description: The organization's brand settings - dark mode link color.
type: string
theme_code:
description: The organization's brand settings - theme/mode 'light' | 'dark' | 'user_preference'.
type: string
handle:
description: A unique handle for the organization - can be used for dynamic callback urls.
type: string
example: acme_corp
is_allow_registrations:
deprecated: true
description: Deprecated - Use 'is_auto_membership_enabled' instead.
type: boolean
example: true
is_auto_membership_enabled:
description: If users become members of this organization when the org code is supplied during authentication.
type: boolean
example: true
sender_name:
nullable: true
type: string
example: Acme Corp
description: The name of the organization that will be used in emails
sender_email:
nullable: true
type: string
example: hello@acmecorp.com
description: The email address that will be used in emails. Requires custom SMTP to be set up.
is_create_billing_customer:
type: boolean
example: false
description: If a billing customer is also created for this organization
billing_email:
type: string
example: billing@acmecorp.com
description: The email address used for billing purposes for the organization
billing_plan_code:
type: string
example: pro
description: The billing plan to put the customer on. If not specified, the default plan is used
responses:
'200':
description: Organization successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/create_organization_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/organizations:
servers: []
get:
tags:
- Organizations
operationId: getOrganizations
x-scope: read:organizations
summary: Get organizations
description: "Get a list of organizations.\n\n\n read:organizations\n
\n"
parameters:
- name: sort
in: query
description: Field and order to sort the result by.
schema:
type: string
nullable: true
enum:
- name_asc
- name_desc
- email_asc
- email_desc
- name: page_size
in: query
description: Number of results per page. Defaults to 10 if parameter not sent.
schema:
type: integer
nullable: true
- name: next_token
in: query
description: A string to get the next page of results if there are more results.
schema:
type: string
nullable: true
responses:
'200':
description: Organizations successfully retreived.
content:
application/json:
schema:
$ref: '#/components/schemas/get_organizations_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/organization/{org_code}:
servers: []
patch:
tags:
- Organizations
operationId: updateOrganization
description: "Update an organization.\n\n\n update:organizations\n
\n"
summary: Update Organization
parameters:
- name: org_code
in: path
description: The identifier for the organization.
required: true
schema:
type: string
example: org_1ccfb819462
- name: expand
in: query
description: 'Additional data to include in the response. Allowed value: "billing".'
required: false
schema:
type: string
nullable: true
enum:
- billing
requestBody:
description: Organization details.
required: false
content:
application/json:
schema:
type: object
properties:
name:
description: The organization's name.
type: string
example: Acme Corp
external_id:
description: The organization's ID.
type: string
example: some1234
background_color:
description: The organization's brand settings - background color.
type: string
example: '#fff'
button_color:
description: The organization's brand settings - button color.
type: string
example: '#fff'
button_text_color:
description: The organization's brand settings - button text color.
type: string
example: '#fff'
link_color:
description: The organization's brand settings - link color.
type: string
example: '#fff'
background_color_dark:
description: The organization's brand settings - dark mode background color.
type: string
example: '#000'
button_color_dark:
description: The organization's brand settings - dark mode button color.
type: string
example: '#000'
button_text_color_dark:
description: The organization's brand settings - dark mode button text color.
type: string
example: '#000'
link_color_dark:
description: The organization's brand settings - dark mode link color.
type: string
example: '#000'
theme_code:
description: The organization's brand settings - theme/mode.
type: string
enum:
- light
- dark
- user_preference
example: light
handle:
description: The organization's handle.
type: string
example: acme_corp
is_allow_registrations:
deprecated: true
description: Deprecated - Use 'is_auto_membership_enabled' instead.
type: boolean
is_auto_membership_enabled:
description: If users become members of this organization when the org code is supplied during authentication.
type: boolean
example: true
is_auto_join_domain_list:
description: Users can sign up to this organization.
type: boolean
example: true
allowed_domains:
description: Domains allowed for self-sign up to this environment.
type: array
example:
- https://acme.kinde.com
- https://acme.com
items:
type: string
is_enable_advanced_orgs:
description: Activate advanced organization features.
type: boolean
example: true
is_enforce_mfa:
description: Enforce MFA for all users in this organization.
type: boolean
example: true
sender_name:
nullable: true
type: string
example: Acme Corp
description: The name of the organization that will be used in emails
sender_email:
nullable: true
type: string
example: hello@acmecorp.com
description: The email address that will be used in emails. Requires custom SMTP to be set up.
is_suspended:
type: boolean
description: Whether to suspend or unsuspend the organization. Setting to true suspends the organization; setting to false unsuspends it. The default organization cannot be suspended.
example: false
responses:
'200':
description: Organization successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
delete:
tags:
- Organizations
operationId: deleteOrganization
description: "Delete an organization.\n\n\n delete:organizations\n
\n"
summary: Delete Organization
parameters:
- name: org_code
in: path
description: The identifier for the organization.
required: true
schema:
type: string
responses:
'200':
description: Organization 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: []
/api/v1/organizations/{org_code}/users:
servers: []
get:
tags:
- Organizations
operationId: GetOrganizationUsers
x-scope: read:organization_users
summary: Get organization users
description: "Get user details for all members of an organization.\n\n\n read:organization_users\n
\n"
parameters:
- name: sort
in: query
description: Field and order to sort the result by.
schema:
example: email_asc
type: string
nullable: true
enum:
- name_asc
- name_desc
- email_asc
- email_desc
- id_asc
- id_desc
- name: page_size
in: query
description: Number of results per page. Defaults to 10 if parameter not sent.
schema:
example: 10
type: integer
nullable: true
- name: next_token
in: query
description: A string to get the next page of results if there are more results.
schema:
example: MTo6OmlkX2FzYw==
type: string
nullable: true
- name: org_code
in: path
description: The organization's code.
required: true
schema:
example: org_1ccfb819462
type: string
nullable: false
- name: permissions
in: query
description: Filter by user permissions comma separated (where all match)
schema:
example: admin
type: string
- name: roles
in: query
description: Filter by user roles comma separated (where all match)
schema:
example: manager
type: string
responses:
'200':
description: A successful response with a list of organization users or an empty list.
content:
application/json:
schema:
$ref: '#/components/schemas/get_organization_users_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
post:
tags:
- Organizations
operationId: AddOrganizationUsers
description: "Add existing users to an organization.\n\n\n create:organization_users\n
\n"
summary: Add Organization Users
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
users:
description: Users to be added to the organization.
type: array
items:
type: object
properties:
id:
description: The users id.
type: string
example: kp_057ee6debc624c70947b6ba512908c35
roles:
description: Role keys to assign to the user.
type: array
items:
type: string
example: manager
permissions:
description: Permission keys to assign to the user.
type: array
items:
type: string
example: admin
responses:
'200':
description: Add organization users request successfully processed.
content:
application/json:
schema:
$ref: '#/components/schemas/add_organization_users_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
patch:
tags:
- Organizations
operationId: UpdateOrganizationUsers
description: "Update users that belong to an organization.\n\n\n update:organization_users\n
\n"
summary: Update Organization Users
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
users:
description: Users to add, update or remove from the organization.
type: array
items:
type: object
properties:
id:
description: The users id.
type: string
example: kp_057ee6debc624c70947b6ba512908c35
operation:
description: Optional operation, set to 'delete' to remove the user from the organization.
type: string
example: delete
roles:
description: Role keys to assign to the user.
type: array
items:
type: string
example: manager
permissions:
description: Permission keys to assign to the user.
type: array
items:
type: string
example: admin
responses:
'200':
description: Users successfully removed.
content:
application/json:
schema:
$ref: '#/components/schemas/update_organization_users_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/users/{user_id}/roles:
servers: []
get:
tags:
- Organizations
operationId: GetOrganizationUserRoles
x-scope: read:organization_user_roles
description: "Get roles for an organization user.\n\n\n read:organization_user_roles\n
\n"
summary: List Organization User Roles
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
- name: user_id
in: path
description: The user's id.
required: true
schema:
type: string
nullable: false
responses:
'200':
description: A successful response with a list of user roles.
content:
application/json:
schema:
$ref: '#/components/schemas/get_organizations_user_roles_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/get_organizations_user_roles_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
post:
tags:
- Organizations
operationId: CreateOrganizationUserRole
description: "Add role to an organization user.\n\n\n create:organization_user_roles\n
\n"
summary: Add Organization User Role
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
- name: user_id
in: path
description: The user's id.
required: true
schema:
type: string
nullable: false
requestBody:
description: Role details.
required: true
content:
application/json:
schema:
type: object
properties:
role_id:
description: The role id.
type: string
responses:
'200':
description: Role successfully added.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/users/{user_id}/roles/{role_id}:
servers: []
delete:
tags:
- Organizations
operationId: DeleteOrganizationUserRole
description: "Delete role for an organization user.\n\n\n delete:organization_user_roles\n
\n"
summary: Delete Organization User Role
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
- name: user_id
in: path
description: The user's id.
required: true
schema:
type: string
nullable: false
- name: role_id
in: path
description: The role id.
required: true
schema:
type: string
nullable: false
responses:
'200':
description: User successfully removed.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'400':
description: Error creating user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/users/{user_id}/permissions:
servers: []
get:
tags:
- Organizations
operationId: GetOrganizationUserPermissions
x-scope: read:organization_user_permissions
description: "Get permissions for an organization user.\n\n\n read:organization_user_permissions\n
\n"
summary: List Organization User Permissions
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
- name: user_id
in: path
description: The user's id.
required: true
schema:
type: string
nullable: false
- name: expand
in: query
description: 'Additional data to include in the response. Allowed value: "roles".'
required: false
schema:
type: string
nullable: true
responses:
'200':
description: A successful response with a list of user permissions.
content:
application/json:
schema:
$ref: '#/components/schemas/get_organizations_user_permissions_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/get_organizations_user_permissions_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
post:
tags:
- Organizations
operationId: CreateOrganizationUserPermission
description: "Add permission to an organization user.\n\n\n create:organization_user_permissions\n
\n"
summary: Add Organization User Permission
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
- name: user_id
in: path
description: The user's id.
required: true
schema:
type: string
nullable: false
requestBody:
description: Permission details.
required: true
content:
application/json:
schema:
type: object
properties:
permission_id:
description: The permission id.
type: string
responses:
'200':
description: User permission successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/users/{user_id}/permissions/{permission_id}:
servers: []
delete:
tags:
- Organizations
operationId: DeleteOrganizationUserPermission
description: "Delete permission for an organization user.\n\n\n delete:organization_user_permissions\n
\n"
summary: Delete Organization User Permission
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
- name: user_id
in: path
description: The user's id.
required: true
schema:
type: string
nullable: false
- name: permission_id
in: path
description: The permission id.
required: true
schema:
type: string
nullable: false
responses:
'200':
description: User successfully removed.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'400':
description: Error creating user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/users/{user_id}:
servers: []
delete:
tags:
- Organizations
operationId: RemoveOrganizationUser
description: "Remove user from an organization.\n\n\n delete:organization_users\n
\n"
summary: Remove Organization User
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
- name: user_id
in: path
description: The user's id.
required: true
schema:
type: string
nullable: false
responses:
'200':
description: User successfully removed from organization
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'400':
description: Error removing user
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/users/{user_id}/apis/{api_id}/scopes/{scope_id}:
servers: []
post:
tags:
- Organizations
operationId: addOrganizationUserAPIScope
summary: Add scope to organization user api
parameters:
- name: org_code
in: path
description: The identifier for the organization.
required: true
schema:
type: string
- name: user_id
in: path
description: User ID
required: true
schema:
type: string
nullable: false
example: kp_5ce676e5d6a24bc9aac2fba35a46e958
- name: api_id
in: path
description: API ID
required: true
schema:
type: string
nullable: false
example: 838f208d006a482dbd8cdb79a9889f68
- name: scope_id
in: path
description: Scope ID
required: true
schema:
type: string
nullable: false
example: api_scope_019391daf58d87d8a7213419c016ac95
description: "Add a scope to an organization user api.\n\n\n create:organization_user_api_scopes\n
\n"
responses:
'200':
description: API scope successfully added to organization user api
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
delete:
tags:
- Organizations
operationId: deleteOrganizationUserAPIScope
summary: Delete scope from organization user API
parameters:
- name: org_code
in: path
description: The identifier for the organization.
required: true
schema:
type: string
- name: user_id
in: path
description: User ID
required: true
schema:
type: string
nullable: false
example: kp_5ce676e5d6a24bc9aac2fba35a46e958
- name: api_id
in: path
description: API ID
required: true
schema:
type: string
nullable: false
example: 838f208d006a482dbd8cdb79a9889f68
- name: scope_id
in: path
description: Scope ID
required: true
schema:
type: string
nullable: false
example: api_scope_019391daf58d87d8a7213419c016ac95
description: "Delete a scope from an organization user api you previously created.\n\n\n delete:organization_user_api_scopes\n
\n"
responses:
'200':
description: Organization user API scope successfully deleted.
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/users/{user_id}/mfa:
servers: []
get:
tags:
- Organizations
operationId: GetOrgUserMFA
description: "Get an organization user’s MFA configuration.\n\n\n read:organization_user_mfa\n
\n"
summary: Get an organization user's MFA configuration
parameters:
- name: org_code
in: path
description: The identifier for the organization.
required: true
schema:
type: string
example: org_1ccfb819462
- name: user_id
in: path
description: The identifier for the user
required: true
schema:
type: string
example: kp_c3143a4b50ad43c88e541d9077681782
responses:
'200':
description: Successfully retrieve user's MFA configuration.
content:
application/json:
schema:
$ref: '#/components/schemas/get_user_mfa_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:
- Organizations
operationId: ResetOrgUserMFAAll
description: "Reset all organization MFA factors for a user.\n\n\n delete:organization_user_mfa\n
\n"
summary: Reset all organization MFA for a user
parameters:
- name: org_code
in: path
description: The identifier for the organization.
required: true
schema:
type: string
example: org_1ccfb819462
- name: user_id
in: path
description: The identifier for the user
required: true
schema:
type: string
example: kp_c3143a4b50ad43c88e541d9077681782
responses:
'200':
description: User's MFA successfully reset.
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: []
/api/v1/organizations/{org_code}/users/{user_id}/mfa/{factor_id}:
servers: []
delete:
tags:
- Organizations
operationId: ResetOrgUserMFA
description: "Reset a specific organization MFA factor for a user.\n\n\n delete:organization_user_mfa\n
\n"
summary: Reset specific organization MFA for a user
parameters:
- name: org_code
in: path
description: The identifier for the organization.
required: true
schema:
type: string
example: org_1ccfb819462
- name: user_id
in: path
description: The identifier for the user
required: true
schema:
type: string
example: kp_c3143a4b50ad43c88e541d9077681782
- name: factor_id
in: path
description: The identifier for the MFA factor
required: true
schema:
type: string
example: mfa_0193278a00ac29b3f6d4e4d462d55c47
responses:
'200':
description: User's MFA successfully reset.
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: []
/api/v1/organizations/{org_code}/feature_flags:
servers: []
get:
tags:
- Organizations
operationId: GetOrganizationFeatureFlags
x-scope: read:organization_feature_flags
description: "Get all organization feature flags.\n\n\n read:organization_feature_flags\n
\n"
summary: List Organization Feature Flags
parameters:
- name: org_code
in: path
description: The identifier for the organization.
required: true
schema:
type: string
responses:
'200':
description: Feature flag overrides successfully returned.
content:
application/json:
schema:
$ref: '#/components/schemas/get_organization_feature_flags_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/get_organization_feature_flags_response'
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
delete:
tags:
- Organizations
operationId: DeleteOrganizationFeatureFlagOverrides
description: "Delete all organization feature flag overrides.\n\n\n delete:organization_feature_flags\n
\n"
summary: Delete Organization Feature Flag Overrides
parameters:
- name: org_code
in: path
description: The identifier for the organization.
required: true
schema:
type: string
responses:
'200':
description: Feature flag overrides successfully deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}:
servers: []
delete:
tags:
- Organizations
operationId: DeleteOrganizationFeatureFlagOverride
description: "Delete organization feature flag override.\n\n\n delete:organization_feature_flags\n
\n"
summary: Delete Organization Feature Flag Override
parameters:
- name: org_code
in: path
description: The identifier for the organization.
required: true
schema:
type: string
- name: feature_flag_key
in: path
description: The identifier for the feature flag.
required: true
schema:
type: string
responses:
'200':
description: Feature flag override successfully deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
patch:
tags:
- Organizations
operationId: UpdateOrganizationFeatureFlagOverride
description: "Update organization feature flag override.\n\n\n update:organization_feature_flags\n
\n"
summary: Update Organization Feature Flag Override
parameters:
- name: org_code
in: path
description: The identifier for the organization
required: true
schema:
type: string
- name: feature_flag_key
in: path
description: The identifier for the feature flag
required: true
schema:
type: string
- name: value
in: query
description: Override value
required: true
schema:
type: string
responses:
'200':
description: Feature flag override successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/properties/{property_key}:
servers: []
put:
tags:
- Organizations
operationId: UpdateOrganizationProperty
description: "Update organization property value.\n\n\n update:organization_properties\n
\n"
summary: Update Organization Property value
parameters:
- name: org_code
in: path
description: The identifier for the organization
required: true
schema:
type: string
- name: property_key
in: path
description: The identifier for the property
required: true
schema:
type: string
- name: value
in: query
description: The new property value
required: true
schema:
type: string
responses:
'200':
description: Property successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/properties:
servers: []
get:
tags:
- Organizations
operationId: GetOrganizationPropertyValues
description: "Gets properties for an organization by org code.\n\n\n read:organization_properties\n
\n"
summary: Get Organization Property Values
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
responses:
'200':
description: Properties successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/get_property_values_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/get_property_values_response'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
patch:
tags:
- Organizations
operationId: UpdateOrganizationProperties
description: "Update organization property values.\n\n\n update:organization_properties\n
\n"
summary: Update Organization Property values
parameters:
- name: org_code
in: path
description: The identifier for the organization
required: true
schema:
type: string
requestBody:
description: Properties to update.
required: true
content:
application/json:
schema:
type: object
properties:
properties:
description: Property keys and values
type: object
nullable: false
required:
- properties
responses:
'200':
description: Properties successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/mfa:
servers: []
put:
tags:
- Organizations
operationId: ReplaceOrganizationMFA
description: "Replace Organization MFA Configuration.\n\n\n update:organization_mfa\n
\n"
summary: Replace Organization MFA Configuration
parameters:
- name: org_code
in: path
description: The identifier for the organization
required: true
schema:
type: string
requestBody:
description: MFA details.
required: true
content:
application/json:
schema:
type: object
properties:
enabled_factors:
description: The MFA methods to enable.
type: array
nullable: false
items:
type: string
enum:
- mfa:email
- mfa:sms
- mfa:authenticator_app
is_recovery_codes_enabled:
description: Determines whether recovery codes are shown to users during MFA setup for this specific organization. This overrides the environment-level setting.
type: boolean
default: true
required:
- enabled_factors
responses:
'200':
description: MFA Configuration updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/organization/{org_code}/handle:
servers: []
delete:
tags:
- Organizations
operationId: DeleteOrganizationHandle
description: "Delete organization handle\n\n\n delete:organization_handles\n
\n"
summary: Delete organization handle
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
responses:
'200':
description: Handle successfully deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/success_response'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_response'
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/error_response'
'403':
description: Invalid credentials.
'429':
description: Request was throttled.
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/logos:
servers: []
get:
tags:
- Organizations
operationId: ReadOrganizationLogo
description: "Read organization logo details\n\n\n read:organizations\n
\n"
summary: Read organization logo details
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
example: org_1ccfb819462
responses:
'200':
description: Successfully retrieved organization logo details
content:
application/json:
schema:
$ref: '#/components/schemas/read_logo_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/logos/{type}:
servers: []
post:
tags:
- Organizations
operationId: AddOrganizationLogo
description: "Add organization logo\n\n\n update:organizations\n
\n"
summary: Add organization logo
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
example: org_1ccfb819462
- name: type
in: path
description: The type of logo to add.
required: true
schema:
type: string
example: dark
enum:
- dark
- light
requestBody:
description: Organization logo details.
required: true
content:
multipart/form-data:
schema:
type: object
required:
- logo
properties:
logo:
type: string
format: binary
description: The logo file to upload.
responses:
'200':
description: Organization logo successfully updated
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
delete:
tags:
- Organizations
operationId: DeleteOrganizationLogo
description: "Delete organization logo\n\n\n update:organizations\n
\n"
summary: Delete organization logo
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
example: org_1ccfb819462
- name: type
in: path
description: The type of logo to delete.
required: true
schema:
type: string
example: dark
enum:
- dark
- light
responses:
'200':
description: Organization logo successfully deleted
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
'204':
description: No logo found to delete
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/organizations/{organization_code}/connections:
servers: []
get:
tags:
- Organizations
operationId: GetOrganizationConnections
description: "Gets all connections for an organization.\n\n\n read:organization_connections\n
\n"
summary: Get connections
parameters:
- name: organization_code
in: path
description: The organization code.
required: true
schema:
type: string
nullable: false
example: org_7d45b01ef13
responses:
'200':
description: Organization connections successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/get_connections_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/organizations/{organization_code}/connections/{connection_id}:
servers: []
post:
tags:
- Organizations
operationId: EnableOrgConnection
summary: Enable connection
description: "Enable an auth connection for an organization.\n\n\n create:organization_connections\n
\n"
parameters:
- name: organization_code
in: path
description: The unique code for the organization.
required: true
schema:
type: string
example: org_7d45b01ef13
- name: connection_id
in: path
description: The identifier for the connection.
required: true
schema:
type: string
example: conn_0192c16abb53b44277e597d31877ba5b
responses:
'200':
description: Connection successfully enabled.
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
delete:
tags:
- Organizations
operationId: RemoveOrgConnection
summary: Remove connection
description: "Turn off an auth connection for an organization\n\n\n delete:organization_connections\n
\n"
parameters:
- name: organization_code
in: path
description: The unique code for the organization.
required: true
schema:
type: string
example: org_7d45b01ef13
- name: connection_id
in: path
description: The identifier for the connection.
required: true
schema:
type: string
example: conn_0192c16abb53b44277e597d31877ba5b
responses:
'200':
description: Connection successfully removed.
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
/api/v1/organizations/{org_code}/sessions:
servers: []
patch:
tags:
- Organizations
operationId: UpdateOrganizationSessions
description: "Update the organization's session configuration.\n\n\n update:organizations\n
\n"
summary: Update organization session configuration
parameters:
- name: org_code
in: path
description: The organization's code.
required: true
schema:
type: string
nullable: false
example: org_1ccfb819462
requestBody:
description: Organization session configuration.
required: true
content:
application/json:
schema:
type: object
properties:
is_use_org_sso_session_policy:
type: boolean
description: Whether to use the organization's SSO session policy override.
sso_session_persistence_mode:
type: string
enum:
- persistent
- non_persistent
description: Determines if the session should be persistent or not.
is_use_org_authenticated_session_lifetime:
type: boolean
description: Whether to apply the organization's authenticated session lifetime override.
authenticated_session_lifetime:
type: integer
description: Authenticated session lifetime in seconds.
example: 86400
responses:
'200':
description: Organization sessions successfully updated
content:
application/json:
schema:
$ref: '#/components/schemas/success_response'
'400':
$ref: '#/components/responses/bad_request'
'403':
$ref: '#/components/responses/forbidden'
'429':
$ref: '#/components/responses/too_many_requests'
security:
- kindeBearerAuth: []
components:
schemas:
read_logo_response:
type: object
properties:
code:
type: string
description: Response code.
example: OK
logos:
type: array
description: A list of logos.
items:
type: object
properties:
type:
type: string
description: The type of logo (light or dark).
example: light
file_name:
type: string
description: The name of the logo file.
example: kinde_light.jpeg
path:
type: string
description: The relative path to the logo file.
example: /logo?p_org_code=org_1767f11ce62
message:
type: string
description: Response message.
example: Success
organization_user_role:
type: object
properties:
id:
type: string
key:
type: string
name:
type: string
get_organization_users_response:
type: object
properties:
code:
type: string
description: Response code.
example: OK
message:
type: string
description: Response message.
example: Success
organization_users:
type: array
items:
$ref: '#/components/schemas/organization_user'
next_token:
type: string
description: Pagination token.
property_value:
type: object
properties:
id:
type: string
example: prop_0192b7e8b4f8ca08110d2b22059662a8
name:
type: string
example: Town
description:
type: string
example: Where the entity is located
nullable: true
key:
type: string
example: kp_town
value:
type: string
example: West-side Staines massive
nullable: true
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
get_organizations_user_permissions_response:
type: object
properties:
code:
type: string
description: Response code.
message:
type: string
description: Response message.
permissions:
type: array
items:
$ref: '#/components/schemas/organization_user_permission'
get_organizations_response:
type: object
properties:
code:
type: string
description: Response code.
example: OK
message:
type: string
description: Response message.
example: Success
organizations:
type: array
items:
$ref: '#/components/schemas/organization_item_schema'
next_token:
description: Pagination token.
type: string
example: Mjo5Om1hbWVfYZNj
get_organization_invites_response:
type: object
properties:
code:
type: string
description: Response code.
example: OK
message:
type: string
description: Response message.
example: Success
invites:
type: array
items:
$ref: '#/components/schemas/organization_invite'
next_token:
type: string
description: Pagination token.
nullable: true
get_property_values_response:
type: object
properties:
code:
type: string
description: Response code.
message:
type: string
description: Response message.
properties:
type: array
items:
$ref: '#/components/schemas/property_value'
next_token:
description: Pagination token.
type: string
create_organization_invite_response:
type: object
properties:
code:
type: string
description: Response code.
example: INVITATION_CREATED
message:
type: string
description: Response message.
example: Invitation created
invite:
type: object
properties:
id:
type: string
description: The invitation's unique identifier.
example: inv_abc123def456
code:
type: string
description: The invitation's code.
example: inv_abc123def456
email:
type: string
description: The email address of the invited user.
example: user@example.com
first_name:
type: string
description: The first name of the invited user.
nullable: true
example: John
last_name:
type: string
description: The last name of the invited user.
nullable: true
example: Doe
full_name:
type: string
description: The full name of the invited user.
example: John Doe
created_on:
type: string
format: date-time
description: When the invitation was created.
example: '2024-11-18T13:32:03+11'
is_sent:
type: boolean
description: Whether the invitation email was sent.
example: true
accepted_on:
type: string
format: date-time
description: When the invitation was accepted. Always null for a freshly created invitation.
nullable: true
example: null
roles:
type: array
description: The roles assigned to the invitation.
items:
type: object
properties:
key:
type: string
description: The role's key.
example: admin
name:
type: string
description: The role's name.
example: Administrator
example:
- key: admin
name: Administrator
- key: manager
name: Manager
is_revoked:
type: boolean
description: Whether the invitation has been revoked. Always false for a freshly created invitation.
example: false
invite_link:
type: string
description: URL to share with the invitee to accept the invitation.
example: https://example.kinde.com/team_invitation?code=inv_abc123def456
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
get_organizations_user_roles_response:
type: object
properties:
code:
type: string
description: Response code.
message:
type: string
description: Response message.
roles:
type: array
items:
$ref: '#/components/schemas/organization_user_role'
next_token:
type: string
description: Pagination token.
update_organization_users_response:
type: object
properties:
message:
type: string
example: Success
code:
type: string
example: OK
users_added:
type: array
items:
type: string
example: kp_057ee6debc624c70947b6ba512908c35
users_updated:
type: array
items:
type: string
example: kp_057ee6debc624c70947b6ba512908c35
users_removed:
type: array
items:
type: string
example: kp_057ee6debc624c70947b6ba512908c35
get_organization_response:
type: object
properties:
code:
type: string
description: The unique identifier for the organization.
example: org_1ccfb819462
name:
type: string
description: The organization's name.
example: Acme Corp
handle:
type: string
description: A unique handle for the organization - can be used for dynamic callback urls.
example: acme_corp
nullable: true
is_default:
type: boolean
description: Whether the organization is the default organization.
example: false
external_id:
type: string
description: The organization's external identifier - commonly used when migrating from or mapping to other systems.
example: some1234
nullable: true
is_auto_membership_enabled:
type: boolean
example: true
description: If users become members of this organization when the org code is supplied during authentication.
logo:
type: string
nullable: true
description: The organization's logo URL.
example: https://yoursubdomain.kinde.com/logo?org_code=org_1ccfb819462&cache=311308b8ad3544bf8e572979f0e5748d
logo_dark:
type: string
nullable: true
description: The organization's logo URL to be used for dark themes.
example: https://yoursubdomain.kinde.com/logo_dark?org_code=org_1ccfb819462&cache=311308b8ad3544bf8e572979f0e5748d
favicon_svg:
type: string
nullable: true
description: The organization's SVG favicon URL. Optimal format for most browsers
example: https://yoursubdomain.kinde.com/favicon_svg?org_code=org_1ccfb819462&cache=311308b8ad3544bf8e572979f0e5748d
favicon_fallback:
type: string
nullable: true
description: The favicon URL to be used as a fallback in browsers that don't support SVG, add a PNG
example: https://yoursubdomain.kinde.com/favicon_fallback?org_code=org_1ccfb819462&cache=311308b8ad3544bf8e572979f0e5748d
allowed_domains:
type: array
description: Domains allowed for self-sign up to this environment. Empty array means no restrictions.
example:
- https://acme.kinde.com
- https://acme.com
items:
type: string
link_color:
type: object
nullable: true
properties:
raw:
type: string
example: '#0056F1'
hex:
type: string
example: '#0056F1'
hsl:
type: string
example: hsl(220, 100%, 50%)
background_color:
nullable: true
type: object
properties:
raw:
type: string
example: '#ffffff'
hex:
type: string
example: '#ffffff'
hsl:
type: string
example: hsl(0, 0%, 100%)
button_color:
nullable: true
type: object
properties:
raw:
type: string
example: '#0056F1'
hex:
type: string
example: '#0056F1'
hsl:
type: string
example: hsl(220, 100%, 50%)
button_text_color:
nullable: true
type: object
properties:
raw:
type: string
example: '#ffffff'
hex:
type: string
example: '#ffffff'
hsl:
type: string
example: hsl(0, 0%, 100%)
link_color_dark:
type: object
nullable: true
properties:
raw:
type: string
example: '#0056F1'
hex:
type: string
example: '#0056F1'
hsl:
type: string
example: hsl(220, 100%, 50%)
background_color_dark:
type: object
nullable: true
properties:
raw:
type: string
example: '#0056F1'
hex:
type: string
example: '#0056F1'
hsl:
type: string
example: hsl(220, 100%, 50%)
button_text_color_dark:
type: object
nullable: true
properties:
raw:
type: string
example: '#0056F1'
hex:
type: string
example: '#0056F1'
hsl:
type: string
example: hsl(220, 100%, 50%)
button_color_dark:
type: object
nullable: true
properties:
raw:
type: string
example: '#0056F1'
hex:
type: string
example: '#0056F1'
hsl:
type: string
example: hsl(220, 100%, 50%)
button_border_radius:
type: integer
nullable: true
description: The border radius for buttons. Value is px, Kinde transforms to rem for rendering
example: 8
card_border_radius:
type: integer
nullable: true
description: The border radius for cards. Value is px, Kinde transforms to rem for rendering
example: 16
input_border_radius:
type: integer
nullable: true
description: The border radius for inputs. Value is px, Kinde transforms to rem for rendering
example: 4
theme_code:
type: string
description: Whether the environment is forced into light mode, dark mode or user preference
enum:
- light
- dark
- user_preference
color_scheme:
type: string
description: The color scheme for the environment used for meta tags based on the theme code
enum:
- light
- dark
- light dark
created_on:
type: string
description: Date of organization creation in ISO 8601 format.
example: '2021-01-01T00:00:00Z'
is_allow_registrations:
nullable: true
type: boolean
example: true
deprecated: true
description: Deprecated - Use 'is_auto_membership_enabled' instead
sender_name:
nullable: true
type: string
example: Acme Corp
description: The name of the organization that will be used in emails
sender_email:
nullable: true
type: string
example: hello@acmecorp.com
description: The email address that will be used in emails. Requires custom SMTP to be set up.
is_suspended:
type: boolean
description: Whether the organization is currently suspended or not.
example: false
suspended_on:
type: string
description: The date the organization was suspended in ISO 8601 format. Null if not suspended.
nullable: true
example: '2021-01-01T00:00:00Z'
billing:
type: object
description: The billing information if the organization is a billing customer.
properties:
billing_customer_id:
type: string
agreements:
type: array
description: The billing agreements the billing customer is currently subscribed to
items:
type: object
properties:
plan_code:
type: string
example: pro
description: The code of the plan from which this agreement is taken from
agreement_id:
type: string
example: agreement_a1234b
description: The id of the billing agreement in Kinde
success_response:
type: object
properties:
message:
type: string
example: Success
code:
type: string
example: OK
add_organization_users_response:
type: object
properties:
code:
type: string
description: Response code.
message:
type: string
description: Response message.
users_added:
type: array
items:
type: string
get_organization_feature_flags_response:
type: object
properties:
code:
type: string
description: Response code.
message:
type: string
description: Response message.
feature_flags:
type: object
description: The environment's feature flag settings.
additionalProperties:
type: object
properties:
type:
type: string
enum:
- str
- int
- bool
value:
type: string
get_user_mfa_response:
type: object
properties:
message:
type: string
code:
type: string
mfa:
type: object
properties:
id:
description: The MFA's identifier.
type: string
example: mfa_01933d1ca1f093e7fad48ebcdb65a871
type:
description: The type of MFA (e.g. email, SMS, authenticator app).
type: string
example: email
created_on:
description: The timestamp when the MFA was created.
type: string
format: date-time
example: '2024-11-18T13:31:46.795085+11:00'
name:
description: The identifier used for MFA (e.g. email address, phone number).
type: string
example: sally@gmail.com
is_verified:
description: Whether the MFA is verified or not.
type: boolean
example: true
usage_count:
description: The number of times MFA has been used.
type: integer
example: 2
last_used_on:
description: The timestamp when the MFA was last used.
type: string
format: date-time
example: '2024-11-18T13:32:07.22538+11:00'
get_organization_invite_response:
type: object
properties:
message:
type: string
description: Response message.
example: Success
id:
type: string
description: The invitation's unique identifier.
example: inv_abc123def456
code:
type: string
description: The invitation's code.
example: inv_abc123def456
email:
type: string
description: The email address of the invited user.
example: user@example.com
first_name:
type: string
description: The first name of the invited user.
nullable: true
example: John
last_name:
type: string
description: The last name of the invited user.
nullable: true
example: Doe
full_name:
type: string
description: The full name of the invited user.
example: John Doe
created_on:
type: string
format: date-time
description: When the invitation was created.
example: '2024-11-18T13:32:03+11'
is_sent:
type: boolean
description: Whether the invitation email was sent.
example: true
accepted_on:
type: string
format: date-time
description: When the invitation was accepted.
nullable: true
example: '2024-11-19T10:15:30+11'
roles:
type: array
description: The roles assigned to the invitation.
items:
type: object
properties:
key:
type: string
description: The role's key.
example: admin
name:
type: string
description: The role's name.
example: Administrator
example:
- key: admin
name: Administrator
- key: manager
name: Manager
is_revoked:
type: boolean
description: Whether the invitation has been revoked.
example: false
invite_link:
type: string
description: URL to share with the invitee to accept the invitation.
example: https://example.kinde.com/team_invitation?code=inv_abc123def456
organization_user_permission:
type: object
properties:
id:
type: string
key:
type: string
name:
type: string
description:
type: string
roles:
type: array
items:
type: object
properties:
id:
type: string
key:
type: string
organization_invite:
type: object
properties:
id:
type: string
description: The invitation's unique identifier.
example: inv_abc123def456
code:
type: string
description: The invitation's code.
example: inv_abc123def456
email:
type: string
description: The email address of the invited user.
example: user@example.com
first_name:
type: string
description: The first name of the invited user.
nullable: true
example: John
last_name:
type: string
description: The last name of the invited user.
nullable: true
example: Doe
full_name:
type: string
description: The full name of the invited user.
example: John Doe
created_on:
type: string
format: date-time
description: When the invitation was created.
example: '2024-11-18T13:32:03+11'
is_sent:
type: boolean
description: Whether the invitation email was sent.
example: true
accepted_on:
type: string
format: date-time
description: When the invitation was accepted.
nullable: true
example: '2024-11-19T10:15:30+11'
roles:
type: array
description: The roles assigned to the invitation.
items:
type: object
properties:
key:
type: string
description: The role's key.
example: admin
name:
type: string
description: The role's name.
example: Administrator
example:
- key: admin
name: Administrator
- key: manager
name: Manager
is_revoked:
type: boolean
description: Whether the invitation has been revoked.
example: false
invite_link:
type: string
description: URL to share with the invitee to accept the invitation.
example: https://example.kinde.com/team_invitation?code=inv_abc123def456
error:
type: object
properties:
code:
type: string
description: Error code.
message:
type: string
description: Error message.
create_organization_response:
type: object
properties:
message:
type: string
description: Response message.
example: Success
code:
type: string
description: Response code.
example: OK
organization:
type: object
properties:
code:
description: The organization's unique code.
type: string
example: org_1ccfb819462
billing_customer_id:
description: The billing customer id if the organization was created with the is_create_billing_customer as true
type: string
example: customer_1245adbc6789
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
organization_user:
type: object
properties:
id:
type: string
example: kp:97c2ba24217d48e3b96a799b76cf2c74
description: The unique ID for the user.
nullable: true
email:
type: string
example: john.snow@example.com
description: The user's email address.
nullable: true
full_name:
type: string
example: John Snow
description: The user's full name.
last_name:
type: string
example: Snow
description: The user's last name.
nullable: true
first_name:
type: string
example: John
description: The user's first name.
nullable: true
picture:
type: string
example: https://example.com/john_snow.jpg
description: The user's profile picture URL.
nullable: true
joined_on:
type: string
example: '2021-01-01T00:00:00Z'
description: The date the user joined the organization.
last_accessed_on:
type: string
example: '2022-01-01T00:00:00Z'
description: The date the user last accessed the organization.
nullable: true
is_suspended:
type: boolean
description: Whether the user is currently suspended or not.
example: false
roles:
type: array
description: The roles the user has in the organization.
items:
type: string
example: admin
description: The role's key.
organization_item_schema:
type: object
properties:
code:
type: string
description: The unique identifier for the organization.
example: org_1ccfb819462
name:
type: string
description: The organization's name.
example: Acme Corp
handle:
type: string
description: A unique handle for the organization - can be used for dynamic callback urls.
example: acme_corp
nullable: true
is_default:
type: boolean
description: Whether the organization is the default organization.
example: false
external_id:
type: string
description: The organization's external identifier - commonly used when migrating from or mapping to other systems.
example: some1234
nullable: true
is_auto_membership_enabled:
type: boolean
example: true
description: If users become members of this organization when the org code is supplied during authentication.
responses:
bad_request:
description: Invalid request.
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'
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'
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