> ## Documentation Index
> Fetch the complete documentation index at: https://gcore.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create subnet



## OpenAPI

````yaml /api-reference/services_documented/cloud_api.yaml post /cloud/v1/subnets/{project_id}/{region_id}
openapi: 3.1.0
info:
  title: Gcore OpenAPI – Cloud API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: '2026-05-11T15:10:30.328297+00:00'
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: Bare Metal
    x-displayName: Bare Metal
  - name: Container as a Service
    x-displayName: Container as a Service
  - name: Cost Reports
    x-displayName: Cost Reports
  - name: DDoS Protection
    x-displayName: DDoS Protection
  - name: Everywhere Inference
    x-displayName: Everywhere Inference
  - name: Everywhere Inference Apps
    x-displayName: Everywhere Inference Apps
  - name: File Shares
    x-displayName: File Shares
  - name: Floating IPs
    x-displayName: Floating IPs
  - name: Function as a Service
    x-displayName: Function as a Service
  - name: GPU Bare Metal
    x-displayName: GPU Bare Metal
  - name: GPU Virtual
    x-displayName: GPU Virtual
  - name: IP Ranges
    x-displayName: IP Ranges
  - name: Images
    x-displayName: Images
  - name: Instances
    x-displayName: Instances
  - name: Load Balancers
    x-displayName: Load Balancers
  - name: Logging
    x-displayName: Logging
  - name: Managed Kubernetes
    x-displayName: Managed Kubernetes
  - name: Managed PostgreSQL
    x-displayName: Managed PostgreSQL
  - name: Networks
    x-displayName: Networks
  - name: Placement Groups
    x-displayName: Placement Groups
  - name: Projects
    x-displayName: Projects
  - name: Quotas
    x-displayName: Quotas
  - name: Regions
    x-displayName: Regions
  - name: Registry
    x-displayName: Registry
  - name: Reservations
    x-displayName: Reservations
  - name: Reserved IPs
    x-displayName: Reserved IPs
  - name: Routers
    x-displayName: Routers
  - name: SSH Keys
    x-displayName: SSH Keys
  - name: Secrets
    x-displayName: Secrets
  - name: Security Groups
    x-displayName: Security Groups
  - name: Snapshot Schedules
    x-displayName: Snapshot Schedules
  - name: Snapshots
    x-displayName: Snapshots
  - name: Tasks
    x-displayName: Tasks
  - name: User Actions
    x-displayName: User Actions
  - name: User Role Assignments
    x-displayName: User Role Assignments
  - name: Volumes
    x-displayName: Volumes
paths:
  /cloud/v1/subnets/{project_id}/{region_id}:
    post:
      tags:
        - Networks
      summary: Create subnet
      operationId: SubnetViewSet.post
      parameters:
        - in: path
          name: project_id
          required: true
          description: Project ID
          schema:
            description: Project ID
            example: 1
            examples:
              - 1
            title: Project Id
            type: integer
        - in: path
          name: region_id
          required: true
          description: Region ID
          schema:
            description: Region ID
            example: 1
            examples:
              - 1
            title: Region Id
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubnetSerializer'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskIDsSerializer'
      x-codeSamples:
        - lang: Python
          source: |-
            import os
            from gcore import Gcore

            client = Gcore(
                api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
            )
            task_id_list = client.cloud.networks.subnets.create(
                project_id=1,
                region_id=1,
                cidr="192.168.10.0/24",
                name="my subnet",
                network_id="ee2402d0-f0cd-4503-9b75-69be1d11c5f1",
            )
            print(task_id_list.tasks)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/G-Core/gcore-go\"\n\t\"github.com/G-Core/gcore-go/cloud\"\n\t\"github.com/G-Core/gcore-go/option\"\n)\n\nfunc main() {\n\tclient := gcore.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\ttaskIDList, err := client.Cloud.Networks.Subnets.New(context.TODO(), cloud.NetworkSubnetNewParams{\n\t\tProjectID: gcore.Int(1),\n\t\tRegionID:  gcore.Int(1),\n\t\tCidr:      \"192.168.10.0/24\",\n\t\tName:      \"my subnet\",\n\t\tNetworkID: \"ee2402d0-f0cd-4503-9b75-69be1d11c5f1\",\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", taskIDList.Tasks)\n}\n"
