Honeycomb API (1.0.0)

The API allows programmatic management of many resources within Honeycomb.

Please report any discrepancies with actual API behavior in Pollinators Slack or to Honeycomb Support.

Download OpenAPI description
Overview
Languages
Servers
https://api.honeycomb.io/
https://api.eu1.honeycomb.io/

Auth

API Keys have various scopes permissions and belong to a specific Team or Environment.

Any valid Honeycomb ingest or configuration API Key will work with this endpoint. Learn more about API keys.

These endpoints can be used to validate authentication for a key, to determine what authorizations have been granted to a key, and to determine the Team and Environment that a key belongs to.

Operations

Boards

Boards are a place to pin and save useful queries and graphs you want to retain for later reuse and reference.

This API allows you to list, create, update, and delete Boards.

Authorization

The API key must have the Manage Public Boards permission. Learn more about API keys here.

Operations

Burn Alerts

This feature is available as part of the Honeycomb Pro and Enterprise plans.

Burn Alerts notify you when issues impact your SLO budget. Learn more about Burn Alerts here.

This API allows you to list, create, update, and delete burn alerts.

Authorization

The API key must have the Manage SLOs permission. Learn more about API keys here.

Operations

Columns

Columns are fields in the events you send to Honeycomb.

This API allows you to list, create, update, and delete columns in a dataset.

Authorization

The API key must have the Manage Queries and Columns permission. Learn more about API keys here.

Operations

Datasets

A Dataset represents a collection of related events that come from the same source, or are related to the same source.

This API allows you to list, create, and update datasets.

Authorization

The API key must have the Create Datasets permission. Learn more about API keys here.

Operations

Dataset Definitions

Dataset definitions describe the fields with special meaning in the Dataset.

Refer to the Dataset Definitions documentation for more information.

Honeycomb automatically creates these Dataset definition fields when the Dataset is created. Manual creation of Dataset definitions is not needed.

Authorization

The API key must have the Create Datasets permission. Learn more about API keys here.

Operations

Derived Columns

Derived columns allow you to run queries based on the value of an expression that is derived from the columns in an event.

This API allows you to list, create, update, and delete derived columns in a dataset or across a whole environment, paralleling the behavior of the Schema tab within a Dataset's or Environment's Settings UI.

Authorization

The API key must have the Manage Queries and Columns permission. Learn more about API keys here.

Operations

Events

The Events API endpoints are the lowest-level way to send Events to Honeycomb. This should be your last resort!

If unsure where to start when instrumenting an application, read about how to Send Data to Honeycomb.

If you are building a tracing or metrics library, we recommend using OpenTelemetry.

Authorization

It is recommended that an Ingest API key is used for sending events.

A Configuration API key will work, and must have the Send Events permission. Learn more about API keys here.

Operations

Environments

This API allows you to list, create, and update, and delete Environments.

Operations

Key Management

This API allows you to list, create, update, and delete API Keys for a Team.

Learn more about API keys here.

Note: currently only Ingest Keys are supported.

Operations

Kinesis Events

The Kinesis Events API endpoints allow Honeycomb to process streaming events from Amazon Kinesis.

Refer to the Honeycomb AWS integrations documentation for more information.

Authorization

It is recommended that an Ingest API key is used for sending events.

A Configuration API key will work, and must have the Send Events permission. Learn more about API keys here.

Operations

Markers

Markers indicate points in time on graphs where interesting things happen, such as deploys or outages.

This API allows you to list, create, update, and delete Markers.

Authorization

The API key must have the Manage Markers permission. Learn more about API keys here.

Operations

Marker Settings

Marker Settings apply to groups of similar Markers. For example, "deploys" markers appear with the same color on a graph.

This API allows you to list, create, update, and delete Marker Settings.

Authorization

The API key must have the Manage Markers permission. Learn more about API keys here.

Operations

Queries

