Honeycomb Events API

The Honeycomb Events API is the lowest-level interface for sending event data to Honeycomb. It supports both single event creation and batch event submission, allowing developers to send structured telemetry data directly to Honeycomb datasets. While Honeycomb recommends using OpenTelemetry or Beeline SDKs for most instrumentation use cases, the Events API provides direct control for custom integrations and specialized data pipelines.

OpenAPI Specification

honeycomb-events-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Honeycomb Events API
  description: >-
    The Honeycomb Events API is the lowest-level interface for sending event
    data to Honeycomb. It supports both single event creation and batch event
    submission, allowing developers to send structured telemetry data directly
    to Honeycomb datasets. While Honeycomb recommends using OpenTelemetry or
    Beeline SDKs for most instrumentation use cases, the Events API provides
    direct control for custom integrations and specialized data pipelines. Also
    includes Kinesis Events for processing streaming events from Amazon Kinesis.
  version: '1.0'
  contact:
    name: Honeycomb Support
    url: https://support.honeycomb.io
  termsOfService: https://www.honeycomb.io/terms-of-service
externalDocs:
  description: Honeycomb Events API Documentation
  url: https://api-docs.honeycomb.io/api/events
servers:
  - url: https://api.honeycomb.io
    description: Honeycomb Production API
tags:
  - name: Events
    description: >-
      Send individual and batch events to Honeycomb datasets.
  - name: Kinesis Events
    description: >-
      Process streaming events from Amazon Kinesis into Honeycomb.
security:
  - ApiKeyAuth: []
paths:
  /1/events/{datasetSlug}:
    post:
      operationId: createEvent
      summary: Create an event
      description: >-
        Sends a single event to the specified dataset. Using this endpoint for
        anything more than testing is highly discouraged. Sending events in
        batches via the batch endpoint is much more efficient and should be
        preferred.
      tags:
        - Events
      parameters:
        - $ref: '#/components/parameters/datasetSlug'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >-
                The event data as a JSON object with custom fields.
              additionalProperties: true
      responses:
        '200':
          description: Event accepted for processing
        '400':
          description: Bad request - malformed event data
        '401':
          description: Unauthorized - invalid API key
  /1/batch/{datasetSlug}:
    post:
      operationId: createEvents
      summary: Create events (batch)
      description: >-
        Sends a batch of events to the specified dataset. This is the
        recommended way to send events to Honeycomb. The request body is
        limited to 1MB of raw (potentially compressed) data. Dataset names
        are case insensitive.
      tags:
        - Events
      parameters:
        - $ref: '#/components/parameters/datasetSlug'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              description: >-
                An array of event objects to send as a batch.
              items:
                $ref: '#/components/schemas/BatchEvent'
      responses:
        '200':
          description: Batch results returned
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BatchEventResponse'
        '400':
          description: Bad request - malformed batch data
        '401':
          description: Unauthorized - invalid API key
  /1/kinesis_events/{datasetSlug}:
    post:
      operationId: createKinesisEvents
      summary: Create Kinesis events
      description: >-
        Processes streaming events from Amazon Kinesis into the specified
        Honeycomb dataset.
      tags:
        - Kinesis Events
      parameters:
        - $ref: '#/components/parameters/datasetSlug'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >-
                Kinesis event data in the expected format.
              properties:
                records:
                  type: array
                  description: >-
                    Array of Kinesis records to process.
                  items:
                    type: object
                    properties:
                      data:
                        type: string
                        description: >-
                          Base64-encoded event data.
      responses:
        '200':
          description: Kinesis events processed
        '400':
          description: Bad request - malformed Kinesis data
        '401':
          description: Unauthorized - invalid API key
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Honeycomb-Team
      description: >-
        Honeycomb Ingest API key (recommended) or Configuration API key with
        Send Events permission.
  parameters:
    datasetSlug:
      name: datasetSlug
      in: path
      required: true
      description: >-
        The slug identifier for the dataset. Dataset names are case insensitive
        and may contain URL-encoded spaces or special characters but not
        URL-encoded slashes.
      schema:
        type: string
  schemas:
    BatchEvent:
      type: object
      properties:
        time:
          type: string
          format: date-time
          description: >-
            The event's timestamp in ISO8601 or RFC3339 format. Defaults to
            server time if not provided.
        samplerate:
          type: integer
          description: >-
            An integer representing the sampling denominator. For example, a
            value of 10 means one in ten events was kept.
          minimum: 1
        data:
          type: object
          description: >-
            The event's custom fields as a JSON object.
          additionalProperties: true
      required:
        - data
    BatchEventResponse:
      type: object
      properties:
        status:
          type: integer
          description: >-
            The HTTP status code for this individual event. 202 indicates
            successful queuing for processing.
        error:
          type: string
          description: >-
            An error message if the event failed processing. Possible values
            include 'Request body should not be empty', 'Event has too many
            columns', and 'Request body is malformed and cannot be read'.