---
title: "Create organization VPC"
method: POST
path: "/organization/{organization_id}/vpcs"
tags: ["Organization_Vpc"]
---

# Create organization VPC

`POST /organization/{organization_id}/vpcs`

Creates an organization VPC. This requires the manage-organization-networking permissions and can be also achieved using the Aiven Console, the Aiven CLI, or the Aiven Terraform Provider.

## Path parameters

- `organization_id` string, required

## Request body

- OrganizationVpcCreateRequestBody — OrganizationVpcCreateRequestBody
  - `clouds` object[], required — Clouds to create this VPC in
    - `cloud_name` string, required — Target cloud
    - `network_cidr` string, required — IPv4 network range CIDR
  - `display_name` string — User defined display name for this VPC
  - `peering_connections` object[], required — List of peering connection requests for the VPC
    - `peer_azure_app_id` string — Azure app registration id in UUID4 form that is allowed to create a peering to the peer vnet
    - `peer_azure_tenant_id` string — Azure tenant id in UUID4 form
    - `peer_cloud_account` string, required — AWS account ID, GCP project ID, Azure subscription ID of the peered VPC, or string &quot;upcloud&quot; for UpCloud peering connections
    - `peer_region` string — The peer VPC's region on AWS. May be omitted or set to null if the peer is in the same region as the Aiven project VPC. Omit or set to null on GCP, Azure, or UpCloud.
    - `peer_resource_group` string — Azure resource group name of the peered VPC
    - `peer_vpc` string, required — AWS VPC ID, GCP VPC network name, Azure Virtual network name of the peered VPC, or UpCloud VPC ID
    - `user_peer_network_cidrs` string[] — List of private IPv4 ranges to route through the peering connection

## Response `200`

Response

- OrganizationVpcCreateResponse — OrganizationVpcCreateResponse
  - `clouds` object[], required — Clouds or clouds to create this VPC in
    - `cloud_name` string, required — Target cloud
    - `network_cidr` string, required — IPv4 network range CIDR
  - `create_time` string, required — VPC creation timestamp
  - `display_name` string, required — User defined display name for this VPC
  - `errors` object[] — List of errors occurred during request processing
    - `message` string, required — Printable error message
    - `more_info` string — URL to the documentation of the error
    - `status` integer, required — HTTP error status code
  - `message` string — Printable result of the request
  - `organization_id` string, required — Organization ID
  - `organization_vpc_id` string, required — Project VPC ID
  - `peering_connections` object[], required — List of peering connections
    - `create_time` string, required — VPC peering connection creation timestamp
    - `peer_azure_app_id` string, required — Azure app registration id in UUID4 form that is allowed to create a peering to the peer vnet
    - `peer_azure_tenant_id` string, required — Azure tenant id in UUID4 form
    - `peer_cloud_account` string, required — AWS account ID, GCP project ID, Azure subscription ID of the peered VPC, or string &quot;upcloud&quot; for UpCloud peering connections
    - `peer_region` string — The peer VPC's region in AWS clouds. Always null in GCP, Azure, or UpCloud clouds
    - `peer_resource_group` string, required — Azure resource group name of the peered VPC
    - `peer_vpc` string, required — AWS VPC ID, GCP VPC network name, Azure Virtual network name of the peered VPC, or UpCloud VPC ID
    - `peering_connection_id` string — VPC peering connection ID
    - `state` 'ACTIVE' | 'APPROVED' | 'APPROVED_PEER_REQUESTED' | 'DELETED' | 'DELETED_BY_PEER' | 'DELETING' | 'ERROR' | 'INVALID_SPECIFICATION' | 'PENDING_PEER' | 'REJECTED_BY_PEER', required — Project VPC peering connection state
    - `state_info` object, required — State-specific help or error information
      - `message` string, required — Human-readable information message
      - `type` string, required — Type of state information
      - `warnings` object[] — List of warnings if any
        - `conflicting_aws_account_id` string — AWS account id of conflicting VPC
        - `conflicting_aws_vpc_id` string — VPC id which is conflicting with the current one
        - `conflicting_aws_vpc_peering_connection_id` string — AWS VPC connection id which is conflicting with current VPC
        - `message` string, required — Warning message to be shown to the user
        - `type` 'overlapping-peer-vpc-ip-ranges' | 'upcloud-peering-in-error', required — Type of warning
    - `update_time` string, required — Timestamp of last change to the VPC peering connection
    - `user_peer_network_cidrs` string[], required — List of private IPv4 ranges to route through the peering connection
    - `vpc_peering_connection_type` 'aws-tgw-vpc-attachment' | 'aws-vpc-peering-connection' | 'azure-vnet-peering' | 'do-vpc-peering' | 'google-vpc-peering' | 'upcloud-vpc-peering', required — Type of network connection from the VPC
  - `pending_build_only_peering_connections` string — VPC rebuild is scheduled
  - `state` 'ACTIVE' | 'APPROVED' | 'DELETED' | 'DELETING', required — Project VPC state
  - `update_time` string, required — Timestamp of last change to VPC

## Other responses

- `404` — Resource not found

---

[API](https://skmtc.net/aiven/apis/aiven-api-documentation.md) · [All operations](https://skmtc.net/aiven/apis/aiven-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aiven/aiven-api-documentation/versions/ecaeabf1da31/schema)
