Keboola My Account API

Endpoints scoped to the current user — invitations, join requests and session tokens.

Operations 16

GET /manage/current-user/maintainers-invitations/{id} My maintainer invitation detail #
PUT /manage/current-user/maintainers-invitations/{id} Accept a maintainer invitation #
DELETE /manage/current-user/maintainers-invitations/{id} Reject maintainer invitation #
GET /manage/current-user/maintainers-invitations List my maintainer invitations #
GET /manage/current-user/organizations-invitations/{id} My organization invitation detail #
PUT /manage/current-user/organizations-invitations/{id} Accept an organization invitation #
DELETE /manage/current-user/organizations-invitations/{id} Reject organization invitation #
GET /manage/current-user/organizations-invitations List my organization invitations #
GET /manage/current-user/projects-invitations/{id} My project invitation detail #
PUT /manage/current-user/projects-invitations/{id} Accept a project invitation #
DELETE /manage/current-user/projects-invitations/{id} Decline a invitation #
GET /manage/current-user/projects-invitations List my project invitations #
GET /manage/current-user/projects-join-requests/{id} My join request detail #
DELETE /manage/current-user/projects-join-requests/{id} Cancel a join request #
GET /manage/current-user/projects-join-requests List my join requests #
POST /manage/current-user/session-token Create session token #

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-my-account-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-my-account-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Keboola Connection Management My Account 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: My Account
  description: Endpoints scoped to the current user — invitations, join requests and session tokens.
