openapi: 3.0.0 info: title: Kinde Management API Keys Users 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: Users paths: /api/v1/users: get: tags: - Users summary: Get users operationId: getUsers description: "The returned list can be sorted by full name or email address 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:users\n
" parameters: - name: page_size in: query description: Number of results per page. Defaults to 10 if parameter not sent. schema: type: integer - name: user_id in: query description: Filter the results by User ID. The query string should be comma separated and url encoded. schema: type: string - name: next_token in: query description: A string to get the next page of results if there are more results. schema: type: string - name: email in: query description: Filter the results by email address. The query string should be comma separated and url encoded. schema: type: string - name: username in: query description: Filter the results by username. The query string should be comma separated and url encoded. schema: type: string - name: phone in: query description: Filter the results by phone. The query string should be comma separated and url encoded. schema: type: string - name: expand in: query description: 'Additional data to include in the response. One or more of (comma-separated): "organizations", "identities", "billing".' schema: type: string - name: has_organization in: query description: Filter the results by if the user has at least one organization assigned. schema: type: boolean - name: active_since in: query description: Filter the results to only include users who have been active since this date. Date should be in ISO 8601 format. 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/users/{user_id}/refresh_claims: post: tags: - Users summary: Refresh User Claims and Invalidate Cache operationId: refreshUserClaims description: "Refreshes the user's claims and invalidates the current cache.\n\n
\n update:user_refresh_claims\n
" parameters: - name: user_id in: path required: true description: The id of the user whose claims needs to be updated. 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/user: get: tags: - Users summary: Get user operationId: getUserData description: "Retrieve a user record.\n\n
\n read:users\n
" parameters: - name: id in: query required: true description: The user's id. schema: type: string - name: expand in: query description: 'Additional data to include in the response. One or more of (comma-separated): "organizations", "identities", "billing".' 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: - Users summary: Create user operationId: createUser description: "Creates a user record and optionally zero or more identities for the user. An example identity could be the email\naddress of the user.\n\n
\n create:users\n
" responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] patch: tags: - Users summary: Update user operationId: updateUser description: "Update a user record.\n\n
\n update:users\n
" parameters: - name: id in: query required: true description: The user's id. 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: - Users summary: Delete user operationId: deleteUser description: "Delete a user record.\n\n
\n delete:users\n
" parameters: - name: id in: query required: true description: The user's id. schema: type: string - name: is_delete_profile in: query description: Delete all data and remove the user's profile from all of Kinde, including the subscriber list schema: type: boolean responses: '200': description: OK '400': description: Bad request '403': description: Forbidden '429': description: Too many requests - rate limited security: - kindeBearerAuth: [] /api/v1/users/{user_id}/feature_flags/{feature_flag_key}: patch: tags: - Users summary: Update User Feature Flag Override operationId: UpdateUserFeatureFlagOverride description: "Update user feature flag override.\n\n
\n update:user_feature_flags\n
" parameters: - name: user_id in: path required: true description: The identifier for the user schema: type: string - name: feature_flag_key in: path required: true description: The identifier for the feature flag schema: type: string - name: value in: query required: true description: Override value 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/users/{user_id}/properties/{property_key}: put: tags: - Users summary: Update Property value operationId: UpdateUserProperty description: "Update property value.\n\n
\n update:user_properties\n
" parameters: - name: user_id in: path required: true description: The identifier for the user schema: type: string - name: property_key in: path required: true description: The identifier for the property schema: type: string - name: value in: query required: true description: The new property value 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/users/{user_id}/properties: get: tags: - Users summary: Get property values operationId: GetUserPropertyValues description: "Gets properties for an user by ID.\n\n
\n read:user_properties\n
" parameters: - name: user_id in: path required: true description: The user's ID. 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: - Users summary: Update Property values operationId: UpdateUserProperties description: "Update property values.\n\n
\n update:user_properties\n
" parameters: - name: user_id in: path required: true description: The identifier for the user 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/users/{user_id}/password: put: tags: - Users summary: Set User password operationId: SetUserPassword description: "Set user password.\n\n
\n update:user_passwords\n
" parameters: - name: user_id in: path required: true description: The identifier for the user 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/users/{user_id}/identities: get: tags: - Users summary: Get identities operationId: GetUserIdentities description: "Gets a list of identities for an user by ID.\n\n
\n read:user_identities\n
" parameters: - name: user_id in: path required: true description: The user's ID. schema: type: string - name: starting_after in: query description: The ID of the identity to start after. schema: type: string - name: ending_before in: query description: The ID of the identity to end before. 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: - Users summary: Create identity operationId: CreateUserIdentity description: "Creates an identity for a user.\n\n
\n create:user_identities\n
" parameters: - name: user_id in: path required: true description: The user's 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/users/{user_id}/sessions: get: tags: - Users summary: Get user sessions operationId: GetUserSessions description: "Retrieve the list of active sessions for a specific user.\n\n
\n read:user_sessions\n
" parameters: - name: user_id in: path required: true description: The identifier for the user 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: - Users summary: Delete user sessions operationId: DeleteUserSessions description: "Invalidate user sessions.\n\n
\n delete:user_sessions\n
" parameters: - name: user_id in: path required: true description: The identifier for the user 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/users/{user_id}/mfa: get: tags: - Users summary: Get user's MFA configuration operationId: GetUsersMFA description: "Get a user’s MFA configuration.\n\n
\n read:user_mfa\n
" parameters: - name: user_id in: path required: true description: The identifier for the user 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: - Users summary: Reset all environment MFA for a user operationId: ResetUsersMFAAll description: "Reset all environment MFA factors for a user.\n\n
\n delete:user_mfa\n
" parameters: - name: user_id in: path required: true description: The identifier for the user 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/users/{user_id}/mfa/{factor_id}: delete: tags: - Users summary: Reset specific environment MFA for a user operationId: ResetUsersMFA description: "Reset a specific environment MFA factor for a user.\n\n
\n delete:user_mfa\n
" parameters: - name: user_id in: path required: true description: The identifier for the user schema: type: string - name: factor_id in: path required: true description: The identifier for the MFA factor 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.