openapi: 3.1.0 info: title: Honeycomb Boards 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: Boards description: 'Boards are a place to pin and save useful queries/graphs, SLO panels, text panels, and views you want to retain for later reuse and reference. Boards can contain multiple panel types: - **Query panels**: Display saved queries/graphs - **SLO panels**: Monitor Service Level Objectives - **Text panels**: Add markdown-formatted text and documentation - **Views**: Filtered perspectives of board data (limited to 50 views per board) Boards also support preset filters (limited to 5 per board) to apply consistent filtering across the board. This API allows you to list, create, update, and delete boards, as well as manage board views. ## Authorization The API key must have the **Manage Public Boards** permission. Learn more about [API keys here](https://docs.honeycomb.io/configure/environments/manage-api-keys/). ' paths: /1/boards: post: security: - configuration_key: [] summary: Create a Board description: 'Create a Board comprised of one or more Panels (Query, SLO, or Text). **Note**: Each board is limited to a maximum of 5 preset filters. ' tags: - Boards operationId: createBoard requestBody: content: application/json: schema: $ref: '#/components/schemas/Board' examples: Simple Flexible Board with Query and Text Panels: value: name: My API Board description: A board created via the API with mixed panel types type: flexible panels: - type: query query_panel: query_id: abc1234e query_annotation_id: e4c24a35 position: x_coordinate: 0 y_coordinate: 0 height: 6 width: 8 - type: text text_panel: content: '# Welcome to our API Dashboard This board shows key metrics for our services.' position: x_coordinate: 8 y_coordinate: 0 height: 3 width: 4 layout_generation: manual tags: - key: team value: backend - key: environment value: production Auto-Layout Board with Multiple Panel Types: value: name: Service Health Overview description: Comprehensive service monitoring dashboard type: flexible panels: - type: query query_panel: query_id: def5678f query_annotation_id: a1b2c3d4 dataset: frontend-logs - type: slo slo_panel: slo_id: BGfyxhFto - type: text text_panel: content: "## Service Status\n\n\u26A0\uFE0F **Note**: All services are currently operational" layout_generation: auto tags: - key: service value: user-service required: true responses: '201': description: Created headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/Board' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' get: security: - configuration_key: [] summary: List All Boards description: 'Retrieves a list of all non-secret Boards within an environment. **Note**: For Honeycomb Classic users, all boards within Classic will be returned. ' tags: - Boards operationId: listBoards 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/Board' examples: Mixed Board Types: value: - id: abc123 name: Production Monitoring description: Key metrics for production environment type: flexible panels: - type: query query_panel: query_id: ghi9012a query_annotation_id: f5e6d7c8 position: x_coordinate: 0 y_coordinate: 0 height: 6 width: 12 - type: text text_panel: content: '# Production Status All systems operational' position: x_coordinate: 0 y_coordinate: 6 height: 2 width: 12 layout_generation: manual tags: - key: environment value: production - id: def456 name: Service Health Dashboard description: SLO monitoring for critical services type: flexible panels: - type: slo slo_panel: slo_id: dF1URaPGL - type: query query_panel: query_id: jkl3456b query_annotation_id: b9c8d7e6 dataset: api-logs layout_generation: auto tags: - key: team value: platform '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' /1/boards/{boardId}: parameters: - name: boardId description: The unique identifier (ID) of a Board. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get a Board description: Get a single Board by ID. tags: - Boards operationId: getBoard responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/Board' examples: Flexible Board with All Panel Types: value: id: board789 name: Comprehensive Dashboard description: Complete monitoring setup with all panel types type: flexible panels: - type: query query_panel: query_id: stu5678e query_annotation_id: e9f8g7h6 dataset: application-logs position: x_coordinate: 0 y_coordinate: 0 height: 8 width: 8 - type: slo slo_panel: slo_id: BGfyxhFto position: x_coordinate: 8 y_coordinate: 0 height: 4 width: 4 - type: text text_panel: content: "## Alert Status\n\n\U0001F7E2 All systems normal\n\n**Last updated:** 2024-01-15 14:30 UTC" position: x_coordinate: 8 y_coordinate: 4 height: 4 width: 4 layout_generation: manual tags: - key: criticality value: high - key: owner value: sre-team '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' put: security: - configuration_key: [] summary: Update a Board description: 'Update a Board by specifying its ID and full details. **Note**: Queries can be added to, removed from, and re-ordered by updating the board itself. It is not possible to reference individual queries via the API. **Note**: Each board is limited to a maximum of 5 preset filters. Attempting to update a board with more than 5 preset filters will result in an error. ' tags: - Boards operationId: updateBoard requestBody: content: application/json: schema: $ref: '#/components/schemas/Board' examples: Add New Panel to Existing Board: value: id: board456 name: Updated Production Dashboard description: Production monitoring with additional SLO panel type: flexible panels: - type: query query_panel: query_id: cdef7890 query_annotation_id: h9i8j7k6 position: x_coordinate: 0 y_coordinate: 0 height: 6 width: 6 - type: slo slo_panel: slo_id: BGfyxhFto position: x_coordinate: 6 y_coordinate: 0 height: 6 width: 6 - type: text text_panel: content: '## Recent Changes - Added SLO monitoring - Updated query filters' position: x_coordinate: 0 y_coordinate: 6 height: 3 width: 12 layout_generation: manual tags: - key: environment value: production - key: updated_by value: api Reorganize Panel Layout: value: id: board789 name: Service Metrics Reorganized description: Restructured layout for better visibility type: flexible panels: - type: query query_panel: query_id: ghij1234 query_annotation_id: i1j2k3l4 dataset: service-metrics - type: query query_panel: query_id: klmn5678 query_annotation_id: j5k6l7m8 dataset: error-logs - type: text text_panel: content: '# Service Health Overview Monitoring key performance indicators' layout_generation: auto tags: - key: team value: backend required: true responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/Board' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' delete: security: - configuration_key: [] summary: Delete a Board description: Delete a public Board by specifying its ID. tags: - Boards operationId: deleteBoard responses: '204': description: Success - no Content headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' /1/boards/{boardId}/views: parameters: - name: boardId description: The unique identifier (ID) of a Board. in: path required: true schema: type: string get: security: - configuration_key: [] summary: List Board Views description: 'Retrieve a list of all views for a board. **Note**: Each board is limited to a maximum of 50 views. ' tags: - Boards operationId: listBoardViews responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: type: array maxItems: 50 items: $ref: '#/components/schemas/BoardViewResponse' examples: Multiple Views: value: - id: eC_abc123 name: Errors View filters: - column: status operation: '=' value: error - id: yc_def456 name: Slow requests view filters: - column: duration_ms operation: '>' value: 1000 '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' post: security: - configuration_key: [] summary: Create a Board View description: 'Create a new view for a board with the specified filters. **Note**: Each board is limited to a maximum of 50 views. Attempting to create more than 50 views will result in an error. ' tags: - Boards operationId: createBoardView requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateBoardViewRequest' examples: Create board view for error statuses: value: name: Errors View filters: - column: status operation: '=' value: error responses: '201': description: Created headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/BoardViewResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' /1/boards/{boardId}/views/{viewId}: parameters: - name: boardId description: The unique identifier (ID) of a Board. in: path required: true schema: type: string - name: viewId description: The unique identifier (ID) of a Board View. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get a Board View description: Retrieve a single Board View by ID. tags: - Boards operationId: getBoardView responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/BoardViewResponse' examples: Single View with Multiple Filters: value: id: eC_abc123 name: Api and web slow requests errors filters: - column: status operation: '=' value: error - column: duration_ms operation: '>' value: 100 - column: service operation: in value: - api - web '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' delete: security: - configuration_key: [] summary: Delete a Board View description: Delete a Board View by specifying its ID. tags: - Boards operationId: deleteBoardView responses: '204': description: Success - no Content headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' put: security: - configuration_key: [] summary: Update a Board View description: Update a Board View by specifying its ID and full details. tags: - Boards operationId: updateBoardView requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateBoardViewRequest' examples: Update board view for error statuses: value: name: Errors View filters: - column: status operation: '=' value: error responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/json: schema: $ref: '#/components/schemas/BoardViewResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' default: $ref: '#/components/responses/GenericError' components: schemas: PresetFilter: type: object required: - column - alias properties: column: type: string description: Original name of the column to alias. alias: type: string description: The alias of the preset filter. Maximum length is 50 characters. BoardViewResponse: type: object properties: id: type: string description: Unique identifier for the board view. example: eC_abc123 name: type: string description: The name of the view. example: My View filters: type: array items: $ref: '#/components/schemas/BoardViewFilter' UpdateBoardViewRequest: type: object required: - name - filters properties: id: type: string description: Unique identifier for the board view. example: eC_abc123 name: type: string description: The name of the view. minLength: 1 maxLength: 255 example: My View filters: type: array description: The filters to apply to this view. minItems: 1 items: $ref: '#/components/schemas/BoardViewFilter' 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 BoardViewFilter: type: object required: - column - operation properties: column: type: string description: The column name to filter on. example: status operation: type: string description: The filter operation. enum: - '=' - '!=' - '>' - '>=' - < - <= - starts-with - does-not-start-with - ends-with - does-not-end-with - exists - does-not-exist - contains - does-not-contain - in - not-in example: '=' value: description: The value to filter by. example: error BoardType: type: string description: The type of the board. Only flexible boards are supported. enum: - flexible CreateBoardViewRequest: type: object required: - name - filters properties: name: type: string description: The name of the view. minLength: 1 maxLength: 255 example: My View filters: type: array description: The filters to apply to this view. minItems: 1 items: $ref: '#/components/schemas/BoardViewFilter' BoardPanel: type: object oneOf: - $ref: '#/components/schemas/QueryPanel' - $ref: '#/components/schemas/SLOPanel' - $ref: '#/components/schemas/TextPanel' discriminator: propertyName: type mapping: query: '#/components/schemas/QueryPanel' slo: '#/components/schemas/SLOPanel' text: '#/components/schemas/TextPanel' 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. QueryPanel: title: Query Panel type: object required: - query_panel - type properties: type: const: query description: The type of the board panel. position: $ref: '#/components/schemas/BoardPanelPosition' query_panel: type: object required: - query_id - query_annotation_id properties: query_id: type: string description: 'The ID of the Query to display on the board. The Query must be in the same environment as the board. ' example: abc1234e query_style: type: string description: How the query should be displayed on the board. enum: - graph - table - combo default: graph query_annotation_id: type: string description: 'The ID of a Query Annotation that provides a name and description for the Query. The Query Annotation must apply to the `query_id` or `query` specified. ' example: e4c24a35 dataset: type: string readOnly: true description: 'The dataset name to which the query is scoped. Empty for environment-wide queries. ' example: My Dataset visualization_settings: $ref: '#/components/schemas/BoardQueryVisualizationSettings' BoardQueryVisualizationSettings: type: object description: 'A map of values to control the display settings for the Query on the Board. Unspecified boolean values are assumed to be `false`. Unspecified integers are assumed to be `0`, unspecified arrays are assumed to be null and unspecified strings are assumed to be empty. This is incompatible with the `graph_settings` field. ' properties: hide_compare: type: boolean default: false hide_hovers: type: boolean default: false hide_markers: type: boolean default: false utc_xaxis: type: boolean default: false overlaid_charts: type: boolean default: false charts: type: array items: type: object properties: chart_index: type: integer default: 0 chart_type: type: string enum: - default - line - stacked - stat - tsbar - cbar - cpie default: default log_scale: type: boolean default: false omit_missing_values: type: boolean default: false BoardPanelPosition: type: object description: 'The position of the panel within the layout. When X and Y coordinates are not specified for any of the panels, the layout will be generated automatically. ' properties: x_coordinate: type: integer description: The x-axis origin point for placing the panel within the layout. minimum: 0 y_coordinate: type: integer description: The y-axis origin point for placing the panel within the layout. minimum: 0 height: type: integer description: The height of the panel. When not specified or set to 0, the height of the panel is calculated dynamically based on the panel type. minimum: 0 width: type: integer description: The width of the panel. When not specified or set to 0, the width of the panel is calculated dynamically based on the panel type. minimum: 0 Tag: type: object required: - key - value properties: key: type: string description: A key to identify the tag, lowercase letters only. maxLength: 32 value: type: string description: A value for the tag, must begin with a lowercase letter, contain only alphanumeric characters (all letters lowercase) and special characters of `/` and `-` allowed. maxLength: 128 SLOPanel: title: SLO Panel type: object required: - slo_panel - type properties: type: const: slo description: The type of the board panel. position: $ref: '#/components/schemas/BoardPanelPosition' slo_panel: type: object properties: slo_id: type: string description: 'The ID of the SLO to display on the board. The SLO must be in the same environment as the board. ' example: BGfyxhFto Board: type: object required: - type - name properties: name: type: string description: The name of the Board. minLength: 1 maxLength: 255 example: My Board description: type: string description: A description of the Board. minLength: 0 maxLength: 1024 example: A board created via the API type: $ref: '#/components/schemas/BoardType' links: type: object readOnly: true properties: board_url: type: string example: https://ui.honeycomb.io/myteam/environments/myenvironment/board/2NeeaE9bBLd id: type: string readOnly: true description: Unique identifier (ID), returned in response bodies. example: 2NeeaE9bBLd panels: type: array items: $ref: '#/components/schemas/BoardPanel' layout_generation: type: string description: 'The layout generation mode for the board. When set to "auto", the board will be automatically laid out based on the panels. When set to "manual", the board will be laid out manually by the user. ' enum: - auto - manual default: manual writeOnly: true tags: type: array description: A list of key-value pairs to help identify the Trigger. maxItems: 10 items: $ref: '#/components/schemas/Tag' example: - key: team value: blue preset_filters: description: 'A list of preset filters to apply to the board. For backwards compatibility, if no preset filters are provided, the existing preset filters will be preserved. If an empty array is provided, all preset filters will be deleted. **Note**: Each board is limited to a maximum of 5 preset filters. Attempting to create or update a board with more than 5 preset filters will result in an error. ' type: array maxItems: 5 items: $ref: '#/components/schemas/PresetFilter' example: - column: app.Service alias: Service TextPanel: title: Text Panel type: object required: - text_panel - type properties: type: const: text description: The type of the board panel. position: $ref: '#/components/schemas/BoardPanelPosition' text_panel: type: object required: - content properties: content: type: string maxLength: 10000 description: 'The text content to display on the board panel. This field supports Markdown formatting. ' example: '# This is a text panel with some content' Error: x-tags: - Errors type: object description: A legacy error, containing only a textual description. properties: error: type: string readOnly: true responses: 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' 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' 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. Conflict: description: Conflict 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: 409 type: https://api.honeycomb.io/problems/conflict title: Request could not be completed due to a conflict with the current state of the target resource. error: A resource by that name already exists. application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIError' Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' examples: deny-management-apis: description: Team cannot access management APIs. value: error: Your team has been denied access to Management APIs, please contact support to be unblocked. application/problem+json: schema: $ref: '#/components/schemas/DetailedError' application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIError' BadRequest: description: The provided request body was invalid. headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/problem+json: schema: $ref: '#/components/schemas/DetailedError' examples: DetailedError: value: status: 400 type: https://api.honeycomb.io/problems/unparseable title: The request body could not be parsed. error: invalid gzip data application/json: schema: $ref: '#/components/schemas/Error' examples: GenericError: value: error: invalid Query data application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIError' examples: JSONAPIError: value: errors: - id: 06dcdd6508ca822f0e7e2bb4121c1f52 code: invalid title: request body could not be parsed detail: invalid gzip data 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