openapi: 3.0.0 info: version: '1' title: Kinde Account API Keys Search 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: Search x-displayName: Search paths: /api/v1/search/users: servers: [] get: tags: - Search operationId: searchUsers x-scope: read:users description: "Search for users based on the provided query string. Set query to '*' to filter by other parameters only.\nThe number of records to return at a time can be controlled using the `page_size` query string parameter.\n\n
\n read:users\n
\n" summary: Search users 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: query in: query description: Search the users by email or name. Use '*' to search all. schema: type: string nullable: true - name: api_scopes in: query description: Search the users by api scopes. schema: type: string nullable: true - name: properties in: query required: false style: deepObject explode: true schema: type: object additionalProperties: type: array items: type: string - name: starting_after in: query description: The ID of the user to start after. schema: type: string nullable: true - name: ending_before in: query description: The ID of the user to end before. schema: type: string nullable: true - name: expand in: query description: 'Additional data to include in the response. One or more of (comma-separated): "organizations", "identities", "properties".' required: false schema: type: string nullable: true responses: '200': description: Users successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/search_users_response' '400': $ref: '#/components/responses/bad_request' '403': $ref: '#/components/responses/forbidden' '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' 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. search_users_response: type: object properties: code: type: string description: Response code. message: type: string description: Response message. results: type: array items: type: object properties: id: type: string description: Unique ID of the user in Kinde. example: kp_0ba7c433e5d648cf992621ce99d42817 provided_id: type: string description: External ID for user. nullable: true example: U123456 email: type: string description: Default email address of the user in Kinde. nullable: true example: user@domain.com username: type: string description: Primary username of the user in Kinde. nullable: true example: john.snow last_name: type: string description: User's last name. example: Snow first_name: type: string description: User's first name. example: John is_suspended: type: boolean description: Whether the user is currently suspended or not. example: true picture: type: string description: User's profile picture URL. example: https://example.com/john_snow.jpg nullable: true total_sign_ins: type: integer description: Total number of user sign ins. nullable: true example: 1 failed_sign_ins: type: integer description: Number of consecutive failed user sign ins. nullable: true example: 0 last_signed_in: type: string description: Last sign in date in ISO 8601 format. nullable: true example: '2025-02-12T18:02:23.614638+00:00' created_on: type: string description: Date of user creation in ISO 8601 format. nullable: true example: '2025-02-12T18:02:23.614638+00:00' organizations: type: array description: Array of organizations a user belongs to. items: type: string identities: type: array description: Array of identities belonging to the user. items: type: object properties: type: type: string identity: type: string properties: type: object description: The user properties. additionalProperties: type: string api_scopes: type: array description: Array of api scopes belonging to the user. items: type: object properties: org_code: type: string scope: type: string api_id: type: string error_response: type: object properties: errors: type: array items: $ref: '#/components/schemas/error' 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