Skip to content

Services

The service catalog is a graph of the services that compose your product. Each service can link to monitors, dashboards, runbooks, and owners, and can declare dependencies on other services.

MethodPathDescriptionScope
GET/api/v1/servicesList services.services
POST/api/v1/servicesCreate.services
GET/api/v1/services/{id}Read one.services
PATCH/api/v1/services/{id}Update.services
DELETE/api/v1/services/{id}Delete. Fails if other services depend on it; remove the dependency first.services
POST/api/v1/services/{id}/linksAdd an external link (runbook, dashboard, repo).services
DELETE/api/v1/services/{id}/links/{linkID}Remove a link.services
POST/api/v1/services/{id}/dependenciesDeclare a dependency.services
DELETE/api/v1/services/{id}/dependencies/{depID}Remove a dependency.services
{
"name": "checkout-api",
"description": "Customer-facing checkout HTTP API.",
"tier": "tier-1",
"owner_team_id": "01HXTEAM...",
"monitor_ids": ["01HX..."],
"labels": { "lang": "go", "runtime": "k8s" }
}
FieldNotes
tiertier-0 (mission-critical) through tier-3 (experimental). Drives status-page prominence and escalation severity.
owner_team_idMust reference an existing team.
monitor_idsMonitors whose health represents this service’s health.

Links attach external references to a service:

POST /api/v1/services/{id}/links
{
"label": "Runbook: incident response",
"url": "https://runbooks.example.com/checkout",
"kind": "runbook"
}

kind is one of: runbook, dashboard, repo, docs, other. Displayed alongside the service in the console and on the status page.

POST /api/v1/services/{id}/dependencies
{
"depends_on_service_id": "01HXDB...",
"relationship": "required"
}
relationshipMeaning
requiredOutage of the target degrades this service.
optionalUseful but not required; outage is degradation-only.
informationalNo health implication; just documenting the edge.

Cycles are rejected; dependencies form a DAG.