paths:
  /manage/current-user/maintainers-invitations/{id}:
    get:
      tags:
      - My Account
      summary: My maintainer invitation detail
      description: Returns detail of the specified maintainer invitation addressed to the current user.
      operationId: get_/manage/current-user/maintainers-invitations/{id}::MaintainerInvitationDetailAction
      parameters:
      - name: id
        in: path
        description: Invitation identifier.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 113
      responses:
        '200':
          description: Maintainer invitation detail.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintainerInvitationResponse'
              example:
                id: 113
                created: 2018-07-10T11:13:00+0200
                maintainer:
                  id: 7
                  name: Keboola CZ
                creator:
                  id: 2
                  name: Martin Halamicek
                  email: martin@keboola.com
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to view the invitation.
        '404':
          description: Returned when the invitation does not exist.
    put:
      tags:
      - My Account
      summary: Accept a maintainer invitation
      description: Invitation will be accepted and current user will become a member of the maintainer.
      operationId: put_/manage/current-user/maintainers-invitations/{id}::MaintainerInvitationAcceptAction
      parameters:
      - name: id
        in: path
        description: Invitation identifier.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 113
      responses:
        '202':
          description: Invitation accepted successfully.
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to accept the invitation.
        '404':
          description: Returned when the invitation does not exist.
    delete:
      tags:
      - My Account
      summary: Reject maintainer invitation
      description: Rejects the specified maintainer invitation for the current user.
      operationId: delete_/manage/current-user/maintainers-invitations/{id}::MaintainerInvitationRejectAction
      parameters:
      - name: id
        in: path
        description: Identifier of the invitation.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 113
      responses:
        '204':
          description: Invitation rejected successfully.
        '403':
          description: Returned when the token does not have permission.
        '404':
          description: Returned when the invitation does not exist.
  /manage/current-user/maintainers-invitations:
    get:
      tags:
      - My Account
      summary: List my maintainer invitations
      description: Returns a list of maintainer invitations addressed to the current user.
      operationId: get_/manage/current-user/maintainers-invitations::MaintainerInvitationListAction
      responses:
        '200':
          description: List of maintainer invitations.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MaintainerInvitationResponse'
              example:
              - id: 113
                created: 2018-07-10T11:13:00+0200
                maintainer:
                  id: 7
                  name: Keboola CZ
                creator:
                  id: 2
                  name: Martin Halamicek
                  email: martin@keboola.com
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to list invitations.
  /manage/current-user/organizations-invitations/{id}:
    get:
      tags:
      - My Account
      summary: My organization invitation detail
      description: Returns detail of the specified organization invitation addressed to the current user.
      operationId: get_/manage/current-user/organizations-invitations/{id}::OrganizationInvitationDetailAction
      parameters:
      - name: id
        in: path
        description: Invitation identifier.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 113
      responses:
        '200':
          description: Organization invitation detail.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationInvitationResponse'
              example:
                id: 113
                created: 2018-07-10T11:13:00+0200
                organization:
                  id: 7
                  name: Keboola CZ
                creator:
                  id: 2
                  name: Martin Halamicek
                  email: martin@keboola.com
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to view the invitation.
        '404':
          description: Returned when the invitation does not exist.
    put:
      tags:
      - My Account
      summary: Accept an organization invitation
      description: Invitation will be accepted and current user will become a member of the organization.
      operationId: put_/manage/current-user/organizations-invitations/{id}::OrganizationInvitationAcceptAction
      parameters:
      - name: id
        in: path
        description: Invitation identifier.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 113
      responses:
        '202':
          description: Invitation accepted successfully.
        '400':
          description: Returned when the organization requires MFA and the current user does not have MFA enabled.
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to accept the invitation.
        '404':
          description: Returned when the invitation does not exist.
    delete:
      tags:
      - My Account
      summary: Reject organization invitation
      description: Rejects the specified organization invitation for the current user.
      operationId: delete_/manage/current-user/organizations-invitations/{id}::OrganizationInvitationRejectAction
      parameters:
      - name: id
        in: path
        description: Identifier of the invitation.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 113
      responses:
        '204':
          description: Invitation rejected successfully.
        '403':
          description: Returned when the token does not have permission.
        '404':
          description: Returned when the invitation does not exist.
  /manage/current-user/organizations-invitations:
    get:
      tags:
      - My Account
      summary: List my organization invitations
      description: Returns a list of organization invitations addressed to the current user.
      operationId: get_/manage/current-user/organizations-invitations::OrganizationInvitationListAction
      responses:
        '200':
          description: List of organization invitations.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrganizationInvitationResponse'
              example:
              - id: 113
                created: 2018-07-10T11:13:00+0200
                organization:
                  id: 7
                  name: Keboola CZ
                creator:
                  id: 2
                  name: Martin Halamicek
                  email: martin@keboola.com
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to list invitations.
  /manage/current-user/projects-invitations/{id}:
    get:
      tags:
      - My Account
      summary: My project invitation detail
      description: Returns detail of the specified project invitation addressed to the current user.
      operationId: get_/manage/current-user/projects-invitations/{id}::ProjectInvitationDetailAction
      parameters:
      - name: id
        in: path
        description: Invitation identifier.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 113
      responses:
        '200':
          description: Project invitation detail.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectInvitationResponse'
              example:
                id: 113
                created: 2018-07-10T11:13:00+0200
                expires: null
                reason: ''
                role: admin
                project:
                  id: 7
                  name: Martinovo
                creator:
                  id: 2
                  name: Martin Halamicek
                  email: martin@keboola.com
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to view the invitation.
        '404':
          description: Returned when the invitation does not exist.
    put:
      tags:
      - My Account
      summary: Accept a project invitation
      description: Invitation will be accepted and current user will be added to the project.
      operationId: put_/manage/current-user/projects-invitations/{id}::ProjectInvitationAcceptAction
      parameters:
      - name: id
        in: path
        description: Invitation identifier.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 113
      responses:
        '202':
          description: Invitation accepted successfully.
        '400':
          description: Returned when the project requires MFA and the current user does not have MFA enabled.
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to accept the invitation.
        '404':
          description: Returned when the invitation does not exist.
    delete:
      tags:
      - My Account
      summary: Decline a invitation
      description: Declines the specified project invitation addressed to the current user.
      operationId: delete_/manage/current-user/projects-invitations/{id}::ProjectInvitationRejectAction
      parameters:
      - name: id
        in: path
        description: Invitation identifier.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 113
      responses:
        '204':
          description: Invitation declined successfully.
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to decline the invitation.
        '404':
          description: Returned when the invitation does not exist.
  /manage/current-user/projects-invitations:
    get:
      tags:
      - My Account
      summary: List my project invitations
      description: Returns a list of project invitations addressed to the current user.
      operationId: get_/manage/current-user/projects-invitations::ProjectInvitationListAction
      responses:
        '200':
          description: List of project invitations.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectInvitationResponse'
              example:
              - id: 113
                created: 2018-07-10T11:13:00+0200
                expires: null
                reason: ''
                role: admin
                project:
                  id: 7
                  name: Martinovo
                creator:
                  id: 2
                  name: Martin Halamicek
                  email: martin@keboola.com
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to list invitations.
  /manage/current-user/projects-join-requests/{id}:
    get:
      tags:
      - My Account
      summary: My join request detail
      description: Returns detail of the specified project join request submitted by the current user.
      operationId: get_/manage/current-user/projects-join-requests/{id}::ProjectJoinRequestDetailAction
      parameters:
      - name: id
        in: path
        description: Join request identifier.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 124
      responses:
        '200':
          description: Project join request detail.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectJoinRequestResponse'
              example:
                id: 124
                created: 2016-02-22T15:01:13+0200
                expires: 2016-03-22T15:01:13+0200
                reason: temporary test
                project:
                  id: 324
                  name: Main project
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to view the join request.
        '404':
          description: Returned when the join request does not exist.
    delete:
      tags:
      - My Account
      summary: Cancel a join request
      description: Cancels the specified project join request submitted by the current user.
      operationId: delete_/manage/current-user/projects-join-requests/{id}::ProjectJoinRequestCancelAction
      parameters:
      - name: id
        in: path
        description: Join request identifier.
        required: true
        schema:
          type: integer
          pattern: '[1-9][0-9]*'
        example: 124
      responses:
        '204':
          description: Join request cancelled successfully.
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to cancel the join request.
        '404':
          description: Returned when the join request does not exist.
  /manage/current-user/projects-join-requests:
    get:
      tags:
      - My Account
      summary: List my join requests
      description: Returns a list of project join requests submitted by the current user.
      operationId: get_/manage/current-user/projects-join-requests::ProjectJoinRequestListAction
      responses:
        '200':
          description: List of project join requests.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectJoinRequestResponse'
              example:
              - id: 124
                created: 2016-02-22T15:01:13+0200
                expires: 2016-03-22T15:01:13+0200
                reason: temporary test
                project:
                  id: 324
                  name: Main project
              - id: 127
                created: '2014-11-11T08:40:51+00:00'
                expires: null
                reason: ''
                project:
                  id: 423
                  name: Development
        '401':
          description: Returned when the Manage token is missing or invalid.
        '403':
          description: Returned when the token does not have permission to list join requests.
  /manage/current-user/session-token:
    post:
      tags:
      - My Account
      summary: Create session token
      description: Creates a session token for the current user.
      operationId: post_/manage/current-user/session-token::SessionTokenCreateAction
      responses:
        '201':
          description: Session token created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionTokenResponse'
        '403':
          description: Returned when the token does not have permission.
