---
title: "Update Service Level Objective"
method: PUT
path: "/service-level-objective/{id}"
tags: ["Service Level Objective"]
---

# Update Service Level Objective

`PUT /service-level-objective/{id}`

## Request

- Base URL: `https://oneuptime.com/api`
- URL: `https://oneuptime.com/api/service-level-objective/{id}`
- Auth: API key in header `APIKey`
- TypeScript: <https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/docs/service-level-objective/:id/put.ts> (a function with typed inputs; its response is checked against the schema)

Endpoint to update an existing Service Level Objective

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `data` ServiceLevelObjectiveUpdateSchema, required: Update schema for ServiceLevelObjective model. Update
    - `name` string: Name of this Service Level Objective. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `description` string: Description of this Service Level Objective. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `labels` object[]: Labels to group and filter by. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
      - `id` string
    - `isEnabled` boolean: Whether this Service Level Objective is enabled. Disabled SLOs are not evaluated. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `isArchived` boolean: Archived SLOs are hidden from lists and are not evaluated. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `sliType` 'Monitor Uptime' | 'Metric': Type of Service Level Indicator this objective measures (Monitor Uptime or Metric). Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `multiMonitorMode` 'Any Monitor Down' | 'Monitor Seconds Average': How downtime is counted when multiple monitors are attached. 'Any Monitor Down' counts time when any monitor is down. 'Monitor Seconds Average' averages downtime across monitors. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `monitors` object[]: Monitors whose uptime is measured by this Service Level Objective (for Monitor Uptime SLIs). Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
      - `id` string
    - `monitorLabels` object[]: Deprecated: superseded by SLO Monitor Rules and no longer read by the SLO engine. Existing labels were migrated into a monitor rule named "Auto-add monitors with labels". Kept only for compatibility during upgrades: labels written here to an SLO with no monitor rules are turned into that rule, and are ignored once the SLO has monitor rules. Use SLO Monitor Rules instead. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
      - `id` string
    - `metricQueryConfig` object: Query configuration for Metric SLIs: metric name, good-event predicate and optional attribute filters. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `targetPercentage` number: Target of this Service Level Objective as a percentage (e.g. 99.9). Must be less than 100. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `windowType` 'Rolling' | 'Calendar Month': Type of compliance window for this objective (Rolling or Calendar Month). Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `windowDays` number: Length of the rolling compliance window in days (e.g. 7, 28, 30 or 90). Ignored for Calendar Month windows. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `timezone` string: IANA timezone (e.g. America/New_York) used for Calendar Month window boundaries. Defaults to UTC when not set. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `atRiskThresholdPercentage` number: Percentage of remaining error budget at which the SLO status changes to At Risk. For example, 20 means the status becomes At Risk when less than 20% of the error budget remains. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]

## Response `200`

Updated successfully

