Keboola Test API

The test API from Keboola — 1 operation(s) for test.

Operations 1

POST /v1/branches/{branchId}/sources/{sourceId}/test Test source payload mapping #

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:keboola-test-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-test-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Stream Service Test API
  description: A service for continuously importing data to the Keboola platform.
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  version: '1.0'
servers:
- url: https://stream.keboola.com/
tags:
- name: Test
paths:
  /v1/branches/{branchId}/sources/{sourceId}/test:
    post:
      summary: Test source payload mapping
      operationId: TestSource
      tags:
      - Test
      description: 'Tests configured mapping of the source and its sinks against an example request body.


        For HTTP sources the body is the raw payload that an HTTP client would send (treated as a single record).


        For OTLP sources the body must be a single **flattened OTLP record** — a JSON object with the same shape that the source produces internally for each log record, metric data point, or span. Attributes, resource, and scope are nested objects (not dotted keys); reference them in column mappings as `Body(''attributes'')[''user.id'']`, `Body(''resource'')[''service.name'']`, `Body(''scope'')[''name'']`, etc. Example flattened log record:

        ```json

        {

        "timestamp": "2024-01-15T10:30:00Z",

        "observed_timestamp": "2024-01-15T10:30:00Z",

        "severity_number": 9,

        "severity_text": "INFO",

        "body": "User logged in",

        "flags": 0,

        "attributes": {"user.id": "user-123"},

        "resource": {"service.name": "auth-service"},

        "scope": {"name": "github.com/my/auth", "version": "1.2.3"}

        }

        ```

        Do not send a raw OTLP protobuf or the multi-record envelope produced by an OTel SDK — the test endpoint intentionally evaluates one already-flattened record so the response is deterministic. For OTLP sources, the `signal` query parameter selects which signal type the request simulates for sink routing (`logs` by default); sinks whose `allowedSignals` filter rejects that signal are skipped in the result.'
      parameters:
      - name: signal
        in: query
        required: false
        description: OTLP signal type — one of logs, metrics, or traces.
        schema:
          type: string
          enum:
          - logs
          - metrics
          - traces
      - name: branchId
        in: path
        required: true
        description: ID of the branch or "default".
        schema:
          type: string
      - name: sourceId
        in: path
        required: true
        description: Unique ID of the source.
        schema:
          type: string
      responses:
        '200':
          description: OK response.
          content:
            application/json:
              schema:
                $ref: '#/definitions/TestResult'
                required:
                - projectId
                - branchId
                - sourceId
                - tables
        '404':
          description: Not Found response.
          content:
            application/json:
              schema:
                $ref: '#/definitions/GenericError'
                required:
                - statusCode
                - error
                - message
        '422':
          description: Unprocessable Entity response.
          content:
            application/json:
              schema:
                $ref: '#/definitions/GenericError'
                required:
                - statusCode
                - error
                - message
      security:
      - storage-api-token: []
components:
  securitySchemes:
    storage-api-token:
      type: apiKey
      name: X-StorageApi-Token
      in: header