Honeycomb Anomaly Detection API

The Anomaly Detection API exposes Honeycomb Signals - the anomaly detection profiles Honeycomb maintains per service - and their historical anomalies. List and retrieve Signals, update a Signal's configuration and recipients, and read the historical anomalies a Signal has recorded. Requires anomaly detection to be enabled for the team.

Operations 4

GET /1/signals List All Signals #
GET /1/signals/{id} Get a Signal #
PUT /1/signals/{id} Update a Signal #
GET /1/signals/{id}/historical_anomalies List Historical Anomalies #

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-io-anomaly-detection-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

honeycomb-io-anomaly-detection-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Honeycomb Anomaly Detection API
  version: 1.0.0
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  contact:
    email: support@honeycomb.io
  description: 'The API allows programmatic management of many resources within Honeycomb.


    Please report any discrepancies with actual API behavior in <a href="https://docs.honeycomb.io/troubleshoot/community/">Pollinators Slack</a> or to <a href="https://support.honeycomb.io/">Honeycomb Support</a>.

    '
servers:
- url: https://api.honeycomb.io
- url: https://api.eu1.honeycomb.io
tags:
- name: Anomaly Detection
  description: 'Anomaly Detection is in public beta. Endpoints and response shapes may change.


    Anomaly Detection identifies Signals - patterns in your services that deviate from their historical baseline - and can notify Recipients when a Signal turns anomalous.

    Each Signal is scoped to a service in a dataset and monitors one of the following:

    - **`error_rate`**: The fraction of erroring requests, compared to a trained normal band.

    - **`presence`**: Whether the service is emitting spans at all.


    Signals progress through the following statuses:

    - **`onboarding`**: The Signal has been created but does not yet have enough data to train.

    - **`normal`**: The Signal is trained and monitoring for anomalies.

    - **`anomalous`**: The Signal has detected an anomaly.

    - **`off`**: The Signal has been disabled and will not fire.

    - **`ineligible`**: The Signal cannot train because its service is not sending enough traffic to establish a reliable baseline.


    This API allows you to list Signals, retrieve a Signal with its assigned Recipients, page through a Signal''s historical anomalies, and update a Signal''s enabled state, sensitivity, and Recipient assignments.


    ## Authorization


    The API key must have the **Manage Signals** permission. Learn more about [API keys here](https://docs.honeycomb.io/configure/environments/manage-api-keys/).

    '
paths:
  /1/signals:
    get:
      security:
      - configuration_key: []
      summary: List All Signals
      description: 'List Signals in the environment associated with your API key. Signals are returned in cursor-paginated pages and can be filtered by service, dataset, kind, status, and whether they are currently anomalous.

        '
      tags:
      - Anomaly Detection
      operationId: listSignals
      x-mint:
        metadata:
          tag: Beta
      parameters:
      - $ref: '#/components/parameters/PaginationCursor'
      - $ref: '#/components/parameters/PaginationSize'
      - in: query
        name: service_name
        description: Restrict results to Signals for a single service.
        schema:
          type: string
        example: checkout-api
      - in: query
        name: dataset_slug
        description: Restrict results to Signals in a single dataset.
        schema:
          type: string
        example: checkout-api
      - in: query
        name: measured_signal
        description: Restrict results to Signals of the given kind.
        schema:
          $ref: '#/components/schemas/AnomalySignal'
      - in: query
        name: status
        description: 'Restrict results to Signals in the given status.


          When `status` is provided, it takes precedence over `currently_anomalous`.

          '
        schema:
          type: string
          enum:
          - onboarding
          - normal
          - anomalous
          - ineligible
          - 'off'
      - in: query
        name: currently_anomalous
        description: 'When `true`, only return Signals that are currently in an anomalous state.


          This parameter is ignored when `status` is provided (use `status=anomalous` instead).

          '
        schema:
          type: boolean
      responses:
        '200':
          description: Success
          headers:
            Ratelimit:
              $ref: '#/components/headers/RateLimit'
            RateLimitPolicy:
              $ref: '#/components/headers/RateLimitPolicy'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSignalsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationFailed'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/GenericError'
  /1/signals/{id}:
    parameters:
    - name: id
      description: The unique identifier (ID) of a Signal.
      in: path
      required: true
      schema:
        type: string
    get:
      security:
      - configuration_key: []
      summary: Get a Signal
      description: 'Fetch a Signal by ID, including the Recipients assigned to it.

        '
      tags:
      - Anomaly Detection
      operationId: getSignal
      x-mint:
        metadata:
          tag: Beta
      responses:
        '200':
          description: Success
          headers:
            Ratelimit:
              $ref: '#/components/headers/RateLimit'
            RateLimitPolicy:
              $ref: '#/components/headers/RateLimitPolicy'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignalDetailResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/GenericError'
    put:
      security:
      - configuration_key: []
      summary: Update a Signal
      description: 'Update a Signal by ID. All fields in the body are optional; only the fields you supply

        are applied.


        - `enabled`: Toggles the Signal on or off. Re-enabling a Signal that has already trained puts it back into `normal`; otherwise it returns to `onboarding`.

        - `sensitivity`: Sets how far a measurement must deviate from the trained normal band before the Signal fires. Not applicable to `presence` Signals, and cannot be set on a Signal that has not yet trained.

        - `recipients`: Replaces the Signal''s Recipient set. An empty array clears all Recipients. Modifying Recipients requires the **Manage Recipients** permission in addition to **Manage Signals**.

        '
      tags:
      - Anomaly Detection
      operationId: updateSignal
      x-mint:
        metadata:
          tag: Beta
      requestBody:
        description: Fields to update on the Signal. All fields are optional.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSignalRequest'
      responses:
        '200':
          description: Success
          headers:
            Ratelimit:
              $ref: '#/components/headers/RateLimit'
            RateLimitPolicy:
              $ref: '#/components/headers/RateLimitPolicy'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignalDetailResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/ValidationFailed'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/GenericError'
  /1/signals/{id}/historical_anomalies:
    parameters:
    - name: id
      description: The unique identifier (ID) of a Signal.
      in: path
      required: true
      schema:
        type: string
    get:
      security:
      - configuration_key: []
      summary: List Historical Anomalies
      description: 'List anomalies that a Signal has resolved within a bounded time window. Anomalies are returned in cursor-paginated pages, most recent first. `start_time` and `end_time` are required and must span no more than 30 days.

        '
      tags:
      - Anomaly Detection
      operationId: listSignalHistoricalAnomalies
      x-mint:
        metadata:
          tag: Beta
      parameters:
      - in: query
        name: start_time
        required: true
        description: Start of the query window, in seconds since UNIX epoch.
        schema:
          type: integer
        example: 1740787200
      - in: query
        name: end_time
        required: true
        description: End of the query window, in seconds since UNIX epoch. Must be after `start_time` and within 30 days of it.
        schema:
          type: integer
        example: 1741392000
      - $ref: '#/components/parameters/PaginationCursor'
      - $ref: '#/components/parameters/PaginationSize'
      responses:
        '200':
          description: Success
          headers:
            Ratelimit:
              $ref: '#/components/headers/RateLimit'
            RateLimitPolicy:
              $ref: '#/components/headers/RateLimitPolicy'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedHistoricalAnomaliesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationFailed'
        '429':
          $ref: '#/components/responses/RateLimited'
        default:
          $ref: '#/components/responses/GenericError'
components:
  parameters:
    PaginationSize:
      name: page[size]
      description: The number of entries to include per response. Maximum value is 100.
      in: query
      schema:
        type: number
        minimum: 1
        maximum: 100
        default: 20
      example: 10
    PaginationCursor:
      name: page[after]
      description: 'The string value of the `next` attribute from a previous result page.

        The cursor value must be empty or omitted for the first request of a cursor-paginated query.

        '
      in: query
      schema:
        type: string
      example: eyxJjcmAVhdGVkX
  schemas:
    PaginationLinks:
      type: object
      description: Links to iterate through the pages of results.
      required:
      - next
      properties:
        next:
          type:
          - string
          - 'null'
          description: The URL for the next page of results.
          readOnly: true
          example: /2/teams/my-team/api-keys?page[after]=3025fa645ad1100d&page[size]=10
    Error:
      x-tags:
      - Errors
      type: object
      description: A legacy error, containing only a textual description.
      properties:
        error:
          type: string
          readOnly: true
    AnomalySignal:
      type: string
      description: 'The kind of measurement the Signal is trained on.


        - `error_rate`: The fraction of erroring requests for the service.

        - `presence`: Whether the service is producing spans.

        '
      enum:
      - error_rate
      - presence
      example: error_rate
    PaginatedSignalsResponse:
      type: object
      description: A page of Signals.
      required:
      - signals
      properties:
        signals:
          type: array
          description: The Signals in this page.
          items:
            $ref: '#/components/schemas/Signal'
        links:
          $ref: '#/components/schemas/PaginationLinks'
    NotificationRecipientDetails:
      type: object
      properties:
        pagerduty_severity:
          description: 'When using a Recipient of `type = "pagerduty"`, the severity of the alert can be specified.

            '
          type: string
          default: critical
          enum:
          - critical
          - error
          - warning
          - info
        variables:
          description: 'When using a Recipient of `type = "webhook"`, the alert-level variables can be specified.

            '
          type: array
          items:
            type: object
            required:
            - name
            properties:
              name:
                type: string
                pattern: ^[a-z](?:[a-zA-Z0-9]+$)?$
                maxLength: 64
                example: severity
              value:
                type: string
                maxLength: 256
                example: warning
        muted:
          type: boolean
          description: 'When `true`, the Recipient is muted for this alert and will not receive notifications.

            Only applies to Recipients assigned to a Signal via the Anomaly Detection API.

            '
    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
    UpdateSignalRequest:
      type: object
      description: Fields to update on a Signal. All fields are optional and only supplied fields are applied.
      properties:
        enabled:
          type: boolean
          description: Turn the Signal on (`true`) or off (`false`).
          example: true
        sensitivity:
          allOf:
          - $ref: '#/components/schemas/AnomalySignalSensitivity'
          description: 'Set the sensitivity bucket for `error_rate` Signals. Cannot be set on `presence` Signals or on Signals that have not yet trained.

            '
        recipients:
          type: array
          description: 'Replace the Signal''s Recipient set with the given list. An empty array clears all Recipients. Each Recipient must be referenced by its `id` from the [Recipients API](/api/recipients/). Requires the **Manage Recipients** permission in addition to **Manage Signals**.

            '
          items:
            $ref: '#/components/schemas/SignalRecipient'
    NotificationRecipient:
      type: object
      properties:
        id:
          type: string
        type:
          deprecated: true
          description: 'One of the allowed Recipient types.

            Deprecated: Use the Recipients API first, then pass the Recipient ID.

            '
          allOf:
          - $ref: '#/components/schemas/RecipientType'
        target:
          type: string
          deprecated: true
          description: 'The target of the notification. For example, the specific Slack channel or email address.

            For Recipients of `type = "webhook"` or `type = "msteams_workflow"`,

            this will be the Name in the UI and `webhook_name` in the Recipients API.

            Deprecated: Use the Recipients API first, then pass the Recipient ID.

            '
        details:
          $ref: '#/components/schemas/NotificationRecipientDetails'
    SignalRecipient:
      type: object
      required:
      - id
      description: A Recipient assigned to a Signal.
      properties:
        id:
          type: string
          description: The unique identifier of an existing Recipient. Create Recipients via the [Recipients API](/api/recipients/).
          example: hcar_01jak3ymk8s5cpc2xz3q7d8v9r
        details:
          type: object
          description: Per-assignment settings for how this Recipient receives notifications for this Signal.
          properties:
            pagerduty_severity:
              type: string
              description: Severity to use when the assigned Recipient is a PagerDuty Recipient. Rejected for non-PagerDuty Recipients.
              enum:
              - critical
              - error
              - warning
              - info
              example: critical
            muted:
              type: boolean
              description: When `true`, the Recipient is muted for this Signal and will not receive notifications.
              default: false
    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.
    HistoricalAnomalyNormalRange:
      type: object
      description: The trained normal band a measurement exceeded.
      required:
      - lower
      - upper
      properties:
        lower:
          type: number
          description: The lower bound of the trained normal band.
          example: 0.01
        upper:
          type: number
          description: The upper bound of the trained normal band.
          example: 0.08
    SignalDetailResponse:
      description: A Signal with its assigned Recipients.
      allOf:
      - $ref: '#/components/schemas/Signal'
      - type: object
        required:
        - recipients
        properties:
          recipients:
            type: array
            description: The Recipients notified when this Signal fires.
            items:
              $ref: '#/components/schemas/NotificationRecipient'
            example:
            - id: hcar_01jak3ymk8s5cpc2xz3q7d8v9r
              type: pagerduty
              details:
                pagerduty_severity: critical
                muted: false
    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
    HistoricalAnomaly:
      type: object
      description: A resolved anomaly that a Signal previously fired for.
      required:
      - id
      - started_at
      - ended_at
      - measurement
      - normal_range
      properties:
        id:
          type: string
          description: A deterministic identifier for the anomaly, derived from the Signal, its measured kind, and the anomaly's start time.
          readOnly: true
          example: 0f8d0f3a-3f8b-5f2b-8f2b-1f2b3f4b5f6b
        started_at:
          type: integer
          description: The time the anomaly started, in seconds since UNIX epoch.
          readOnly: true
          example: 1741089600
        ended_at:
          type: integer
          description: The time the anomaly ended, in seconds since UNIX epoch.
          readOnly: true
          example: 1741093200
        measurement:
          type: number
          description: The measured value that triggered the anomaly.
          readOnly: true
          example: 0.42
        normal_range:
          oneOf:
          - $ref: '#/components/schemas/HistoricalAnomalyNormalRange'
          - type: 'null'
          description: The trained normal band the measurement exceeded. Always `null` for anomalies on `presence` Signals.
    RecipientType:
      type: string
      description: One of the supported Recipient Types
      enum:
      - pagerduty
      - email
      - slack
      - webhook
      - msteams
      - msteams_workflow
    Signal:
      type: object
      description: A Honeycomb Anomaly Detection Signal.
      required:
      - id
      - service_name
      - dataset_slug
      - environment_slug
      - measured_signal
      - enabled
      - status
      - sensitivity
      - auto_investigate
      - currently_anomalous
      - last_anomaly_started_at
      - last_anomaly_ended_at
      - created_at
      - updated_at
      properties:
        id:
          type: string
          description: Unique identifier (ID) of the Signal.
          readOnly: true
          example: hcasp_01j9x1yq0k2t8m9n3v4b5r6c7d
        service_name:
          type: string
          description: The name of the service the Signal monitors.
          readOnly: true
          example: checkout-api
        dataset_slug:
          type: string
          description: The slug of the dataset the Signal's service reports to.
          readOnly: true
          example: checkout-api
        environment_slug:
          type: string
          description: The slug of the environment the Signal belongs to.
          readOnly: true
          example: production
        measured_signal:
          allOf:
          - $ref: '#/components/schemas/AnomalySignal'
          description: The kind of measurement the Signal is trained on.
          readOnly: true
        enabled:
          type: boolean
          description: Whether the Signal is currently enabled. Disabled Signals do not fire.
          example: true
        status:
          allOf:
          - $ref: '#/components/schemas/AnomalySignalStatus'
          description: The lifecycle status of the Signal.
          readOnly: true
        sensitivity:
          oneOf:
          - $ref: '#/components/schemas/AnomalySignalSensitivity'
          - type: 'null'
          description: 'How far a measurement must deviate from the trained normal band before the Signal fires. Always `null` for `presence` Signals, and `null` for any Signal that has not yet trained.

            '
        auto_investigate:
          type: boolean
          description: When `true`, Honeycomb will automatically start an investigation when this Signal fires.
          readOnly: true
          example: false
        currently_anomalous:
          type: boolean
          description: Whether the Signal is currently in an anomalous state.
          readOnly: true
          example: false
        last_anomaly_started_at:
          type:
          - integer
          - 'null'
          description: The start time of the most recent anomaly, in seconds since UNIX epoch. `null` when the Signal has never been anomalous.
          readOnly: true
          example: 1741089600
        last_anomaly_ended_at:
          type:
          - integer
          - 'null'
          description: The end time of the most recent anomaly, in seconds since UNIX epoch. `null` when no anomaly has ended yet, or the Signal is currently anomalous.
          readOnly: true
          example: 1741093200
        created_at:
          type: string
          format: date-time
          description: The ISO8601-formatted time when the Signal was created.
          readOnly: true
          example: '2025-02-14T17:32:11Z'
        updated_at:
          type: string
          format: date-time
          description: The ISO8601-formatted time when the Signal was last updated.
          readOnly: true
          example: '2025-03-01T10:04:22Z'
    AnomalySignalStatus:
      type: string
      description: 'The lifecycle status of the Signal.


        `ineligible` is returned when the underlying service does not meet the conditions

        required for training.

        '
      enum:
      - onboarding
      - normal
      - anomalous
      - 'off'
      - ineligible
      example: normal
    PaginatedHistoricalAnomaliesResponse:
      type: object
      description: A page of resolved historical anomalies for a Signal.
      required:
      - historical_anomalies
      properties:
        historical_anomalies:
          type: array
          description: The anomalies in this page, most recent first.
          items:
            $ref: '#/components/schemas/HistoricalAnomaly'
        links:
          $ref: '#/components/schemas/PaginationLinks'
    AnomalySignalSensitivity:
      type: string
      description: 'How far a measurement must deviate from the trained normal band before the Signal fires.


        Higher sensitivity narrows the normal band and catches smaller deviations.

        `sensitivity` is always `null` for `presence` Signals.

        '
      enum:
      - low
      - medium
      - high
      example: medium
  responses:
    BadRequest:
      description: The provided request body was invalid.
      headers:
        Ratelimit:
          $ref: '#/components/headers/RateLimit'
        RateLimitPolicy:
          $ref: '#/components/headers/RateLimitPolicy'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/DetailedError'
          examples:
            DetailedError:
              value:
                status: 400
                type: https://api.honeycomb.io/problems/unparseable
                title: The request body could not be parsed.
                error: invalid gzip data
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            GenericError:
              value:
                error: invalid Query data
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JSONAPIError'
          examples:
            JSONAPIError:
              value:
                errors:
                - id: 06dcdd6508ca822f0e7e2bb4121c1f52
                  code: invalid
                  title: request body could not be parsed
                  detail: invalid gzip data
    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'
    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'
    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'
    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'
    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.
    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'
    GenericError:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  headers:
    RateLimitPolicy:
      description: "The (draft07

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/honeycomb-io/refs/heads/main/openapi/honeycomb-io-anomaly-detection-api-openapi.yml