openapi: 3.1.0 info: title: OpsGenie Account Integrations 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: Integrations description: Operations for creating, retrieving, enabling, disabling, and managing integrations. paths: /v2/integrations: post: operationId: createIntegration summary: Create integration description: Creates a new integration in OpsGenie. The type of integration determines the configuration options available. tags: - Integrations requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateIntegrationRequest' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/CreateIntegrationResponse' '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: listIntegrations summary: List integrations description: Returns a list of all integrations configured in the account. tags: - Integrations responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ListIntegrationsResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /v2/integrations/{id}: get: operationId: getIntegration summary: Get integration description: Retrieves the details of a specific integration by its ID. tags: - Integrations parameters: - name: id in: path required: true description: Unique identifier of the integration. schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/GetIntegrationResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' put: operationId: updateIntegration summary: Update integration description: Updates the specified integration's configuration. tags: - Integrations parameters: - name: id in: path required: true description: Unique identifier of the integration. schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateIntegrationRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' '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: deleteIntegration summary: Delete integration description: Deletes the specified integration. tags: - Integrations parameters: - name: id in: path required: true description: Unique identifier of the integration. schema: type: string 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/integrations/{id}/enable: post: operationId: enableIntegration summary: Enable integration description: Enables the specified integration so it can process incoming events. tags: - Integrations parameters: - name: id in: path required: true description: Unique identifier of the integration. schema: type: string 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/integrations/{id}/disable: post: operationId: disableIntegration summary: Disable integration description: Disables the specified integration so it stops processing events. tags: - Integrations parameters: - name: id in: path required: true description: Unique identifier of the integration. schema: type: string 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/integrations/authenticate: post: operationId: authenticateIntegration summary: Authenticate integration description: Authenticates an integration using the provided API key and returns the integration details if the key is valid. tags: - Integrations requestBody: required: true content: application/json: schema: type: object required: - type properties: type: type: string description: Type of the integration to authenticate. responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/GetIntegrationResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: CreateIntegrationRequest: type: object required: - name - type properties: name: type: string description: Name of the integration. type: type: string description: Type of the integration (e.g. API, Marid, Email, etc.). ownerTeam: type: object description: Team that owns the integration. properties: id: type: string description: Team ID. name: type: string description: Team name. allowWriteAccess: type: boolean description: Whether the integration allows write access. allowConfigurationAccess: type: boolean description: Whether the integration allows configuration access. ignoreRespondersFromPayload: type: boolean description: Whether to ignore responders from the incoming payload. suppressNotifications: type: boolean description: Whether to suppress notifications from this integration. responders: type: array description: Default responders for the integration. items: type: object properties: id: type: string description: Responder ID. name: type: string description: Responder name. type: type: string enum: - team - user - escalation - schedule description: Responder type. 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. UpdateIntegrationRequest: type: object properties: name: type: string description: Updated integration name. ownerTeam: type: object description: Updated owner team. properties: id: type: string description: Team ID. name: type: string description: Team name. allowWriteAccess: type: boolean description: Updated write access setting. allowConfigurationAccess: type: boolean description: Updated configuration access setting. ignoreRespondersFromPayload: type: boolean description: Updated responder ignore setting. suppressNotifications: type: boolean description: Updated notification suppression setting. responders: type: array description: Updated default responders. items: type: object properties: id: type: string description: Responder ID. name: type: string description: Responder name. type: type: string description: Responder type. CreateIntegrationResponse: type: object properties: data: type: object properties: id: type: string description: ID of the created integration. name: type: string description: Name of the integration. enabled: type: boolean description: Whether the integration is enabled. type: type: string description: Integration type. apiKey: type: string description: API key for the integration. took: type: number description: Time taken in seconds. requestId: type: string description: Unique identifier for the request. GetIntegrationResponse: type: object properties: data: $ref: '#/components/schemas/Integration' took: type: number description: Time taken in seconds. requestId: type: string description: Unique identifier for the request. ListIntegrationsResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/Integration' description: List of integrations. took: type: number description: Time taken in seconds. requestId: type: string description: Unique identifier for the request. 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. Integration: type: object properties: id: type: string description: Unique identifier. name: type: string description: Name of the integration. type: type: string description: Type of the integration. enabled: type: boolean description: Whether the integration is currently enabled. ownerTeam: type: object properties: id: type: string description: Team ID. name: type: string description: Team name. description: Owner team. isGlobal: type: boolean description: Whether this is a global (account-level) integration. allowWriteAccess: type: boolean description: Whether write access is enabled. allowConfigurationAccess: type: boolean description: Whether configuration access is enabled. responders: type: array items: type: object properties: id: type: string description: Responder ID. name: type: string description: Responder name. type: type: string description: Responder type. description: Default responders. 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