Feature planning API
Manage feature trees, nodes, and assignments. Use related IDs from your own workspace.
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/feature_tree | List feature trees |
POST | /v1/feature_tree | Create feature tree |
GET | /v1/feature_tree/{id} | Get feature tree |
PUT | /v1/feature_tree/{id} | Update feature tree |
DELETE | /v1/feature_tree/{id} | Delete feature tree |
GET | /v1/feature_node | List feature nodes |
POST | /v1/feature_node | Create feature node |
GET | /v1/feature_node/{id} | Get feature node |
PUT | /v1/feature_node/{id} | Update feature node |
DELETE | /v1/feature_node/{id} | Delete feature node |
GET | /v1/feature_assignment | List feature assignments |
POST | /v1/feature_assignment | Create feature assignment |
GET | /v1/feature_assignment/{id} | Get feature assignment |
PUT | /v1/feature_assignment/{id} | Update feature assignment |
DELETE | /v1/feature_assignment/{id} | Delete feature assignment |
List feature trees
GET /v1/feature_tree
Returns a paginated list of FeatureTree
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/feature_tree" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
List of FeatureTree
Response fields
| Field | Type | Description |
|---|---|---|
data | array | |
data[].created_at | integer | (Unix timestamp) |
data[].deleted_at | integer | (Unix timestamp) |
data[].feature_tree_id | string | |
data[].metadata | object | |
data[].status | string | Allowed: active, archived, deleted. |
data[].team_id | string | |
data[].title | string | |
data[].updated_at | integer | (Unix timestamp) |
data[].workload_id | string | |
data[].workspace_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": [
{
"created_at": 1791072000,
"deleted_at": 0,
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"status": "active",
"team_id": "000000000000000000000000001",
"title": "Feature tree",
"updated_at": 1791072000,
"workload_id": "",
"workspace_id": "000000000000000000000000001"
}
],
"pagination": {
"page": 1,
"per_page": 1,
"total": 1
}
}
Create feature tree
POST /v1/feature_tree
Creates a new FeatureTree
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 |
|---|---|---|---|
metadata | object | no | |
status | string | yes | Allowed: active, archived, deleted. Default: "active". |
team_id | string | yes | |
title | string | yes | Default: "Feature tree". |
workload_id | string | no | Default: "". |
workspace_id | string | yes |
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/feature_tree" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"status": "active",
"team_id": "YOUR_TEAM_ID",
"title": "Feature tree",
"workload_id": "",
"workspace_id": "YOUR_WORKSPACE_ID"
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 201
FeatureTree created
Response fields
| Field | Type | Description |
|---|---|---|
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
feature_tree_id | string | |
metadata | object | |
status | string | Allowed: active, archived, deleted. |
team_id | string | |
title | string | |
updated_at | integer | (Unix timestamp) |
workload_id | string | |
workspace_id | string |
Illustrative example; not a live response:
{
"created_at": 1791072000,
"deleted_at": 0,
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"status": "active",
"team_id": "000000000000000000000000001",
"title": "Feature tree",
"updated_at": 1791072000,
"workload_id": "",
"workspace_id": "000000000000000000000000001"
}
Get feature tree
GET /v1/feature_tree/{id}
Returns a single FeatureTree
Set feature_tree_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/feature_tree/${ADIOS_FEATURE_TREE_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
FeatureTree
Response fields
| Field | Type | Description |
|---|---|---|
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
feature_tree_id | string | |
metadata | object | |
status | string | Allowed: active, archived, deleted. |
team_id | string | |
title | string | |
updated_at | integer | (Unix timestamp) |
workload_id | string | |
workspace_id | string |
Illustrative example; not a live response:
{
"created_at": 1791072000,
"deleted_at": 0,
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"status": "active",
"team_id": "000000000000000000000000001",
"title": "Feature tree",
"updated_at": 1791072000,
"workload_id": "",
"workspace_id": "000000000000000000000000001"
}
Update feature tree
PUT /v1/feature_tree/{id}
Updates an existing FeatureTree
Set feature_tree_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 |
|---|---|---|---|
metadata | object | no | |
status | string | yes | Allowed: active, archived, deleted. Default: "active". |
team_id | string | yes | |
title | string | yes | Default: "Feature tree". |
workload_id | string | no | Default: "". |
workspace_id | string | yes |
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/feature_tree/${ADIOS_FEATURE_TREE_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"status": "active",
"team_id": "YOUR_TEAM_ID",
"title": "Feature tree",
"workload_id": "",
"workspace_id": "YOUR_WORKSPACE_ID"
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 200
FeatureTree updated
Response fields
| Field | Type | Description |
|---|---|---|
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
feature_tree_id | string | |
metadata | object | |
status | string | Allowed: active, archived, deleted. |
team_id | string | |
title | string | |
updated_at | integer | (Unix timestamp) |
workload_id | string | |
workspace_id | string |
Illustrative example; not a live response:
{
"created_at": 1791072000,
"deleted_at": 0,
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"status": "active",
"team_id": "000000000000000000000000001",
"title": "Feature tree",
"updated_at": 1791072000,
"workload_id": "",
"workspace_id": "000000000000000000000000001"
}
Delete feature tree
DELETE /v1/feature_tree/{id}
Deletes a FeatureTree
Set feature_tree_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/feature_tree/${ADIOS_FEATURE_TREE_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"
}
List feature nodes
GET /v1/feature_node
Returns a paginated list of FeatureNode
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/feature_node" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
List of FeatureNode
Response fields
| Field | Type | Description |
|---|---|---|
data | array | |
data[].category | string | Allowed: auth, bill, billing, security, complex, complexity, refactor, ops, ui, other. |
data[].complexity | string | Allowed: low, medium, high, complex. |
data[].created_at | integer | (Unix timestamp) |
data[].deleted_at | integer | (Unix timestamp) |
data[].description | object | |
data[].feature_node_id | string | |
data[].feature_tree_id | string | |
data[].metadata | object | |
data[].parent_feature_node_id | string | |
data[].position | integer | |
data[].status | string | Allowed: pending, running, blocked, complete, failed, skipped. |
data[].team_id | string | |
data[].title | string | |
data[].updated_at | integer | (Unix timestamp) |
data[].workspace_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": [
{
"category": "other",
"complexity": "medium",
"created_at": 1791072000,
"deleted_at": 0,
"description": "",
"feature_node_id": "000000000000000000000000001",
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"parent_feature_node_id": "",
"position": 0,
"status": "pending",
"team_id": "000000000000000000000000001",
"title": "Postman example",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001"
}
],
"pagination": {
"page": 1,
"per_page": 1,
"total": 1
}
}
Create feature node
POST /v1/feature_node
Creates a new FeatureNode
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 |
|---|---|---|---|
category | string | yes | Allowed: auth, bill, billing, security, complex, complexity, refactor, ops, ui, other. Default: "other". |
complexity | string | yes | Allowed: low, medium, high, complex. Default: "medium". |
description | object | no | Default: "". |
feature_tree_id | string | yes | |
metadata | object | no | |
parent_feature_node_id | string | no | Default: "". |
position | integer | no | Default: 0. |
status | string | yes | Allowed: pending, running, blocked, complete, failed, skipped. Default: "pending". |
team_id | string | yes | |
title | string | yes | |
workspace_id | string | yes |
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/feature_node" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"category": "other",
"complexity": "medium",
"description": "",
"feature_tree_id": "YOUR_FEATURE_TREE_ID",
"parent_feature_node_id": "",
"position": 0,
"status": "pending",
"team_id": "YOUR_TEAM_ID",
"title": "Postman example",
"workspace_id": "YOUR_WORKSPACE_ID"
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 201
FeatureNode created
Response fields
| Field | Type | Description |
|---|---|---|
category | string | Allowed: auth, bill, billing, security, complex, complexity, refactor, ops, ui, other. |
complexity | string | Allowed: low, medium, high, complex. |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
description | object | |
feature_node_id | string | |
feature_tree_id | string | |
metadata | object | |
parent_feature_node_id | string | |
position | integer | |
status | string | Allowed: pending, running, blocked, complete, failed, skipped. |
team_id | string | |
title | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string |
Illustrative example; not a live response:
{
"category": "other",
"complexity": "medium",
"created_at": 1791072000,
"deleted_at": 0,
"description": "",
"feature_node_id": "000000000000000000000000001",
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"parent_feature_node_id": "",
"position": 0,
"status": "pending",
"team_id": "000000000000000000000000001",
"title": "Postman example",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001"
}
Get feature node
GET /v1/feature_node/{id}
Returns a single FeatureNode
Set feature_node_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/feature_node/${ADIOS_FEATURE_NODE_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
FeatureNode
Response fields
| Field | Type | Description |
|---|---|---|
category | string | Allowed: auth, bill, billing, security, complex, complexity, refactor, ops, ui, other. |
complexity | string | Allowed: low, medium, high, complex. |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
description | object | |
feature_node_id | string | |
feature_tree_id | string | |
metadata | object | |
parent_feature_node_id | string | |
position | integer | |
status | string | Allowed: pending, running, blocked, complete, failed, skipped. |
team_id | string | |
title | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string |
Illustrative example; not a live response:
{
"category": "other",
"complexity": "medium",
"created_at": 1791072000,
"deleted_at": 0,
"description": "",
"feature_node_id": "000000000000000000000000001",
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"parent_feature_node_id": "",
"position": 0,
"status": "pending",
"team_id": "000000000000000000000000001",
"title": "Postman example",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001"
}
Update feature node
PUT /v1/feature_node/{id}
Updates an existing FeatureNode
Set feature_node_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 |
|---|---|---|---|
category | string | yes | Allowed: auth, bill, billing, security, complex, complexity, refactor, ops, ui, other. Default: "other". |
complexity | string | yes | Allowed: low, medium, high, complex. Default: "medium". |
description | object | no | Default: "". |
feature_tree_id | string | yes | |
metadata | object | no | |
parent_feature_node_id | string | no | Default: "". |
position | integer | no | Default: 0. |
status | string | yes | Allowed: pending, running, blocked, complete, failed, skipped. Default: "pending". |
team_id | string | yes | |
title | string | yes | |
workspace_id | string | yes |
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/feature_node/${ADIOS_FEATURE_NODE_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"category": "other",
"complexity": "medium",
"description": "",
"feature_tree_id": "YOUR_FEATURE_TREE_ID",
"parent_feature_node_id": "",
"position": 0,
"status": "pending",
"team_id": "YOUR_TEAM_ID",
"title": "Postman example",
"workspace_id": "YOUR_WORKSPACE_ID"
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 200
FeatureNode updated
Response fields
| Field | Type | Description |
|---|---|---|
category | string | Allowed: auth, bill, billing, security, complex, complexity, refactor, ops, ui, other. |
complexity | string | Allowed: low, medium, high, complex. |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
description | object | |
feature_node_id | string | |
feature_tree_id | string | |
metadata | object | |
parent_feature_node_id | string | |
position | integer | |
status | string | Allowed: pending, running, blocked, complete, failed, skipped. |
team_id | string | |
title | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string |
Illustrative example; not a live response:
{
"category": "other",
"complexity": "medium",
"created_at": 1791072000,
"deleted_at": 0,
"description": "",
"feature_node_id": "000000000000000000000000001",
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"parent_feature_node_id": "",
"position": 0,
"status": "pending",
"team_id": "000000000000000000000000001",
"title": "Postman example",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001"
}
Delete feature node
DELETE /v1/feature_node/{id}
Deletes a FeatureNode
Set feature_node_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/feature_node/${ADIOS_FEATURE_NODE_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"
}
List feature assignments
GET /v1/feature_assignment
Returns a paginated list of FeatureAssignment
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/feature_assignment" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
List of FeatureAssignment
Response fields
| Field | Type | Description |
|---|---|---|
data | array | |
data[].agent_plan_id | string | |
data[].agent_session_id | string | |
data[].branch | string | |
data[].created_at | integer | (Unix timestamp) |
data[].deleted_at | integer | (Unix timestamp) |
data[].feature_assignment_id | string | |
data[].feature_tree_id | string | |
data[].metadata | object | |
data[].selected_node_ids | object | |
data[].status | string | Allowed: queued, running, blocked, complete, failed, cancelled. |
data[].target_type | string | Allowed: new_workspace, existing_workspace, git_branch. |
data[].target_workspace_id | string | |
data[].team_id | string | |
data[].title | string | |
data[].updated_at | integer | (Unix timestamp) |
data[].workspace_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_plan_id": "",
"agent_session_id": "",
"branch": "",
"created_at": 1791072000,
"deleted_at": 0,
"feature_assignment_id": "000000000000000000000000001",
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"selected_node_ids": {},
"status": "queued",
"target_type": "new_workspace",
"target_workspace_id": "",
"team_id": "000000000000000000000000001",
"title": "Feature assignment",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001"
}
],
"pagination": {
"page": 1,
"per_page": 1,
"total": 1
}
}
Create feature assignment
POST /v1/feature_assignment
Creates a new FeatureAssignment
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 |
|---|---|---|---|
agent_plan_id | string | no | Default: "". |
agent_session_id | string | no | Default: "". |
branch | string | no | Default: "". |
feature_tree_id | string | yes | |
metadata | object | no | |
selected_node_ids | object | no | |
status | string | yes | Allowed: queued, running, blocked, complete, failed, cancelled. Default: "queued". |
target_type | string | yes | Allowed: new_workspace, existing_workspace, git_branch. Default: "new_workspace". |
target_workspace_id | string | no | Default: "". |
team_id | string | yes | |
title | string | yes | Default: "Feature assignment". |
workspace_id | string | yes |
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/feature_assignment" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"agent_plan_id": "",
"agent_session_id": "",
"branch": "",
"feature_tree_id": "YOUR_FEATURE_TREE_ID",
"status": "queued",
"target_type": "new_workspace",
"target_workspace_id": "",
"team_id": "YOUR_TEAM_ID",
"title": "Feature assignment",
"workspace_id": "YOUR_WORKSPACE_ID"
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 201
FeatureAssignment created
Response fields
| Field | Type | Description |
|---|---|---|
agent_plan_id | string | |
agent_session_id | string | |
branch | string | |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
feature_assignment_id | string | |
feature_tree_id | string | |
metadata | object | |
selected_node_ids | object | |
status | string | Allowed: queued, running, blocked, complete, failed, cancelled. |
target_type | string | Allowed: new_workspace, existing_workspace, git_branch. |
target_workspace_id | string | |
team_id | string | |
title | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string |
Illustrative example; not a live response:
{
"agent_plan_id": "",
"agent_session_id": "",
"branch": "",
"created_at": 1791072000,
"deleted_at": 0,
"feature_assignment_id": "000000000000000000000000001",
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"selected_node_ids": {},
"status": "queued",
"target_type": "new_workspace",
"target_workspace_id": "",
"team_id": "000000000000000000000000001",
"title": "Feature assignment",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001"
}
Get feature assignment
GET /v1/feature_assignment/{id}
Returns a single FeatureAssignment
Set feature_assignment_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/feature_assignment/${ADIOS_FEATURE_ASSIGNMENT_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
FeatureAssignment
Response fields
| Field | Type | Description |
|---|---|---|
agent_plan_id | string | |
agent_session_id | string | |
branch | string | |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
feature_assignment_id | string | |
feature_tree_id | string | |
metadata | object | |
selected_node_ids | object | |
status | string | Allowed: queued, running, blocked, complete, failed, cancelled. |
target_type | string | Allowed: new_workspace, existing_workspace, git_branch. |
target_workspace_id | string | |
team_id | string | |
title | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string |
Illustrative example; not a live response:
{
"agent_plan_id": "",
"agent_session_id": "",
"branch": "",
"created_at": 1791072000,
"deleted_at": 0,
"feature_assignment_id": "000000000000000000000000001",
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"selected_node_ids": {},
"status": "queued",
"target_type": "new_workspace",
"target_workspace_id": "",
"team_id": "000000000000000000000000001",
"title": "Feature assignment",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001"
}
Update feature assignment
PUT /v1/feature_assignment/{id}
Updates an existing FeatureAssignment
Set feature_assignment_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 |
|---|---|---|---|
agent_plan_id | string | no | Default: "". |
agent_session_id | string | no | Default: "". |
branch | string | no | Default: "". |
feature_tree_id | string | yes | |
metadata | object | no | |
selected_node_ids | object | no | |
status | string | yes | Allowed: queued, running, blocked, complete, failed, cancelled. Default: "queued". |
target_type | string | yes | Allowed: new_workspace, existing_workspace, git_branch. Default: "new_workspace". |
target_workspace_id | string | no | Default: "". |
team_id | string | yes | |
title | string | yes | Default: "Feature assignment". |
workspace_id | string | yes |
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/feature_assignment/${ADIOS_FEATURE_ASSIGNMENT_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"agent_plan_id": "",
"agent_session_id": "",
"branch": "",
"feature_tree_id": "YOUR_FEATURE_TREE_ID",
"status": "queued",
"target_type": "new_workspace",
"target_workspace_id": "",
"team_id": "YOUR_TEAM_ID",
"title": "Feature assignment",
"workspace_id": "YOUR_WORKSPACE_ID"
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 200
FeatureAssignment updated
Response fields
| Field | Type | Description |
|---|---|---|
agent_plan_id | string | |
agent_session_id | string | |
branch | string | |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
feature_assignment_id | string | |
feature_tree_id | string | |
metadata | object | |
selected_node_ids | object | |
status | string | Allowed: queued, running, blocked, complete, failed, cancelled. |
target_type | string | Allowed: new_workspace, existing_workspace, git_branch. |
target_workspace_id | string | |
team_id | string | |
title | string | |
updated_at | integer | (Unix timestamp) |
workspace_id | string |
Illustrative example; not a live response:
{
"agent_plan_id": "",
"agent_session_id": "",
"branch": "",
"created_at": 1791072000,
"deleted_at": 0,
"feature_assignment_id": "000000000000000000000000001",
"feature_tree_id": "000000000000000000000000001",
"metadata": {},
"selected_node_ids": {},
"status": "queued",
"target_type": "new_workspace",
"target_workspace_id": "",
"team_id": "000000000000000000000000001",
"title": "Feature assignment",
"updated_at": 1791072000,
"workspace_id": "000000000000000000000000001"
}
Delete feature assignment
DELETE /v1/feature_assignment/{id}
Deletes a FeatureAssignment
Set feature_assignment_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/feature_assignment/${ADIOS_FEATURE_ASSIGNMENT_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"
}