Get health for all service lines
curl --request GET \
--url https://api.scrums.com/v1/observability/health \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.scrums.com/v1/observability/health"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.scrums.com/v1/observability/health', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scrums.com/v1/observability/health",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scrums.com/v1/observability/health"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scrums.com/v1/observability/health")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scrums.com/v1/observability/health")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"service_line_id": "LIN-26-084729",
"name": "Core Platform Squad",
"health_score": 87,
"risk_level": "low",
"signals": [
{
"signal": "velocity_trend",
"status": "green",
"value": "+8% WoW"
},
{
"signal": "open_incidents",
"status": "green",
"value": "0"
},
{
"signal": "pr_cycle_time",
"status": "amber",
"value": "2.4 days avg"
}
]
},
{
"service_line_id": "LIN-26-091844",
"name": "Mobile Engineering Squad",
"health_score": 72,
"risk_level": "medium",
"signals": [
{
"signal": "velocity_trend",
"status": "amber",
"value": "-5% WoW"
},
{
"signal": "open_incidents",
"status": "green",
"value": "1"
},
{
"signal": "pr_cycle_time",
"status": "red",
"value": "4.1 days avg"
}
]
}
]
}{
"code": "invalid_request",
"message": "workspace_id is required.",
"status": 400
}{
"code": "unauthorized",
"message": "Bearer token is missing or expired.",
"status": 401
}{
"code": "forbidden",
"message": "You do not have access to this resource.",
"status": 403
}Observability & Metrics
Get workspace health
Returns health scores and risk signals for all active service lines in a workspace.
GET
/
observability
/
health
Get health for all service lines
curl --request GET \
--url https://api.scrums.com/v1/observability/health \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.scrums.com/v1/observability/health"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.scrums.com/v1/observability/health', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scrums.com/v1/observability/health",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scrums.com/v1/observability/health"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scrums.com/v1/observability/health")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scrums.com/v1/observability/health")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"service_line_id": "LIN-26-084729",
"name": "Core Platform Squad",
"health_score": 87,
"risk_level": "low",
"signals": [
{
"signal": "velocity_trend",
"status": "green",
"value": "+8% WoW"
},
{
"signal": "open_incidents",
"status": "green",
"value": "0"
},
{
"signal": "pr_cycle_time",
"status": "amber",
"value": "2.4 days avg"
}
]
},
{
"service_line_id": "LIN-26-091844",
"name": "Mobile Engineering Squad",
"health_score": 72,
"risk_level": "medium",
"signals": [
{
"signal": "velocity_trend",
"status": "amber",
"value": "-5% WoW"
},
{
"signal": "open_incidents",
"status": "green",
"value": "1"
},
{
"signal": "pr_cycle_time",
"status": "red",
"value": "4.1 days avg"
}
]
}
]
}{
"code": "invalid_request",
"message": "workspace_id is required.",
"status": 400
}{
"code": "unauthorized",
"message": "Bearer token is missing or expired.",
"status": 401
}{
"code": "forbidden",
"message": "You do not have access to this resource.",
"status": 403
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Filter health records by workspace ID.
Filter health records by organization ID.
Response
Array of health records for active service lines.
Show child attributes
Show child attributes
Last modified on April 15, 2026
Was this page helpful?
⌘I