Goals
Get a goal update
GET https://service.steady.space/api/v2/goal-updates/{id}
200 Response
{
"id": "8b3c4d5e-6f70-4d8e-9a01-2345678901cd",
"goal": {
"id": "7a1d2e3f-4b5c-4d6e-8f90-1234567890ab",
"title": "Reduce p95 API latency to under 200ms"
},
"person": {
"id": "5d8f9a12-3c4b-4e5d-9a6b-7c8d9e0f1a2b",
"name": "Jordan Park"
},
"title": "Cut tail latency by 30ms this sprint",
"body": "- Rolled out the new connection pool to 25% of traffic\n- p95 dropped from 240ms to 210ms\n- Next: expand to 100% once we confirm error rates stay flat\n",
"progress": 60,
"confidence": 90,
"confidence_description": "On track",
"created_at": "2026-05-04T18:18:22Z",
"updated_at": "2026-05-04T18:18:22Z",
"url": "https://app.steady.space/goal_updates/8b3c4d5e-6f70-4d8e-9a01-2345678901cd"
}
Field reference
| Name | Type | Description |
|---|---|---|
type |
string | |
id |
string | |
goal |
object | |
person |
object | |
title |
string | |
body |
string | Update body rendered as Markdown. |
progress |
integer | Progress percentage toward completing the goal. |
confidence |
integer | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Human-readable label for the confidence score. |
created_at |
string | |
updated_at |
string | |
url |
string |
Update a goal update
PATCH https://service.steady.space/api/v2/goal-updates/{id}
Request body
{
"title": "Cut tail latency by 30ms this sprint",
"body": "- Rolled out the new connection pool to 25% of traffic\n- p95 dropped from 240ms to 210ms\n- Next: expand to 100% once we confirm error rates stay flat\n",
"progress": 60,
"confidence": 90
}
Field reference
| Name | Type | Required | Description |
|---|---|---|---|
type |
string | No | |
id |
string | Yes | |
goal |
object | Yes | |
person |
object | Yes | |
title |
string | No | |
body |
string | No | Update body rendered as Markdown. |
progress |
integer | No | Progress percentage toward completing the goal. |
confidence |
integer | No | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Yes | Human-readable label for the confidence score. |
created_at |
string | Yes | |
updated_at |
string | Yes | |
url |
string | Yes |
200 Response
{
"id": "8b3c4d5e-6f70-4d8e-9a01-2345678901cd",
"goal": {
"id": "7a1d2e3f-4b5c-4d6e-8f90-1234567890ab",
"title": "Reduce p95 API latency to under 200ms"
},
"person": {
"id": "5d8f9a12-3c4b-4e5d-9a6b-7c8d9e0f1a2b",
"name": "Jordan Park"
},
"title": "Cut tail latency by 30ms this sprint",
"body": "- Rolled out the new connection pool to 25% of traffic\n- p95 dropped from 240ms to 210ms\n- Next: expand to 100% once we confirm error rates stay flat\n",
"progress": 60,
"confidence": 90,
"confidence_description": "On track",
"created_at": "2026-05-04T18:18:22Z",
"updated_at": "2026-05-04T18:18:22Z",
"url": "https://app.steady.space/goal_updates/8b3c4d5e-6f70-4d8e-9a01-2345678901cd"
}
Field reference
| Name | Type | Description |
|---|---|---|
type |
string | |
id |
string | |
goal |
object | |
person |
object | |
title |
string | |
body |
string | Update body rendered as Markdown. |
progress |
integer | Progress percentage toward completing the goal. |
confidence |
integer | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Human-readable label for the confidence score. |
created_at |
string | |
updated_at |
string | |
url |
string |
Delete a goal update
DELETE https://service.steady.space/api/v2/goal-updates/{id}
204 Response
The body is empty.
List goals
GET https://service.steady.space/api/v2/goals
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
since |
string | No | Filter to records on or after this date. |
people_ids[] |
array | No | Filter to records owned by, contributed to, or otherwise involving these people. |
team_ids[] |
array | No | Filter to records involving these teams. |
goal_ids[] |
array | No | Return only these goals. When set, archived goals are included. |
page |
integer | No | Page number (1-indexed). |
per_page |
integer | No | Number of records per page. |
200 Response
[
{
"id": "7a1d2e3f-4b5c-4d6e-8f90-1234567890ab",
"title": "Reduce p95 API latency to under 200ms",
"description": "Improve end-user experience by cutting tail latency on\nthe public API. See the [perf tracker](https://example.com).\n",
"start_date": "2026-04-01",
"end_date": "2026-06-30",
"update_cadence": "Weekly",
"owner": {
"id": "ab6e1c81-cc42-47b9-82d0-66601aea003d",
"name": "Quinn Reed"
},
"parent": {
"id": "1f0c8a44-9b21-4f3a-9c7e-8e2a5d4b6f01",
"title": "Deliver a faster, more reliable platform"
},
"private": false,
"archived": false,
"progress": 60,
"confidence": 90,
"confidence_description": "On track",
"contributors": [
{
"id": "5d8f9a12-3c4b-4e5d-9a6b-7c8d9e0f1a2b",
"name": "Jordan Park"
},
{
"id": "2e3f4a5b-6c7d-4e8f-9a0b-1c2d3e4f5a6b",
"name": "Sam Okafor"
}
],
"teams": [
{
"id": "4c4f5632-7065-4dfb-bb90-c21b5b238ce4",
"name": "Security"
}
],
"url": "https://app.steady.space/goals/7a1d2e3f-4b5c-4d6e-8f90-1234567890ab"
}
]
Field reference
| Name | Type | Description |
|---|---|---|
type |
string | |
id |
string | |
title |
string | |
description |
string | Goal description rendered as Markdown. |
start_date |
string | |
end_date |
string | |
update_cadence |
string | |
owner |
object | |
owner_id |
string | |
parent |
object | |
parent_id |
string | |
private |
boolean | |
archived |
boolean | |
progress |
integer | Progress percentage toward completing the goal. |
confidence |
integer | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Human-readable label for the confidence score. |
contributors |
array | |
contributor_ids |
array | |
teams |
array | |
team_ids |
array | |
url |
string |
Create a goal
POST https://service.steady.space/api/v2/goals
Request body
{
"title": "Reduce p95 API latency to under 200ms",
"description": "Improve end-user experience by cutting tail latency on\nthe public API. See the [perf tracker](https://example.com).\n",
"start_date": "2026-04-01",
"end_date": "2026-06-30",
"update_cadence": "Weekly",
"owner_id": "ab6e1c81-cc42-47b9-82d0-66601aea003d",
"parent_id": "1f0c8a44-9b21-4f3a-9c7e-8e2a5d4b6f01",
"private": false,
"archived": false,
"contributor_ids": [
"5d8f9a12-3c4b-4e5d-9a6b-7c8d9e0f1a2b",
"2e3f4a5b-6c7d-4e8f-9a0b-1c2d3e4f5a6b"
],
"team_ids": [
"4c4f5632-7065-4dfb-bb90-c21b5b238ce4"
]
}
Field reference
| Name | Type | Required | Description |
|---|---|---|---|
type |
string | No | |
id |
string | Yes | |
title |
string | No | |
description |
string | No | Goal description rendered as Markdown. |
start_date |
string | No | |
end_date |
string | No | |
update_cadence |
string | No | |
owner |
object | Yes | |
owner_id |
string | No | |
parent |
object | Yes | |
parent_id |
string | No | |
private |
boolean | No | |
archived |
boolean | No | |
progress |
integer | Yes | Progress percentage toward completing the goal. |
confidence |
integer | Yes | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Yes | Human-readable label for the confidence score. |
contributors |
array | Yes | |
contributor_ids |
array | No | |
teams |
array | Yes | |
team_ids |
array | No | |
url |
string | Yes |
201 Response
{
"id": "7a1d2e3f-4b5c-4d6e-8f90-1234567890ab",
"title": "Reduce p95 API latency to under 200ms",
"description": "Improve end-user experience by cutting tail latency on\nthe public API. See the [perf tracker](https://example.com).\n",
"start_date": "2026-04-01",
"end_date": "2026-06-30",
"update_cadence": "Weekly",
"owner": {
"id": "ab6e1c81-cc42-47b9-82d0-66601aea003d",
"name": "Quinn Reed"
},
"parent": {
"id": "1f0c8a44-9b21-4f3a-9c7e-8e2a5d4b6f01",
"title": "Deliver a faster, more reliable platform"
},
"private": false,
"archived": false,
"progress": 60,
"confidence": 90,
"confidence_description": "On track",
"contributors": [
{
"id": "5d8f9a12-3c4b-4e5d-9a6b-7c8d9e0f1a2b",
"name": "Jordan Park"
},
{
"id": "2e3f4a5b-6c7d-4e8f-9a0b-1c2d3e4f5a6b",
"name": "Sam Okafor"
}
],
"teams": [
{
"id": "4c4f5632-7065-4dfb-bb90-c21b5b238ce4",
"name": "Security"
}
],
"url": "https://app.steady.space/goals/7a1d2e3f-4b5c-4d6e-8f90-1234567890ab"
}
Field reference
| Name | Type | Description |
|---|---|---|
type |
string | |
id |
string | |
title |
string | |
description |
string | Goal description rendered as Markdown. |
start_date |
string | |
end_date |
string | |
update_cadence |
string | |
owner |
object | |
owner_id |
string | |
parent |
object | |
parent_id |
string | |
private |
boolean | |
archived |
boolean | |
progress |
integer | Progress percentage toward completing the goal. |
confidence |
integer | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Human-readable label for the confidence score. |
contributors |
array | |
contributor_ids |
array | |
teams |
array | |
team_ids |
array | |
url |
string |
List a goal's updates
GET https://service.steady.space/api/v2/goals/{goal_id}/goal-updates
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
page |
integer | No | Page number (1-indexed). |
per_page |
integer | No | Number of records per page. |
200 Response
[
{
"id": "8b3c4d5e-6f70-4d8e-9a01-2345678901cd",
"goal": {
"id": "7a1d2e3f-4b5c-4d6e-8f90-1234567890ab",
"title": "Reduce p95 API latency to under 200ms"
},
"person": {
"id": "5d8f9a12-3c4b-4e5d-9a6b-7c8d9e0f1a2b",
"name": "Jordan Park"
},
"title": "Cut tail latency by 30ms this sprint",
"body": "- Rolled out the new connection pool to 25% of traffic\n- p95 dropped from 240ms to 210ms\n- Next: expand to 100% once we confirm error rates stay flat\n",
"progress": 60,
"confidence": 90,
"confidence_description": "On track",
"created_at": "2026-05-04T18:18:22Z",
"updated_at": "2026-05-04T18:18:22Z",
"url": "https://app.steady.space/goal_updates/8b3c4d5e-6f70-4d8e-9a01-2345678901cd"
}
]
Field reference
| Name | Type | Description |
|---|---|---|
type |
string | |
id |
string | |
goal |
object | |
person |
object | |
title |
string | |
body |
string | Update body rendered as Markdown. |
progress |
integer | Progress percentage toward completing the goal. |
confidence |
integer | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Human-readable label for the confidence score. |
created_at |
string | |
updated_at |
string | |
url |
string |
Create a goal update
POST https://service.steady.space/api/v2/goals/{goal_id}/goal-updates
Request body
{
"title": "Cut tail latency by 30ms this sprint",
"body": "- Rolled out the new connection pool to 25% of traffic\n- p95 dropped from 240ms to 210ms\n- Next: expand to 100% once we confirm error rates stay flat\n",
"progress": 60,
"confidence": 90
}
Field reference
| Name | Type | Required | Description |
|---|---|---|---|
type |
string | No | |
id |
string | Yes | |
goal |
object | Yes | |
person |
object | Yes | |
title |
string | No | |
body |
string | No | Update body rendered as Markdown. |
progress |
integer | No | Progress percentage toward completing the goal. |
confidence |
integer | No | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Yes | Human-readable label for the confidence score. |
created_at |
string | Yes | |
updated_at |
string | Yes | |
url |
string | Yes |
201 Response
{
"id": "8b3c4d5e-6f70-4d8e-9a01-2345678901cd",
"goal": {
"id": "7a1d2e3f-4b5c-4d6e-8f90-1234567890ab",
"title": "Reduce p95 API latency to under 200ms"
},
"person": {
"id": "5d8f9a12-3c4b-4e5d-9a6b-7c8d9e0f1a2b",
"name": "Jordan Park"
},
"title": "Cut tail latency by 30ms this sprint",
"body": "- Rolled out the new connection pool to 25% of traffic\n- p95 dropped from 240ms to 210ms\n- Next: expand to 100% once we confirm error rates stay flat\n",
"progress": 60,
"confidence": 90,
"confidence_description": "On track",
"created_at": "2026-05-04T18:18:22Z",
"updated_at": "2026-05-04T18:18:22Z",
"url": "https://app.steady.space/goal_updates/8b3c4d5e-6f70-4d8e-9a01-2345678901cd"
}
Field reference
| Name | Type | Description |
|---|---|---|
type |
string | |
id |
string | |
goal |
object | |
person |
object | |
title |
string | |
body |
string | Update body rendered as Markdown. |
progress |
integer | Progress percentage toward completing the goal. |
confidence |
integer | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Human-readable label for the confidence score. |
created_at |
string | |
updated_at |
string | |
url |
string |
Get a goal
GET https://service.steady.space/api/v2/goals/{id}
200 Response
{
"id": "7a1d2e3f-4b5c-4d6e-8f90-1234567890ab",
"title": "Reduce p95 API latency to under 200ms",
"description": "Improve end-user experience by cutting tail latency on\nthe public API. See the [perf tracker](https://example.com).\n",
"start_date": "2026-04-01",
"end_date": "2026-06-30",
"update_cadence": "Weekly",
"owner": {
"id": "ab6e1c81-cc42-47b9-82d0-66601aea003d",
"name": "Quinn Reed"
},
"parent": {
"id": "1f0c8a44-9b21-4f3a-9c7e-8e2a5d4b6f01",
"title": "Deliver a faster, more reliable platform"
},
"private": false,
"archived": false,
"progress": 60,
"confidence": 90,
"confidence_description": "On track",
"contributors": [
{
"id": "5d8f9a12-3c4b-4e5d-9a6b-7c8d9e0f1a2b",
"name": "Jordan Park"
},
{
"id": "2e3f4a5b-6c7d-4e8f-9a0b-1c2d3e4f5a6b",
"name": "Sam Okafor"
}
],
"teams": [
{
"id": "4c4f5632-7065-4dfb-bb90-c21b5b238ce4",
"name": "Security"
}
],
"url": "https://app.steady.space/goals/7a1d2e3f-4b5c-4d6e-8f90-1234567890ab"
}
Field reference
| Name | Type | Description |
|---|---|---|
type |
string | |
id |
string | |
title |
string | |
description |
string | Goal description rendered as Markdown. |
start_date |
string | |
end_date |
string | |
update_cadence |
string | |
owner |
object | |
owner_id |
string | |
parent |
object | |
parent_id |
string | |
private |
boolean | |
archived |
boolean | |
progress |
integer | Progress percentage toward completing the goal. |
confidence |
integer | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Human-readable label for the confidence score. |
contributors |
array | |
contributor_ids |
array | |
teams |
array | |
team_ids |
array | |
url |
string |
Update a goal
PATCH https://service.steady.space/api/v2/goals/{id}
Request body
{
"title": "Reduce p95 API latency to under 200ms",
"description": "Improve end-user experience by cutting tail latency on\nthe public API. See the [perf tracker](https://example.com).\n",
"start_date": "2026-04-01",
"end_date": "2026-06-30",
"update_cadence": "Weekly",
"owner_id": "ab6e1c81-cc42-47b9-82d0-66601aea003d",
"parent_id": "1f0c8a44-9b21-4f3a-9c7e-8e2a5d4b6f01",
"private": false,
"archived": false,
"contributor_ids": [
"5d8f9a12-3c4b-4e5d-9a6b-7c8d9e0f1a2b",
"2e3f4a5b-6c7d-4e8f-9a0b-1c2d3e4f5a6b"
],
"team_ids": [
"4c4f5632-7065-4dfb-bb90-c21b5b238ce4"
]
}
Field reference
| Name | Type | Required | Description |
|---|---|---|---|
type |
string | No | |
id |
string | Yes | |
title |
string | No | |
description |
string | No | Goal description rendered as Markdown. |
start_date |
string | No | |
end_date |
string | No | |
update_cadence |
string | No | |
owner |
object | Yes | |
owner_id |
string | No | |
parent |
object | Yes | |
parent_id |
string | No | |
private |
boolean | No | |
archived |
boolean | No | |
progress |
integer | Yes | Progress percentage toward completing the goal. |
confidence |
integer | Yes | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Yes | Human-readable label for the confidence score. |
contributors |
array | Yes | |
contributor_ids |
array | No | |
teams |
array | Yes | |
team_ids |
array | No | |
url |
string | Yes |
200 Response
{
"id": "7a1d2e3f-4b5c-4d6e-8f90-1234567890ab",
"title": "Reduce p95 API latency to under 200ms",
"description": "Improve end-user experience by cutting tail latency on\nthe public API. See the [perf tracker](https://example.com).\n",
"start_date": "2026-04-01",
"end_date": "2026-06-30",
"update_cadence": "Weekly",
"owner": {
"id": "ab6e1c81-cc42-47b9-82d0-66601aea003d",
"name": "Quinn Reed"
},
"parent": {
"id": "1f0c8a44-9b21-4f3a-9c7e-8e2a5d4b6f01",
"title": "Deliver a faster, more reliable platform"
},
"private": false,
"archived": false,
"progress": 60,
"confidence": 90,
"confidence_description": "On track",
"contributors": [
{
"id": "5d8f9a12-3c4b-4e5d-9a6b-7c8d9e0f1a2b",
"name": "Jordan Park"
},
{
"id": "2e3f4a5b-6c7d-4e8f-9a0b-1c2d3e4f5a6b",
"name": "Sam Okafor"
}
],
"teams": [
{
"id": "4c4f5632-7065-4dfb-bb90-c21b5b238ce4",
"name": "Security"
}
],
"url": "https://app.steady.space/goals/7a1d2e3f-4b5c-4d6e-8f90-1234567890ab"
}
Field reference
| Name | Type | Description |
|---|---|---|
type |
string | |
id |
string | |
title |
string | |
description |
string | Goal description rendered as Markdown. |
start_date |
string | |
end_date |
string | |
update_cadence |
string | |
owner |
object | |
owner_id |
string | |
parent |
object | |
parent_id |
string | |
private |
boolean | |
archived |
boolean | |
progress |
integer | Progress percentage toward completing the goal. |
confidence |
integer | Confidence score, normalized to one of: 30 (Off track), 60 (At risk), or 90 (On track). Returns 100 (On track) if no updates have been reported yet. |
confidence_description |
string | Human-readable label for the confidence score. |
contributors |
array | |
contributor_ids |
array | |
teams |
array | |
team_ids |
array | |
url |
string |
Delete a goal
DELETE https://service.steady.space/api/v2/goals/{id}
204 Response
The body is empty.