openapi: 3.1.0
info:
title: Honeycomb Auth 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 Pollinators Slack or to Honeycomb
Support.
'
externalDocs:
url: https://docs.honeycomb.io
servers:
- url: https://api.honeycomb.io
- url: https://api.eu1.honeycomb.io
tags:
- name: Auth
description: '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](https://docs.honeycomb.io/get-started/best-practices/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.
'
paths:
/1/auth:
get:
security:
- configuration_key: []
- ingest_key: []
summary: List Authorizations
description: 'Returns metadata about the API Key used to call the API.
Note: a Honeycomb Classic API key will return an empty string for both of the `environment` values.
'
tags:
- Auth
operationId: getAuth
responses:
'200':
description: Success
headers:
Ratelimit:
$ref: '#/components/headers/RateLimit'
RateLimitPolicy:
$ref: '#/components/headers/RateLimitPolicy'
content:
application/json:
schema:
$ref: '#/components/schemas/Auth'
examples:
environment:
description: Environment API Key
value:
id: FL_xMM5LapLC
type: configuration
api_key_access:
events: true
markers: true
triggers: false
boards: false
queries: false
columns: false
createDatasets: true
slos: false
recipients: false
privateBoards: false
environment:
name: Production
slug: production
team:
name: Honeycomb Docs
slug: honeycomb-docs
classic:
description: Classic Environment API Key
value:
id: A3jatwoWSxA
type: configuration
api_key_access:
events: true
markers: true
triggers: false
boards: false
queries: false
columns: false
createDatasets: false
slos: false
recipients: false
privateBoards: false
environment:
name: ''
slug: ''
team:
name: Honeycomb Docs
slug: honeycomb-docs
ingest:
description: Ingest API Key
value:
id: hcxik_01j1824es7n4evcmv81cn392jb
type: ingest
api_key_access:
createDatasets: true
environment:
name: Production
slug: production
team:
name: Honeycomb Docs
slug: honeycomb-docs
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
default:
$ref: '#/components/responses/GenericError'
/2/auth:
get:
security:
- bearerAuth: []
summary: List Authorizations V2
description: 'Returns metadata about the Management API Key used to call the API.
'
tags:
- Auth
operationId: getV2Auth
responses:
'200':
description: Success
headers:
Ratelimit:
$ref: '#/components/headers/RateLimit'
RateLimitPolicy:
$ref: '#/components/headers/RateLimitPolicy'
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/AuthV2Response'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
components:
headers:
RateLimitPolicy:
description: "The (draft07) recommended header from the IETF on rate limiting.\nThe value of the header is formatted \"X;w=Y\".\nWhere:\n - X is the maximum number of requests allowed in a window\n\
\ - Y is the size of the window in seconds\n"
schema:
type: string
example: 100;w=60
RetryAfter:
description: 'The RFC7231 header used to indicate when a client should retry requests.
'
schema:
type: string
example: Fri, 22 Mar 2024 18:37:53 GMT
RateLimit:
description: "The (draft07) recommended header from the IETF on rate limiting.\nThe value of the header is formatted \"limit=X, remaining=Y, reset=Z\".\nWhere:\n - X is the maximum number of requests\
\ allowed in the window\n - Y is the number of requests remaining in the window\n - Z is the number of seconds until the limit resets\n"
schema:
type: string
example: limit=100, remaining=50, reset=60
schemas:
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
TeamRelationship:
type: object
required:
- team
properties:
team:
type: object
required:
- data
properties:
data:
type: object
required:
- id
- type
properties:
id:
type: string
description: The ID of the Team this object is associated with
example: hxctm_12345678901234567890123456
type:
type: string
enum:
- teams
AuthV2Response:
type: object
required:
- data
properties:
included:
type: array
items:
$ref: '#/components/schemas/IncludedResource'
example:
- id: hcxtm_12345678901234567890123456
type: teams
attributes:
name: My Team
slug: my-team
data:
type: object
required:
- id
- type
- attributes
properties:
id:
type: string
readOnly: true
description: The unique identifier of the API Key making the request
example: hcxik_12345678901234567890123456
type:
type: string
readOnly: true
enum:
- api-keys
relationships:
type: object
readOnly: true
allOf:
- $ref: '#/components/schemas/TeamRelationship'
attributes:
type: object
readOnly: true
properties:
name:
type: string
description: A human-readable name for the API Key
example: mgmt write key
key_type:
type: string
description: The type of API Key
enum:
- management
disabled:
type: boolean
description: Whether the API Key is disabled
default: false
scopes:
type: array
description: The scopes assigned to this API Key
example:
- api-keys:write
timestamps:
type: object
properties:
created:
type: string
format: date-time
description: The ISO8601-formatted time when the API Key was created.
readOnly: true
example: '2022-09-22T17:32:11Z'
updated:
type: string
format: date-time
description: The ISO8601-formatted time when the API Key was updated.
readOnly: true
example: '2022-10-31T15:08:11Z'
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.
Auth:
type: object
required:
- id
- type
- api_key_access
- environment
- team
properties:
id:
type: string
description: Unique identifier (ID) of the API Key.
type:
type: string
enum:
- configuration
- ingest
description: The type of API Key.
api_key_access:
type: object
properties:
events:
type: boolean
default: false
markers:
type: boolean
default: false
triggers:
type: boolean
default: false
boards:
type: boolean
default: false
queries:
type: boolean
default: false
columns:
type: boolean
default: false
createDatasets:
type: boolean
default: false
slos:
type: boolean
default: false
recipients:
type: boolean
default: false
privateBoards:
type: boolean
default: false
environment:
type: object
properties:
name:
type: string
description: The name of the Environment. Will be empty for Classic environments.
slug:
type: string
description: The slug of the Environment. Will be empty for Classic environments.
team:
type: object
properties:
name:
type: string
slug:
type: string
IncludedResource:
type: object
properties:
id:
type: string
readOnly: true
description: The unique identifier of the resource
example: hcxen_01hznmeqrcq8rz533xrvtc6mk0
type:
type: string
readOnly: true
example: environments
attributes:
type: object
readOnly: true
example:
name: Production
slug: production
Error:
x-tags:
- Errors
type: object
description: A legacy error, containing only a textual description.
properties:
error:
type: string
readOnly: true
responses:
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'
GenericError:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
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.