Gateway routes API
Route a verified hostname to a workload, workflow, URL, or object bucket. Set the identifier matching target_kind.
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/gateway_route | List gateway routes |
POST | /v1/gateway_route | Create gateway route |
GET | /v1/gateway_route/{id} | Get gateway route |
PUT | /v1/gateway_route/{id} | Update gateway route |
DELETE | /v1/gateway_route/{id} | Delete gateway route |
List gateway routes
GET /v1/gateway_route
Returns a paginated list of GatewayRoute
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/gateway_route" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
List of GatewayRoute
Response fields
| Field | Type | Description |
|---|---|---|
data | array | |
data[].auth_policy | object | Gateway user auth policy. This is app-facing auth, not API/admin auth. |
data[].created_at | integer | (Unix timestamp) |
data[].deleted_at | integer | (Unix timestamp) |
data[].enabled | boolean | |
data[].exposure | string | Allowed: public, auth, private. |
data[].geo_policy | object | Optional country allow/block policy |
data[].hostname | string | |
data[].object_bucket_id | string | |
data[].path_prefix | string | |
data[].priority | integer | |
data[].rewrite_to | string | Optional rewrite path applied before proxying (for example /v1) |
data[].route_id | string | |
data[].security_policy | object | Optional route-level HTTP security override |
data[].strip_prefix | boolean | |
data[].target_kind | string | Allowed: workload, workflow, url, object_storage. |
data[].target_url | string | Absolute URL used when target_kind=url |
data[].team_id | string | |
data[].traffic_policy | object | Optional route-level regional traffic policy for gateway target selection |
data[].trigger_name | string | |
data[].updated_at | integer | (Unix timestamp) |
data[].workflow_id | string | |
data[].workload_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": [
{
"auth_policy": {},
"created_at": 1791072000,
"deleted_at": 0,
"enabled": true,
"exposure": "public",
"geo_policy": {},
"hostname": "app.example.com",
"object_bucket_id": "000000000000000000000000001",
"path_prefix": "/",
"priority": 0,
"rewrite_to": "example",
"route_id": "000000000000000000000000001",
"security_policy": {},
"strip_prefix": false,
"target_kind": "workload",
"target_url": "example",
"team_id": "000000000000000000000000001",
"traffic_policy": {},
"trigger_name": "example",
"updated_at": 1791072000,
"workflow_id": "example",
"workload_id": "000000000000000000000000001"
}
],
"pagination": {
"page": 1,
"per_page": 1,
"total": 1
}
}
Create gateway route
POST /v1/gateway_route
Creates a new GatewayRoute
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 |
|---|---|---|---|
auth_policy | object | no | Gateway user auth policy. This is app-facing auth, not API/admin auth. |
enabled | boolean | yes | Default: true. |
exposure | string | yes | Allowed: public, auth, private. Default: "public". |
geo_policy | object | no | Optional country allow/block policy |
hostname | string | yes | |
object_bucket_id | string | no | |
path_prefix | string | yes | Default: "/". |
priority | integer | yes | Default: 0. |
rewrite_to | string | no | Optional rewrite path applied before proxying (for example /v1) |
security_policy | object | no | Optional route-level HTTP security override |
strip_prefix | boolean | yes | Default: false. |
target_kind | string | yes | Allowed: workload, workflow, url, object_storage. Default: "workload". |
target_url | string | no | Absolute URL used when target_kind=url |
team_id | string | yes | |
traffic_policy | object | no | Optional route-level regional traffic policy for gateway target selection |
trigger_name | string | no | |
workflow_id | string | no | |
workload_id | string | no |
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/gateway_route" \
-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",
"hostname": "YOUR_HOSTNAME",
"path_prefix": "/",
"target_kind": "workload",
"workload_id": "YOUR_WORKLOAD_ID",
"exposure": "public",
"priority": 0,
"strip_prefix": false,
"enabled": true
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 201
GatewayRoute created
Response fields
| Field | Type | Description |
|---|---|---|
auth_policy | object | Gateway user auth policy. This is app-facing auth, not API/admin auth. |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
enabled | boolean | |
exposure | string | Allowed: public, auth, private. |
geo_policy | object | Optional country allow/block policy |
hostname | string | |
object_bucket_id | string | |
path_prefix | string | |
priority | integer | |
rewrite_to | string | Optional rewrite path applied before proxying (for example /v1) |
route_id | string | |
security_policy | object | Optional route-level HTTP security override |
strip_prefix | boolean | |
target_kind | string | Allowed: workload, workflow, url, object_storage. |
target_url | string | Absolute URL used when target_kind=url |
team_id | string | |
traffic_policy | object | Optional route-level regional traffic policy for gateway target selection |
trigger_name | string | |
updated_at | integer | (Unix timestamp) |
workflow_id | string | |
workload_id | string |
Illustrative example; not a live response:
{
"auth_policy": {},
"created_at": 1791072000,
"deleted_at": 0,
"enabled": true,
"exposure": "public",
"geo_policy": {},
"hostname": "app.example.com",
"object_bucket_id": "000000000000000000000000001",
"path_prefix": "/",
"priority": 0,
"rewrite_to": "example",
"route_id": "000000000000000000000000001",
"security_policy": {},
"strip_prefix": false,
"target_kind": "workload",
"target_url": "example",
"team_id": "000000000000000000000000001",
"traffic_policy": {},
"trigger_name": "example",
"updated_at": 1791072000,
"workflow_id": "example",
"workload_id": "000000000000000000000000001"
}
Get gateway route
GET /v1/gateway_route/{id}
Returns a single GatewayRoute
Set gateway_route_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/gateway_route/${ADIOS_GATEWAY_ROUTE_ID}" \
-H "Authorization: Bearer $ADIOS_ACCESS_TOKEN" \
-H "X-Tenant-ID: $ADIOS_TEAM_ID"
Response: HTTP 200
GatewayRoute
Response fields
| Field | Type | Description |
|---|---|---|
auth_policy | object | Gateway user auth policy. This is app-facing auth, not API/admin auth. |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
enabled | boolean | |
exposure | string | Allowed: public, auth, private. |
geo_policy | object | Optional country allow/block policy |
hostname | string | |
object_bucket_id | string | |
path_prefix | string | |
priority | integer | |
rewrite_to | string | Optional rewrite path applied before proxying (for example /v1) |
route_id | string | |
security_policy | object | Optional route-level HTTP security override |
strip_prefix | boolean | |
target_kind | string | Allowed: workload, workflow, url, object_storage. |
target_url | string | Absolute URL used when target_kind=url |
team_id | string | |
traffic_policy | object | Optional route-level regional traffic policy for gateway target selection |
trigger_name | string | |
updated_at | integer | (Unix timestamp) |
workflow_id | string | |
workload_id | string |
Illustrative example; not a live response:
{
"auth_policy": {},
"created_at": 1791072000,
"deleted_at": 0,
"enabled": true,
"exposure": "public",
"geo_policy": {},
"hostname": "app.example.com",
"object_bucket_id": "000000000000000000000000001",
"path_prefix": "/",
"priority": 0,
"rewrite_to": "example",
"route_id": "000000000000000000000000001",
"security_policy": {},
"strip_prefix": false,
"target_kind": "workload",
"target_url": "example",
"team_id": "000000000000000000000000001",
"traffic_policy": {},
"trigger_name": "example",
"updated_at": 1791072000,
"workflow_id": "example",
"workload_id": "000000000000000000000000001"
}
Update gateway route
PUT /v1/gateway_route/{id}
Updates an existing GatewayRoute
Set gateway_route_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 |
|---|---|---|---|
auth_policy | object | no | Gateway user auth policy. This is app-facing auth, not API/admin auth. |
enabled | boolean | yes | Default: true. |
exposure | string | yes | Allowed: public, auth, private. Default: "public". |
geo_policy | object | no | Optional country allow/block policy |
hostname | string | yes | |
object_bucket_id | string | no | |
path_prefix | string | yes | Default: "/". |
priority | integer | yes | Default: 0. |
rewrite_to | string | no | Optional rewrite path applied before proxying (for example /v1) |
security_policy | object | no | Optional route-level HTTP security override |
strip_prefix | boolean | yes | Default: false. |
target_kind | string | yes | Allowed: workload, workflow, url, object_storage. Default: "workload". |
target_url | string | no | Absolute URL used when target_kind=url |
team_id | string | yes | |
traffic_policy | object | no | Optional route-level regional traffic policy for gateway target selection |
trigger_name | string | no | |
workflow_id | string | no | |
workload_id | string | no |
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/gateway_route/${ADIOS_GATEWAY_ROUTE_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",
"hostname": "YOUR_HOSTNAME",
"path_prefix": "/",
"target_kind": "workload",
"workload_id": "YOUR_WORKLOAD_ID",
"exposure": "public",
"priority": 0,
"strip_prefix": false,
"enabled": true
}
JSON
Replace YOUR_* body placeholders before sending. The quoted heredoc keeps the JSON literal.
Response: HTTP 200
GatewayRoute updated
Response fields
| Field | Type | Description |
|---|---|---|
auth_policy | object | Gateway user auth policy. This is app-facing auth, not API/admin auth. |
created_at | integer | (Unix timestamp) |
deleted_at | integer | (Unix timestamp) |
enabled | boolean | |
exposure | string | Allowed: public, auth, private. |
geo_policy | object | Optional country allow/block policy |
hostname | string | |
object_bucket_id | string | |
path_prefix | string | |
priority | integer | |
rewrite_to | string | Optional rewrite path applied before proxying (for example /v1) |
route_id | string | |
security_policy | object | Optional route-level HTTP security override |
strip_prefix | boolean | |
target_kind | string | Allowed: workload, workflow, url, object_storage. |
target_url | string | Absolute URL used when target_kind=url |
team_id | string | |
traffic_policy | object | Optional route-level regional traffic policy for gateway target selection |
trigger_name | string | |
updated_at | integer | (Unix timestamp) |
workflow_id | string | |
workload_id | string |
Illustrative example; not a live response:
{
"auth_policy": {},
"created_at": 1791072000,
"deleted_at": 0,
"enabled": true,
"exposure": "public",
"geo_policy": {},
"hostname": "app.example.com",
"object_bucket_id": "000000000000000000000000001",
"path_prefix": "/",
"priority": 0,
"rewrite_to": "example",
"route_id": "000000000000000000000000001",
"security_policy": {},
"strip_prefix": false,
"target_kind": "workload",
"target_url": "example",
"team_id": "000000000000000000000000001",
"traffic_policy": {},
"trigger_name": "example",
"updated_at": 1791072000,
"workflow_id": "example",
"workload_id": "000000000000000000000000001"
}
Delete gateway route
DELETE /v1/gateway_route/{id}
Deletes a GatewayRoute
Set gateway_route_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/gateway_route/${ADIOS_GATEWAY_ROUTE_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"
}