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. On create, defaults to the previous update’s progress (or 1 for the goal’s first update). |
confidence |
integer | Confidence score. Normalized on save to one of 30 (off track), 60 (at risk), or 90 (on track). On create, defaults to the previous update’s confidence (or 100 for the goal’s first update). |
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. On create, defaults to the previous update’s progress (or 1 for the goal’s first update). |
confidence |
integer | No | Confidence score. Normalized on save to one of 30 (off track), 60 (at risk), or 90 (on track). On create, defaults to the previous update’s confidence (or 100 for the goal’s first update). |
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. On create, defaults to the previous update’s progress (or 1 for the goal’s first update). |
confidence |
integer | Confidence score. Normalized on save to one of 30 (off track), 60 (at risk), or 90 (on track). On create, defaults to the previous update’s confidence (or 100 for the goal’s first update). |
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,
"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 | |
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 | |
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,
"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 | |
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. On create, defaults to the previous update’s progress (or 1 for the goal’s first update). |
confidence |
integer | Confidence score. Normalized on save to one of 30 (off track), 60 (at risk), or 90 (on track). On create, defaults to the previous update’s confidence (or 100 for the goal’s first update). |
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. On create, defaults to the previous update’s progress (or 1 for the goal’s first update). |
confidence |
integer | No | Confidence score. Normalized on save to one of 30 (off track), 60 (at risk), or 90 (on track). On create, defaults to the previous update’s confidence (or 100 for the goal’s first update). |
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. On create, defaults to the previous update’s progress (or 1 for the goal’s first update). |
confidence |
integer | Confidence score. Normalized on save to one of 30 (off track), 60 (at risk), or 90 (on track). On create, defaults to the previous update’s confidence (or 100 for the goal’s first update). |
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,
"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 | |
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 | |
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,
"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 | |
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.