We use cookies or similar technologies to personalize your online experience & tailor marketing to you. Many of our product features require cookies to function properly.

Read our privacy policy I accept cookies from this site

Columns API

Columns are fields in the events you send. You might use this API to:

This API parallels the behavior of the Honeycomb Dataset Schema UI.

Authorization  🔗

Your API key must have the Manage Queries and Columns boxes checked. This modal can be found in your Team Settings.

API key must have Manage Queries and Columns

Fields on a Column  🔗

Columns have the following fields:

Field Type Optional Notes
id string read-only Returned in response bodies; this is a base58 encoded string. (“The encoded data contains only alphanumericals, and avoids the easily confused characters 0, i, l and O (zero, india, lima, capital oscar).")
key_name string no Name of the column
alias string yes, default=”" Deprecated
hidden boolean yes, default=false
description string yes, default=""
type string enum (“string”, “float”, “integer”, “boolean”) yes, default=“string”

Headers  🔗

The only expected header is X-Honeycomb-Team, which is your Team API key, and it is required.

Create a Column  🔗

Columns are created by sending a POST request to /1/columns/<DATASET_NAME>

The body should be a JSON encoded object containing at least key_name and it must not contain an id. All other fields are optional.

Response status should be 201, and the body will contain the created object, including its id.

Create Example Request  🔗

curl https://api.honeycomb.io/1/columns/$DATASET_SLUG \
    -X POST \
    -H "X-Honeycomb-Team: $LIBHONEY_WRITE_KEY" \
    -d '{"key_name": "my_new_column", "type": "integer"}'

Create Example Response  🔗

{
  "id": "yUheCUmgZ8p",
  "key_name": "my_new_column",
  "hidden": false,
  "description": "",
  "type": "integer"
}

Update a Column  🔗

Update a Column by sending a PUT request to /1/columns/<dataset>/<column_id>.

The PUT request should have as its body a JSON object containing all the user-settable fields for this Column, including any updated values. (That is, it is a PUT request, not a PATCH applying a partial update.)

When a Column has been successfully updated, the API returns code 200 and the updated Column as the body of the response.

Update Example Request  🔗

curl https://api.honeycomb.io/1/columns/$DATASET_SLUG/$COLUMN_ID \
  -X PUT \
  -H "X-Honeycomb-Team: $LIBHONEY_WRITE_KEY" \
  -d '{"key_name": "my_new_column", "type": "integer", "hidden": true, "description": "Heres my new column."}'

Update Example Response  🔗

{
  "id": "yUheCUmgZ8p",
  "key_name": "my_new_column",
  "hidden": true,
  "description": "Heres my new column.",
  "type": "integer"
}

Delete a Column  🔗

After a DELETE request, a successful response will have a status code 204 and an empty body.

Delete Example Request  🔗

curl https://api.honeycomb.io/1/columns/$DATASET_SLUG/$COLUMN_ID \
    -H "X-Honeycomb-Team: $LIBHONEY_WRITE_KEY" \
    -X DELETE

Get One Column  🔗

A singular Column in a dataset may be retrieved by sending a GET request to /1/columns/<DATASET_NAME>/<COLUMN_ID>.

Get One Column Example Request  🔗

curl https://api.honeycomb.io/1/columns/$DATASET_SLUG/$COLUMN_ID \
    -X GET \
    -H "X-Honeycomb-Team: $LIBHONEY_WRITE_KEY"

Get One Column Example Response  🔗

{
  "id": "D1TaSJzsEoX",
  "key_name": "api_column",
  "hidden": false,
  "description": "",
  "type": "string"
}

Get One Column by KeyName  🔗

A singular Column in a dataset may be retrieved by sending a GET request to /1/columns/<DATASET_SLUG>?key_name=<KEY_NAME>.

Get One Column by KeyName Example Request  🔗

curl https://api.honeycomb.io/1/columns/$DATASET_SLUG?key_name=$KEY_NAME \
    -X GET \
    -H "X-Honeycomb-Team: $LIBHONEY_WRITE_KEY"

Get One Column by KeyName Example Response  🔗

{
  "id": "yUheCUmgZ8p",
  "key_name": "my_new_column",
  "hidden": true,
  "description": "Heres my new column.",
  "type": "integer"
}

List All Columns  🔗

All the Columns in a dataset may be retrieved by sending a GET request to /1/columns/<DATASET_NAME>.

A successful response will return HTTP 200 and a JSON list of all Column objects for the dataset.

List All Example Request  🔗

curl https://api.honeycomb.io/1/columns/$DATASET_SLUG \
    -X GET \
    -H "X-Honeycomb-Team: $LIBHONEY_WRITE_KEY"