openapi: 3.0.1 info: title: ilert REST Alert Actions Metrics API description: "# Introduction\nThe ilert API is a [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) API and provides programmatic access to entities in ilert and lets you easily integrate ilert with 3rd party tools. If you are looking to develop an inbound integration (e.g. for a monitoring tool), please use our [Events API](#tag/events). \n\nThe API supports the JSON content type for requests and responses. The response content type is requested via the HTTP Accept header (`application/json`). All resources are accessible via https and are located at `api.ilert.com/api`. \n\n You may download ilert's latest [OpenAPI.json {...} here](https://api.ilert.com/api-docs/openapi.json).\n\n If you are looking for a classic Swagger-UI view you may also open [this link](https://api.ilert.com/api-docs/swagger-ui). \n\n ## Authentication\nThe REST API accepts bearer API tokens. Each user may create API keys using the ilert web application. Note: Make sure to send the `Bearer ` prefix e.g. `Bearer APIKEY` when sending api key requests. By default, access to all resources (using any method) requires the client to be authenticated.\n\n ## Team Context\n When using API tokens, the currently selected team context of the user will not be taken into account, i.e. list results will always return all entities to which the user has a view permission. When using basic auth credentials the currently selected team context of the user will be used to filter resource results. The context may be overwritten for API key calls using the `team-context` HTTP header. Specifying `0` for ALL teams, `-1` for MY teams or a specific team id e.g. `team-context=901` to fetch results for a certain team. \n\n ## Errors\nilert uses HTTP response codes to indicate success or failure of an API request. Codes in the 2xx range indicate success, codes in the 4xx range indicate a client error (e.g. a missing required parameter) and codes in the 5xx range indicate an error with ilert's servers. In case of an error, the response body contains the following information:\n\n Attribute | Description \n ------------- | ------------- \n status | the corresponsing HTTP status code \n message | a human readable description of the error \n code | error code, used to identify error type \n\n ## API Versioning\nChanges to our API are always backwards-compatible. To get more information about our API versioning and historical changes, please take a look here." version: v2.2026.5-r.3 x-logo: url: ./ilert-logo-spaced.png backgroundColor: '#fafafa' altText: ilert documentation logo servers: - url: /api security: - apiKey: [] tags: - name: Metrics paths: /metrics: get: tags: - Metrics summary: Get metrics. parameters: - name: start-index in: query description: an integer specifying the starting point (beginning with 0) when paging through a list of entities schema: type: integer format: int32 default: 0 - name: max-results in: query description: 'the maximum number of results when paging through a list of metrics. (Note: when using ?include maximum is reduced to 25)' schema: maximum: 100 type: integer format: int32 default: 10 - name: include in: query description: Describes optional properties that should be included in the response. You may declare multiple. (dataSource, integrationKey) style: form explode: true schema: type: array items: type: string enum: - dataSource - integrationKey responses: '200': description: The metrics content: application/json: schema: type: array items: $ref: '#/components/schemas/MetricList' post: tags: - Metrics summary: Create a new metric. requestBody: description: The metric content: application/json: schema: $ref: '#/components/schemas/MetricPost' required: true responses: '200': description: The newly created metric content: application/json: schema: $ref: '#/components/schemas/Metric' x-codegen-request-body-name: metric /metrics/{id}: get: tags: - Metrics summary: Get a specific Metric parameters: - name: id in: path description: entity ID required: true schema: type: number responses: '200': description: The requested metric content: application/json: schema: $ref: '#/components/schemas/Metric' put: tags: - Metrics summary: Update the specific Metric parameters: - name: id in: path description: entity ID required: true schema: type: number requestBody: description: The metric content: application/json: schema: $ref: '#/components/schemas/MetricPost' required: true responses: '200': description: The updated metric content: application/json: schema: $ref: '#/components/schemas/Metric' x-codegen-request-body-name: metric delete: tags: - Metrics summary: Delete the specific Metric parameters: - name: id in: path description: entity ID required: true schema: type: number responses: '204': description: Empty body delete response content: {} components: schemas: MetricDataSourceNoIncludes: type: object properties: id: type: number name: type: string type: $ref: '#/components/schemas/MetricDataSourceType' teams: type: array items: $ref: '#/components/schemas/TeamRel' TeamRel: type: object properties: id: type: integer format: int64 name: type: string Metric: type: object properties: id: type: number name: type: string description: type: string aggregationType: $ref: '#/components/schemas/MetricAggregationType' displayType: $ref: '#/components/schemas/MetricDisplayType' interpolateGaps: type: boolean default: false lockYAxisMax: type: number format: double lockYAxisMin: type: number format: double mouseOverDecimal: maximum: 6 minimum: 0 type: number format: int32 showValuesOnMouseOver: type: boolean default: false teams: type: array items: $ref: '#/components/schemas/TeamRel' unitLabel: type: string integrationKey: type: string metadata: $ref: '#/components/schemas/MetricMetadata' dataSource: $ref: '#/components/schemas/MetricDataSource' MDataDogMetadata: required: - query type: object properties: query: type: string MetricPost: required: - aggregationType - displayType - name type: object properties: name: type: string description: type: string aggregationType: $ref: '#/components/schemas/MetricAggregationType' displayType: $ref: '#/components/schemas/MetricDisplayType' interpolateGaps: type: boolean default: false lockYAxisMax: type: number format: double lockYAxisMin: type: number format: double mouseOverDecimal: maximum: 6 minimum: 0 type: number format: int32 showValuesOnMouseOver: type: boolean default: false teams: type: array items: $ref: '#/components/schemas/TeamRel' unitLabel: type: string metadata: $ref: '#/components/schemas/MetricMetadata' dataSource: type: object properties: id: type: number description: dataSource is required when providing metadata MParamsDatadog: required: - apiKey - applicationKey - region type: object properties: region: type: string apiKey: type: string applicationKey: type: string MetricDataSource: type: object properties: id: type: number name: type: string type: $ref: '#/components/schemas/MetricDataSourceType' teams: type: array items: $ref: '#/components/schemas/TeamRel' metadata: $ref: '#/components/schemas/MetricDataSourceMetadata' MetricDataSourceMetadata: type: object oneOf: - $ref: '#/components/schemas/MParamsDatadog' - $ref: '#/components/schemas/MParamsPrometheus' MPrometheusMetadata: required: - query type: object properties: query: type: string MetricDataSourceType: type: string enum: - DATADOG - PROMETHEUS MParamsPrometheus: required: - authType - url type: object properties: url: type: string authType: type: string enum: - NONE - BASIC - HEADER basicUser: type: string description: Optional, required for 'BASIC' basicPass: type: string description: Optional, required for 'BASIC' headerKey: type: string description: Optional, required for 'HEADER' headerValue: type: string description: Optional, required for 'HEADER' MetricMetadata: type: object description: Only required if the metric has a dataSource. You may not change this after creation. default: 'null' oneOf: - $ref: '#/components/schemas/MDataDogMetadata' - $ref: '#/components/schemas/MPrometheusMetadata' MetricDisplayType: type: string enum: - GRAPH - SINGLE MetricList: type: object properties: id: type: number name: type: string description: type: string aggregationType: $ref: '#/components/schemas/MetricAggregationType' displayType: $ref: '#/components/schemas/MetricDisplayType' interpolateGaps: type: boolean default: false lockYAxisMax: type: number format: double lockYAxisMin: type: number format: double mouseOverDecimal: maximum: 6 minimum: 0 type: number format: int32 showValuesOnMouseOver: type: boolean default: false teams: type: array items: $ref: '#/components/schemas/TeamRel' unitLabel: type: string integrationKey: type: string dataSource: $ref: '#/components/schemas/MetricDataSourceNoIncludes' MetricAggregationType: type: string enum: - AVG - SUM - MIN - MAX - LAST securitySchemes: apiKey: type: apiKey description: The Bearer API key of your user more info. name: Authorization in: header x-original-swagger-version: '2.0'