Keboola import API

Import operations

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-import-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 email required.

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

OpenAPI Specification

keboola-import-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: AI Service Actions import API
  version: 1.0.0
  contact:
    email: devel@keboola.com
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  description: Import operations
tags:
- name: import
  description: Import operations
paths:
  /write-table:
    post:
      summary: Import data to a table
      operationId: writeTable
      tags:
      - import
      description: 'Import CSV data to an existing table in Storage. Use the Storage API to create [buckets](https://keboola.docs.apiary.io/#reference/buckets/create-or-list-buckets/create-bucket) and [tables](https://keboola.docs.apiary.io/#reference/tables/create-table-asynchronously/create-new-table-from-csv-file-asynchronously).

        '
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - tableId
              - data
              properties:
                data:
                  type: string
                  format: binary
                  description: CSV data
                tableId:
                  type: string
                  example: in.c-main.my-table
                  description: Id of an existing table in Storage
                branchId:
                  type: string
                  example: '1234'
                  description: Id of the development branch in Storage. If not set, data will be imported into default branch.
                incremental:
                  type: boolean
                  example: false
                  description: Turns on [incremenal loading](https://help.keboola.com/storage/tables/#incremental-loading)
                columns[]:
                  type: array
                  items:
                    type: string
                  example:
                  - col1
                  - col2
                  description: Columns of the table. If not specified, the first row of the CSV is assumed to be header. If specified, the CSV is assumed to be headless. Due to [bug](https://github.com/swagger-api/swagger-ui/issues/5106) in Swagger, this is incorrectly handled in **Try it out**. Columns should be encoded as `columns[]=col1&columns[]=col2`. Due to Swagger [bug](https://github.com/swagger-api/swagger-ui/issues/5303) the empty column field is added to the request, while it must not be present at all
                delimiter:
                  type: string
                  example: '|'
                  default: ','
                  description: CSV data delimiter
                enclosure:
                  type: string
                  example: '"'
                  default: '"'
                  description: CSV data enclosure
                escapedBy:
                  type: string
                  example: \
                  default: null
                  description: CSV data enclosure escape character, if not present a double enclosure is assumed for escaping.
            encoding:
              columns[]:
                style: form
                explode: true
      responses:
        '200':
          description: Table Resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TableResource'
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /upload-file:
    post:
      summary: Upload a file to Storage Files
      operationId: uploadFile
      tags:
      - import
      description: 'Upload a file to Storage Files

        '
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - data
              properties:
                data:
                  type: string
                  format: binary
                  description: Uploaded file
                branchId:
                  type: string
                  example: '1234'
                  description: Id of the development branch in Storage. If not set, data will be imported into default branch.
                tags[]:
                  type: array
                  items:
                    type: string
                  example:
                  - tag1
                  - tag2
                  description: Due to [bug](https://github.com/swagger-api/swagger-ui/issues/5106) in Swagger, this is incorrectly handled in **Try it out**. Tags should be encoded as `tags[]=tag1&tags[]=tag2`
                isPublic:
                  type: boolean
                  example: false
                  description: When true, the file will be accessible on the returned URL for anyone
                isPermanent:
                  type: boolean
                  example: false
                  description: When false, the file will expire after 180 days
                notify:
                  type: boolean
                  example: false
                  description: When true, memebers of the project will be notified of the file upload
            encoding:
              tags[]:
                style: form
                explode: true
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - data
              - name
              properties:
                data:
                  type: string
                  example: Some data
                  description: File data
                name:
                  type: string
                  example: file-name.txt
                  description: File name
                tags[]:
                  type: array
                  items:
                    type: string
                  example:
                  - tag1
                  - tag2
                  description: Due to [bug](https://github.com/swagger-api/swagger-ui/issues/5106) in Swagger, this is incorrectly handled in **Try it out**. Tags should be encoded as `tags[]=tag1&tags[]=tag2`
                isPublic:
                  type: boolean
                  example: false
                  description: When true, the file will be accessible on the returned URL for anyone
                isPermanent:
                  type: boolean
                  example: false
                  description: When false, the file will expire after 180 days
                notify:
                  type: boolean
                  example: false
                  description: When true, memebers of the project will be notified of the file upload
            encoding:
              tags[]:
                style: form
                explode: true
      responses:
        '200':
          description: File Resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileResource'
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    FileResource:
      type: object
      properties:
        id:
          type: integer
          example: 537806841
        created:
          type: string
          format: date-time
          example: 2019-09-18T17:43:13+0200
        isPublic:
          type: boolean
          example: false
        isSliced:
          type: boolean
          example: false
        isEncrypted:
          type: boolean
          example: true
        name:
          type: string
          example: my-file.zip
        url:
          type: string
          example: https://kbc-sapi-files.s3.amazonaws.com/exp-180/123/files/2019/09/18/537806841.my-file.zip?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ZZZ&X-Amz-Date=20190918T154315Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=ZZZ
        provider:
          type: string
          example: aws
        region:
          type: string
          example: us-east-1
        sizeBytes:
          type: integer
          example: 1234
        tags:
          type: array
          items:
            type: string
          example:
          - my-tag1
          - my-tag2
        maxAgeDays:
          type: integer
          example: 180
        runId:
          type: integer
          example: null
        runIds:
          type: array
          items:
            type: integer
          example: []
        creatorToken:
          type: object
          required:
          - id
          - description
          properties:
            id:
              type: integer
              example: 1234
            description:
              type: string
              example: My API token
    TableResource:
      type: object
      properties:
        transaction:
          type: string
          example: null
        warnings:
          type: array
          items:
            type: string
          example: []
        importedColumns:
          type: array
          items:
            type: string
          example:
          - col1
          - col2
        totalRowsCount:
          type: integer
          example: 1234
        totalDataSizeBytes:
          type: integer
          example: 12345678
    Error:
      type: object
      required:
      - message
      - status
      properties:
        message:
          type: string
          example: X-StorageApi-Token header is required
        status:
          type: string
          enum:
          - error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-StorageApi-Token