Skip to content

Create a service.

POST
/service
curl --request POST \
--url https://api.siteqwality.com/service \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "description": "example", "escalation_policy_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "incident_creation_mode": "auto", "incident_merge_window_minutes": 1, "auto_publish_to_status_page_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "default_incident_severity": "minor", "public_incident_template": { "title": "example", "message": "example", "resolved_message": "example" }, "reopen_window_minutes": 1, "auto_resolve": "always", "owner_team": "example", "tags": [ "example" ], "on_call_schedule_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }'
Media type application/json
object
name
required
string
description
string | null
escalation_policy_id
string | null format: uuid
incident_creation_mode
One of:

Whether a failing monitor opens an incident on its service.

string
Allowed values: auto manual
incident_merge_window_minutes

Deprecated and unused.

integer | null format: int32
auto_publish_to_status_page_id
string | null format: uuid
default_incident_severity
One of:
string
Allowed values: minor major critical
public_incident_template
One of:

What a service’s incidents say on a status page (services.public_incident_template).

object
title

The public title; auto-published incidents never show the monitor’s name.

string | null
message

The first public update when the incident is published.

string | null
resolved_message

The public “Resolved” update.

string | null
reopen_window_minutes

0 to 1440; default 30.

integer | null format: int32
auto_resolve
One of:

Default unless_acknowledged.

string
Allowed values: always unless_acknowledged never
owner_team

At most 256 characters.

string | null
tags

At most 20 tags of 256 characters; blanks and repeats are dropped.

array | null
on_call_schedule_id

An on-call schedule in the account (404 otherwise).

string | null format: uuid

Service created

Media type application/json
object
id
required
string format: uuid
name
required
string
description
string | null
escalation_policy_id
string | null format: uuid
incident_creation_mode
required

Whether a failing monitor opens an incident on its service.

string
Allowed values: auto manual
incident_merge_window_minutes
required

Deprecated and unused: every failure joins the service’s open auto incident.

integer format: int32
reopen_window_minutes
required

A failure this many minutes after a resolved auto incident’s last alert reopens it; 0 never does.

integer format: int32
auto_resolve
required

Whether an auto-created incident resolves itself once every monitor recovers.

string
Allowed values: always unless_acknowledged never
disabled_at

When the service was switched off; while set its monitors open no auto incidents.

string | null format: date-time
auto_publish_to_status_page_id
string | null format: uuid
default_incident_severity
required
string
Allowed values: minor major critical
created_at
required
string format: date-time
monitor_count
integer format: int64
public_incident_template
One of:

Prefills Publish and words auto-published incidents.

object
title

The public title; auto-published incidents never show the monitor’s name.

string | null
message

The first public update when the incident is published.

string | null
resolved_message

The public “Resolved” update.

string | null
owner_team

The team that owns the service; filter the list with team.

string | null
tags

Free-form labels; filter the list with tag.

Array<string>
on_call_schedule_id

Who is on call for this service; without it, the escalation policy’s first level.

string | null format: uuid
health
One of:

The roll-up of incidents, monitors, maintenance and on call. On the list and get routes.

object
status
required

The worst of incident and monitor state. Maintenance never changes it.

string
Allowed values: operational degraded partial_outage major_outage
in_maintenance
required

A maintenance window naming this service is running now. It holds paging, never the status.

boolean
open_incident_count
required
integer format: int64
failing_monitor_count
required

Linked monitors failing now; paused ones are left out.

integer format: int64
last_incident_at

When the newest incident on the service opened.

string | null format: date-time
on_call_now
required

The service’s on-call schedule, else every user and schedule on the policy’s first level.

Array<object>

One person on call for a service right now.

object
user_id
required
string format: uuid
user_name
string | null
schedule_id

The schedule that puts them on call; absent for a user named on the policy directly.

string | null format: uuid
schedule_name
string | null
until

When the schedule hands off; absent for a direct user or past 90 days.

string | null format: date-time
Example
{
"incident_creation_mode": "auto",
"auto_resolve": "always",
"default_incident_severity": "minor",
"health": {
"status": "operational"
}
}

Invalid request body

Missing or invalid authentication

Escalation policy, on-call schedule or auto-publish status page not found

The account has as many services as it may (service_limit_reached)

Internal server error