Save a thread
Save one thread, which keeps it under Saved, and kept, even once it is done.
PUT
/notifications/threads/{id}/savedWith saved false it is unsaved. Returns the thread.
- Authentication: Required. Send an access token as
Authorization: Bearer. - MCP tool:
notificationswithactionsave, and the same inputs - Scope: An access token needs
notifications:write. - Also at:
DELETE /notifications/threads/{id}/saved
Path parameters
Section titled “Path parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The thread’s id, from list_notifications. |
Body parameters
Section titled “Body parameters”Send a JSON object. Names are snake_case, as in responses; the camelCase spelling is accepted too.
| Name | Type | Required | Description |
|---|---|---|---|
saved |
boolean | No | False unsaves it. |
Example request
Section titled “Example request”curl -X PUT https://api.g1t.sh/notifications/threads/ntf_01kp7m2q3r4s5t6v7w8x9y0z1a/saved \ -H "Authorization: Bearer $G1T_TOKEN"Example response
Section titled “Example response”A successful request answers 200 with:
{ "id": "ntf_01kp7m2q3r4s5t6v7w8x9y0z1a", "reason": "review_requested", "severity": "warning", "title": "ada asked you to review flagon-io/hello#14", "body": "Add a greeting to the README", "event": "pull.review_requested", "repo": "flagon-io/hello", "workspace": "flagon-io", "subject": "pull", "number": 14, "url": "/flagon-io/hello/pull/14", "actor": "ada", "count": 3, "created_at": "2026-10-06T15:02:11.000Z", "updated_at": "2026-10-07T09:41:30.000Z", "read_at": null, "done_at": null, "saved": true, "snoozed_until": null, "activity": [ { "reason": "review_requested", "severity": "warning", "title": "ada asked you to review flagon-io/hello#14", "body": "Add a greeting to the README", "event": "pull.review_requested", "actor": "ada", "created_at": "2026-10-07T09:41:30.000Z" }, { "reason": "comment", "severity": "info", "title": "ada commented on flagon-io/hello#14", "body": "Pushed the fix for the heading.", "event": "comment.created", "actor": "ada", "created_at": "2026-10-06T18:20:02.000Z" }, { "reason": "comment", "severity": "info", "title": "g1t commented on flagon-io/hello#14", "body": "The heading level is off by one.", "event": "comment.created", "actor": "g1t", "created_at": "2026-10-06T15:02:11.000Z" } ], "subscription": { "subscribed": true, "ignored": false, "reason": "review_requested", "repo": "flagon-io/hello", "number": 14, "updated_at": null }}Errors
Section titled “Errors”A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.
| Status | Code | When |
|---|---|---|
| 401 | unauthenticated |
A token is required, or the one sent is not valid. |
| 403 | forbidden |
The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository. |
| 404 | not_found |
It does not exist, or you cannot see it. |
| 409 | conflict |
The request conflicts with the current state. |
| 422 | invalid |
The input is not valid. message says which field and why. |