Agent sessions API
Manage conversation state. Creating a session record alone does not start an AI run. Use the Adios application or MCP integration to start agent work.
Use API authentication for protected requests. Examples use your own resource IDs and a temporary token; saved response examples are synthetic.
| Method | Path | Operation |
|---|---|---|
GET | /v1/agent_session | List agent sessions |
POST | /v1/agent_session | Create agent session |
GET | /v1/agent_session/{id} | Get agent session |
PUT | /v1/agent_session/{id} | Update agent session |
DELETE | /v1/agent_session/{id} | Delete agent session |
GET | /v1/agent_session/{id}/state | Get agent session state |
GET | /v1/agent_session/{id}/plan | Get agent session plan |
POST | /v1/agent_session/{id}/runs/{run_id}/cancel | Cancel agent run |
List agent sessions
GET /v1/agent_session
Returns a paginated list of AgentSession
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
page | query | no | Page number |
per_page | query | no | Items per page |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request GET "$ADIOS_API_URL/v1/agent_session" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
List of AgentSession
Response fields
| Field | Type | Description |
|---|---|---|
data | array | |
data[].agent_session_id | string | |
data[].channel_id | string | |
data[].company_project_id | string | |
data[].context_snapshot | object | |
data[].created_at | integer | (Unix timestamp) |
data[].deleted_at | integer | (Unix timestamp) |
data[].last_message_at | integer | (Unix timestamp) |
data[].memory_summary | object | |
data[].metadata | object | |
data[].mode | string | Allowed: build, debug, ops, review, chat. |
data[].model | string | |
data[].owner_id | string | |
data[].provider | string | |
data[].sharing_scope | string | Allowed: private, team. |
data[].source | string | Allowed: app, slack, cli. |
data[].status | string | Allowed: active, paused, blocked, complete, failed. |
data[].team_id | string | |
data[].thread_id | string | |
data[].updated_at | integer | (Unix timestamp) |
data[].workspace_id | string | |
data[].writable_repository_id | string | |
pagination | object | |
pagination.page | integer | Current page number |
pagination.per_page | integer | Number of items per page |
pagination.total | integer | Total number of items |
Illustrative example; not a live response:
{
"data": [
{
"agent_session_id": "000000000000000000000000001",
"channel_id": "",
"company_project_id": "",
"context_snapshot": {},
"created_at": 1791072000,
"deleted_at": 0,
"last_message_at": 0,
"memory_summary": {},
"metadata": {},
"mode": "chat",
"model": "",
"owner_id": "",
"provider": "",
"sharing_scope": "private",
"source": "app",
"status": "active",
"team_id": "000000000000000000000000001",
"thread_id": "",
"updated_at": 1791072000,
"workspace_id": "",
"writable_repository_id": ""
}
],
"pagination": {
"page": 1,
"per_page": 1,
"total": 1
}
}
Create agent session
POST /v1/agent_session
Creates a new AgentSession
This request changes data or starts an action. Review the target and body before sending it.
Request fields (the body contains an editable example):
| Field | Type | Required | Description |
|---|---|---|---|
channel_id | string | no | Default: "". |
company_project_id | string | no | Default: "". |
context_snapshot | object | no | |
last_message_at | integer | no | (Unix timestamp) Default: 0. |
memory_summary | object | no | |
metadata | object | no | |
mode | string | yes | Allowed: build, debug, ops, review, chat. Default: "chat". |
model | string | no | Default: "". |
owner_id | string | no | Default: "". |
provider | string | no | Default: "". |
sharing_scope | string | yes | Allowed: private, team. Default: "private". |
source | string | yes | Allowed: app, slack, cli. |
status | string | yes | Allowed: active, paused, blocked, complete, failed. Default: "active". |
team_id | string | yes | |
thread_id | string | no | Default: "". |
workspace_id | string | no | Default: "". |
writable_repository_id | string | no | Default: "". |
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request POST "$ADIOS_API_URL/v1/agent_session" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"team_id": "YOUR_TEAM_ID",
"owner_id": "YOUR_USER_ID",
"workspace_id": "YOUR_WORKSPACE_ID",
"sharing_scope": "private",
"source": "app",
"mode": "chat",
"status": "active"
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 201
AgentSession created
Response fields
| Field | Type | Description |
|---|---|---|
agent_session_id | string | |
channel_id | string | |
company_project_id | string | |
context_snapshot | object | |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
last_message_at | integer | (Unix timestamp) |
memory_summary | object | |
metadata | object | |
mode | string | Allowed: build, debug, ops, review, chat. |
model | string | |
owner_id | string | |
provider | string | |
sharing_scope | string | Allowed: private, team. |
source | string | Allowed: app, slack, cli. |
status | string | Allowed: active, paused, blocked, complete, failed. |
team_id | string | |
thread_id | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string | |
writable_repository_id | string |
Illustrative example; not a live response:
{
"agent_session_id": "000000000000000000000000001",
"channel_id": "",
"company_project_id": "",
"context_snapshot": {},
"created_at": 1791072000,
"deleted_at": 0,
"last_message_at": 0,
"memory_summary": {},
"metadata": {},
"mode": "chat",
"model": "",
"owner_id": "",
"provider": "",
"sharing_scope": "private",
"source": "app",
"status": "active",
"team_id": "000000000000000000000000001",
"thread_id": "",
"updated_at": 1791072000,
"workspace_id": "",
"writable_repository_id": ""
}
Get agent session
GET /v1/agent_session/{id}
Returns a single AgentSession
Set agent_session_id using IDs from your own API responses.
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
id | path | yes | Resource identifier from your team's API results. |
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request GET "$ADIOS_API_URL/v1/agent_session/${ADIOS_AGENT_SESSION_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
AgentSession
Response fields
| Field | Type | Description |
|---|---|---|
agent_session_id | string | |
channel_id | string | |
company_project_id | string | |
context_snapshot | object | |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
last_message_at | integer | (Unix timestamp) |
memory_summary | object | |
metadata | object | |
mode | string | Allowed: build, debug, ops, review, chat. |
model | string | |
owner_id | string | |
provider | string | |
sharing_scope | string | Allowed: private, team. |
source | string | Allowed: app, slack, cli. |
status | string | Allowed: active, paused, blocked, complete, failed. |
team_id | string | |
thread_id | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string | |
writable_repository_id | string |
Illustrative example; not a live response:
{
"agent_session_id": "000000000000000000000000001",
"channel_id": "",
"company_project_id": "",
"context_snapshot": {},
"created_at": 1791072000,
"deleted_at": 0,
"last_message_at": 0,
"memory_summary": {},
"metadata": {},
"mode": "chat",
"model": "",
"owner_id": "",
"provider": "",
"sharing_scope": "private",
"source": "app",
"status": "active",
"team_id": "000000000000000000000000001",
"thread_id": "",
"updated_at": 1791072000,
"workspace_id": "",
"writable_repository_id": ""
}
Update agent session
PUT /v1/agent_session/{id}
Updates an existing AgentSession
Set agent_session_id using IDs from your own API responses.
This request changes data or starts an action. Review the target and body before sending it.
Request fields (the body contains an editable example):
| Field | Type | Required | Description |
|---|---|---|---|
channel_id | string | no | Default: "". |
company_project_id | string | no | Default: "". |
context_snapshot | object | no | |
last_message_at | integer | no | (Unix timestamp) Default: 0. |
memory_summary | object | no | |
metadata | object | no | |
mode | string | yes | Allowed: build, debug, ops, review, chat. Default: "chat". |
model | string | no | Default: "". |
owner_id | string | no | Default: "". |
provider | string | no | Default: "". |
sharing_scope | string | yes | Allowed: private, team. Default: "private". |
source | string | yes | Allowed: app, slack, cli. |
status | string | yes | Allowed: active, paused, blocked, complete, failed. Default: "active". |
team_id | string | yes | |
thread_id | string | no | Default: "". |
workspace_id | string | no | Default: "". |
writable_repository_id | string | no | Default: "". |
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
id | path | yes | Resource identifier from your team's API results. |
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request PUT "$ADIOS_API_URL/v1/agent_session/${ADIOS_AGENT_SESSION_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"team_id": "YOUR_TEAM_ID",
"owner_id": "YOUR_USER_ID",
"workspace_id": "YOUR_WORKSPACE_ID",
"sharing_scope": "private",
"source": "app",
"mode": "chat",
"status": "active"
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 200
AgentSession updated
Response fields
| Field | Type | Description |
|---|---|---|
agent_session_id | string | |
channel_id | string | |
company_project_id | string | |
context_snapshot | object | |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
last_message_at | integer | (Unix timestamp) |
memory_summary | object | |
metadata | object | |
mode | string | Allowed: build, debug, ops, review, chat. |
model | string | |
owner_id | string | |
provider | string | |
sharing_scope | string | Allowed: private, team. |
source | string | Allowed: app, slack, cli. |
status | string | Allowed: active, paused, blocked, complete, failed. |
team_id | string | |
thread_id | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string | |
writable_repository_id | string |
Illustrative example; not a live response:
{
"agent_session_id": "000000000000000000000000001",
"channel_id": "",
"company_project_id": "",
"context_snapshot": {},
"created_at": 1791072000,
"deleted_at": 0,
"last_message_at": 0,
"memory_summary": {},
"metadata": {},
"mode": "chat",
"model": "",
"owner_id": "",
"provider": "",
"sharing_scope": "private",
"source": "app",
"status": "active",
"team_id": "000000000000000000000000001",
"thread_id": "",
"updated_at": 1791072000,
"workspace_id": "",
"writable_repository_id": ""
}
Delete agent session
DELETE /v1/agent_session/{id}
Deletes a AgentSession
Set agent_session_id using IDs from your own API responses.
This request changes data or starts an action. Review the target and body before sending it.
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
id | path | yes | Resource identifier from your team's API results. |
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request DELETE "$ADIOS_API_URL/v1/agent_session/${ADIOS_AGENT_SESSION_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
Resource deleted.
Response fields
| Field | Type | Description |
|---|---|---|
message | string |
Illustrative example; not a live response:
{
"message": "Deleted successfully"
}
Get agent session state
GET /v1/agent_session/{id}/state
Read the session state.
Set agent_session_id using IDs from your own API responses.
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
id | path | yes | Resource identifier from your team's API results. |
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request GET "$ADIOS_API_URL/v1/agent_session/${ADIOS_AGENT_SESSION_ID}/state" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
Successful response. Inspect returned state for operations that start asynchronous work.
A complete response-body schema is not published for this custom operation. Inspect the returned content and status; no payload is assumed here.
Get agent session plan
GET /v1/agent_session/{id}/plan
Read the session's current plan.
Set agent_session_id using IDs from your own API responses.
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
id | path | yes | Resource identifier from your team's API results. |
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request GET "$ADIOS_API_URL/v1/agent_session/${ADIOS_AGENT_SESSION_ID}/plan" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
Successful response. Inspect returned state for operations that start asynchronous work.
A complete response-body schema is not published for this custom operation. Inspect the returned content and status; no payload is assumed here.
Cancel agent run
POST /v1/agent_session/{id}/runs/{run_id}/cancel
Request cancellation of an active run in the session.
Set agent_session_id, agent_run_id using IDs from your own API responses.
This request changes data or starts an action. Review the target and body before sending it.
Authentication: bearer token and the team header shown below.
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
id | path | yes | Resource identifier from your team's API results. |
run_id | path | yes | Resource identifier from your team's API results. |
X-Tenant-ID | header | yes | Active team ID. Must match the tenant bound to a diagnostic token. |
Request example
Set ADIOS_API_URL=https://api.adios.dev. For protected requests, set ADIOS_ACCESS_TOKEN and ADIOS_TEAM_ID as in the quickstart. Set any additional ADIOS_* variables from your own resource results.
curl --fail-with-body --request POST "$ADIOS_API_URL/v1/agent_session/${ADIOS_AGENT_SESSION_ID}/runs/${ADIOS_AGENT_RUN_ID}/cancel" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
Successful response. Inspect returned state for operations that start asynchronous work.
A complete response-body schema is not published for this custom operation. Inspect the returned content and status; no payload is assumed here.