openapi: 3.0.0 info: version: '1' title: Kinde Account API Keys Directories 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: Directories x-displayName: Directories paths: /api/v1/directories: servers: [] get: tags: - Directories operationId: getDirectories summary: Get SCIM directories description: "Returns a list of SCIM directories for your organization.\n\n
\n read:scim_directories\n
\n" parameters: - name: page_size in: query description: Number of results per page. Defaults to 50 if parameter not sent. schema: type: integer nullable: true - name: starting_after in: query description: The ID of the directory to start after. schema: type: string nullable: true - name: organization_code in: query description: Filter by organization code to get directories for a specific organization. schema: type: string nullable: true responses: '200': description: SCIM directories successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/get_directories_response' '400': $ref: '#/components/responses/bad_request' '403': $ref: '#/components/responses/forbidden' '429': $ref: '#/components/responses/too_many_requests' security: - kindeBearerAuth: [] post: tags: - Directories operationId: createDirectory summary: Create SCIM directory description: "Create a new SCIM directory for user and group synchronization.\n\n
\n create:scim_directories\n
\n" externalDocs: url: https://docs.kinde.com/developer-tools/scim-provisioning/ description: SCIM Provisioning requestBody: required: true content: application/json: schema: type: object properties: org_code: type: string description: The organization code to create the SCIM directory for. example: org_1ccfb819462 directory_name: type: string description: A descriptive name for the SCIM directory. example: Production Directory provider_code: type: string description: The SCIM provider code to use for this directory. enum: - entra_id_azure_ad - okta - google_workspace - custom_scim_v2 - cyberark - jumpcloud - onelogin - pingfederate - rippling example: entra_id_azure_ad required: - org_code - directory_name - provider_code responses: '201': description: SCIM directory successfully created. content: application/json: schema: $ref: '#/components/schemas/create_directory_response' '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/error_response' examples: organization_required: summary: Organization code required value: errors: - code: ORGANIZATION_REQUIRED message: Organization code is required field: org_code directory_name_required: summary: Directory name required value: errors: - code: DIRECTORY_NAME_REQUIRED message: Directory name is required field: directory_name provider_code_required: summary: Provider code required value: errors: - code: PROVIDER_CODE_REQUIRED message: Provider code is required field: provider_code invalid_provider: summary: Invalid provider code value: errors: - code: INVALID_PROVIDER message: Invalid or disabled provider code field: provider_code organization_not_found: summary: Organization not found value: errors: - code: ORGANIZATION_NOT_FOUND message: Organization not found field: org_code '403': $ref: '#/components/responses/forbidden' '409': description: Conflict - Directory already exists. content: application/json: schema: $ref: '#/components/schemas/error_response' examples: directory_exists: summary: Directory already exists value: errors: - code: DIRECTORY_EXISTS message: A SCIM directory already exists for this organization field: org_code '429': $ref: '#/components/responses/too_many_requests' security: - kindeBearerAuth: [] /api/v1/directories/{directory_id}: servers: [] parameters: - name: directory_id in: path description: The directory's ID. required: true schema: type: string example: directory_0192b1941f125645fa15bf28a662a0b3 get: tags: - Directories operationId: getDirectory summary: Get SCIM directory description: "Retrieve SCIM directory details by ID.\n\n
\n read:scim_directories\n
\n" responses: '200': description: SCIM directory successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/get_directory_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: [] patch: tags: - Directories operationId: updateDirectory summary: Update SCIM directory description: 'Update SCIM directory configuration. ' requestBody: required: true content: application/json: schema: type: object properties: directory_name: type: string description: A descriptive name for the SCIM directory. example: Updated Production Directory required: - directory_name responses: '200': description: SCIM directory successfully updated. content: application/json: schema: $ref: '#/components/schemas/update_directory_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: - Directories operationId: deleteDirectory summary: Delete SCIM directory description: "Delete a SCIM directory and all associated data.\n\n
\n delete:scim_directories\n
\n" responses: '200': description: SCIM directory successfully deleted. content: application/json: schema: $ref: '#/components/schemas/delete_directory_response' '400': $ref: '#/components/responses/bad_request' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not_found' '429': $ref: '#/components/responses/too_many_requests' security: - kindeBearerAuth: [] components: responses: bad_request: description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/error_response' not_found: description: The specified resource was not found content: application/json: schema: $ref: '#/components/schemas/not_found_response' forbidden: description: Unauthorized - invalid credentials. content: application/json: schema: $ref: '#/components/schemas/error_response' too_many_requests: description: Too many requests. Request was throttled. content: application/json: schema: $ref: '#/components/schemas/error_response' schemas: error: type: object properties: code: type: string description: Error code. message: type: string description: Error message. not_found_response: type: object properties: errors: type: object properties: code: type: string example: ROUTE_NOT_FOUND message: type: string example: The requested API route does not exist update_directory_response: type: object properties: code: type: string description: Response code. example: DIRECTORY_UPDATED message: type: string description: Response message. example: SCIM directory updated successfully directory: $ref: '#/components/schemas/directory' delete_directory_response: type: object properties: code: type: string description: Response code. example: DIRECTORY_DELETED message: type: string description: Response message. example: SCIM directory deleted successfully error_response: type: object properties: errors: type: array items: $ref: '#/components/schemas/error' create_directory_response: type: object properties: code: type: string description: Response code. example: DIRECTORY_CREATED message: type: string description: Response message. example: SCIM directory created successfully directory: $ref: '#/components/schemas/directory' get_directories_response: type: object properties: code: type: string description: Response code. example: OK message: type: string description: Response message. example: Success has_more: description: Whether more records exist. type: boolean directories: type: array items: $ref: '#/components/schemas/directory' get_directory_response: type: object properties: code: type: string description: Response code. example: OK message: type: string description: Response message. example: Success directory: $ref: '#/components/schemas/directory' directory: type: object properties: id: type: string description: The unique ID for the SCIM directory. example: directory_0192b1941f125645fa15bf28a662a0b3 directory_name: type: string description: The name of the SCIM directory. example: Production Directory directory_endpoint_id: type: string description: The endpoint ID for the SCIM directory. example: ksde_0192b1941f125645fa15bf28a662a0b3 secret_token: type: string description: The secret token for SCIM authentication. example: kstkn_0192b1941f125645fa15bf28a662a0b3 status: type: string description: The current status of the SCIM directory. enum: - Pending - Validating - Active - Inactive - Error example: Pending organization_code: type: string description: The organization code this directory belongs to. example: org_1ccfb819462 last_sync_started_at: type: string format: date-time description: When the last sync started. example: '2024-11-18T13:32:03+11' nullable: true last_sync_completed_at: type: string format: date-time description: When the last sync completed. example: '2024-11-18T13:32:03+11' nullable: true last_sync_error: type: string description: The last sync error message. example: Connection timeout nullable: true created_on: type: string format: date-time description: When the directory was created. example: '2024-11-18T13:32:03+11' 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