Queries in Honeycomb are specifications for queries, and are used to identify queries in other parts of the API - in particular: boards, triggers, and query annotations.

This API allows you to create and get query objects.

Authorization

The API key must have the Manage Queries and Columns permission. Learn more about API keys here.

Operations

Query Annotations

Query Annotations in Honeycomb allow you to associate names and descriptions to queries to add additional information in collaboration features.

This API allows you to list, create, update, and delete Query Annotations.

Authorization

The API key must have the Manage Queries and Columns permission. Learn more about API keys here.

Operations

Query Data

This feature is available as part of the Honeycomb Enterprise plan.

Query Results are the aggregated data from a Query, similar to what is displayed in graphs or heatmaps within the Honeycomb UI. Receiving results from a Query is a three-step process:

Create the Query (or Query Spec), which validates that the query parameters are valid. Creating a query does not actually run the query to get results. Run the query asynchronously by creating a Query Result referencing the Query’s ID. This returns a Query Result ID. Poll the query result endpoint (with the Query Result ID) until the data is ready.

Note that many Query Results can be created from a single Query. This is particularly useful when using a relative time_range parameter in the Query. For example, a Query with time_range: 7200 and no explicit start_time or end_time can be re-run over and over, with each resulting Query Result containing the most recent 2 hours of data. This is conceptually similar to clicking Run Query in the Honeycomb UI without changing any query parameters.

IMPORTANT API RESTRICTIONS:

To ensure the stability of Honeycomb systems, we have enabled the following API restrictions. These restrictions may change over time.

  • Query Results can only be created for events with timestamps within the past 7 days.

  • When creating a Query Result, the time ranges from the Query are truncated according to the following rules. For queries with a time range of:

    • less than or equal to 6 hours, results are truncated to the nearest 1 minute. For example, a start/end time of 2021-04-22T05:28:12Z will be truncated to 2021-04-22T05:28:00Z.

    • greater than 6 hours and less than or equal to 2 days, results are truncated to the nearest 5 minutes. For example, a start/end time of 2021-04-22T05:28:12Z will be truncated to 2021-04-22T05:25:00Z.

    • greater than 2 days and less than or equal to 7 days, results are truncated to the nearest 30 minutes. For example, a start/end time of 2021-04-22T05:28:12Z will be truncated to 2021-04-22T05:00:00Z.

  • Creating a Query Result is rate limited to 10 requests per minute. Status code 429 will be returned when rate limited.

  • Query Results cannot take longer than 10 seconds to run.

Authorization

The API key must have the Manage Queries and Columns and Run Queries permission. Learn more about API keys here.

Operations

Create a Query Result

Request

Kick off processing of a Query to then get back the Query Results. Once the Query Result has been created, the query will be run asynchronously, allowing the result data to be fetched from the GET query result endpoint. Only the last 7 days of data can be queried. Any queries with a start_time, end_time, or time_range older than last 7 days will result in a 400 error response.

Path
datasetSlugstringrequired

The dataset slug or use __all__ for endpoints that support environment-wide operations.

Bodyapplication/jsonrequired
query_idstringwrite-onlyrequired
Example: "mabAMpSPDjH"
disable_seriesbooleanwrite-only

If true, timeseries data will not be returned in the series response field, and only summarized data will be returned in the results response field.

Default false
disable_total_by_aggregatebooleanwrite-only

If true, data representing each aggregate in the query's total value will not be returned. Ensure disable_series is false to return the timeseries data.

Default true
disable_other_by_aggregatebooleanwrite-only

If true, the "other_by_aggregate" data is excluded from the query result.

Default true
limitinteger<= 10000write-only

If disable_series is true, a limit may be optionally given. The limit will override the default limit of 1_000 results with a maximum available limit of 10_000. If disable_series is false, this field will be ignored.

