Boltic Streams API

The Boltic Streams API provides real-time event streaming capabilities for tracking custom events and streaming data from websites, mobile apps, and servers. It includes source debugger tools for confirming API call delivery, an event analysis dashboard for monitoring event flows, and real-time data processing for actionable insights.

OpenAPI Specification

boltic-streams-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Boltic Streams API
  description: >-
    The Boltic Streams API provides real-time event streaming capabilities for
    tracking custom events and streaming data from websites, mobile apps, and
    servers. It includes source debugger tools for confirming API call delivery,
    an event analysis dashboard for monitoring event flows, and real-time data
    processing for actionable insights. Streams centralize, process, and enable
    analysis of streaming data for better decision-making and performance
    optimization.
  version: 1.0.0
  contact:
    name: Boltic
    url: https://www.boltic.io
  license:
    name: Proprietary
    url: https://www.boltic.io/terms
servers:
  - url: https://api.boltic.io/v1
    description: Boltic Streams API
security:
  - bearerAuth: []
tags:
  - name: Destinations
    description: Manage stream destinations for event delivery
  - name: Events
    description: Send and query events
  - name: Stream Sources
    description: Manage stream sources for event ingestion
paths:
  /streams/sources:
    get:
      operationId: listStreamSources
      summary: Boltic List all stream sources
      description: Retrieve a list of all configured stream sources.
      tags:
        - Stream Sources
      responses:
        '200':
          description: A list of stream sources
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/StreamSource'
    post:
      operationId: createStreamSource
      summary: Boltic Create a new stream source
      description: Create a new source for ingesting events into the stream.
      tags:
        - Stream Sources
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StreamSourceInput'
      responses:
        '201':
          description: Stream source created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StreamSource'
  /streams/sources/{sourceId}:
    get:
      operationId: getStreamSource
      summary: Boltic Get a stream source by ID
      tags:
        - Stream Sources
      parameters:
        - name: sourceId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Stream source details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StreamSource'
    delete:
      operationId: deleteStreamSource
      summary: Boltic Delete a stream source
      tags:
        - Stream Sources
      parameters:
        - name: sourceId
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Stream source deleted
  /streams/sources/{sourceId}/debug:
    get:
      operationId: debugStreamSource
      summary: Boltic Debug a stream source
      description: >-
        Access the source debugger to confirm that API calls from your website,
        mobile app, or servers are arriving at the stream source.
      tags:
        - Stream Sources
      parameters:
        - name: sourceId
          in: path
          required: true
          schema:
            type: string
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
      responses:
        '200':
          description: Recent events received by this source
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Event'
                  connected:
                    type: boolean
                  lastEventAt:
                    type: string
                    format: date-time
  /streams/events:
    post:
      operationId: sendEvent
      summary: Boltic Send an event
      description: Send a custom event to a stream source for processing.
      tags:
        - Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventInput'
      responses:
        '202':
          description: Event accepted for processing
          content:
            application/json:
              schema:
                type: object
                properties:
                  eventId:
                    type: string
                  status:
                    type: string
                    enum: [accepted]
    get:
      operationId: queryEvents
      summary: Boltic Query events
      description: >-
        Query and analyze events using the event analysis dashboard for
        monitoring event flows.
      tags:
        - Events
      parameters:
        - name: sourceId
          in: query
          schema:
            type: string
        - name: eventType
          in: query
          schema:
            type: string
        - name: from
          in: query
          schema:
            type: string
            format: date-time
        - name: to
          in: query
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
      responses:
        '200':
          description: Event query results
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Event'
                  summary:
                    type: object
                    properties:
                      totalEvents:
                        type: integer
                      uniqueEventTypes:
                        type: integer
                      timeRange:
                        type: object
                        properties:
                          from:
                            type: string
                            format: date-time
                          to:
                            type: string
                            format: date-time
  /streams/destinations:
    get:
      operationId: listStreamDestinations
      summary: Boltic List stream destinations
      tags:
        - Destinations
      responses:
        '200':
          description: A list of stream destinations
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/StreamDestination'
    post:
      operationId: createStreamDestination
      summary: Boltic Create a stream destination
      description: Configure a destination for delivering stream events.
      tags:
        - Destinations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StreamDestinationInput'
      responses:
        '201':
          description: Stream destination created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StreamDestination'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    StreamSource:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
          enum: [javascript, server, mobile, webhook]
        writeKey:
          type: string
          description: API key for sending events to this source
        status:
          type: string
          enum: [active, inactive]
        eventsToday:
          type: integer
        createdAt:
          type: string
          format: date-time
    StreamSourceInput:
      type: object
      required:
        - name
        - type
      properties:
        name:
          type: string
        type:
          type: string
          enum: [javascript, server, mobile, webhook]
    Event:
      type: object
      properties:
        id:
          type: string
        sourceId:
          type: string
        type:
          type: string
          description: Event type name (e.g., page_view, purchase, signup)
        properties:
          type: object
          additionalProperties: true
          description: Custom event properties
        context:
          type: object
          properties:
            ip:
              type: string
            userAgent:
              type: string
            locale:
              type: string
            page:
              type: object
              properties:
                url:
                  type: string
                title:
                  type: string
                referrer:
                  type: string
        userId:
          type: string
        anonymousId:
          type: string
        timestamp:
          type: string
          format: date-time
        receivedAt:
          type: string
          format: date-time
    EventInput:
      type: object
      required:
        - sourceId
        - type
      properties:
        sourceId:
          type: string
        type:
          type: string
        properties:
          type: object
          additionalProperties: true
        userId:
          type: string
        anonymousId:
          type: string
        timestamp:
          type: string
          format: date-time
        context:
          type: object
          additionalProperties: true
    StreamDestination:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
        config:
          type: object
          additionalProperties: true
        status:
          type: string
          enum: [active, inactive]
        createdAt:
          type: string
          format: date-time
    StreamDestinationInput:
      type: object
      required:
        - name
        - type
        - config
      properties:
        name:
          type: string
        type:
          type: string
        config:
          type: object
          additionalProperties: true
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        details:
          type: string
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'