Honeycomb Datasets API

The Honeycomb Datasets API provides management capabilities for datasets, which represent collections of related events from the same source. It allows developers to list, create, and update datasets programmatically. The related Columns API enables management of fields within datasets, including listing, creating, updating, and deleting columns that define the structure of event data stored in Honeycomb.

Business capability
Observability Management BC-4220.20

Operations 5

GET /1/datasets List all datasets #
POST /1/datasets Create a dataset #
GET /1/datasets/{datasetSlug} Get a dataset #
PUT /1/datasets/{datasetSlug} Update a dataset #
DELETE /1/datasets/{datasetSlug} Delete a Dataset #

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/honeycomb:datasets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

honeycomb-datasets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Honeycomb Datasets API
  version: '1.0'
  description: 'Operations tagged Datasets across 2 of this provider''s published API definitions: honeycomb-api-openapi.yml, honeycomb-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.honeycomb.io
  description: Honeycomb Production API
- url: https://api.eu1.honeycomb.io
tags:
- name: Datasets
  description: Manage datasets, which represent collections of related events from the same source.
paths:
  /1/datasets:
    get:
      operationId: listDatasets
      summary: List all datasets
      description: Returns a list of all datasets in the environment associated with the API key.
      tags:
      - Datasets
      responses:
        '200':
          description: A list of datasets
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Dataset'
        '401':
          description: Unauthorized
      security:
      - ApiKeyAuth: []
    post:
      operationId: createDataset
      summary: Create a dataset
      description: Creates a dataset in the environment associated with the API key. If a dataset already exists with that name or slug, the existing dataset is returned.
      tags:
      - Datasets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DatasetCreateRequest'
      responses:
        '201':
          description: Dataset created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '200':
          description: Existing dataset returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '401':
          description: Unauthorized
      security:
      - ApiKeyAuth: []
    servers:
    - url: https://api.honeycomb.io
      description: Honeycomb Production API
  /1/datasets/{datasetSlug}:
    get:
      operationId: getDataset
      summary: Get a dataset
      description: Returns a single dataset by its slug.
      tags:
      - Datasets
      parameters:
      - $ref: '#/components/parameters/datasetSlug'
      responses:
        '200':
          description: Dataset details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '401':
          description: Unauthorized
        '404':
          description: Dataset not found
      security:
      - ApiKeyAuth: []
    put:
      operationId: updateDataset
      summary: Update a dataset
      description: Updates a dataset's properties.
      tags:
      - Datasets
      parameters:
      - $ref: '#/components/parameters/datasetSlug'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DatasetUpdateRequest'
      responses:
        '200':
          description: Dataset updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '401':
          description: Unauthorized
        '404':
          description: Dataset not found
      security:
      - ApiKeyAuth: []
    parameters:
    - $ref: '#/components/parameters/datasetSlug_2'
    delete:
      security:
      - configuration_key: []
      summary: Delete a Dataset
      description: 'Deletes the Dataset. This is an irreversible operation.

        It may take several minutes for the deletion process to complete.


        **WARNING**: This endpoint will allow anyone with an API key that has the

        manage dataset permission to delete any dataset in the environment (or

        any dataset in the whole team for Classic customers).


        Datasets with Deletion Protection enabled cannot be deleted.


        To delete a Dataset with Deletion Protection enabled, first disable Deletion Protection by updating the Dataset with `settings.delete_protected = false`.'
      tags:
      - Datasets
      operationId: deleteDataset
      responses:
        '202':
          description: Deleted
          headers:
            Ratelimit:
              $ref: '#/components/headers/RateLimit'
            RateLimitPolicy:
              $ref: '#/components/headers/RateLimitPolicy'
          content:
            application/json: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/GenericError'
    servers:
    - url: https://api.honeycomb.io
      description: Honeycomb Production API