curl -i -X POST \
  'https://api.honeycomb.io/1/query_results/{datasetSlug}' \
  -H 'Content-Type: application/json' \
  -H 'X-Honeycomb-Team: YOUR_API_KEY_HERE' \
  -d '{
    "query_id": "mabAMpSPDjH",
    "disable_series": false,
    "disable_total_by_aggregate": true,
    "disable_other_by_aggregate": true,
    "limit": 10000
  }'

Responses

Created

Headers
Locationstring

The Location header will contain the URL where the results can be fetched.

Example: "https://api.honeycomb.io/1/query_results/test-via-curl/HprJhV1fYyr"
Bodyapplication/json
queryobjectread-only
idstringread-only

The unique identifier (ID) of a Query Result.

Example: "sGUnkBHgRFN"
completebooleanread-only

Indicates if the query results are available yet or not. For example, is the query still being processed or complete?

Example: false
linksobjectread-only

An object containing UI links to the query result and query result graph

Response
application/json
{ "query": { "calculations": [], "orders": [], "limit": 10000, "time_range": 7200 }, "complete": false, "id": "dfg456", "links": { "query_url": "https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/dfg456", "graph_image_url": "https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/dfg456/snapshot" } }

Get Query Result

Request

Get the Query Result details for a specific Query Result ID. This endpoint is used to fetch the results of a query that had previously been created. It is recommended to follow the Location header included in the Create Query Result output, but the URL can also be constructed manually with the <query-result-id>.

Path
datasetSlugstringrequired

The dataset slug or use __all__ for endpoints that support environment-wide operations.

queryResultIdstringrequired

The unique identifier (ID) of the query result.

curl -i -X GET \
  'https://api.honeycomb.io/1/query_results/{datasetSlug}/{queryResultId}' \
  -H 'X-Honeycomb-Team: YOUR_API_KEY_HERE'

Responses

Success

Headers
Last-Modifiedstring

The Last-Modified response HTTP header contains a date and time when the origin server believes the resource was last modified.

Example: "Mon, 02 Jan 2006 15:04:05 GMT"
Cache-Controlstring

The max-age=N response directive indicates that the response remains fresh until N seconds after the response is generated.

Example: "private, max-age=86400"
Bodyapplication/json
queryobjectread-only
idstringread-only

The unique identifier (ID) of a Query Result

Example: "sGUnkBHgRFN"
completebooleanread-only

Indicates if the query results are available yet or not. For example, is the query still being processed or complete?

Example: true
dataobject

An object containing the query result data

linksobject

An object containing UI links to the query result and query result graph

Response
application/json
{ "query": { "calculations": [], "orders": [], "limit": 10000, "time_range": 7200 }, "complete": true, "id": "dfg456", "data": { "series": [], "results": [] }, "links": { "query_url": "https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/dfg456", "graph_image_url": "https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/dfg456/snapshot" } }

Recipients

Honeycomb Recipients allow you to define and manage the Recipients that will get notified by a Trigger or Burn Alert.

The types of Recipients supported are: PagerDuty, Email, Webhook, Microsoft Teams, and Slack.

Authorization

The API key must have the Manage Recipients permission. Recipients are team-wide and NOT environment-specific. API Keys with the Manage Recipients permission can modify recipients used by ALL environments for a given team.

Learn more about API keys here.

Operations

SLOs

This feature is available as part of the Honeycomb Pro and Enterprise plans.

Honeycomb SLOs allow you to define and monitor Service Level Objectives (SLOs) for your organization.

This API allows you to list, create, update, and delete SLO objects.

Authorization

The API key must have the Manage SLOs permission. Learn more about API keys here.

Operations

Triggers

Triggers let you receive notifications when your data in Honeycomb crosses the thresholds that you configure. The graph on which to alert is as flexible as a Honeycomb query, which helps reduce false positives due to known errors.Triggers fire

This API allows you to list, create, update, and delete Triggers.

Authorization

The API key must have the Manage Triggers permission. Learn more about API keys here.

Operations

Errors

The Honeycomb API returns standardized error responses, as documented here.