API Documentation

Networking and upgrades

Inventory facilities and ports, request in-place upgrades, manage cloud circuits and cross-connects, and submit orders that become binding when signed.

Auth and errors. All calls require a bearer token. Missing or invalid credentials return HTTP 401 with {"error":"unauthorized","message":"Missing or invalid Authorization header."}. See the overview.

Facilities

Returns the facilities where capacity can be delivered, with their codes and the service types available at each.

GET /v1/facilities
{
  "data": [
    {
      "code": "LON",
      "city": "London",
      "country": "GB",
      "market": "LON",
      "region": "europe",
      "services": ["transit", "cloud_networking", "ai_infrastructure"],
      "max_port_speed_gbps": 400
    }
  ],
  "meta": { "count": 27 }
}

Ports and services

Lists the ports provisioned to your account, with their commitment and current state.

GET /v1/ports
GET /v1/ports/prt_8f2c1a94
{
  "data": [
    {
      "id": "prt_8f2c1a94",
      "facility": "LON",
      "speed_gbps": 10,
      "state": "active",
      "billing_model": "committed",
      "commit_mbps": 2000,
      "burst_permitted": true,
      "lacp_members": 2,
      "mtu": 9000,
      "activated_at": "YYYY-MM-DDTHH:MM:SSZ"
    }
  ]
}

state is one of pending, provisioning, active, upgrading, suspended, or terminated.

Port upgrades

Request a speed upgrade. The API validates availability and returns a quote reference; the change becomes binding when the resulting service order is signed (same model as new orders).

POST /v1/ports/prt_8f2c1a94/upgrades
Content-Type: application/json
Idempotency-Key: 5c9d2f31-1b47-4a1e-9f2a-0d7c9e4b6a83

{
  "target_speed_gbps": 100,
  "notes": "Cutover during next maintenance window if required"
}
{
  "data": {
    "id": "upg_1a9e4c70",
    "port_id": "prt_8f2c1a94",
    "from_speed_gbps": 10,
    "to_speed_gbps": 100,
    "state": "quoting",
    "quote_reference": "Q-YYYY-05102",
    "created_at": "YYYY-MM-DDTHH:MM:SSZ"
  }
}

Commit changes

Adjust committed bandwidth within the terms of the existing contract. Increases that require a new commercial term may be returned as a quote rather than applied immediately.

PATCH /v1/ports/prt_8f2c1a94
Content-Type: application/json
Idempotency-Key: 8e1b0c44-2d9a-4f16-a7c3-9b5e1d0f6a22

{
  "commit_mbps": 5000
}
{
  "data": {
    "id": "prt_8f2c1a94",
    "commit_mbps": 5000,
    "state": "active",
    "updated_at": "YYYY-MM-DDTHH:MM:SSZ"
  }
}

Virtual circuits

Cloud on-ramps and L2/L3 overlays. Create a circuit request the same way as an order: availability is validated and a quote reference is returned.

GET /v1/circuits
POST /v1/circuits
POST /v1/circuits
Content-Type: application/json
Idempotency-Key: c0f4a812-9b3e-4d71-8e2a-1f6d5c9b0a33

{
  "facility": "IAD",
  "provider": "aws",
  "bandwidth_mbps": 10000,
  "vlan": 1204,
  "cloud_account": "123456789012",
  "notes": "Primary path for us-east-1"
}
{
  "data": {
    "id": "cir_7b2e91a4",
    "state": "quoting",
    "quote_reference": "Q-YYYY-05118",
    "facility": "IAD",
    "provider": "aws",
    "bandwidth_mbps": 10000,
    "created_at": "YYYY-MM-DDTHH:MM:SSZ"
  }
}

Cross-connects

GET /v1/cross-connects
{
  "data": [
    {
      "id": "xcon_3d91a8e0",
      "facility": "LON",
      "port_id": "prt_8f2c1a94",
      "state": "active",
      "media": "LR4",
      "remote_party": "Customer cage A-12"
    }
  ]
}

New cross-connects are requested via orders with service: "cross_connect", not as a free-form create on this collection.

Placing an order

An order created through the API is a request, not an executed contract. We validate availability and respond with a quote reference; the order becomes binding when the resulting service order is signed.

POST /v1/orders
Content-Type: application/json
Idempotency-Key: 5c9d2f31-1b47-4a1e-9f2a-0d7c9e4b6a83

{
  "service": "transit",
  "facility": "FRA",
  "port_speed_gbps": 100,
  "commit_mbps": 20000,
  "billing_model": "committed",
  "mtu": 9000,
  "term_months": 24,
  "prefixes": ["192.0.2.0/24", "2001:db8::/32"],
  "notes": "Diverse path to existing LON port if available"
}
{
  "data": {
    "id": "ord_3d7b0e52",
    "state": "quoting",
    "quote_reference": "Q-YYYY-04871",
    "estimated_delivery": "YYYY-MM-DD",
    "created_at": "YYYY-MM-DDTHH:MM:SSZ"
  }
}

service may be transit, cloud_networking, ai_infrastructure, or cross_connect. Always send an Idempotency-Key on POST. Repeating a request with the same key returns the original response rather than creating a second order.

Webhook events

  • order.state_changed
  • port.state_changed
  • port.upgrade_completed
  • circuit.state_changed

Signature verification and delivery semantics are described in the overview.

Need API access for ports and orders?

Tell us which facilities and products you want to automate and we will issue credentials scoped to them.