List account routed IPv6

Returns the account-level routed IPv6 state: allocated /48 pools, active routed subnets, eligible VPS destinations, allowed route prefix lengths, and action gates. Self-service allocation is available only when the account has no routed /48 yet; migrated accounts may still show more than one pool. Consumers should use actions and destination actions.canReceiveRoute instead of inferring readiness from VPS fields.

VPS Services VM

Authentication

Required API scopes: read:networkread:vm

Use Authorization: Bearer <token> for API keys. Dashboard sessions may also use hostup_session.

Context

Headers

Accept Example
Content-Type Example

Responses

200 Account routed IPv6 state.
available boolean · Example: true
reason stringnull · Example: null
allowedPrefixLengths array<integer> · Example: [48,56,64]
pools array<object>
pools[].id string required · Example: ripv6_01hxa3b4c5d6e7f8g9h0j1k2m3
pools[].parentCidr string required · Example: 2001:db8:1000::/48
pools[].prefixLength integer · enum required · Example: 48
48
pools[].status string · enum required · Example: active
active
pools[].allocatedAt stringnull required · Example: 2026-06-15T12:00:00.000Z
pools[].updatedAt stringnull required · Example: 2026-06-15T12:00:00.000Z
pools[].routes array<object> required
pools[].routes[].id string required · Example: ripv6rt_01hxa3b4c5d6e7f8g9h0j1k2m4
pools[].routes[].prefix string required · Example: 2001:db8:1000:10::/64
pools[].routes[].prefixLength integer · enum required · Example: 64
48
56
64
pools[].routes[].nextHop string required · Example: 2001:db8::10
pools[].routes[].label stringnull required · Example: web subnet
pools[].routes[].vpsId string required · Example: vps_01hxa3b4c5d6e7f8g9h0j1k2m5
pools[].routes[].vpsName string required · Example: web-01
pools[].routes[].status string · enum required · Example: active
active
pools[].routes[].allocatedAt stringnull required · Example: 2026-06-15T12:01:00.000Z
pools[].routes[].updatedAt stringnull required · Example: 2026-06-15T12:01:00.000Z
pools[].routes[].actions object required
pools[].routes[].actions.canDelete object required

Whether one routed IPv6 action is currently available.

pools[].routes[].actions.canDelete.allowed boolean required · Example: true
pools[].routes[].actions.canDelete.reason stringnull required · Example: null
pools[].actions object required
pools[].actions.canCreateRoute object required

Whether one routed IPv6 action is currently available.

pools[].actions.canCreateRoute.allowed boolean required · Example: true
pools[].actions.canCreateRoute.reason stringnull required · Example: null
pools[].actions.canRelease object required

Whether one routed IPv6 action is currently available.

pools[].actions.canRelease.allowed boolean required · Example: true
pools[].actions.canRelease.reason stringnull required · Example: null
destinations array<object>
destinations[].vpsId string required · Example: vps_01hxa3b4c5d6e7f8g9h0j1k2m5
destinations[].name string required · Example: web-01
destinations[].primaryIp stringnull required · Example: 192.0.2.10
destinations[].nextHop stringnull required · Example: 2001:db8::10
destinations[].serviceStatus string required · Example: active
destinations[].actions object required
destinations[].actions.canReceiveRoute object required

Whether one routed IPv6 action is currently available.

destinations[].actions.canReceiveRoute.allowed boolean required · Example: true
destinations[].actions.canReceiveRoute.reason stringnull required · Example: null
actions object
actions.canAllocatePool object required

Whether one routed IPv6 action is currently available.

actions.canAllocatePool.allowed boolean required · Example: true
actions.canAllocatePool.reason stringnull required · Example: null
actions.canCreateRoute object required

Whether one routed IPv6 action is currently available.

actions.canCreateRoute.allowed boolean required · Example: true
actions.canCreateRoute.reason stringnull required · Example: null
400 Invalid request. The response body is an RFC 7807 Problem Details document.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
401 Unauthorized. Authentication is required.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
403 Forbidden. The caller lacks a required scope or does not own the resource.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
404 Not found. The resource does not exist or is not owned by the caller.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
429 Rate limited. Retry after the limit resets. 429 responses include `Retry-After` seconds plus `X-RateLimit-*` headers.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
500 Internal error. Retry later or contact support if the issue persists.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on `detail`.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when `code` is `invalid_request`.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
GET https://cloud.hostup.se/api/v2/routed-ipv6
For AI assistants
View as Markdown
cURL
curl -X GET "https://cloud.hostup.se/api/v2/routed-ipv6" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Response
{
  "available": true,
  "reason": null,
  "allowedPrefixLengths": [
    48,
    56,
    64
  ],
  "pools": [
    {
      "id": "ripv6_01hxa3b4c5d6e7f8g9h0j1k2m3",
      "parentCidr": "2001:db8:1000::/48",
      "prefixLength": 48,
      "status": "active",
      "allocatedAt": "2026-06-15T12:00:00.000Z",
      "updatedAt": "2026-06-15T12:00:00.000Z",
      "routes": [
        {
          "id": "ripv6rt_01hxa3b4c5d6e7f8g9h0j1k2m4",
          "prefix": "2001:db8:1000:10::/64",
          "prefixLength": 64,
          "nextHop": "2001:db8::10",
          "label": "web subnet",
          "vpsId": "vps_01hxa3b4c5d6e7f8g9h0j1k2m5",
          "vpsName": "web-01",
          "status": "active",
          "allocatedAt": "2026-06-15T12:01:00.000Z",
          "updatedAt": "2026-06-15T12:01:00.000Z",
          "actions": {
            "canDelete": {
              "allowed": true,
              "reason": null
            }
          }
        }
      ],
      "actions": {
        "canCreateRoute": {
          "allowed": true,
          "reason": null
        },
        "canRelease": {
          "allowed": false,
          "reason": "Remove routed subnets before releasing this /48."
        }
      }
    }
  ],
  "destinations": [
    {
      "vpsId": "vps_01hxa3b4c5d6e7f8g9h0j1k2m5",
      "name": "web-01",
      "primaryIp": "192.0.2.10",
      "nextHop": "2001:db8::10",
      "serviceStatus": "active",
      "actions": {
        "canReceiveRoute": {
          "allowed": true,
          "reason": null
        }
      }
    }
  ],
  "actions": {
    "canAllocatePool": {
      "allowed": false,
      "reason": "This account already has a routed /48."
    },
    "canCreateRoute": {
      "allowed": true,
      "reason": null
    }
  }
}