All our KBC components have a public API on apiary. For sending requests to our
API, we recommend either the Apiary Console or Postman Client. Most of our APIs take and produce data in JSON format.
Many of them require a Storage API token, which is entered in the X-StorageApi-Token
header.
All parts of the Keboola Connection platform can be controlled via an API. The main APIs for our components are:
API | Description |
---|---|
KBC Storage API | Storage is the main KBC component storing all data. |
KBC Management API | API managing KBC projects and users (and notifications and features). |
Encryption API | Provides Encryption. |
Docker Runner API | Docker Runner is the component running other KBC components. |
JSON Parser API | JSON Parser is a service converting JSON files to CSV. |
Transformation API | Transformations is the component running SQL/R/Python transformations. |
Provisioning API | Provisioning is a service creating accounts for sandboxes, transformations and database writers. |
Provisioning Management API | API managing servers for sandboxes, transformations. |
Syrup Queue API | Syrup Queue is a component managing Jobs. Being replaced by Queue API. |
Queue API | Queue is a service for running components and managing Jobs. |
OAuth Broker API | OAuth Broker is a component managing OAuth authorizations of other components. |
Orchestrator API | Orchestrator is a component automating and scheduling tasks in your project. For legacy orchestrations only. |
Importer API | Importer is a helper service for easy table imports |
Developer Portal API | Developer Portal is an application separated from KBC for creating components. |
Billing API | Billing API for Pay as You Go projects. |
Workspaces API | Workspaces API for V2 workspaces. |
Synchronous Actions API | API to trigger Synchronous Actions. This is a partial replacement of Docker Runner API and may not be available on all stacks. |
Scheduler API | API to automate configurations (replacement for Orchestrator API) |
Notifications API | API to subscribe to events, e.g., failed orchestrations (replacement for Orchestrator API) |
Templates API | The Keboola Templates API allows you to apply a template. |
Buffer API | The Keboola Buffer API allows you to ingest small and frequent events into your project’s storage. |
If you don’t know which API to use, see our integration guide. It describes different roles of the APIs and contains examples of commonly performed actions.
Keboola Connection is available in multiple stacks. These can be either multi-tenant or single-tenant. Current multi-tenant stacks are:
Each stack is a completely independent instance of Keboola Connection services. In all the API documentation above, the AWS US stack is used.
Single-tenant stacks are available for a single enterprise customer with a domain name
in form connection.CUSTOMER_NAME.keboola.com
.
If you are using another stack, modify the endpoints accordingly.
Otherwise you will obtain an Invalid Token
or unauthorized errors. The authoritative list of available endpoints is provided by the Storage API Index Call. The following is a sample response:
{
...,
"services": [
{
"id": "docker-runner",
"url": "https://docker-runner.keboola.com"
},
{
"id": "import",
"url": "https://import.keboola.com"
},
{
"id": "syrup",
"url": "https://syrup.keboola.com"
},
{
"id": "oauth",
"url": "https://oauth.keboola.com"
},
{
"id": "queue",
"url": "https://queue.keboola.com"
},
{
"id": "billing",
"url": "https://billing.keboola.com"
},
{
"id": "encryption",
"url": "https://encryption.keboola.com"
},
{
"id": "sandboxes",
"url": "https://sandboxes.keboola.com"
},
{
"id": "mlflow",
"url": "https://mlflow.keboola.com"
},
{
"id": "spark",
"url": "https://spark.keboola.com"
},
{
"id": "scheduler",
"url": "https://scheduler.keboola.com"
},
{
"id": "sync-actions",
"url": "https://sync-actions.keboola.com"
},
{
"id": "notification",
"url": "https://notification.keboola.com"
},
{
"id": "templates",
"url": "https://templates.keboola.com"
}
],
}
The services listed above are:
docker-runner
— Legacy Service for Running Sync Actionsimport
— Storage Importer Servicesyrup
— Service for Running Componentsoauth
— OAuth Manager Servicequeue
— Service for Running Componentsbilling
— Service for Computing Creditsencryption
— Service for Encryption.sandboxes
— Workspace Manager Servicemlflow
— MLFlow Models Manager Servicescheduler
— Service for Configuring Schedulessync-actions
— Service for Running Synchronous Actionsnotification
— Service for Configuring Job Notificationstemplates
— Service for Applying TemplatesFor convenience, the following table lists active services and their URLs, though for an authoritative answer and in application integrations, we strongly suggest using the above API call.
API | Service | Region | URL |
---|---|---|---|
Billing | billing |
US AWS | https://billing.keboola.com |
Billing | billing |
EU AWS | https://billing.eu-central-1.keboola.com |
Billing | billing |
EU Azure | https://billing.north-europe.azure.keboola.com |
Encryption | encryption |
US AWS | https://encryption.keboola.com |
Encryption | encryption |
EU AWS | https://encryption.eu-central-1.keboola.com |
Encryption | encryption |
EU Azure | https://encryption.north-europe.azure.keboola.com |
Importer | import |
US AWS | https://import.keboola.com |
Importer | import |
EU AWS | https://import.eu-central-1.keboola.com |
Importer | import |
EU Azure | https://import.north-europe.azure.keboola.com |
MLFlow | mlflow |
US AWS | https://mlflow.keboola.com |
MLFlow | mlflow |
EU AWS | https://mlflow.eu-central-1.keboola.com |
MLFlow | mlflow |
EU Azure | https://mlflow.north-europe.azure.keboola.com |
Notification | notification |
US AWS | https://notification.keboola.com |
Notification | notification |
EU AWS | https://notification.eu-central-1.keboola.com |
Notification | notification |
EU Azure | https://notification.north-europe.azure.keboola.com |
OAuth | oauth |
US AWS | https://oauth.keboola.com |
OAuth | oauth |
EU AWS | https://oauth.eu-central-1.keboola.com |
OAuth | oauth |
EU Azure | https://oauth.north-europe.azure.keboola.com |
Queue | queue |
US AWS | https://queue.keboola.com |
Queue | queue |
EU AWS | https://queue.eu-central-1.keboola.com |
Queue | queue |
EU Azure | https://queue.north-europe.azure.keboola.com |
Scheduler | scheduler |
US AWS | https://scheduler.keboola.com |
Scheduler | scheduler |
EU AWS | https://scheduler.eu-central-1.keboola.com |
Scheduler | scheduler |
EU Azure | https://scheduler.north-europe.azure.keboola.com |
Storage | US AWS | https://connection.keboola.com/ | |
Storage | EU AWS | https://connection.eu-central-1.keboola.com/ | |
Storage | EU Azure | https://connection.north-europe.azure.keboola.com/ | |
Sync Actions | sync-actions |
US AWS | https://sync-actions.keboola.com/ |
Sync Actions | sync-actions |
EU AWS | https://sync-actions.eu-central-1.keboola.com |
Sync Actions | sync-actions |
EU Azure | https://sync-actions.north-europe.azure.keboola.com |
Templates | templates |
US AWS | https://templates.keboola.com |
Templates | templates |
EU AWS | https://templates.eu-central-1.keboola.com |
Templates | templates |
EU Azure | https://templates.north-europe.azure.keboola.com |
Workspaces / Sandboxes | sandboxes |
US AWS | https://sandboxes.keboola.com |
Workspaces / Sandboxes | sandboxes |
EU AWS | https://sandboxes.eu-central-1.keboola.com |
Workspaces / Sandboxes | sandboxes |
EU Azure | https://sandboxes.north-europe.azure.keboola.com |
Important: Each of the stacks also uses its own set of IP addresses.
There are several ways of sending requests to our APIs.
Send requests to our API directly from the Apiary console by clicking on Switch to console or Try. Then fill the request headers and parameters and Call Resource.
The Apiary console is fine if you send API requests only occasionally. It requires no application installation; however, it has no history and no other useful features.
Postman is a generic HTTP API client. Use it if you work with KBC APIs on a more regular basis. We also provide a collection of useful API calls with examples. The collection contains code examples in various languages; the requests can also be imported into the Postman application.
cURL is a common library used by many systems. There is also a command-line interface (CLI) available. You can use the cURL CLI to create simple scripts working with KBC APIs. For example, to Run a Job, use
curl --data "{\"config\": \"sampledatabase\"}" --header "X-StorageAPI-Token: YourStorageToken" https://syrup.keboola.com/keboola.ex-db-mysql/run