components:
  schemas:
    CreateSubnetSerializer:
      properties:
        cidr:
          description: CIDR
          example: 192.168.10.0/24
          examples:
            - 192.168.10.0/24
          format: ipvanynetwork
          title: Cidr
          type: string
        connect_to_network_router:
          default: true
          description: >-
            True if the network's router should get a gateway in this subnet.
            Must be explicitly 'false' when `gateway_ip` is null.
          example: true
          examples:
            - true
          title: Connect To Network Router
          type: boolean
        dns_nameservers:
          anyOf:
            - items:
                format: ipvanyaddress
                type: string
              type: array
            - type: 'null'
          default: null
          description: List IP addresses of DNS servers to advertise via DHCP.
          examples:
            - - 8.8.4.4
              - 1.1.1.1
          title: Dns Nameservers
          x-stainless-terraform-configurability: computed_optional
        enable_dhcp:
          default: true
          description: True if DHCP should be enabled
          example: true
          examples:
            - true
          title: Enable Dhcp
          type: boolean
        gateway_ip:
          anyOf:
            - format: ipvanyaddress
              type: string
            - type: 'null'
          description: >-
            Default GW IPv4 address to advertise in DHCP routes in this subnet.
            Omit this field to let the cloud backend allocate it automatically.
            Set to null if no gateway must be advertised by this subnet's DHCP
            (useful when attaching instances to multiple subnets in order to
            prevent default route conflicts).
          examples:
            - 192.168.10.1
          title: Gateway Ip
          x-stainless-terraform-configurability: computed_optional
        host_routes:
          anyOf:
            - items:
                $ref: '#/components/schemas/RouteInSerializer'
              type: array
            - type: 'null'
          default: null
          description: List of custom static routes to advertise via DHCP.
          examples:
            - - destination: 10.0.3.0/24
                nexthop: 10.0.0.13
          title: Host Routes
          x-stainless-terraform-configurability: computed_optional
        ip_version:
          $ref: '#/components/schemas/IPVersion'
          description: IP version
          examples:
            - 4
          x-stainless-terraform-configurability: computed_optional
        name:
          description: Subnet name
          example: my subnet
          examples:
            - my subnet
          pattern: ^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,61}[a-zA-Z0-9._]$
          title: Name
          type: string
        network_id:
          description: Network ID
          example: ee2402d0-f0cd-4503-9b75-69be1d11c5f1
          examples:
            - ee2402d0-f0cd-4503-9b75-69be1d11c5f1
          format: uuid4
          title: Network Id
          type: string
        router_id_to_connect:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          default: null
          description: >-
            ID of the router to connect to. Requires `connect_to_network_router`
            set to true. If not specified, attempts to find a router created
            during network creation.
          examples:
            - 00000000-0000-4000-8000-000000000000
          title: Router Id To Connect
        tags:
          $ref: '#/components/schemas/CreateTagsSerializer'
          description: >-
            Key-value tags to associate with the resource. A tag is a key-value
            pair that can be associated with a resource, enabling efficient
            filtering and grouping for better organization and management. Both
            tag keys and values have a maximum length of 255 characters. Some
            tags are read-only and cannot be modified by the user. Tags are also
            integrated with cost reports, allowing cost data to be filtered
            based on tag keys or values.
          examples:
            - my-tag: my-tag-value
          x-stainless-terraform-configurability: computed_optional
      required:
        - name
        - network_id
        - cidr
      title: CreateSubnetSerializer
      type: object
    TaskIDsSerializer:
      properties:
        tasks:
          description: >-
            List of task IDs representing asynchronous operations. Use these IDs
            to monitor operation progress:

            - `GET /v1/tasks/{task_id}` - Check individual task status and
            details

            Poll task status until completion (`FINISHED`/`ERROR`) before
            proceeding with dependent operations.
          example:
            - d478ae29-dedc-4869-82f0-96104425f565
          examples:
            - - d478ae29-dedc-4869-82f0-96104425f565
          items:
            type: string
          title: Tasks
          type: array
      required:
        - tasks
      title: TaskIDsSerializer
      type: object
    RouteInSerializer:
      properties:
        destination:
          description: CIDR of destination IPv4 or IPv6 subnet.
          example: 10.0.3.0/24
          examples:
            - 10.0.3.0/24
          format: ipvanynetwork
          title: Destination
          type: string
        nexthop:
          description: >-
            IPv4 or IPv6 address to forward traffic to if it's destination IP
            matches 'destination' CIDR.
          example: 10.0.0.13
          examples:
            - 10.0.0.13
          format: ipvanyaddress
          title: Nexthop
          type: string
      required:
        - destination
        - nexthop
      title: RouteInSerializer
      type: object
    IPVersion:
      enum:
        - 4
        - 6
      title: IPVersion
      type: integer
    CreateTagsSerializer:
      description: >-
        A tag is a key-value pair that can be associated with a resource,

        enabling efficient filtering and grouping for better organization and
        management.

        Some tags are read-only and cannot be modified by the user.

        Tags are also integrated with cost reports, allowing cost data to be
        filtered based on tag keys or values.
      patternProperties:
        ^[^\s=]+$:
          description: >-
            Tag value. Maximum 255 characters. Cannot contain tabs, newlines,
            empty string or start/end with whitespace.
          example: my-tag-value
          examples:
            - my-tag-value
          maxLength: 255
          minLength: 1
          pattern: ^[^ \t\n\r\f\v]([^\t\n\r\f\v]*[^ \t\n\r\f\v])?$
          type: string
      propertyNames:
        description: >-
          Tag key. Maximum 255 characters. Cannot contain spaces, tabs,
          newlines, empty string or '=' character.
        examples:
          - my-tag
        maxLength: 255
        minLength: 1
      title: CreateTagsSerializer
      type: object
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234$abcdef`
      type: apiKey
      in: header
      name: Authorization

````