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.
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.
Supports batch creation of events.
Dataset names are case insensitive. POST
requests to "MyDatasET" will land in the same dataset as "mydataset". Names may contain URL-encoded spaces or other special characters, but not URL-encoded slashes. For example, "My%20Dataset" will show up in the UI as "My Dataset".
The first event received for a dataset determines the casing of the displayed name. All subsequent variations in casing will use the originally specified case.
The array should contain one or more JSON objects representing Events. Each Event contains its payload under the data
key. Values of time
and/or samplerate
can be included as well.
The JSON payload should have the structure:
[{ "data": { "key1": "value1", "key2": 2.0 } }, ... ]
Size limitations may be addressed by compressing request bodies with gzip
or zstd
compression.
An empty 202
response indicates that the event has been queued for processing.
Enqueued for processing
Bad Request
Unauthorized
Dropped due to administrative throttling
Not Found
Dropped due to rate limiting
[- {
- "status": 202
}, - {
- "status": 400,
- "error": "Request body should not be empty."
}, - {
- "status": 400,
- "error": "Event has too many columns."
}, - {
- "status": 400,
- "error": "Request body is malformed and cannot be read."
}
]
Using this endpoint for anything more than testing is highly discouraged.
Sending events in batches will be much more efficient and should be preferred if at all possible.
The request body is limited to raw (potentially compressed) size of 100KB.
The maximum number of distinct columns (fields) allowed in an event is 2000
.
Enqueued for processing
Bad Request
Unauthorized
Dropped due to administrative throttling
Not Found
Dropped due to rate limiting
{- "method": "GET",
- "endpoint": "/foo",
- "shard": "users",
- "duration_ms": 32
}
The body is empty, or blank.
{- "error": "Request body should not be empty."
}