Skip to content
AdiosDocumentation
Browse documentation

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.

MethodPathOperation
GET/v1/gateway_routeList gateway routes
POST/v1/gateway_routeCreate 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

NameLocationRequiredDescription
X-Tenant-IDheaderyesActive team ID. Must match the tenant bound to a diagnostic token.
pagequerynoPage number
per_pagequerynoItems 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

FieldTypeDescription
dataarray
data[].auth_policyobjectGateway user auth policy. This is app-facing auth, not API/admin auth.
data[].created_atinteger(Unix timestamp)
data[].deleted_atinteger(Unix timestamp)
data[].enabledboolean
data[].exposurestringAllowed: public, auth, private.
data[].geo_policyobjectOptional country allow/block policy
data[].hostnamestring
data[].object_bucket_idstring
data[].path_prefixstring
data[].priorityinteger
data[].rewrite_tostringOptional rewrite path applied before proxying (for example /v1)
data[].route_idstring
data[].security_policyobjectOptional route-level HTTP security override
data[].strip_prefixboolean
data[].target_kindstringAllowed: workload, workflow, url, object_storage.
data[].target_urlstringAbsolute URL used when target_kind=url
data[].team_idstring
data[].traffic_policyobjectOptional route-level regional traffic policy for gateway target selection
data[].trigger_namestring
data[].updated_atinteger(Unix timestamp)
data[].workflow_idstring
data[].workload_idstring
paginationobject
pagination.pageintegerCurrent page number
pagination.per_pageintegerNumber of items per page
pagination.totalintegerTotal 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):

FieldTypeRequiredDescription
auth_policyobjectnoGateway user auth policy. This is app-facing auth, not API/admin auth.
enabledbooleanyesDefault: true.
exposurestringyesAllowed: public, auth, private. Default: "public".
geo_policyobjectnoOptional country allow/block policy
hostnamestringyes
object_bucket_idstringno
path_prefixstringyesDefault: "/".
priorityintegeryesDefault: 0.
rewrite_tostringnoOptional rewrite path applied before proxying (for example /v1)
security_policyobjectnoOptional route-level HTTP security override
strip_prefixbooleanyesDefault: false.
target_kindstringyesAllowed: workload, workflow, url, object_storage. Default: "workload".
target_urlstringnoAbsolute URL used when target_kind=url
team_idstringyes
traffic_policyobjectnoOptional route-level regional traffic policy for gateway target selection
trigger_namestringno
workflow_idstringno
workload_idstringno

Authentication: bearer token and the team header shown below.

Parameters

NameLocationRequiredDescription
X-Tenant-IDheaderyesActive 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

FieldTypeDescription
auth_policyobjectGateway user auth policy. This is app-facing auth, not API/admin auth.
created_atinteger(Unix timestamp)
deleted_atinteger(Unix timestamp)
enabledboolean
exposurestringAllowed: public, auth, private.
geo_policyobjectOptional country allow/block policy
hostnamestring
object_bucket_idstring
path_prefixstring
priorityinteger
rewrite_tostringOptional rewrite path applied before proxying (for example /v1)
route_idstring
security_policyobjectOptional route-level HTTP security override
strip_prefixboolean
target_kindstringAllowed: workload, workflow, url, object_storage.
target_urlstringAbsolute URL used when target_kind=url
team_idstring
traffic_policyobjectOptional route-level regional traffic policy for gateway target selection
trigger_namestring
updated_atinteger(Unix timestamp)
workflow_idstring
workload_idstring

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

NameLocationRequiredDescription
idpathyesResource identifier from your team's API results.
X-Tenant-IDheaderyesActive 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

FieldTypeDescription
auth_policyobjectGateway user auth policy. This is app-facing auth, not API/admin auth.
created_atinteger(Unix timestamp)
deleted_atinteger(Unix timestamp)
enabledboolean
exposurestringAllowed: public, auth, private.
geo_policyobjectOptional country allow/block policy
hostnamestring
object_bucket_idstring
path_prefixstring
priorityinteger
rewrite_tostringOptional rewrite path applied before proxying (for example /v1)
route_idstring
security_policyobjectOptional route-level HTTP security override
strip_prefixboolean
target_kindstringAllowed: workload, workflow, url, object_storage.
target_urlstringAbsolute URL used when target_kind=url
team_idstring
traffic_policyobjectOptional route-level regional traffic policy for gateway target selection
trigger_namestring
updated_atinteger(Unix timestamp)
workflow_idstring
workload_idstring

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):

FieldTypeRequiredDescription
auth_policyobjectnoGateway user auth policy. This is app-facing auth, not API/admin auth.
enabledbooleanyesDefault: true.
exposurestringyesAllowed: public, auth, private. Default: "public".
geo_policyobjectnoOptional country allow/block policy
hostnamestringyes
object_bucket_idstringno
path_prefixstringyesDefault: "/".
priorityintegeryesDefault: 0.
rewrite_tostringnoOptional rewrite path applied before proxying (for example /v1)
security_policyobjectnoOptional route-level HTTP security override
strip_prefixbooleanyesDefault: false.
target_kindstringyesAllowed: workload, workflow, url, object_storage. Default: "workload".
target_urlstringnoAbsolute URL used when target_kind=url
team_idstringyes
traffic_policyobjectnoOptional route-level regional traffic policy for gateway target selection
trigger_namestringno
workflow_idstringno
workload_idstringno

Authentication: bearer token and the team header shown below.

Parameters

NameLocationRequiredDescription
idpathyesResource identifier from your team's API results.
X-Tenant-IDheaderyesActive 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

FieldTypeDescription
auth_policyobjectGateway user auth policy. This is app-facing auth, not API/admin auth.
created_atinteger(Unix timestamp)
deleted_atinteger(Unix timestamp)
enabledboolean
exposurestringAllowed: public, auth, private.
geo_policyobjectOptional country allow/block policy
hostnamestring
object_bucket_idstring
path_prefixstring
priorityinteger
rewrite_tostringOptional rewrite path applied before proxying (for example /v1)
route_idstring
security_policyobjectOptional route-level HTTP security override
strip_prefixboolean
target_kindstringAllowed: workload, workflow, url, object_storage.
target_urlstringAbsolute URL used when target_kind=url
team_idstring
traffic_policyobjectOptional route-level regional traffic policy for gateway target selection
trigger_namestring
updated_atinteger(Unix timestamp)
workflow_idstring
workload_idstring

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

NameLocationRequiredDescription
idpathyesResource identifier from your team's API results.
X-Tenant-IDheaderyesActive 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

FieldTypeDescription
messagestring

Illustrative example; not a live response:

{
  "message": "Deleted successfully"
}