Keboola My Account API

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

OpenAPI Specification

keboola-my-account-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: AI Service Actions My Account API
  version: 1.0.0
  contact:
    email: devel@keboola.com
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  description: Endpoints scoped to the current user — invitations, join requests and session tokens.
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:
    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
          format: date-time
          example: 2016-03-22T15:01:13+0200
          nullable: true
        reason:
          description: Reason for the join request.
          type: string
          example: temporary test
          nullable: true
        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
    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
          format: date-time
          example: null
          nullable: true
        reason:
          description: Reason for the invitation.
          type: string
          example: ''
          nullable: true
        role:
          description: Role assigned in the invitation.
          type: string
          example: admin
          nullable: true
        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
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-StorageApi-Token