Skip to main content
POST
/
v1beta1
/
networking
/
vpcs
Create VPC
curl --request POST \
  --url https://api.coreweave.com/v1beta1/networking/vpcs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "zone": "<string>",
  "vpcPrefixes": [
    {
      "name": "<string>",
      "value": "<string>"
    }
  ],
  "hostPrefix": "<string>",
  "hostPrefixes": [
    {
      "name": "<string>",
      "prefixes": [
        "<string>"
      ],
      "type": "PRIMARY"
    }
  ],
  "ingress": {
    "disablePublicServices": true
  },
  "egress": {
    "disablePublicAccess": true
  },
  "dhcp": {
    "dns": {
      "servers": [
        "<string>"
      ]
    }
  }
}
'
{
  "vpc": {
    "name": "<string>",
    "zone": "<string>",
    "id": "<string>",
    "vpcPrefixes": [
      {
        "name": "<string>",
        "value": "<string>",
        "createdAt": "2023-11-07T05:31:56Z",
        "updatedAt": "2023-11-07T05:31:56Z",
        "status": "STATUS_AVAILABLE"
      }
    ],
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "hostPrefix": "<string>",
    "hostPrefixes": [
      {
        "name": "<string>",
        "prefixes": [
          "<string>"
        ],
        "type": "PRIMARY",
        "ipam": {
          "prefixLength": 123,
          "gatewayAddressPolicy": "EUI64"
        }
      }
    ],
    "ingress": {
      "disablePublicServices": true
    },
    "egress": {
      "disablePublicAccess": true
    },
    "dhcp": {
      "dns": {
        "servers": [
          "<string>"
        ]
      }
    },
    "status": "STATUS_CREATING"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt

Use this file to discover all available pages before exploring further.

Supply the VPC configuration as a JSON object in the request body. The hostPrefix and hostPrefixes fields are mutually exclusive; if neither is set, the server applies a Zone-specific default.
Example request
curl -X POST https://api.coreweave.com/v1beta1/networking/vpcs \
       -H "Content-Type: application/json" \
       -H "Authorization: Bearer {API_ACCESS_TOKEN}" \
       -d @data.json

About the Host Prefix type field

The type field on a Host Prefix controls network connectivity from the prefix to the host. Values are uppercase: PRIMARY, ROUTED, or ATTACHED.
  • PRIMARY is the main IP range used for Node addresses in a VPC. Each VPC must have exactly one PRIMARY host prefix. It supports IPv4 and IPv6; for a dual-stack VPC, both address families must be configured on the same Host Prefix. When you create a VPC without overriding this range, CoreWeave automatically applies the default host prefix for the selected Zone.
  • ROUTED is an additional (secondary) host prefix that the VPC routes to the host. It supports one address family per prefix; for dual-stack, each family must be a separate Host Prefix. Any number of ROUTED prefixes are supported. From the host’s perspective, this network is Layer 3-adjacent to the DPU or underlying network fabric. ROUTED prefixes are typically used for advanced container or tenant networks, where per-Node sub-prefixes are allocated and advertised separately from the PRIMARY Node addresses.
  • ATTACHED represents an IP range that behaves like a Layer 2 network segment spanning the host and the DPU. It supports one address family per prefix. Any number of ATTACHED prefixes are supported. Workloads see it as a directly connected segment, with gateway behavior controlled by the prefix’s IP address management policy.
You most likely only need the default PRIMARY host prefix that the Cloud Console configures automatically. Additional ROUTED or ATTACHED host prefixes are used for specialized workloads and are configured through the VPC API or Terraform provider, not directly in the Cloud Console.

About the IPAM gatewayAddressPolicy field

The gatewayAddressPolicy on the ipam object describes which IP address from the prefix is allocated to the network gateway. Values are uppercase:
  • EUI64: The gateway IP is generated using the IPv6 EUI-64 (Extended Unique Identifier) scheme. Only valid when all prefixes are IPv6. The host must accept IPv6 Router Advertisements to learn the gateway’s address; the generated address is not returned by any other API.
  • FIRST_IP: The first IP address in the prefix is the gateway.
  • LAST_IP: The last IP address in the prefix is the gateway.

Authorizations

Authorization
string
header
default:{API_ACCESS_TOKEN}
required

CoreWeave API access token sent as a bearer token.

Body

application/json
name
string
required

The name of the VPC. Must not be longer than 30 characters.

zone
string
required

The Availability Zone in which the VPC is located.

vpcPrefixes
object[]

An array of additional prefixes associated with the VPC. Must be given in CIDR notation. For example, CKS clusters use these prefixes for Pod and service CIDR ranges.

hostPrefix
string
deprecated

Deprecated: use hostPrefixes instead. A single IPv4 CIDR range used to allocate host addresses when booting compute into a VPC. Must meet the Availability Zone's minimum mask size (typically /18 or larger). If unspecified, a Zone-specific default is applied. Mutually exclusive with hostPrefixes. Immutable once set.

hostPrefixes
object[]

The Host Prefixes of the VPC. If configured, each IPv4 prefix must meet the Availability Zone's minimum mask size (typically /18 or larger, for example /17 or /16), and each IPv6 prefix must be /51 or larger (for example, /50 or /49). If not explicitly configured, a Zone-specific default is applied by the server. This field is mutually exclusive with hostPrefix and is immutable once set.

ingress
object

The ingress configuration of the VPC.

egress
object

The egress configuration of the VPC.

dhcp
object

The DHCP configuration of the VPC.

Response

OK

vpc
object

The VPC.

Last modified on May 4, 2026