openapi: 3.1.0 info: title: OpsGenie Account Heartbeats API description: The OpsGenie Account API provides endpoints for retrieving account-level information and configuration settings. Developers can use this API to access details about their OpsGenie account, including plan information and account metadata. It serves as a foundational API for administrative operations and account management within the OpsGenie platform. version: 2.0.0 contact: name: Atlassian Support url: https://support.atlassian.com/opsgenie/ termsOfService: https://www.atlassian.com/legal/cloud-terms-of-service servers: - url: https://api.opsgenie.com description: Production Server - url: https://api.eu.opsgenie.com description: EU Production Server security: - genieKey: [] tags: - name: Heartbeats description: Operations for creating, managing, and pinging heartbeat monitors. paths: /v2/heartbeats: post: operationId: createHeartbeat summary: Create heartbeat description: Creates a new heartbeat monitor with the specified configuration including name, interval, and alert settings. tags: - Heartbeats requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateHeartbeatRequest' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/HeartbeatResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' get: operationId: listHeartbeats summary: List heartbeats description: Returns a list of all heartbeat monitors in the account. tags: - Heartbeats responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ListHeartbeatsResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /v2/heartbeats/{name}: get: operationId: getHeartbeat summary: Get heartbeat description: Retrieves the details of a specific heartbeat by its name. tags: - Heartbeats parameters: - $ref: '#/components/parameters/HeartbeatName' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/HeartbeatResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' patch: operationId: updateHeartbeat summary: Update heartbeat description: Updates the specified heartbeat's configuration. tags: - Heartbeats parameters: - $ref: '#/components/parameters/HeartbeatName' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateHeartbeatRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/HeartbeatResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' delete: operationId: deleteHeartbeat summary: Delete heartbeat description: Deletes the specified heartbeat monitor. tags: - Heartbeats parameters: - $ref: '#/components/parameters/HeartbeatName' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /v2/heartbeats/{name}/ping: get: operationId: pingHeartbeat summary: Ping heartbeat description: Sends a ping to the specified heartbeat to indicate the monitored system is healthy. If no ping is received within the configured interval, OpsGenie generates an alert. tags: - Heartbeats parameters: - $ref: '#/components/parameters/HeartbeatName' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /v2/heartbeats/{name}/enable: post: operationId: enableHeartbeat summary: Enable heartbeat description: Enables the specified heartbeat monitor. tags: - Heartbeats parameters: - $ref: '#/components/parameters/HeartbeatName' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/HeartbeatResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /v2/heartbeats/{name}/disable: post: operationId: disableHeartbeat summary: Disable heartbeat description: Disables the specified heartbeat monitor. tags: - Heartbeats parameters: - $ref: '#/components/parameters/HeartbeatName' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/HeartbeatResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: HeartbeatResponse: type: object properties: data: $ref: '#/components/schemas/Heartbeat' took: type: number description: Time taken in seconds. requestId: type: string description: Unique identifier for the request. ErrorResponse: type: object properties: message: type: string description: Error message. took: type: number description: Time taken in seconds. requestId: type: string description: Unique identifier for the request. ListHeartbeatsResponse: type: object properties: data: type: object properties: heartbeats: type: array items: $ref: '#/components/schemas/Heartbeat' description: List of heartbeats. took: type: number description: Time taken in seconds. requestId: type: string description: Unique identifier for the request. Heartbeat: type: object properties: name: type: string description: Name of the heartbeat. description: type: string description: Description of the heartbeat. interval: type: integer description: Heartbeat interval. intervalUnit: type: string enum: - minutes - hours - days description: Unit for the interval. enabled: type: boolean description: Whether the heartbeat is enabled. expired: type: boolean description: Whether the heartbeat has expired. lastPingTime: type: string format: date-time description: Time of the last successful ping. ownerTeam: type: object properties: id: type: string description: Team ID. name: type: string description: Team name. description: Owner team. alertMessage: type: string description: Alert message for expired heartbeats. alertTags: type: array items: type: string description: Alert tags. alertPriority: type: string description: Alert priority. CreateHeartbeatRequest: type: object required: - name - interval - intervalUnit - enabled properties: name: type: string description: Name of the heartbeat. description: type: string description: Description of what the heartbeat monitors. interval: type: integer minimum: 1 description: Interval duration for the heartbeat ping. intervalUnit: type: string enum: - minutes - hours - days description: Unit for the heartbeat interval. enabled: type: boolean description: Whether the heartbeat is active. ownerTeam: type: object description: Team that owns the heartbeat. properties: id: type: string description: Team ID. name: type: string description: Team name. alertMessage: type: string description: Custom alert message when the heartbeat expires. alertTags: type: array items: type: string description: Tags to add to the alert created by an expired heartbeat. alertPriority: type: string enum: - P1 - P2 - P3 - P4 - P5 description: Priority of the alert created by an expired heartbeat. UpdateHeartbeatRequest: type: object properties: description: type: string description: Updated description. interval: type: integer minimum: 1 description: Updated interval. intervalUnit: type: string enum: - minutes - hours - days description: Updated interval unit. enabled: type: boolean description: Updated enabled status. ownerTeam: type: object description: Updated owner team. properties: id: type: string description: Team ID. name: type: string description: Team name. alertMessage: type: string description: Updated alert message. alertTags: type: array items: type: string description: Updated alert tags. alertPriority: type: string enum: - P1 - P2 - P3 - P4 - P5 description: Updated alert priority. SuccessResponse: type: object properties: result: type: string description: Result message. took: type: number description: Time taken in seconds. requestId: type: string description: Unique identifier for the request. parameters: HeartbeatName: name: name in: path required: true description: Name of the heartbeat monitor. schema: type: string securitySchemes: genieKey: type: apiKey in: header name: Authorization description: API key authentication using the GenieKey scheme. externalDocs: description: OpsGenie Account API Documentation url: https://docs.opsgenie.com/docs/account-api