Keboola Users API

Manage Keboola users by super admins.

Operations 8

DELETE /manage/users/{idOrEmail}/mfa Disable MFA for User #
GET /manage/users/{idOrEmail} User detail #
PUT /manage/users/{idOrEmail} Update a user #
DELETE /manage/users/{idOrEmail} Remove user #
DELETE /manage/users/{idOrEmail}/metadata/{metadataId} Remove User Metadata #
GET /manage/users/{idOrEmail}/metadata List user Metadata #
POST /manage/users/{idOrEmail}/metadata Set user metadata #
DELETE /manage/users/{idOrEmail}/super-admin Remove super admin privilege from User #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/keboola-users-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

keboola-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Keboola Connection Management Users API
  description: 'The Keboola Connection Management API covers all tasks required for managing

    projects, plus super-admin features for controlling and monitoring Keboola Connection.


    ## Projects management

    * Create, modify and delete maintainers, organizations and projects

    * Move projects between organizations

    * Define project limits

    * Provision storage backends

    * Access project management activity log


    ## Projects monitoring

    * Monitoring of projects across organizations and maintainers


    ## Super user control and monitoring

    * UI release and deployment

    * Components management

    * Final project delete

    * Workers start/shutdown, etc.


    ## Authentication

    The API authenticates with a personal access token sent in the `X-KBC-ManageApiToken`

    header. Tokens can be created in

    [Account Settings](https://connection.keboola.com/admin/account/change-password)

    in Keboola Connection. A token is tied to an administrator and inherits that

    administrator''s permissions; when the administrator is disabled or deleted, all

    their tokens become invalid.


    ```

    curl -H "X-KBC-ManageApiToken: USER_TOKEN" https://connection.keboola.com/manage/tokens/verify

    ```


    ## Token types

    | Type  | Tied to a user | Token string visible only on create | Description |

    | ----- | -------------- | ----------------------------------- | ----------- |

    | user  | Yes            | Yes                                 | Full access to maintainers, organizations and projects the user can see. |

    | super | No             | Yes                                 | KBC management. Scopes such as `super_ui_deploy`, `super_monitoring` etc. can be limited per-token. |


    Legacy Apiary reference: see the

    [Manage API blueprint](https://github.com/keboola/connection/blob/master/Package/ManageApiPhpClient/apiary.apib)

    for the historical document this OpenAPI spec is migrating from.

    '
  version: '1.0'
servers:
- url: https://connection.keboola.com
  description: AWS US East
- url: https://connection.eu-central-1.keboola.com
  description: AWS EU Central
- url: https://connection.north-europe.azure.keboola.com
  description: Azure North Europe
- url: https://connection.east-us-2.azure.keboola-testing.com
  description: Azure Testing
security:
- StorageKey: []
- ManageKey: []
- BearerAuth: []
tags:
- name: Users
  description: Manage Keboola users by super admins.
paths:
  /manage/users/{idOrEmail}/mfa:
    delete:
      tags:
      - Users
      summary: Disable MFA for User
      description: 'Disables multi-factor authentication for the specified user.


        This endpoint can also be accessed using user token with feature `can-manage-users`.


        The path parameter accepts an integer user ID or an email address.'
      operationId: delete_/manage/users/{idOrEmail}/mfa::DisableMfaAction
      parameters:
      - name: idOrEmail
        in: path
        description: User ID (integer) or email address.
        required: true
        schema:
          type: string
          pattern: '[^\/]*'
        example: john.doe@keboola.com
      responses:
        '204':
          description: MFA disabled successfully.
        '400':
          description: Returned when MFA is not enabled for the user.
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the current admin cannot manage the user.
        '404':
          description: Returned when the user does not exist.
  /manage/users/{idOrEmail}:
    get:
      tags:
      - Users
      summary: User detail
      description: Returns detail of a user. The path parameter accepts an integer user ID or an email address.
      operationId: get_/manage/users/{idOrEmail}::UserDetailAction
      parameters:
      - name: idOrEmail
        in: path
        description: User ID (integer) or email address.
        required: true
        schema:
          type: string
          pattern: '[^\/]*'
        example: john.doe@keboola.com
      responses:
        '200':
          description: User detail response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
              example:
                id: 2
                name: Martin
                email: spelling@keboola.com
                features:
                - inline-manual
                mfaEnabled: true
                canAccessLogs: true
                isSuperAdmin: true
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the current admin cannot access the user.
        '404':
          description: Returned when the user does not exist.
    put:
      tags:
      - Users
      summary: Update a user
      description: Updates the specified user. The path parameter accepts an integer user ID or an email address.
      operationId: put_/manage/users/{idOrEmail}::UserUpdateAction
      parameters:
      - name: idOrEmail
        in: path
        description: User ID (integer) or email address.
        required: true
        schema:
          type: string
          pattern: '[^\/]*'
        example: john.doe@keboola.com
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                name:
                  description: User name.
                  type: string
                  example: Martin
              type: object
            example:
              name: Martin
      responses:
        '200':
          description: Updated user detail.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
              example:
                id: 2
                name: Martin
                email: spelling@keboola.com
                features:
                - inline-manual
                mfaEnabled: true
                canAccessLogs: true
                isSuperAdmin: true
        '400':
          description: Returned when the request body is invalid or the name is empty.
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the current admin cannot manage other users.
        '404':
          description: Returned when the user does not exist.
    delete:
      tags:
      - Users
      summary: Remove user
      description: 'It will completely remove user from everywhere (projects, organizations and maintainers).

        Removes also personal data of user (e-mail and name).


        The path parameter accepts an integer user ID or an email address.'
      operationId: delete_/manage/users/{idOrEmail}::UserDeleteAction
      parameters:
      - name: idOrEmail
        in: path
        description: User ID (integer) or email address.
        required: true
        schema:
          type: string
          pattern: '[^\/]*'
        example: john.doe@keboola.com
      responses:
        '204':
          description: User has been successfully deleted.
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the current admin has no privilege to delete other users.
        '404':
          description: Returned when the user does not exist.
  /manage/users/{idOrEmail}/metadata/{metadataId}:
    delete:
      tags:
      - Users
      summary: Remove User Metadata
      description: 'Each user can delete only own metadata. Super admins can delete everyone''s metadata.


        The path parameter accepts an integer user ID or an email address.'
      operationId: delete_/manage/users/{idOrEmail}/metadata/{metadataId}::UserDeleteMetadataAction
      parameters:
      - name: idOrEmail
        in: path
        description: User ID (integer) or email address.
        required: true
        schema:
          type: string
          pattern: '[^\/]*'
        example: john.doe@keboola.com
      - name: metadataId
        in: path
        description: Metadata ID.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 123
      responses:
        '204':
          description: Metadata deleted successfully.
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the current admin cannot delete the metadata.
        '404':
          description: Returned when the user or metadata entry does not exist.
  /manage/users/{idOrEmail}/metadata:
    get:
      tags:
      - Users
      summary: List user Metadata
      description: 'Each user can list only own metadata. Super admins can list everyone''s metadata.


        The path parameter accepts an integer user ID or an email address.'
      operationId: get_/manage/users/{idOrEmail}/metadata::UserListMetadataAction
      parameters:
      - name: idOrEmail
        in: path
        description: User ID (integer) or email address.
        required: true
        schema:
          type: string
          pattern: '[^\/]*'
        example: john.doe@keboola.com
      responses:
        '200':
          description: List of metadata.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    id:
                      description: Metadata identifier.
                      type: integer
                      example: 123
                    provider:
                      description: Metadata provider.
                      type: string
                      example: user
                    timestamp:
                      description: Last update timestamp.
                      type: string
                      example: 2021-02-17T15:05:21+0100
                    key:
                      description: Metadata key.
                      type: string
                      example: KBC.SomeEnity.metadataKey
                    value:
                      description: Metadata value.
                      type: string
                      example: Some value
                  type: object
              example:
              - id: 123
                provider: user
                timestamp: 2021-02-17T15:05:21+0100
                key: KBC.SomeEnity.metadataKey
                value: Some value
              - id: 124
                provider: user
                timestamp: 2021-02-17T15:05:21+0100
                key: someMetadataKey
                value: Some value
        '401':
          description: Returned when the Manage token is missing or invalid.
        '404':
          description: Returned when the user does not exist.
    post:
      tags:
      - Users
      summary: Set user metadata
      description: 'Sets multiple metadata with one call. If the given key and provider combination already exist

        for the user, the data will be updated with the new value and timestamp.


        Each user can set only own metadata. Super admins can set everyone''s metadata.


        The path parameter accepts an integer user ID or an email address.'
      operationId: post_/manage/users/{idOrEmail}/metadata::UserSetMetadataAction
      parameters:
      - name: idOrEmail
        in: path
        description: User ID (integer) or email address.
        required: true
        schema:
          type: string
          pattern: '[^\/]*'
        example: john.doe@keboola.com
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetadataRequest'
            example:
              provider: user
              metadata:
              - key: KBC.SomeEnity.metadataKey
                value: Some value
              - key: someMetadataKey
                value: Some value
      responses:
        '201':
          description: Metadata set successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    id:
                      description: Metadata identifier.
                      type: integer
                      example: 123
                    provider:
                      description: Metadata provider.
                      type: string
                      example: user
                    timestamp:
                      description: Last update timestamp.
                      type: string
                      example: 2021-02-17T15:05:21+0100
                    key:
                      description: Metadata key.
                      type: string
                      example: KBC.SomeEnity.metadataKey
                    value:
                      description: Metadata value.
                      type: string
                      example: Some value
                  type: object
              example:
              - id: 123
                provider: user
                timestamp: 2021-02-17T15:05:21+0100
                key: KBC.SomeEnity.metadataKey
                value: Some value
              - id: 124
                provider: user
                timestamp: 2021-02-17T15:05:21+0100
                key: someMetadataKey
                value: Some value
        '400':
          description: Returned when the request body fails validation (missing provider/metadata, invalid key/value).
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the current admin cannot manage user metadata.
        '404':
          description: Returned when the user does not exist.
  /manage/users/{idOrEmail}/super-admin:
    delete:
      tags:
      - Users
      summary: Remove super admin privilege from User
      description: Removes super admin privileges from the specified user. The path parameter accepts an integer user ID or an email address.
      operationId: delete_/manage/users/{idOrEmail}/super-admin::UserRemoveSuperAdminAction
      parameters:
      - name: idOrEmail
        in: path
        description: User ID (integer) or email address.
        required: true
        schema:
          type: string
          pattern: '[^\/]*'
        example: john.doe@keboola.com
      responses:
        '200':
          description: Updated user detail.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
              example:
                id: 2
                name: Corrected Spelling
                email: spelling@keboola.com
                features:
                - inline-manual
                mfaEnabled: true
                canAccessLogs: false
                isSuperAdmin: false
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the current admin is not a super admin.
        '404':
          description: Returned when the user does not exist.
components:
  schemas:
    UserResponse:
      required:
      - id
      - name
      - email
      - mfaEnabled
      - features
      - canAccessLogs
      - isSuperAdmin
      properties:
        id:
          description: User identifier.
          type: integer
          example: 2
        name:
          description: User full name.
          type: string
          example: Martin
        email:
          description: User email address.
          type: string
          example: martin@keboola.com
        mfaEnabled:
          description: Whether MFA is enabled for the user.
          type: boolean
          example: true
        features:
          description: List of assigned features.
          type: array
          items:
            type: string
          example:
          - inline-manual
        canAccessLogs:
          description: Whether the user can access logs.
          type: boolean
          example: true
        isSuperAdmin:
          description: Whether the user has super admin privileges.
          type: boolean
          example: true
      type: object
      example:
        id: 2
        name: Martin
        email: martin@keboola.com
        mfaEnabled: true
        features:
        - inline-manual
        canAccessLogs: true
        isSuperAdmin: true
    MetadataRequest:
      required:
      - provider
      - metadata
      properties:
        provider:
          description: Metadata provider.
          type: string
          enum:
          - user
          - system
        metadata:
          description: List of metadata entries.
          type: array
          items:
            required:
            - key
            - value
            properties:
              key:
                description: Metadata key.
                type: string
              value:
                description: Metadata value.
                type: string
            type: object
      type: object
  securitySchemes:
    StorageKey:
      type: apiKey
      name: X-StorageApi-Token
      in: header
    ManageKey:
      type: apiKey
      name: X-KBC-ManageApiToken
      in: header
    BearerAuth:
      type: http
      bearerFormat: Access Token (kbc_at_...)
      scheme: bearer