> ## 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.

# Update subnet



## OpenAPI

````yaml /api-reference/services_documented/cloud_api.yaml patch /cloud/v1/subnets/{project_id}/{region_id}/{subnet_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}/{subnet_id}:
    patch:
      tags:
        - Networks
      summary: Update subnet
      operationId: SubnetInstanceViewSet.patch
      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
        - in: path
          name: subnet_id
          required: true
          description: Subnet ID
          schema:
            description: Subnet ID
            example: b39792c3-3160-4356-912e-ba396c95cdcf
            examples:
              - b39792c3-3160-4356-912e-ba396c95cdcf
            format: uuid4
            title: Subnet Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchSubnetSerializer'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubnetSerializer'
      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
            )
            subnet = client.cloud.networks.subnets.update(
                subnet_id="b39792c3-3160-4356-912e-ba396c95cdcf",
                project_id=1,
                region_id=1,
            )
            print(subnet.cidr)
        - 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\tsubnet, err := client.Cloud.Networks.Subnets.Update(\n\t\tcontext.TODO(),\n\t\t\"b39792c3-3160-4356-912e-ba396c95cdcf\",\n\t\tcloud.NetworkSubnetUpdateParams{\n\t\t\tProjectID: gcore.Int(1),\n\t\t\tRegionID:  gcore.Int(1),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", subnet.Cidr)\n}\n"
