Datadog APM Service Level Objectives API

Create, search, read, update and delete Service Level Objectives, read SLI history, and check whether an SLO can be deleted before deleting it. Ten operations on Datadog API v1.

Operations 10

GET /api/v1/slo Get all SLOs #
POST /api/v1/slo Create an SLO object #
POST /api/v1/slo/bulk_delete Bulk Delete SLO Timeframes #
GET /api/v1/slo/can_delete Check if SLOs can be safely deleted #
GET /api/v1/slo/search Search for SLOs #
DELETE /api/v1/slo/{slo_id} Delete an SLO #
GET /api/v1/slo/{slo_id} Get an SLO's details #
PUT /api/v1/slo/{slo_id} Update an SLO #
GET /api/v1/slo/{slo_id}/history Get an SLO's history #
GET /api/v1/slo/{slo_id}/corrections Get Corrections For an SLO #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/datadog-apm-slos-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

datadog-apm-slos-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Datadog APM Service Level Objectives API
  description: The Service Level Objectives operations of the Datadog API, extracted verbatim from the
    OpenAPI definition Datadog publishes for its own API clients.
  version: '1.0'
  contact:
    email: support@datadoghq.com
    name: Datadog Support
    url: https://www.datadoghq.com/support/
  x-source: https://raw.githubusercontent.com/DataDog/datadog-api-client-go/master/.generator/schemas/v1/openapi.yaml
  x-extracted: '2026-09-05'
  x-extraction-note: Path items, components and security schemes copied VERBATIM from the Datadog-published
    OpenAPI at x-source; only the APM-relevant subset of paths is retained. No content was authored by
    API Evangelist.
servers:
- url: https://{subdomain}.{site}
  variables:
    site:
      default: datadoghq.com
      description: The regional site for Datadog customers.
      enum:
      - datadoghq.com
      - us3.datadoghq.com
      - us5.datadoghq.com
      - ap1.datadoghq.com
      - ap2.datadoghq.com
      - uk1.datadoghq.com
      - datadoghq.eu
      - ddog-gov.com
      - us2.ddog-gov.com
      - uk1.datadoghq.com
    subdomain:
      default: api
      description: The subdomain where the API is deployed.
- url: '{protocol}://{name}'
  variables:
    name:
      default: api.datadoghq.com
      description: Full site DNS name.
    protocol:
      default: https
      description: The protocol for accessing the API.
- url: https://{subdomain}.{site}
  variables:
    site:
      default: datadoghq.com
      description: Any Datadog deployment.
    subdomain:
      default: api
      description: The subdomain where the API is deployed.
security:
- apiKeyAuth: []
  appKeyAuth: []
tags:
- description: '[Service Level Objectives](https://docs.datadoghq.com/monitors/service_level_objectives/#configuration)

    (or SLOs) are a key part of the site reliability engineering toolkit.

    SLOs provide a framework for defining clear targets around application performance,

    which ultimately help teams provide a consistent customer experience,

    balance feature development with platform stability,

    and improve communication with internal and external users.'
  name: Service Level Objectives