components:
  schemas:
    Dataset:
      type: object
      properties:
        name:
          type: string
          description: The name of the dataset.
        slug:
          type: string
          description: The URL-safe slug identifier for the dataset.
        description:
          type: string
          description: A description of the dataset.
        created_at:
          type: string
          format: date-time
          description: ISO8601 formatted timestamp of when the dataset was created.
        last_written_at:
          type: string
          format: date-time
          description: ISO8601 formatted timestamp of the last event written to the dataset.
        regular_columns_count:
          type: integer
          description: The number of regular columns in the dataset.
    DatasetCreateRequest:
      type: object
      required:
      - name
      properties:
        name:
          type: string
          description: The name of the dataset to create.
        description:
          type: string
          description: An optional description for the dataset.
    DatasetUpdateRequest:
      type: object
      properties:
        description:
          type: string
          description: An updated description for the dataset.
        expand_json_depth:
          type: integer
          description: The depth to which nested JSON payloads should be unpacked into individual columns.
    DetailedError:
      x-tags:
      - Errors
      description: An RFC7807 'Problem Detail' formatted error message.
      type: object
      required:
      - error
      - status
      - type
      - title
      properties:
        error:
          type: string
          readOnly: true
          default: something went wrong!
        status:
          type: number
          readOnly: true
          description: The HTTP status code of the error.
        type:
          type: string
          readOnly: true
          description: Type is a URI used to uniquely identify the type of error.
        title:
          type: string
          readOnly: true
          description: Title is a human-readable summary that explains the `type` of the problem.
        detail:
          type: string
          readOnly: true
          description: The general, human-readable error message.
        instance:
          type: string
          readOnly: true
          description: The unique identifier (ID) for this specific error.
    Dataset_2:
      type: object
      description: 'Datasets are a collection of events from a specific source or related source.

        '
      required:
      - name
      properties:
        name:
          type: string
          description: The name of the dataset.
          example: My Dataset!
          minLength: 1
          maxLength: 255
        description:
          type: string
          default: ''
          description: A description for the dataset.
          example: A nice description of my dataset
          minLength: 0
          maxLength: 1024
        settings:
          type: object
          properties:
            delete_protected:
              type: boolean
              description: If true, the dataset cannot be deleted.
        expand_json_depth:
          type: integer
          description: The maximum unpacking depth of nested JSON fields.
          example: 3
          default: 0
          minimum: 0
          maximum: 10
        slug:
          type: string
          example: my-dataset-
          description: The 'slug' of the dataset to be used in URLs.
          readOnly: true
        regular_columns_count:
          type:
          - 'null'
          - integer
          description: 'The total number of unique fields for this Dataset. The value will be null if the dataset does not contain any fields yet.

            '
          example: 100
          readOnly: true
        last_written_at:
          type:
          - 'null'
          - string
          description: 'The ISO8601-formatted time when the dataset last received event data. The value will be null if no data has been received yet.

            '
          example: '2022-07-21T18:39:23Z'
          readOnly: true
        created_at:
          type: string
          description: The ISO8601-formatted time when the dataset was created.
          example: '2022-09-22T17:32:11Z'
          readOnly: true
        dataset_type:
          type: string
          description: 'The type of data contained in the dataset. Only present for time-series metrics datasets.

            '
          enum:
          - metrics
          example: metrics
          readOnly: true
    DatasetUpdatePayload:
      type: object
      description: an object to send to the Dataset API via PUT
      required:
      - description
      - expand_json_depth
      properties:
        description:
          type: string
          default: ''
          description: A description for the dataset.
          example: A nice description of my dataset
          minLength: 0
          maxLength: 1024
        expand_json_depth:
          type: integer
          description: The maximum unpacking depth of nested JSON fields.
          example: 3
          default: 0
          minimum: 0
          maximum: 10
        settings:
          type: object
          properties:
            delete_protected:
              type: boolean
              description: If true, the dataset cannot be deleted.
    JSONAPIError:
      x-tags:
      - Errors
      type: object
      description: A JSONAPI-formatted error message.
      properties:
        errors:
          type: array
          items:
            type: object
            readOnly: true
            required:
            - id
            - code
            properties:
              id:
                type: string
                readOnly: true
              status:
                type: string
                readOnly: true
              code:
                type: string
                readOnly: true
              title:
                type: string
                readOnly: true
              detail:
                type: string
                readOnly: true
              source:
                type: object
                readOnly: true
                properties:
                  pointer:
                    type: string
                    readOnly: true
                  header:
                    type: string
                    readOnly: true
                  parameter:
                    type: string
                    readOnly: true
    DatasetCreationPayload:
      type: object
      description: an object to send to the Dataset API via PUT
      required:
      - name
      properties:
        name:
          type: string
          description: The name of the dataset.
          minLength: 1
          maxLength: 255
        description:
          type: string
          default: ''
          description: A description for the dataset.
          example: A nice description of my dataset
          minLength: 0
          maxLength: 1024
        expand_json_depth:
          type: integer
          description: The maximum unpacking depth of nested JSON fields.
          example: 3
          default: 0
          minimum: 0
          maximum: 10
    Error:
      x-tags:
      - Errors
      type: object
      description: A legacy error, containing only a textual description.
      properties:
        error:
          type: string
          readOnly: true
    ValidationError:
      x-tags:
      - Errors
      allOf:
      - $ref: '#/components/schemas/DetailedError'
      - type: object
        properties:
          status:
            type: number
            readOnly: true
            default: 422
          type:
            type: string
            readOnly: true
            default: https://api.honeycomb.io/problems/validation-failed
          title:
            type: string
            readOnly: true
            default: The provided input is invalid.
          type_detail:
            type: array
            items:
              type: object
              properties:
                field:
                  type: string
                  readOnly: true
                code:
                  type: string
                  readOnly: true
                  enum:
                  - invalid
                  - missing
                  - incorrect_type
                  - already_exists
                description:
                  type: string
                  readOnly: true
  parameters:
    datasetSlug:
      name: datasetSlug
      in: path
      required: true
      description: The slug identifier for the dataset. Dataset names are case insensitive.
      schema:
        type: string
    datasetSlug_2:
      name: datasetSlug
      description: 'The dataset slug.

        '
      in: path
      required: true
      schema:
        type: string
  headers:
    RateLimitPolicy:
      description: "The (draft07) recommended header from the IETF on rate limiting.\nThe value of the header is formatted \"X;w=Y\".\nWhere:\n - X is the maximum number of requests allowed in a window\n - Y is the size of the window in seconds\n"
      schema:
        type: string
      example: 100;w=60
    RetryAfter:
      description: 'The RFC7231 header used to indicate when a client should retry requests.

        '
      schema:
        type: string
      example: Fri, 22 Mar 2024 18:37:53 GMT
    RateLimit:
      description: "The (draft07) recommended header from the IETF on rate limiting.\nThe value of the header is formatted \"limit=X, remaining=Y, reset=Z\".\nWhere:\n  - X is the maximum number of requests allowed in the window\n  - Y is the number of requests remaining in the window\n  - Z is the number of seconds until the limit resets\n"
      schema:
        type: string
      example: limit=100, remaining=50, reset=60
  responses:
    Conflict:
      description: Conflict
      headers:
        Ratelimit:
          $ref: '#/components/headers/RateLimit'
        RateLimitPolicy:
          $ref: '#/components/headers/RateLimitPolicy'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: dataset not found
        application/problem+json:
          schema:
            $ref: '#/components/schemas/DetailedError'
          example:
            status: 409
            type: https://api.honeycomb.io/problems/conflict
            title: Request could not be completed due to a conflict with the current state of the target resource.
            error: A resource by that name already exists.
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JSONAPIError'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            deny-management-apis:
              description: Team cannot access management APIs.
              value:
                error: Your team has been denied access to Management APIs, please contact support to be unblocked.
        application/problem+json:
          schema:
            $ref: '#/components/schemas/DetailedError'
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JSONAPIError'
    GenericError:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Not Found
      headers:
        Ratelimit:
          $ref: '#/components/headers/RateLimit'
        RateLimitPolicy:
          $ref: '#/components/headers/RateLimitPolicy'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: dataset not found
        application/problem+json:
          schema:
            $ref: '#/components/schemas/DetailedError'
          example:
            status: 404
            type: https://api.honeycomb.io/problems/not-found
            title: The requested resource cannot be found.
            error: Dataset not found
            detail: Dataset not found
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JSONAPIError'
    ValidationFailed:
      description: Validation Failed
      headers:
        Ratelimit:
          $ref: '#/components/headers/RateLimit'
        RateLimitPolicy:
          $ref: '#/components/headers/RateLimitPolicy'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ValidationError'
          example:
            status: 422
            type: https://api.honeycomb.io/problems/validation-failed
            error: The provided input is invalid.
            title: The provided input is invalid
            type_detail:
            - field: type
              code: invalid
              description: 'type: must be a valid value'
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JSONAPIError'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: unknown API key - check your credentials
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JSONAPIError'
    RateLimited:
      description: Rate Limit Exceeded
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        Ratelimit:
          $ref: '#/components/headers/RateLimit'
        RateLimitPolicy:
          $ref: '#/components/headers/RateLimitPolicy'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Rate Limited
        application/problem+json:
          schema:
            $ref: '#/components/schemas/DetailedError'
          example:
            status: 429
            type: https://api.honeycomb.io/problems/rate-limited
            title: You have exceeded your rate limit.
            error: You have exceeded your rate limit.
            detail: Please try again after 2025-02-01T15:23:12Z.
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JSONAPIError'
          example:
            errors:
            - id: 06dcdd6508ca822f0e7e2bb4121c1f52
              code: rate-limited/may-retry
              title: request rate limit exceeded
              detail: Please try again after 2025-02-01T15:23:12Z.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Honeycomb-Team
      description: Honeycomb Configuration API key. Must have appropriate permissions for the endpoint being called.
    configuration_key:
      type: apiKey
      name: X-Honeycomb-Team
      in: header
      description: 'Authenticate using a Honeycomb Configuration Key.


        Pass the **Token** in the `X-Honeycomb-Team` header:

        ```http

        X-Honeycomb-Team: 1234567890123456789012

        ```


        If you created your key using the API, use `data.attributes.secret`; this is the same value as the **Token** in the UI.


        To learn how to create a Configuration Key, visit [Manage Environment API Keys](/configure/environments/manage-api-keys). To learn more about authenticating requests, visit [API Authentication](/api/authentication).

        '
    ingest_key:
      type: apiKey
      name: X-Honeycomb-Team
      in: header
      description: 'Authenticate using a Honeycomb Ingest Key.


        Pass the Ingest Key in the `X-Honeycomb-Team` header:

        ```http

        X-Honeycomb-Team: hc[x]ik_1234567890123456789012345612345678901234567890123456789012

        ```


        The key value is the key ID and key secret concatenated with no separator:

        - If you created your key through the UI, Honeycomb provides the complete value as the **Ingest Key**.

        - If you created your key using the API, construct the key value by concatenating `data.id` and `data.attributes.secret` with no separator.


        To learn how to create an Ingest Key, visit [Manage Environment API Keys](/configure/environments/manage-api-keys). To learn more about authenticating requests, visit [API Authentication](/api/authentication).

        '
    firehose_access_key:
      type: apiKey
      name: X-Amz-Firehose-Access-Key
      in: header
      description: 'We recommend using a Honeycomb Ingest Key to authenticate, though a Configuration Key will work.


        To learn more about authenticating requests, visit [API Authentication](/api/authentication).

        '
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Authenticate using a Honeycomb Management Key.


        Pass the Management Key as a Bearer token in the `Authorization` header:

        ```http

        Authorization: Bearer hcxmk_12345678901234567890123456:12345678901234567890123456789012

        ```


        Construct the key value by joining the **Key ID** and **Secret** with a colon (`:`).


        To learn how to create a Management Key, visit [Manage Team API Keys](/configure/teams/manage-api-keys). To learn more about authenticating requests, visit [API Authentication](/api/authentication).

        '
      bearerFormat: HONEYCOMB_KEY_ID:HONEYCOMB_KEY_SECRET
x-refined-from:
- honeycomb-api-openapi.yml
- honeycomb-openapi.yml