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.
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
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