paths:
  /api/v1/slo:
    get:
      description: Get a list of service level objective objects for your organization.
      operationId: ListSLOs
      parameters:
      - description: A comma separated list of the IDs of the service level objectives objects.
        example: id1, id2, id3
        in: query
        name: ids
        required: false
        schema:
          type: string
      - description: The query string to filter results based on SLO names.
        example: monitor
        in: query
        name: query
        required: false
        schema:
          type: string
      - description: The query string to filter results based on a single SLO tag.
        example: env:prod
        in: query
        name: tags_query
        required: false
        schema:
          type: string
      - description: The query string to filter results based on SLO numerator and denominator.
        example: aws.elb.request_count
        in: query
        name: metrics_query
        required: false
        schema:
          type: string
      - description: The number of SLOs to return in the response.
        in: query
        name: limit
        required: false
        schema:
          default: 1000
          format: int64
          type: integer
      - description: The specific offset to use as the beginning of the returned response.
        in: query
        name: offset
        required: false
        schema:
          format: int64
          type: integer
      - description: Whether to return only deleted service level objective objects.
        example: true
        in: query
        name: is_deleted
        required: false
        schema:
          default: false
          type: boolean
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                    - id: abc-123
                      name: Custom Metric SLO
                      tags:
                      - env:prod
                      - app:core
                      thresholds:
                      - target: 95
                        timeframe: 7d
                      - target: 95
                        timeframe: 30d
                        warning: 97
                      type: metric
                    errors: []
              schema:
                $ref: '#/components/schemas/SLOListResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not Found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - slos_read
      summary: Get all SLOs
      tags:
      - Service Level Objectives
      x-pagination:
        limitParam: limit
        pageOffsetParam: offset
        resultsPath: data
      x-permission:
        operator: OR
        permissions:
        - slos_read
    post:
      description: Create a service level objective object.
      operationId: CreateSLO
      requestBody:
        content:
          application/json:
            examples:
              default:
                value:
                  description: Track the availability of our custom metric.
                  name: Custom Metric SLO
                  query:
                    denominator: sum:my.custom.metric{*}.as_count()
                    numerator: sum:my.custom.metric{type:good}.as_count()
                  tags:
                  - env:prod
                  - app:core
                  thresholds:
                  - target: 95
                    timeframe: 7d
                  - target: 95
                    timeframe: 30d
                    warning: 97
                  type: metric
            schema:
              $ref: '#/components/schemas/ServiceLevelObjectiveRequest'
        description: Service level objective request object.
        required: true
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                    - description: Track the availability of our custom metric.
                      id: abc-123
                      name: Custom Metric SLO
                      tags:
                      - env:prod
                      - app:core
                      thresholds:
                      - target: 95
                        target_display: '95.0'
                        timeframe: 7d
                      type: metric
                    errors: []
              schema:
                $ref: '#/components/schemas/SLOListResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - slos_write
      summary: Create an SLO object
      tags:
      - Service Level Objectives
      x-codegen-request-body-name: body
      x-permission:
        operator: OR
        permissions:
        - slos_write
  /api/v1/slo/bulk_delete:
    post:
      description: 'Delete (or partially delete) multiple service level objective objects.


        This endpoint facilitates deletion of one or more thresholds for one or more

        service level objective objects. If all thresholds are deleted, the service level

        objective object is deleted as well.'
      operationId: DeleteSLOTimeframeInBulk
      requestBody:
        content:
          application/json:
            examples:
              default:
                value:
                  id1:
                  - 7d
                  - 30d
                  id2:
                  - 7d
                  - 30d
            schema:
              $ref: '#/components/schemas/SLOBulkDelete'
        description: Delete multiple service level objective objects request body.
        required: true
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                      deleted: []
                      updated:
                      - abc-123
                    errors: []
              schema:
                $ref: '#/components/schemas/SLOBulkDeleteResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - slos_write
      summary: Bulk Delete SLO Timeframes
      tags:
      - Service Level Objectives
      x-codegen-request-body-name: body
      x-permission:
        operator: OR
        permissions:
        - slos_write
  /api/v1/slo/can_delete:
    get:
      description: 'Check if an SLO can be safely deleted. For example,

        assure an SLO can be deleted without disrupting a dashboard.'
      operationId: CheckCanDeleteSLO
      parameters:
      - description: A comma separated list of the IDs of the service level objectives objects.
        example: id1, id2, id3
        in: query
        name: ids
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                      ok:
                      - abc-123
                    errors: {}
              schema:
                $ref: '#/components/schemas/CheckCanDeleteSLOResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckCanDeleteSLOResponse'
          description: Conflict
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - slos_read
      summary: Check if SLOs can be safely deleted
      tags:
      - Service Level Objectives
      x-permission:
        operator: OR
        permissions:
        - slos_read
  /api/v1/slo/search:
    get:
      description: Get a list of service level objective objects for your organization.
      operationId: SearchSLO
      parameters:
      - description: 'The query string to filter results based on SLO names.

          Some examples of queries include `service:<service-name>`

          and `<slo-name>`.'
        in: query
        name: query
        required: false
        schema:
          type: string
      - description: The number of files to return in the response `[default=10]`.
        in: query
        name: page[size]
        required: false
        schema:
          format: int64
          type: integer
      - description: The identifier of the first page to return. This parameter is used for the pagination
          feature `[default=0]`.
        in: query
        name: page[number]
        required: false
        schema:
          format: int64
          type: integer
      - description: Whether or not to return facet information in the response `[default=false]`.
        in: query
        name: include_facets
        required: false
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                      attributes:
                        slos:
                        - data:
                            attributes:
                              name: Example SLO
                              thresholds:
                              - target: 95
                                target_display: '95'
                                timeframe: 7d
                            id: abc-123
                            type: slo
                      type: service_level_objective_search_results
              schema:
                $ref: '#/components/schemas/SearchSLOResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - slos_read
      summary: Search for SLOs
      tags:
      - Service Level Objectives
      x-permission:
        operator: OR
        permissions:
        - slos_read
  /api/v1/slo/{slo_id}:
    delete:
      description: 'Permanently delete the specified service level objective object.


        If an SLO is used in a dashboard, the `DELETE /v1/slo/` endpoint returns

        a 409 conflict error because the SLO is referenced in a dashboard.'
      operationId: DeleteSLO
      parameters:
      - description: The ID of the service level objective.
        in: path
        name: slo_id
        required: true
        schema:
          type: string
      - description: Delete the monitor even if it's referenced by other resources (for example SLO, composite
          monitor).
        in: query
        name: force
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                    - abc-123
                    errors: {}
              schema:
                $ref: '#/components/schemas/SLODeleteResponse'
          description: OK
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SLODeleteResponse'
          description: Conflict
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - slos_write
      summary: Delete an SLO
      tags:
      - Service Level Objectives
      x-permission:
        operator: OR
        permissions:
        - slos_write
    get:
      description: Get a service level objective object.
      operationId: GetSLO
      parameters:
      - description: The ID of the service level objective object.
        in: path
        name: slo_id
        required: true
        schema:
          type: string
      - description: Get the IDs of SLO monitors that reference this SLO.
        example: true
        in: query
        name: with_configured_alert_ids
        required: false
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                      description: Track the availability of our custom metric.
                      id: abc-123
                      name: Custom Metric SLO
                      tags:
                      - env:prod
                      thresholds:
                      - target: 95
                        target_display: '95.0'
                        timeframe: 7d
                      type: metric
                    errors: []
              schema:
                $ref: '#/components/schemas/SLOResponse'
          description: OK
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - slos_read
      summary: Get an SLO's details
      tags:
      - Service Level Objectives
      x-permission:
        operator: OR
        permissions:
        - slos_read
    put:
      description: Update the specified service level objective object.
      operationId: UpdateSLO
      parameters:
      - description: The ID of the service level objective object.
        in: path
        name: slo_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            examples:
              default:
                value:
                  description: Updated description for the SLO.
                  name: Custom Metric SLO
                  query:
                    denominator: sum:my.custom.metric{*}.as_count()
                    numerator: sum:my.custom.metric{type:good}.as_count()
                  tags:
                  - env:prod
                  - app:core
                  thresholds:
                  - target: 95
                    timeframe: 7d
                  - target: 95
                    timeframe: 30d
                    warning: 97
                  type: metric
            schema:
              $ref: '#/components/schemas/ServiceLevelObjective'
        description: The edited service level objective request object.
        required: true
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                    - description: Updated description for the SLO.
                      id: abc-123
                      name: Custom Metric SLO
                      tags:
                      - env:prod
                      thresholds:
                      - target: 95
                        target_display: '95.0'
                        timeframe: 7d
                      type: metric
                    errors: []
              schema:
                $ref: '#/components/schemas/SLOListResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not Found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - slos_write
      summary: Update an SLO
      tags:
      - Service Level Objectives
      x-codegen-request-body-name: body
      x-permission:
        operator: OR
        permissions:
        - slos_write
  /api/v1/slo/{slo_id}/history:
    get:
      description: 'Get a specific SLO’s history, regardless of its SLO type.


        The detailed history data is structured according to the source data type.

        For example, metric data is included for event SLOs that use

        the metric source, and monitor SLO types include the monitor transition history.


        **Note:** There are different response formats for event based and time based SLOs.

        Examples of both are shown.'
      operationId: GetSLOHistory
      parameters:
      - description: The ID of the service level objective object.
        in: path
        name: slo_id
        required: true
        schema:
          type: string
      - description: The `from` timestamp for the query window in epoch seconds.
        in: query
        name: from_ts
        required: true
        schema:
          format: int64
          type: integer
      - description: The `to` timestamp for the query window in epoch seconds.
        in: query
        name: to_ts
        required: true
        schema:
          format: int64
          type: integer
      - description: The SLO target. If `target` is passed in, the response will include the remaining
          error budget and a timeframe value of `custom`.
        in: query
        name: target
        schema:
          exclusiveMaximum: true
          exclusiveMinimum: true
          format: double
          maximum: 100
          minimum: 0
          type: number
      - description: 'Defaults to `true`. If any SLO corrections are applied and this parameter is set
          to `false`,

          then the corrections will not be applied and the SLI values will not be affected.'
        in: query
        name: apply_correction
        required: false
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                      from_ts: 1615323990
                      overall:
                        sli_value: 99.99
                        span_precision: 2.0
                      thresholds:
                        7d:
                          target: 95
                          timeframe: 7d
                      to_ts: 1615928790
                      type: metric
                      type_id: 1
                    errors: null
              schema:
                $ref: '#/components/schemas/SLOHistoryResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not Found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - slos_read
      summary: Get an SLO's history
      tags:
      - Service Level Objectives
      x-permission:
        operator: OR
        permissions:
        - slos_read
  /api/v1/slo/{slo_id}/corrections:
    get:
      description: Get corrections applied to an SLO
      operationId: GetSLOCorrections
      parameters:
      - description: The ID of the service level objective object.
        in: path
        name: slo_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                    - attributes:
                        category: Scheduled Maintenance
                        end: 1600003600
                        slo_id: abc-123
                        start: 1600000000
                        timezone: UTC
                      id: abc-123
                      type: correction
              schema:
                $ref: '#/components/schemas/SLOCorrectionListResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not Found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - slos_read
      summary: Get Corrections For an SLO
      tags:
      - Service Level Objectives
      x-permission:
        operator: OR
        permissions:
        - slos_read
