Skip to main content

VPC API Reference

Users with administrative permissions can interact with the VPC API using curl or any other HTTP client. The API allows users to create, list, update, and delete VPCs.

Info
  • The API server is https://api.coreweave.com.
  • Replace {API_ACCESS_TOKEN} in the examples below with your CoreWeave API access token.

Reference table

EndpointMethodDescription
/v1/networking/vpcsGETList all VPCs.
/v1/networking/vpcsPOSTCreate a VPC.
/v1/networking/vpcs/{id}GETGet VPC information by ID.
/v1/networking/vpcs/{id}DELETEDelete a VPC by ID.
/v1/networking/vpcs/{id}PATCHUpdate a VPC by ID.

VPCs

To list or create VPCs, use the /v1/networking/vpcs endpoint. The API supports the GET and POST methods.

GET /v1/networking/vpcs

To list all VPCs, use the GET method with the /v1/networking/vpcs endpoint.

Example request
$
curl -X GET https://api.coreweave.com/v1/networking/vpcs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {API_ACCESS_TOKEN}"

A successful response returns an array of VPC objects.

Response status code 200
{
"items": [
{
"id": string,
"name": string,
"status": integer <enum>,
"zone": string,
"pubImport": boolean,
"hostPrefixes": [
string
],
"vpcPrefixes": [
{
"name": string,
"value": string,
"disableExternalPropagate": boolean,
"disableHostBgpPeering": boolean,
"hostDhcpRoute": boolean,
"public": boolean,
"createdAt": string <date-time>,
"updatedAt": string <date-time>,
"status": integer <enum>
}
],
"dnsServers": [
string
],
"createdAt": string <date-time>,
"updatedAt": string <date-time>
}
]
}

POST /v1/networking/vpcs

To create a VPC, use the POST method with the /v1/networking/vpcs endpoint. The VPC configuration must be supplied as a JSON object in the request body.

The supported fields and their data types are as follows.

data.json
{
"name": string,
"zone": string,
"pubImport": boolean,
"hostPrefixes": [
string
],
"vpcPrefixes": [
{
"name": string,
"value": string,
"disableExternalPropagate": boolean,
"disableHostBgpPeering": boolean,
"hostDhcpRoute": boolean,
"public": boolean,
"createdAt": string <date-time>,
"updatedAt": string <date-time>,
"status": integer <enum>
}
],
"dnsServers": [
string
]
}

Submit the request, passing the JSON object in the body as data.json.

Example request
$
curl -X POST https://api.coreweave.com/v1/networking/vpcs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {API_ACCESS_TOKEN}" \
-d @data.json

A successful response returns a VPC object, with the newly-assigned id.

Response status code 200
{
"vpc": {
"id": string,
"name": string,
"status": integer <enum>,
"zone": string,
"pubImport": boolean,
"hostPrefixes": [
string
],
"vpcPrefixes": [
{
"name": string,
"value": string,
"disableExternalPropagate": boolean,
"disableHostBgpPeering": boolean,
"hostDhcpRoute": boolean,
"public": boolean,
"createdAt": string <date-time>,
"updatedAt": string <date-time>,
"status": integer <enum>
}
],
"dnsServers": [
string
],
"createdAt": string <date-time>,
"updatedAt": string <date-time>
}
}

VPCs by ID

To retrieve, update, or delete a VPC by ID, use the /v1/networking/vpcs/{id} endpoint. The API supports the GET, PATCH, and DELETE methods.

GET /v1/networking/vpcs/{id}

To get information about a VPC, use the GET method with the /v1/networking/vpcs/{id} endpoint. Substitute {id} with the VPC ID.

Example request
$
curl -X GET https://api.coreweave.com/v1/networking/vpcs/{id} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {API_ACCESS_TOKEN}"

A successful response returns the VPC object.

Response status code 200
{
"vpc": {
"id": string,
"name": string,
"status": integer <enum>,
"zone": string,
"pubImport": boolean,
"hostPrefixes": [
string
],
"vpcPrefixes": [
{
"name": string,
"value": string,
"disableExternalPropagate": boolean,
"disableHostBgpPeering": boolean,
"hostDhcpRoute": boolean,
"public": boolean,
"createdAt": string <date-time>,
"updatedAt": string <date-time>,
"status": integer <enum>
}
],
"dnsServers": [
string
],
"createdAt": string <date-time>,
"updatedAt": string <date-time>
}
}

DELETE /v1/networking/vpcs/{id}

To delete a VPC, use the DELETE method with the /v1/networking/vpcs/{id} endpoint. Substitute {id} with the VPC ID.

Example request
$
curl -X DELETE https://api.coreweave.com/v1/networking/vpcs/{id} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {API_ACCESS_TOKEN}"

A successful response returns the deleted VPC object.

Response status code 200
{
"vpc": {
"id": string,
"name": string,
"status": integer <enum>,
"zone": string,
"pubImport": boolean,
"hostPrefixes": [
string
],
"vpcPrefixes": [
{
"name": string,
"value": string,
"disableExternalPropagate": boolean,
"disableHostBgpPeering": boolean,
"hostDhcpRoute": boolean,
"public": boolean,
"createdAt": string <date-time>,
"updatedAt": string <date-time>,
"status": integer <enum>
}
],
"dnsServers": [
string
],
"createdAt": string <date-time>,
"updatedAt": string <date-time>
}
}

PATCH /v1/networking/vpcs/{id}

To update a VPC, use the PATCH method with the /v1/networking/vpcs/{id} endpoint. Substitute {id} with the VPC ID.

The cluster configuration must be supplied as a JSON object in the request body. The supported fields and their data types are as follows.

data.json
{
"updateMask": string <field-mask>,
"id": string,
"pubImport": boolean,
"hostPrefixes": [
string
],
"vpcPrefixes": [
{
"name": string,
"value": string,
"disableExternalPropagate": boolean,
"disableHostBgpPeering": boolean,
"hostDhcpRoute": boolean,
"public": boolean,
"createdAt": string <date-time>,
"updatedAt": string <date-time>,
"status": integer <enum>
}
],
"dnsServers": [
string
],
}

Submit the request, passing the JSON object in the body as data.json.

Example request
$
curl -X PATCH https://api.coreweave.com/v1/networking/vpcs/{id} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {API_ACCESS_TOKEN}" \
-d @data.json

A successful response returns the updated cluster object.

Response status code 200
{
"vpc": {
"id": string,
"name": string,
"status": integer <enum>,
"zone": string,
"pubImport": boolean,
"hostPrefixes": [
string
],
"vpcPrefixes": [
{
"name": string,
"value": string,
"disableExternalPropagate": boolean,
"disableHostBgpPeering": boolean,
"hostDhcpRoute": boolean,
"public": boolean,
"createdAt": string <date-time>,
"updatedAt": string <date-time>,
"status": integer <enum>
}
],
"dnsServers": [
string
],
"createdAt": string <date-time>,
"updatedAt": string <date-time>
}
}