openapi: 3.0.0 info: title: Kinde Management API Keys Roles API version: '1' description: The Kinde Management API programmatically manages a Kinde business - users, organizations, roles, permissions, feature flags, applications, connections, APIs and scopes, subscribers, properties, webhooks, and billing. Base URL is subdomain-scoped to your business (https://{subdomain}.kinde.com/api/v1). Authenticated with a Bearer JWT access token obtained via the OAuth2 client_credentials flow from a machine-to-machine (M2M) application. This document is grounded in the official Kinde Management API specification (https://api-spec.kinde.com/kinde-management-api-spec.yaml). contact: name: Kinde Support Team email: support@kinde.com url: https://docs.kinde.com termsOfService: https://docs.kinde.com/trust-center/agreements/terms-of-service/ servers: - url: https://{subdomain}.kinde.com variables: subdomain: default: your_kinde_subdomain description: The subdomain generated for your business on Kinde. security: - kindeBearerAuth: [] tags: - name: Roles paths: /api/v1/roles: get: tags: - Roles summary: List roles operationId: GetRoles description: "The returned list can be sorted by role name or role key in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter.\n\n
\n read:roles\n
" parameters: - name: sort in: query description: Field and order to sort the result by. schema: type: string - name: page_size in: query description: Number of results per page. Defaults to 10 if parameter not sent. schema: type: integer - name: next_token in: query description: A string to get the next page of results if there are more results. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] post: tags: - Roles summary: Create role operationId: CreateRole description: "Create role.\n\n
\n create:roles\n
" responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] /api/v1/roles/{role_id}: get: tags: - Roles summary: Get role operationId: GetRole description: "Get a role\n\n
\n read:roles\n
" parameters: - name: role_id in: path required: true description: The identifier for the role. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] patch: tags: - Roles summary: Update role operationId: UpdateRoles description: "Update a role\n\n
\n update:roles\n
" parameters: - name: role_id in: path required: true description: The identifier for the role. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] delete: tags: - Roles summary: Delete role operationId: DeleteRole description: "Delete role\n\n
\n delete:roles\n
" parameters: - name: role_id in: path required: true description: The identifier for the role. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] /api/v1/roles/{role_id}/scopes: get: tags: - Roles summary: Get role scopes operationId: GetRoleScopes description: "Get scopes for a role.\n\n
\n read:role_scopes\n
" parameters: - name: role_id in: path required: true description: The role id. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] post: tags: - Roles summary: Add role scope operationId: AddRoleScope description: "Add scope to role.\n\n
\n create:role_scopes\n
" parameters: - name: role_id in: path required: true description: The role id. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] /api/v1/roles/{role_id}/scopes/{scope_id}: delete: tags: - Roles summary: Delete role scope operationId: DeleteRoleScope description: "Delete scope from role.\n\n
\n delete:role_scopes\n
" parameters: - name: role_id in: path required: true description: The role id. schema: type: string - name: scope_id in: path required: true description: The scope id. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] /api/v1/roles/{role_id}/permissions: get: tags: - Roles summary: Get role permissions operationId: GetRolePermissions description: "Get permissions for a role.\n\n
\n read:role_permissions\n
" parameters: - name: role_id in: path required: true description: The role's public id. schema: type: string - name: sort in: query description: Field and order to sort the result by. schema: type: string - name: page_size in: query description: Number of results per page. Defaults to 10 if parameter not sent. schema: type: integer - name: next_token in: query description: A string to get the next page of results if there are more results. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] patch: tags: - Roles summary: Update role permissions operationId: UpdateRolePermissions description: "Update role permissions.\n\n
\n update:role_permissions\n
" parameters: - name: role_id in: path required: true description: The identifier for the role. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] /api/v1/roles/{role_id}/users: get: tags: - Roles summary: List role users operationId: GetRoleUsers description: "Get users that have a given role, across all organizations. Each user entry\nincludes the organization codes where they hold that role.\n\n
\n read:organization_user_roles\n
" parameters: - name: role_id in: path required: true description: The role's public id. schema: type: string - name: page_size in: query description: Number of results per page. Defaults to 10 if parameter not sent. schema: type: integer - name: next_token in: query description: A string to get the next page of results if there are more results. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] /api/v1/roles/{role_id}/permissions/{permission_id}: delete: tags: - Roles summary: Remove role permission operationId: RemoveRolePermission description: "Remove a permission from a role.\n\n
\n delete:role_permissions\n
" parameters: - name: role_id in: path required: true description: The role's public id. schema: type: string - name: permission_id in: path required: true description: The permission's public id. schema: type: string responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] components: securitySchemes: kindeBearerAuth: type: http scheme: bearer bearerFormat: JWT description: Requires an access token obtained using the OAuth2 client_credentials flow from an authorized M2M application.