components:
  schemas:
    SLOHistoryResponse:
      description: A service level objective history response.
      properties:
        data:
          $ref: '#/components/schemas/SLOHistoryResponseData'
        errors:
          description: A list of errors while querying the history data for the service level objective.
          items:
            $ref: '#/components/schemas/SLOHistoryResponseError'
          nullable: true
          type: array
      type: object
    ServiceLevelObjectiveRequest:
      description: 'A service level objective object includes a service level indicator, thresholds

        for one or more timeframes, and metadata (`name`, `description`, `tags`, etc.).'
      properties:
        description:
          description: 'A user-defined description of the service level objective.


            Always included in service level objective responses (but may be `null`).

            Optional in create/update requests.'
          nullable: true
          type: string
        groups:
          description: 'A list of (up to 100) monitor groups that narrow the scope of a monitor service
            level objective.


            Included in service level objective responses if it is not empty. Optional in

            create/update requests for monitor service level objectives, but may only be

            used when then length of the `monitor_ids` field is one.'
          example:
          - env:prod
          - role:mysql
          items:
            description: A group name, for instance `env:prod`.
            type: string
          type: array
        monitor_ids:
          description: 'A list of monitor IDs that defines the scope of a monitor service level

            objective. **Required if type is `monitor`**.'
          items:
            description: A monitor ID.
            format: int64
            type: integer
          type: array
        name:
          description: The name of the service level objective object.
          example: Custom Metric SLO
          type: string
        query:
          $ref: '#/components/schemas/ServiceLevelObjectiveQuery'
        sli_specification:
          $ref: '#/components/schemas/SLOSliSpec'
        tags:
          description: 'A list of tags associated with this service level objective.

            Always included in service level objective responses (but may be empty).

            Optional in create/update requests.'
          example:
          - env:prod
          - app:core
          items:
            description: A tag to apply to your SLO.
            type: string
          type: array
        target_threshold:
          description: 'The target threshold such that when the service level indicator is above this

            threshold over the given timeframe, the objective is being met.'
          example: 99.9
          format: double
          type: number
        thresholds:
          description: 'The thresholds (timeframes and associated targets) for this service level

            objective object.'
          example:
          - target: 95
            timeframe: 7d
          - target: 95
            timeframe: 30d
            warning: 97
          items:
            $ref: '#/components/schemas/SLOThreshold'
          type: array
        timeframe:
          $ref: '#/components/schemas/SLOTimeframe'
        type:
          $ref: '#/components/schemas/SLOType'
        warning_threshold:
          description: 'The optional warning threshold such that when the service level indicator is

            below this value for the given threshold, but above the target threshold, the

            objective appears in a "warning" state. This value must be greater than the target

            threshold.'
          example: 99.95
          format: double
          type: number
      required:
      - name
      - thresholds
      - type
      type: object
    SLOSliSpec:
      description: A generic SLI specification. This is used for time-slice and count-based (metric) SLOs
        only.
      oneOf:
      - $ref: '#/components/schemas/SLOTimeSliceSpec'
      - $ref: '#/components/schemas/SLOCountSpec'
    SLOTimeSliceSpec:
      additionalProperties: false
      description: A time-slice SLI specification.
      example:
        time_slice:
          comparator: <
          query:
            formulas:
            - formula: query2/query1
            queries:
            - data_source: metrics
              name: query1
              query: sum:trace.servlet.request.hits{*} by {env}.as_count()
            - data_source: metrics
              name: query2
              query: sum:trace.servlet.request.errors{*} by {env}.as_count()
          threshold: 5
      properties:
        time_slice:
          $ref: '#/components/schemas/SLOTimeSliceCondition'
      required:
      - time_slice
      type: object
    ServiceLevelObjective:
      description: 'A service level objective object includes a service level indicator, thresholds

        for one or more timeframes, and metadata (`name`, `description`, `tags`, etc.).'
      properties:
        created_at:
          description: 'Creation timestamp (UNIX time in seconds)


            Always included in service level objective responses.'
          format: int64
          readOnly: true
          type: integer
        creator:
          $ref: '#/components/schemas/Creator'
        description:
          description: 'A user-defined description of the service level objective.


            Always included in service level objective responses (but may be `null`).

            Optional in create/update requests.'
          nullable: true
          type: string
        groups:
          description: 'A list of (up to 100) monitor groups that narrow the scope of a monitor service
            level objective.


            Included in service level objective responses if it is not empty. Optional in

            create/update requests for monitor service level objectives, but may only be

            used when then length of the `monitor_ids` field is one.'
          example:
          - env:prod
  

# --- truncated at 32 KB (102 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/datadog-apm/refs/heads/main/openapi/datadog-apm-slos-api-openapi.yml