/api/v2/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.
read:networkread:vm
Authenticate with an API key in the Authorization: Bearer <token> header.
Authorization Bearer <token> Accept application/json available boolean
· Example: true reason string · nullable
· 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 string · nullable required
· Example: 2026-06-15T12:00:00.000Z Nullable: may be null when not applicable.
pools[].updatedAt string · nullable required
· Example: 2026-06-15T12:00:00.000Z Nullable: may be null when not applicable.
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 string · nullable required
· Example: web subnet Nullable: may be null when not applicable.
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 string · nullable required
· Example: 2026-06-15T12:01:00.000Z Nullable: may be null when not applicable.
pools[].routes[].updatedAt string · nullable required
· Example: 2026-06-15T12:01:00.000Z Nullable: may be null when not applicable.
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 string · nullable required
· Example: null Nullable: may be null when not applicable.
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 string · nullable required
· Example: null Nullable: may be null when not applicable.
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 string · nullable required
· Example: null Nullable: may be null when not applicable.
destinations array<object> destinations[].vpsId string required
· Example: vps_01hxa3b4c5d6e7f8g9h0j1k2m5 destinations[].name string required
· Example: web-01 destinations[].hostname string · nullable required
· Example: web-01.example.com Configured VPS hostname when one is set. Use name as the display fallback when this is null.
destinations[].primaryIp string · nullable required
· Example: 192.0.2.10 Nullable: may be null when not applicable.
destinations[].nextHop string · nullable required
· Example: 2001:db8::10 Nullable: may be null when not applicable.
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 string · nullable required
· Example: null Nullable: may be null when not applicable.
actions object actions.canAllocatePool object required Whether one routed IPv6 action is currently available.
actions.canAllocatePool.allowed boolean required
· Example: true actions.canAllocatePool.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canCreateRoute object required Whether one routed IPv6 action is currently available.
actions.canCreateRoute.allowed boolean required
· Example: true actions.canCreateRoute.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
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 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 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 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 Retry-After seconds plus X-RateLimit-* headers. 10 fields 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 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 https://cloud.hostup.se/api/v2/routed-ipv6 curl -X GET "https://cloud.hostup.se/api/v2/routed-ipv6" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" {
"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",
"hostname": "web-01.example.com",
"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
}
}
}