components:
  schemas:
    ProjectInvitationResponse:
      required:
      - id
      - created
      - project
      - creator
      properties:
        id:
          description: Invitation identifier.
          type: integer
          example: 113
        created:
          description: Invitation creation timestamp.
          type: string
          format: date-time
          example: 2018-07-10T11:13:00+0200
        expires:
          description: Invitation expiration timestamp.
          type:
          - string
          - 'null'
          format: date-time
          example: null
        reason:
          description: Reason for the invitation.
          type:
          - string
          - 'null'
          example: ''
        role:
          description: Role assigned in the invitation.
          type:
          - string
          - 'null'
          example: admin
        project:
          properties:
            id:
              type: integer
              example: 7
            name:
              type: string
              example: Martinovo
          type: object
        creator:
          properties:
            id:
              type: integer
              example: 2
            name:
              type: string
              example: Martin Halamicek
            email:
              type: string
              example: martin@keboola.com
          type: object
      type: object
      example:
        id: 113
        created: 2018-07-10T11:13:00+0200
        expires: null
        reason: ''
        role: admin
        project:
          id: 7
          name: Martinovo
        creator:
          id: 2
          name: Martin Halamicek
          email: martin@keboola.com
    OrganizationInvitationResponse:
      required:
      - id
      - created
      - organization
      - creator
      properties:
        id:
          description: Invitation identifier.
          type: integer
          example: 113
        created:
          description: Invitation creation timestamp.
          type: string
          format: date-time
          example: 2018-07-10T11:13:00+0200
        organization:
          properties:
            id:
              type: integer
              example: 5
            name:
              type: string
              example: Martinovo
          type: object
        creator:
          properties:
            id:
              type: integer
              example: 2
            name:
              type: string
              example: Martin Halamicek
            email:
              type: string
              example: martin@keboola.com
          type: object
      type: object
      example:
        id: 113
        created: 2018-07-10T11:13:00+0200
        organization:
          id: 5
          name: Martinovo
        creator:
          id: 2
          name: Martin Halamicek
          email: martin@keboola.com
    SessionTokenResponse:
      required:
      - id
      - token
      - description
      - created
      - expires
      - type
      properties:
        id:
          description: Token identifier.
          type: integer
        token:
          description: The session token value.
          type: string
        description:
          description: Token description.
          type: string
        created:
          description: Token creation timestamp.
          type: string
          format: date-time
        expires:
          description: Token expiration timestamp.
          type: string
          format: date-time
        type:
          description: Token type.
          type: string
      type: object
    MaintainerInvitationResponse:
      required:
      - id
      - created
      - maintainer
      - creator
      properties:
        id:
          description: Invitation identifier.
          type: integer
          example: 113
        created:
          description: Invitation creation timestamp.
          type: string
          format: date-time
          example: 2018-07-10T11:13:00+0200
        maintainer:
          properties:
            id:
              type: integer
              example: 7
            name:
              type: string
              example: Keboola CZ
          type: object
        creator:
          properties:
            id:
              type: integer
              example: 2
            name:
              type: string
              example: Martin Halamicek
            email:
              type: string
              example: martin@keboola.com
          type: object
      type: object
      example:
        id: 113
        created: 2018-07-10T11:13:00+0200
        maintainer:
          id: 7
          name: Keboola CZ
        creator:
          id: 2
          name: Martin Halamicek
          email: martin@keboola.com
    ProjectJoinRequestResponse:
      required:
      - id
      - created
      - project
      properties:
        id:
          description: Join request identifier.
          type: integer
          example: 124
        created:
          description: Join request creation timestamp.
          type: string
          format: date-time
          example: 2016-02-22T15:01:13+0200
        expires:
          description: Join request expiration timestamp.
          type:
          - string
          - 'null'
          format: date-time
          example: 2016-03-22T15:01:13+0200
        reason:
          description: Reason for the join request.
          type:
          - string
          - 'null'
          example: temporary test
        project:
          properties:
            id:
              type: integer
              example: 324
            name:
              type: string
              example: Main project
          type: object
      type: object
      example:
        id: 124
        created: 2016-02-22T15:01:13+0200
        expires: 2016-03-22T15:01:13+0200
        reason: temporary test
        project:
          id: 324
          name: Main project
  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