openapi: 3.1.0 info: title: Honeycomb Markers 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: Markers description: '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](https://docs.honeycomb.io/configure/environments/manage-api-keys/). ' - name: Marker Settings description: '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](https://docs.honeycomb.io/configure/environments/manage-api-keys/). ' paths: /1/markers/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' post: security: - configuration_key: [] summary: Create a Marker description: 'Create a Marker in the specified dataset. To create an environment marker, use the `__all__` keyword and an API key associated with the desired environment. ' tags: - Markers operationId: createMarker requestBody: description: 'The marker body can include as many of the Marker fields as desired. ' content: application/json: schema: $ref: '#/components/schemas/Marker' required: true responses: '201': description: Created headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/Marker' example: created_at: '2016-08-13T05:39:42Z' updated_at: '2016-08-13T05:39:42Z' start_time: 1471040808 message: 'backend deploy #123' type: deploy id: d1c84ec0 '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' get: security: - configuration_key: [] summary: List All Markers description: 'Lists all Markers for a dataset. ' tags: - Markers operationId: getMarker responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: type: array items: $ref: '#/components/schemas/Marker' example: - created_at: '2016-08-13T05:39:42Z' updated_at: '2016-08-13T05:39:42Z' start_time: 1471040808 message: 'backend deploy #123' type: deploy id: d1c84ec0 - created_at: '2016-08-14T05:39:42Z' updated_at: '2016-08-14T05:39:42Z' start_time: 1471040808 message: 'frontend deploy #123' type: deploy id: c2b52fa0 '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' /1/markers/{datasetSlug}/{markerId}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' - name: markerId description: The unique identifier (ID) of a Marker. in: path required: true schema: type: string put: security: - configuration_key: [] summary: Update a Marker description: 'Update a Marker in the specified dataset. To update an environment marker, use the `__all__` keyword and an API key associated with the desired environment. ' tags: - Markers operationId: updateMarker requestBody: description: 'If an existing field is not included in the payload, it will be erased. ' content: application/json: schema: $ref: '#/components/schemas/Marker' required: true responses: '200': description: Updated headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/Marker' example: created_at: '2016-08-13T05:39:42Z' updated_at: '2016-08-13T05:39:42Z' start_time: 1471040808 message: 'backend deploy #123' type: deploy id: d1c84ec0 '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' delete: security: - configuration_key: [] summary: Delete a Marker tags: - Markers operationId: deleteMarker responses: '200': description: 'Success The deleted Marker will be in the body of the response. ' headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/Marker' example: created_at: '2016-08-13T05:39:42Z' updated_at: '2016-08-13T05:39:42Z' start_time: 1471040808 message: 'backend deploy #123' type: deploy id: d1c84ec0 '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' /1/marker_settings/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' post: security: - configuration_key: [] summary: Create a Marker Setting tags: - Marker Settings operationId: createMarkerSetting requestBody: content: application/json: schema: $ref: '#/components/schemas/MarkerSetting' required: true responses: '201': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/MarkerSetting' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' get: security: - configuration_key: [] summary: Get a Marker Setting tags: - Marker Settings operationId: listMarkerSettings responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: type: array items: $ref: '#/components/schemas/MarkerSetting' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' /1/marker_settings/{datasetSlug}/{markerSettingId}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' - name: markerSettingId description: The unique identifier (ID) of a marker setting. in: path required: true schema: type: string put: security: - configuration_key: [] summary: Update a Marker Setting description: 'A marker setting''s `type` may not be changed after creation. ' tags: - Marker Settings operationId: updateMarkerSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/MarkerSetting' example: type: deploy color: '#1fa297' required: true responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/MarkerSetting' example: type: deploy color: '#1fa297' id: gwAHiE5TS4j created_at: '2022-09-15T05:39:42Z' updated_at: '2022-12-20T08:10:05Z' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' delete: security: - configuration_key: [] summary: Delete a Marker Setting tags: - Marker Settings operationId: deleteMarkerSettings responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/MarkerSetting' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' components: 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' ValidationFailed: description: Validation Failed headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/problem+json: schema: $ref: '#/components/schemas/ValidationError' example: status: 422 type: https://api.honeycomb.io/problems/validation-failed error: The provided input is invalid. title: The provided input is invalid type_detail: - field: type code: invalid description: 'type: must be a valid value' application/json: schema: $ref: '#/components/schemas/Error' application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIError' GenericError: description: Error content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Not Found headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/Error' example: error: dataset not found application/problem+json: schema: $ref: '#/components/schemas/DetailedError' example: status: 404 type: https://api.honeycomb.io/problems/not-found title: The requested resource cannot be found. error: Dataset not found detail: Dataset not found application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIError' 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. headers: 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 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 schemas: Marker: type: object properties: start_time: type: integer description: Indicates the time the Marker should be placed. If missing, defaults to the time the request arrives. Expressed in Unix Time. example: 1471040808 end_time: type: integer description: Specifies end time, and allows a Marker to be recorded as representing a time range, such as a 5 minute deploy. Expressed in Unix Time. example: 1668453920 message: type: string description: A message to describe this specific Marker. example: 'backend deploy #123' type: type: string description: Groups similar Markers. For example, `deploys`. All Markers of the same type appear with the same color on the graph. Refer to the [Marker Settings](/api/marker-settings/) API for altering the color of each type. example: deploy url: type: string description: A target for the marker. Clicking the marker text will take you to this URL. example: http://link-to-build.here id: type: string description: A 6 character hexadecimal string assigned on Marker creation. readOnly: true created_at: type: string description: The ISO8601-formatted time when the Marker was created. readOnly: true updated_at: type: string description: The ISO8601-formatted time when the Marker was updated. readOnly: true color: type: string description: Color can be assigned to Markers using the Marker Settings endpoint. This field will be populated when List All Markers is called. readOnly: true 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. 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 ValidationError: x-tags: - Errors allOf: - $ref: '#/components/schemas/DetailedError' - type: object properties: status: type: number readOnly: true default: 422 type: type: string readOnly: true default: https://api.honeycomb.io/problems/validation-failed title: type: string readOnly: true default: The provided input is invalid. type_detail: type: array items: type: object properties: field: type: string readOnly: true code: type: string readOnly: true enum: - invalid - missing - incorrect_type - already_exists description: type: string readOnly: true MarkerSetting: type: object required: - type - color properties: type: type: string description: 'Groups similar Markers. For example, ''deploys''. All Markers of the same type appears with the same color on the graph. ' example: deploy color: type: string description: 'Color to use for display of this marker type. Specified as hexadecimal RGB. For example, "#F96E11". ' example: '#7b1fa2' id: type: string description: The unique identifier (ID) for the Marker Setting. readOnly: true example: gwAHiE5TS4j created_at: type: string description: The ISO8601-formatted time when the Marker Setting was created. readOnly: true example: '2022-09-15T05:39:42Z' updated_at: type: - 'null' - string description: The ISO8601-formatted time when the Marker Setting was updated. readOnly: true example: '2022-12-15T04:25:14Z' Error: x-tags: - Errors type: object description: A legacy error, containing only a textual description. properties: error: type: string readOnly: true parameters: datasetSlugOrAll: name: datasetSlug description: 'The dataset slug or use `__all__` for endpoints that support environment-wide operations. ' in: path required: true schema: type: string