- object
  - `data` ServiceLevelObjectiveReadSchema: Read schema for ServiceLevelObjective model. Read
    - `_id` string, uuid: ID of this object. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `createdAt` object: Date and Time when the object was created. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `updatedAt` object: Date and Time when the object was updated. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `deletedAt` object: Date and Time when the object was deleted. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `projectId` string, uuid: ID of your OneUptime Project in which this object belongs. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `name` string, required: Name of this Service Level Objective. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `description` string: Description of this Service Level Objective. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `slug` string: Friendly globally unique name for your object. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `labels` object[]: Labels to group and filter by. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
      - `id` string
    - `isEnabled` boolean: Whether this Service Level Objective is enabled. Disabled SLOs are not evaluated. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `isArchived` boolean: Archived SLOs are hidden from lists and are not evaluated. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `archivedAt` object: When this Service Level Objective was archived. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `archivedByUserId` string, uuid: User ID who archived this object (if this object was archived by a User). Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `sliType` 'Monitor Uptime' | 'Metric': Type of Service Level Indicator this objective measures (Monitor Uptime or Metric). Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `multiMonitorMode` 'Any Monitor Down' | 'Monitor Seconds Average': How downtime is counted when multiple monitors are attached. 'Any Monitor Down' counts time when any monitor is down. 'Monitor Seconds Average' averages downtime across monitors. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `monitors` object[]: Monitors whose uptime is measured by this Service Level Objective (for Monitor Uptime SLIs). Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
      - `id` string
    - `monitorLabels` object[]: Deprecated: superseded by SLO Monitor Rules and no longer read by the SLO engine. Existing labels were migrated into a monitor rule named "Auto-add monitors with labels". Kept only for compatibility during upgrades: labels written here to an SLO with no monitor rules are turned into that rule, and are ignored once the SLO has monitor rules. Use SLO Monitor Rules instead. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
      - `id` string
    - `autoAddedMonitors` object[]: Monitors that were attached to this SLO by its monitor rules rather than by hand. Maintained by the server. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
      - `id` string
    - `downtimeMonitorStatuses` object[]: List of monitor statuses that are considered as "down" for this Service Level Objective. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
      - `id` string
    - `metricQueryConfig` object: Query configuration for Metric SLIs: metric name, good-event predicate and optional attribute filters. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `targetPercentage` number, required: Target of this Service Level Objective as a percentage (e.g. 99.9). Must be less than 100. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `windowType` 'Rolling' | 'Calendar Month': Type of compliance window for this objective (Rolling or Calendar Month). Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `windowDays` number: Length of the rolling compliance window in days (e.g. 7, 28, 30 or 90). Ignored for Calendar Month windows. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `timezone` string: IANA timezone (e.g. America/New_York) used for Calendar Month window boundaries. Defaults to UTC when not set. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `atRiskThresholdPercentage` number: Percentage of remaining error budget at which the SLO status changes to At Risk. For example, 20 means the status becomes At Risk when less than 20% of the error budget remains. Permissions - Create: [Project Owner, Project Admin, Create Service Level Objective], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [Project Owner, Project Admin, Edit Service Level Objective]
    - `currentSliPercentage` number: Current Service Level Indicator over the compliance window, as a percentage. Computed by the worker. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `errorBudgetRemainingPercentage` number: Percentage of the error budget that remains. Can be negative when the budget is exhausted. Computed by the worker. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `errorBudgetRemainingSeconds` number: Seconds of error budget that remain. Can be negative when the budget is exhausted. Computed by the worker. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `errorBudgetTotalSeconds` number: Total seconds of error budget for the compliance window. Computed by the worker. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `currentBurnRate` number: Rate at which the error budget is currently being consumed. A burn rate of 1 exhausts the budget exactly at the end of the window. Computed by the worker. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `sloStatus` 'Healthy' | 'At Risk' | 'Budget Exhausted' | 'Misconfigured' | 'Paused': Current status of this Service Level Objective (Healthy, At Risk, Budget Exhausted, Misconfigured, Paused). Computed by the worker. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `statusChangeNotificationSentAt` object: The last time a status-change notification was sent to owners. Computed by the worker. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `lastEvaluatedAt` object: The last time this Service Level Objective was evaluated. Computed by the worker. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `nextEvaluationAt` object: When this Service Level Objective is next due for evaluation. Computed by the worker. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `lastAccumulatedBucketEndAt` object: Accumulation cursor for Metric SLIs: end of the last bucket whose good/total counts were persisted. Computed by the worker. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]
    - `createdByUserId` string, uuid: User ID who created this object (if this object was created by a User). Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Read Service Level Objective], Update: [No access - you don't have permission for this operation]

## Other responses

- `400`: Bad request. This response indicates that the request was malformed or contained invalid data.
- `401`: Unauthorized. This response indicates that the request requires user authentication.
- `402`: Payment Required. This response indicates that the request requires payment or a valid subscription.
- `403`: Forbidden. This response indicates that the server understood the request, but refuses to authorize it.
- `404`: Not found. The record does not exist, belongs to another project, or is one you may not read - the same answer for each.
- `405`: Project not found. This response indicates that the requested project does not exist or is not accessible.
- `408`: Request Timeout. This response indicates that the server timed out waiting for the request.
- `415`: Unable to reach server. This response indicates that the server is currently unreachable or down.
- `422`: Not authorized. This response indicates that the user does not have permission to access the requested resource.
- `500`: Internal Server Error. This response indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

---

[API](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification.md) - [All operations](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/revisions/ba3307d00304?raw)