components:
  schemas:
    PatchSubnetSerializer:
      properties:
        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
        enable_dhcp:
          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
        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
        name:
          anyOf:
            - pattern: ^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,61}[a-zA-Z0-9._]$
              type: string
            - type: 'null'
          default: null
          description: Name
          examples:
            - some_name
          title: Name
        tags:
          anyOf:
            - $ref: '#/components/schemas/UpdateTagsSerializer'
            - type: 'null'
          description: >-
            Update key-value tags using JSON Merge Patch semantics (RFC 7386).
            Provide key-value pairs to add or update tags. Set tag values to
            `null` to remove tags. Unspecified tags remain unchanged. Read-only
            tags are always preserved and cannot be modified.


            **Examples:**


            - **Add/update tags:** `{'tags': {'environment': 'production',
            'team': 'backend'}}` adds new tags or updates existing ones.

            - **Delete tags:** `{'tags': {'old_tag': null}}` removes specific
            tags.

            - **Remove all tags:** `{'tags': null}` removes all user-managed
            tags (read-only tags are preserved).

            - **Partial update:** `{'tags': {'environment': 'staging'}}` only
            updates specified tags.

            - **Mixed operations:** `{'tags': {'environment': 'production',
            'cost_center': 'engineering', 'deprecated_tag': null}}` adds/updates
            'environment' and 'cost_center' while removing 'deprecated_tag',
            preserving other existing tags.

            - **Replace all:** first delete existing tags with null values, then
            add new ones in the same request.
          examples:
            - my-tag: my-tag-value
              my-tag-to-remove: null
      title: PatchSubnetSerializer
      type: object
    SubnetSerializer:
      properties:
        available_ips:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          description: Number of available ips in subnet
          examples:
            - 250
          title: Available Ips
        cidr:
          description: CIDR
          example: 192.168.13.0/24
          examples:
            - 192.168.13.0/24
          format: ipvanynetwork
          title: Cidr
          type: string
        created_at:
          description: Datetime when the subnet was created
          example: 2019-06-13T13:58:12+0000
          examples:
            - 2019-06-13T13:58:12+0000
          format: date-time
          title: Created At
          type: string
        creator_task_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          default: null
          description: Task that created this entity
          examples:
            - 5cc890da-d031-4a23-ac31-625edfa22812
          title: Creator Task Id
        dns_nameservers:
          anyOf:
            - items:
                format: ipvanyaddress
                type: string
              type: array
            - type: 'null'
          default: null
          description: List IP addresses of a DNS resolver reachable from the network
          examples:
            - - 8.8.8.8
              - 8.8.4.4
          title: Dns Nameservers
        enable_dhcp:
          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'
          default: null
          description: >-
            Default GW IPv4 address, advertised in DHCP routes of this subnet.
            If null, no gateway is advertised by this subnet.
          examples:
            - 192.168.13.1
          title: Gateway Ip
        has_router:
          default: false
          deprecated: true
          description: Deprecated. Always returns `false`.
          example: false
          examples:
            - false
          title: Has Router
          type: boolean
        host_routes:
          anyOf:
            - items:
                $ref: '#/components/schemas/RouteOutSerializer'
              type: array
            - type: 'null'
          default: null
          description: List of custom static routes to advertise via DHCP.
          examples:
            - []
          title: Host Routes
        id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          default: null
          description: Subnet id.
          examples:
            - b39792c3-3160-4356-912e-ba396c95cdcf
          title: Id
        ip_version:
          $ref: '#/components/schemas/IPVersion'
          description: IP version
          examples:
            - 4
        name:
          description: Subnet name
          example: subnet_3
          examples:
            - subnet_3
          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: b30d0de7-bca2-4c83-9c57-9e645bd2cc92
          examples:
            - b30d0de7-bca2-4c83-9c57-9e645bd2cc92
          format: uuid4
          title: Network Id
          type: string
        project_id:
          description: Project ID
          example: 1337
          examples:
            - 1337
          title: Project Id
          type: integer
        region:
          description: Region name
          example: Luxembourg 1
          examples:
            - Luxembourg 1
          title: Region
          type: string
        region_id:
          description: Region ID
          example: 7
          examples:
            - 7
          title: Region Id
          type: integer
        tags:
          description: >-
            List of key-value tags associated 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. 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.
          example:
            - key: my-tag
              read_only: false
              value: my-tag-value
          examples:
            - - key: my-tag
                read_only: false
                value: my-tag-value
          items:
            $ref: '#/components/schemas/TagSerializer'
          title: Tags
          type: array
        task_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          default: null
          description: >-
            The UUID of the active task that currently holds a lock on the
            resource. This lock prevents concurrent modifications to ensure
            consistency. If `null`, the resource is not locked.
          examples:
            - null
          title: Task Id
        total_ips:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          description: Total number of ips in subnet
          examples:
            - 253
          title: Total Ips
        updated_at:
          description: Datetime when the subnet was last updated
          example: 2019-06-13T13:58:12+0000
          examples:
            - 2019-06-13T13:58:12+0000
          format: date-time
          title: Updated At
          type: string
      required:
        - project_id
        - region_id
        - region
        - name
        - network_id
        - ip_version
        - enable_dhcp
        - cidr
        - tags
        - created_at
        - updated_at
      title: SubnetSerializer
      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
    UpdateTagsSerializer:
      patternProperties:
        ^[^\s=]+$:
          anyOf:
            - maxLength: 255
              minLength: 1
              pattern: ^[^ \t\n\r\f\v]([^\t\n\r\f\v]*[^ \t\n\r\f\v])?$
              type: string
            - type: 'null'
          description: >-
            Tag value. Maximum 255 characters. Cannot contain tabs, newlines,
            empty string or start/end with whitespace. Set to `null` in order to
            delete this tag.
          examples:
            - my-tag-value
      propertyNames:
        description: >-
          Tag key. Maximum 255 characters. Cannot contain spaces, tabs,
          newlines, empty string or '=' character.
        examples:
          - my-tag
        maxLength: 255
        minLength: 1
      title: UpdateTagsSerializer
      type: object
    RouteOutSerializer:
      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: RouteOutSerializer
      type: object
    IPVersion:
      enum:
        - 4
        - 6
      title: IPVersion
      type: integer
    TagSerializer:
      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.
      properties:
        key:
          description: >-
            Tag key. Maximum 255 characters. Cannot contain spaces, tabs,
            newlines, empty string or '=' character.
          example: my-tag
          examples:
            - my-tag
          title: Key
          type: string
        read_only:
          description: If true, the tag is read-only and cannot be modified by the user
          example: false
          examples:
            - false
          title: Read Only
          type: boolean
        value:
          description: >-
            Tag value. Maximum 255 characters. Cannot contain spaces, tabs,
            newlines, empty string or '=' character.
          example: my-tag-value
          examples:
            - my-tag-value
          title: Value
          type: string
      required:
        - key
        - value
        - read_only
      title: TagSerializer
      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

````