Honeycomb Resource Hierarchy
Honeycomb organizes resources hierarchically: Teams contain Environments, and Environments contain Datasets and other resources. API keys operate at different levels of this hierarchy, which determines what they can access.- Environment-level keys access a single Environment and its Datasets. These include Ingest and Configuration Keys.
- Team-level keys access all Environments and Team settings. These are Management Keys.
If you use Honeycomb Classic, your account doesnโt have Environments.
Classic API keys operate at the Team level and access all your Classic Datasets directly.
API Key Types
Honeycomb has three types of API keys, each designed for a specific purpose and scope.| Key Type | Scope | Use | Authentication |
|---|---|---|---|
| Ingest | Environment | Send telemetry data | Single value |
| Configuration | Environment | Manage Environment resources | Single value |
| Management | Team | Manage keys and Environments | Key ID + Key Secret |
Ingest Keys
Ingest Keys send event data to Honeycomb. Pass an Ingest Key in theX-Honeycomb-Team header.
The key value is the key ID and key secret concatenated with no separator.
Configuration Keys
Configuration Keys read and manage resources within a specific Environment, such as Datasets, queries, Boards, Triggers, and SLOs. Pass a Configuration Key in theX-Honeycomb-Team header, the same way as an Ingest Key.
Management Keys
Management Keys handle Team-level operations, including managing Environments and API keys themselves. Pass a Management Key as a Bearer token in theAuthorization header, joining the key ID and secret with a colon.
Key Prefixes
API key IDs include a prefix that identifies the key type:hcxik_: Ingest Keyhcxlk_: Configuration Keyhcxmk_: Management Key
Validating a Key
Use the Auth endpoint to confirm which key you are using, check its permissions, and identify the Team and Environment it belongs to.If you use Honeycomb Classic, the
environment.name and environment.slug fields in the Auth endpoint response will return empty strings.
This is expected behavior.