Home
The projects, work, and dashboards on your Home, and shared dashboard templates.
| Operation | Request |
|---|---|
| Home dashboards | GET /v1/home/dashboards |
| Save home dashboards | PUT /v1/home/dashboards |
| Home issue summary | POST /v1/home/issues |
| Home projects | GET /v1/home/projects |
| Find home templates | GET /v1/home/templates |
| Get home template | GET /v1/home/templates/{id} |
| Publish home template | PUT /v1/home/templates/{id} |
| Remove home template | DELETE /v1/home/templates/{id} |
| Report home template | POST /v1/home/templates/{id}/report |
| Home work | GET /v1/home/work |
Home dashboards
GET /v1/home/dashboards · homeDashboards
Account-authorized Home data. Reads do not start work. Layout writes use expected_revision and a request_id we keep, so the same request can be sent again after a lost response. Widget filters use project access plus the caller's GitHub connection. Packages contain no resource bindings or code. See docs/sdk/dashboard.md for validation and capacity limits.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Response
200 — Private, no-store result.
Type: HomeLibrary
| Field | Type | Required | Description |
|---|---|---|---|
revision | integer (uint64) | Yes | |
default | string or null | No | |
dashboards | array of object | Yes | |
dashboards[].schema | string | Yes | |
dashboards[].id | string | Yes | |
dashboards[].revision | integer (uint64) | Yes | |
dashboards[].name | string | Yes | |
dashboards[].scope | object | Yes | |
dashboards[].scope.project | string or null | No | |
dashboards[].scope.repositories | array of string | No | Default: |
dashboards[].scope.board | object or null | No | |
dashboards[].scope.board.owner | string | Yes | |
dashboards[].scope.board.number | integer (uint32) | Yes | |
dashboards[].widgets | array of object | Yes | |
dashboards[].widgets[].id | string | Yes | |
dashboards[].widgets[].kind | string | Yes | |
dashboards[].widgets[].version | integer (uint32) | Yes | |
dashboards[].widgets[].size | one of "compact", "full" | Yes | |
dashboards[].widgets[].scope | object or null | No | |
dashboards[].widgets[].scope.project | string or null | No | |
dashboards[].widgets[].scope.repositories | array of string | No | Default: |
dashboards[].widgets[].scope.board | object or null | No | |
dashboards[].widgets[].scope.board.owner | string | Yes | |
dashboards[].widgets[].scope.board.number | integer (uint32) | Yes | |
dashboards[].widgets[].labels | array of string | No | Default: |
dashboards[].widgets[].assignee | string or null | No | |
dashboards[].widgets[].agent | string or null | No | |
dashboards[].widgets[].host | string or null | No | |
dashboards[].widgets[].window_hours | integer (uint32) or null | No | |
dashboards[].source | object or null | No | |
dashboards[].source.id | string | Yes | |
dashboards[].source.version | integer (uint64) | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 429, 502, 503 | Invalid settings, signed out, access refused, unavailable layout, conflicting revision/request, body limit, rate limit, or unavailable source. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/home/dashboards' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
In the Rust SDK
Save home dashboards
PUT /v1/home/dashboards · saveHomeDashboards
Account-authorized Home data. Reads do not start work. Layout writes use expected_revision and a request_id we keep, so the same request can be sent again after a lost response. Widget filters use project access plus the caller's GitHub connection. Packages contain no resource bindings or code. See docs/sdk/dashboard.md for validation and capacity limits.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Request body
Content type: application/json
Type: HomeSave
| Field | Type | Required | Description |
|---|---|---|---|
request_id | string | Yes | |
expected_revision | integer (uint64) | Yes | |
library | object | Yes | |
library.revision | integer (uint64) | Yes | |
library.default | string or null | No | |
library.dashboards | array of object | Yes | |
library.dashboards[].schema | string | Yes | |
library.dashboards[].id | string | Yes | |
library.dashboards[].revision | integer (uint64) | Yes | |
library.dashboards[].name | string | Yes | |
library.dashboards[].scope | object | Yes | |
library.dashboards[].scope.project | string or null | No | |
library.dashboards[].scope.repositories | array of string | No | Default: |
library.dashboards[].scope.board | object or null | No | |
library.dashboards[].scope.board.owner | string | Yes | |
library.dashboards[].scope.board.number | integer (uint32) | Yes | |
library.dashboards[].widgets | array of object | Yes | |
library.dashboards[].widgets[].id | string | Yes | |
library.dashboards[].widgets[].kind | string | Yes | |
library.dashboards[].widgets[].version | integer (uint32) | Yes | |
library.dashboards[].widgets[].size | one of "compact", "full" | Yes | |
library.dashboards[].widgets[].scope | object or null | No | |
library.dashboards[].widgets[].scope.project | string or null | No | |
library.dashboards[].widgets[].scope.repositories | array of string | No | Default: |
library.dashboards[].widgets[].scope.board | object or null | No | |
library.dashboards[].widgets[].scope.board.owner | string | Yes | |
library.dashboards[].widgets[].scope.board.number | integer (uint32) | Yes | |
library.dashboards[].widgets[].labels | array of string | No | Default: |
library.dashboards[].widgets[].assignee | string or null | No | |
library.dashboards[].widgets[].agent | string or null | No | |
library.dashboards[].widgets[].host | string or null | No | |
library.dashboards[].widgets[].window_hours | integer (uint32) or null | No | |
library.dashboards[].source | object or null | No | |
library.dashboards[].source.id | string | Yes | |
library.dashboards[].source.version | integer (uint64) | Yes |
Response
200 — Private, no-store result.
Type: HomeLibrary
| Field | Type | Required | Description |
|---|---|---|---|
revision | integer (uint64) | Yes | |
default | string or null | No | |
dashboards | array of object | Yes | |
dashboards[].schema | string | Yes | |
dashboards[].id | string | Yes | |
dashboards[].revision | integer (uint64) | Yes | |
dashboards[].name | string | Yes | |
dashboards[].scope | object | Yes | |
dashboards[].scope.project | string or null | No | |
dashboards[].scope.repositories | array of string | No | Default: |
dashboards[].scope.board | object or null | No | |
dashboards[].scope.board.owner | string | Yes | |
dashboards[].scope.board.number | integer (uint32) | Yes | |
dashboards[].widgets | array of object | Yes | |
dashboards[].widgets[].id | string | Yes | |
dashboards[].widgets[].kind | string | Yes | |
dashboards[].widgets[].version | integer (uint32) | Yes | |
dashboards[].widgets[].size | one of "compact", "full" | Yes | |
dashboards[].widgets[].scope | object or null | No | |
dashboards[].widgets[].scope.project | string or null | No | |
dashboards[].widgets[].scope.repositories | array of string | No | Default: |
dashboards[].widgets[].scope.board | object or null | No | |
dashboards[].widgets[].scope.board.owner | string | Yes | |
dashboards[].widgets[].scope.board.number | integer (uint32) | Yes | |
dashboards[].widgets[].labels | array of string | No | Default: |
dashboards[].widgets[].assignee | string or null | No | |
dashboards[].widgets[].agent | string or null | No | |
dashboards[].widgets[].host | string or null | No | |
dashboards[].widgets[].window_hours | integer (uint32) or null | No | |
dashboards[].source | object or null | No | |
dashboards[].source.id | string | Yes | |
dashboards[].source.version | integer (uint64) | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 429, 502, 503 | Invalid settings, signed out, access refused, unavailable layout, conflicting revision/request, body limit, rate limit, or unavailable source. | AppAccountError |
Example
curl -X PUT 'https://api.openagents.com/v1/home/dashboards' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"request_id": "string",
"expected_revision": 0,
"library": {
"revision": 0,
"dashboards": [
{
"schema": "string",
"id": "string",
"revision": 0,
"name": "string",
"scope": {
"project": "string",
"repositories": [],
"board": {
"owner": "string",
"number": 0
}
},
"widgets": [
{
"id": "string",
"kind": "string",
"version": 0,
"size": "compact"
}
]
}
]
}
}'
In the Rust SDK
Home issue summary
POST /v1/home/issues · homeIssueSummary
Account-authorized Home data. Reads do not start work. Layout writes use expected_revision and a request_id we keep, so the same request can be sent again after a lost response. Widget filters use project access plus the caller's GitHub connection. Packages contain no resource bindings or code. See docs/sdk/dashboard.md for validation and capacity limits.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Request body
Content type: application/json
Type: HomeIssueFilter
| Field | Type | Required | Description |
|---|---|---|---|
scope | object | Yes | |
scope.project | string or null | No | |
scope.repositories | array of string | No | Default: |
scope.board | object or null | No | |
scope.board.owner | string | Yes | |
scope.board.number | integer (uint32) | Yes | |
mine | boolean | Yes | |
assignee | string or null | No | |
labels | array of string | Yes | |
page | integer (uint32) | No | Default: |
Response
200 — Private, no-store result.
Type: HomeIssueSummary
| Field | Type | Required | Description |
|---|---|---|---|
total | integer (uint64) | Yes | |
complete | boolean | Yes | |
observed_at | integer (uint64) | Yes | |
query | string | Yes | |
items | array of object | Yes | |
items[].repository | string | Yes | |
items[].number | integer (uint64) | Yes | |
items[].title | string | Yes | |
unavailable | array of string | Yes | |
next_page | integer (uint32) or null | No | Default: |
board_url | string or null | No | Default: |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 429, 502, 503 | Invalid settings, signed out, access refused, unavailable layout, conflicting revision/request, body limit, rate limit, or unavailable source. | AppAccountError |
Example
curl -X POST 'https://api.openagents.com/v1/home/issues' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"scope": {
"project": "string",
"repositories": [],
"board": {
"owner": "string",
"number": 0
}
},
"mine": false,
"labels": [
"string"
]
}'
In the Rust SDK
Home projects
GET /v1/home/projects · homeProjects
Account-authorized Home data. Reads do not start work. Layout writes use expected_revision and a request_id we keep, so the same request can be sent again after a lost response. Widget filters use project access plus the caller's GitHub connection. Packages contain no resource bindings or code. See docs/sdk/dashboard.md for validation and capacity limits.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Response
200 — Private, no-store result.
Type: HomeProjects (array of object)
| Field | Type | Required | Description |
|---|---|---|---|
[].id | string | Yes | |
[].name | string | Yes | |
[].repositories | array of string | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 429, 502, 503 | Invalid settings, signed out, access refused, unavailable layout, conflicting revision/request, body limit, rate limit, or unavailable source. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/home/projects' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
In the Rust SDK
Find home templates
GET /v1/home/templates · findHomeTemplates
Account-authorized Home data. Reads do not start work. Layout writes use expected_revision and a request_id we keep, so the same request can be sent again after a lost response. Widget filters use project access plus the caller's GitHub connection. Packages contain no resource bindings or code. See docs/sdk/dashboard.md for validation and capacity limits.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
after | query | string | No | |
author | query | string | No | |
q | query | string | No | |
mine | query | boolean | No |
Response
200 — Private, no-store result.
Type: HomeDirectory
| Field | Type | Required | Description |
|---|---|---|---|
data | array of object | Yes | |
data[].id | string | Yes | |
data[].version | integer (uint64) | Yes | |
data[].author | string | Yes | |
data[].author_id | string | No | Default: |
data[].owned | boolean | No | Default: |
data[].visibility | one of "private", "unlisted", "public" | Yes | |
data[].package | object | Yes | |
data[].package.schema | string | Yes | |
data[].package.version | integer (uint32) | Yes | |
data[].package.title | string | Yes | |
data[].package.description | string | Yes | |
data[].package.tags | array of string | Yes | |
data[].package.widgets | array of object | Yes | |
data[].package.widgets[].id | string | Yes | |
data[].package.widgets[].kind | string | Yes | |
data[].package.widgets[].version | integer (uint32) | Yes | |
data[].package.widgets[].size | one of "compact", "full" | Yes | |
data[].package.widgets[].scope | object or null | No | |
data[].package.widgets[].scope.project | string or null | No | |
data[].package.widgets[].scope.repositories | array of string | No | Default: |
data[].package.widgets[].scope.board | object or null | No | |
data[].package.widgets[].scope.board.owner | string | Yes | |
data[].package.widgets[].scope.board.number | integer (uint32) | Yes | |
data[].package.widgets[].labels | array of string | No | Default: |
data[].package.widgets[].assignee | string or null | No | |
data[].package.widgets[].agent | string or null | No | |
data[].package.widgets[].host | string or null | No | |
data[].package.widgets[].window_hours | integer (uint32) or null | No | |
data[].package.inputs | array of string | Yes | |
data[].package.hash | string | Yes | |
data[].removed | boolean | Yes | |
next | string or null | No |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 429, 502, 503 | Invalid settings, signed out, access refused, unavailable layout, conflicting revision/request, body limit, rate limit, or unavailable source. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/home/templates' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
In the Rust SDK
Get home template
GET /v1/home/templates/{id} · getHomeTemplate
Account-authorized Home data. Reads do not start work. Layout writes use expected_revision and a request_id we keep, so the same request can be sent again after a lost response. Widget filters use project access plus the caller's GitHub connection. Packages contain no resource bindings or code. See docs/sdk/dashboard.md for validation and capacity limits.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes | |
version | query | integer | No |
Response
200 — Private, no-store result.
Type: HomeListing
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | |
version | integer (uint64) | Yes | |
author | string | Yes | |
author_id | string | No | Default: |
owned | boolean | No | Default: |
visibility | one of "private", "unlisted", "public" | Yes | |
package | object | Yes | |
package.schema | string | Yes | |
package.version | integer (uint32) | Yes | |
package.title | string | Yes | |
package.description | string | Yes | |
package.tags | array of string | Yes | |
package.widgets | array of object | Yes | |
package.widgets[].id | string | Yes | |
package.widgets[].kind | string | Yes | |
package.widgets[].version | integer (uint32) | Yes | |
package.widgets[].size | one of "compact", "full" | Yes | |
package.widgets[].scope | object or null | No | |
package.widgets[].scope.project | string or null | No | |
package.widgets[].scope.repositories | array of string | No | Default: |
package.widgets[].scope.board | object or null | No | |
package.widgets[].scope.board.owner | string | Yes | |
package.widgets[].scope.board.number | integer (uint32) | Yes | |
package.widgets[].labels | array of string | No | Default: |
package.widgets[].assignee | string or null | No | |
package.widgets[].agent | string or null | No | |
package.widgets[].host | string or null | No | |
package.widgets[].window_hours | integer (uint32) or null | No | |
package.inputs | array of string | Yes | |
package.hash | string | Yes | |
removed | boolean | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 429, 502, 503 | Invalid settings, signed out, access refused, unavailable layout, conflicting revision/request, body limit, rate limit, or unavailable source. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/home/templates/{id}' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
In the Rust SDK
Publish home template
PUT /v1/home/templates/{id} · publishHomeTemplate
Account-authorized Home data. Reads do not start work. Layout writes use expected_revision and a request_id we keep, so the same request can be sent again after a lost response. Widget filters use project access plus the caller's GitHub connection. Packages contain no resource bindings or code. See docs/sdk/dashboard.md for validation and capacity limits.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes |
Request body
Content type: application/json
Type: HomePublish
| Field | Type | Required | Description |
|---|---|---|---|
request_id | string | Yes | |
expected_revision | integer (uint64) | Yes | |
package | object | Yes | |
package.schema | string | Yes | |
package.version | integer (uint32) | Yes | |
package.title | string | Yes | |
package.description | string | Yes | |
package.tags | array of string | Yes | |
package.widgets | array of object | Yes | |
package.widgets[].id | string | Yes | |
package.widgets[].kind | string | Yes | |
package.widgets[].version | integer (uint32) | Yes | |
package.widgets[].size | one of "compact", "full" | Yes | |
package.widgets[].scope | object or null | No | |
package.widgets[].scope.project | string or null | No | |
package.widgets[].scope.repositories | array of string | No | Default: |
package.widgets[].scope.board | object or null | No | |
package.widgets[].scope.board.owner | string | Yes | |
package.widgets[].scope.board.number | integer (uint32) | Yes | |
package.widgets[].labels | array of string | No | Default: |
package.widgets[].assignee | string or null | No | |
package.widgets[].agent | string or null | No | |
package.widgets[].host | string or null | No | |
package.widgets[].window_hours | integer (uint32) or null | No | |
package.inputs | array of string | Yes | |
package.hash | string | Yes | |
visibility | one of "private", "unlisted", "public" | Yes |
Response
200 — Private, no-store result.
Type: HomeListing
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | |
version | integer (uint64) | Yes | |
author | string | Yes | |
author_id | string | No | Default: |
owned | boolean | No | Default: |
visibility | one of "private", "unlisted", "public" | Yes | |
package | object | Yes | |
package.schema | string | Yes | |
package.version | integer (uint32) | Yes | |
package.title | string | Yes | |
package.description | string | Yes | |
package.tags | array of string | Yes | |
package.widgets | array of object | Yes | |
package.widgets[].id | string | Yes | |
package.widgets[].kind | string | Yes | |
package.widgets[].version | integer (uint32) | Yes | |
package.widgets[].size | one of "compact", "full" | Yes | |
package.widgets[].scope | object or null | No | |
package.widgets[].scope.project | string or null | No | |
package.widgets[].scope.repositories | array of string | No | Default: |
package.widgets[].scope.board | object or null | No | |
package.widgets[].scope.board.owner | string | Yes | |
package.widgets[].scope.board.number | integer (uint32) | Yes | |
package.widgets[].labels | array of string | No | Default: |
package.widgets[].assignee | string or null | No | |
package.widgets[].agent | string or null | No | |
package.widgets[].host | string or null | No | |
package.widgets[].window_hours | integer (uint32) or null | No | |
package.inputs | array of string | Yes | |
package.hash | string | Yes | |
removed | boolean | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 429, 502, 503 | Invalid settings, signed out, access refused, unavailable layout, conflicting revision/request, body limit, rate limit, or unavailable source. | AppAccountError |
Example
curl -X PUT 'https://api.openagents.com/v1/home/templates/{id}' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"request_id": "string",
"expected_revision": 0,
"package": {
"schema": "string",
"version": 0,
"title": "string",
"description": "string",
"tags": [
"string"
],
"widgets": [
{
"id": "string",
"kind": "string",
"version": 0,
"size": "compact"
}
],
"inputs": [
"string"
],
"hash": "string"
},
"visibility": "private"
}'
In the Rust SDK
Remove home template
DELETE /v1/home/templates/{id} · removeHomeTemplate
Account-authorized Home data. Reads do not start work. Layout writes use expected_revision and a request_id we keep, so the same request can be sent again after a lost response. Widget filters use project access plus the caller's GitHub connection. Packages contain no resource bindings or code. See docs/sdk/dashboard.md for validation and capacity limits.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes |
Request body
Content type: application/json
Type: HomeRemove
| Field | Type | Required | Description |
|---|---|---|---|
request_id | string | Yes | |
expected_revision | integer (uint64) | Yes |
Response
200 — Private, no-store result.
Type: HomeListing
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | |
version | integer (uint64) | Yes | |
author | string | Yes | |
author_id | string | No | Default: |
owned | boolean | No | Default: |
visibility | one of "private", "unlisted", "public" | Yes | |
package | object | Yes | |
package.schema | string | Yes | |
package.version | integer (uint32) | Yes | |
package.title | string | Yes | |
package.description | string | Yes | |
package.tags | array of string | Yes | |
package.widgets | array of object | Yes | |
package.widgets[].id | string | Yes | |
package.widgets[].kind | string | Yes | |
package.widgets[].version | integer (uint32) | Yes | |
package.widgets[].size | one of "compact", "full" | Yes | |
package.widgets[].scope | object or null | No | |
package.widgets[].scope.project | string or null | No | |
package.widgets[].scope.repositories | array of string | No | Default: |
package.widgets[].scope.board | object or null | No | |
package.widgets[].scope.board.owner | string | Yes | |
package.widgets[].scope.board.number | integer (uint32) | Yes | |
package.widgets[].labels | array of string | No | Default: |
package.widgets[].assignee | string or null | No | |
package.widgets[].agent | string or null | No | |
package.widgets[].host | string or null | No | |
package.widgets[].window_hours | integer (uint32) or null | No | |
package.inputs | array of string | Yes | |
package.hash | string | Yes | |
removed | boolean | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 429, 502, 503 | Invalid settings, signed out, access refused, unavailable layout, conflicting revision/request, body limit, rate limit, or unavailable source. | AppAccountError |
Example
curl -X DELETE 'https://api.openagents.com/v1/home/templates/{id}' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"request_id": "string",
"expected_revision": 0
}'
In the Rust SDK
Report home template
POST /v1/home/templates/{id}/report · reportHomeTemplate
Account-authorized Home data. Reads do not start work. Layout writes use expected_revision and a request_id we keep, so the same request can be sent again after a lost response. Widget filters use project access plus the caller's GitHub connection. Packages contain no resource bindings or code. See docs/sdk/dashboard.md for validation and capacity limits.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes |
Request body
Content type: application/json
Type: HomeReport
| Field | Type | Required | Description |
|---|---|---|---|
request_id | string | Yes | |
reason | string | Yes |
Response
200 — Private, no-store result.
Type: HomeReportResult
| Field | Type | Required | Description |
|---|---|---|---|
reported | always true | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 429, 502, 503 | Invalid settings, signed out, access refused, unavailable layout, conflicting revision/request, body limit, rate limit, or unavailable source. | AppAccountError |
Example
curl -X POST 'https://api.openagents.com/v1/home/templates/{id}/report' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"request_id": "string",
"reason": "string"
}'
In the Rust SDK
Home work
GET /v1/home/work · homeWork
Account-authorized Home data. Reads do not start work. Layout writes use expected_revision and a request_id we keep, so the same request can be sent again after a lost response. Widget filters use project access plus the caller's GitHub connection. Packages contain no resource bindings or code. See docs/sdk/dashboard.md for validation and capacity limits.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
after | query | string | No |
Response
200 — Private, no-store result.
Type: HomeWorkPage
| Field | Type | Required | Description |
|---|---|---|---|
data | array of object | Yes | |
data[].id | string | Yes | |
data[].session | string or null | No | |
data[].destination | object or null | No | Default: |
data[].parent | string or null | No | |
data[].agent | string | Yes | |
data[].title | string | Yes | |
data[].project | string or null | No | |
data[].host | string | Yes | |
data[].state | string | Yes | |
data[].online | boolean | Yes | |
data[].observed_at | integer (uint64) | Yes | |
next | string or null | No | |
complete | boolean | Yes | |
computers | array of object | Yes | |
computers[].name | string | Yes | |
computers[].online | boolean | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 429, 502, 503 | Invalid settings, signed out, access refused, unavailable layout, conflicting revision/request, body limit, rate limit, or unavailable source. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/home/work' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"