Incus network-zones API

The network-zones API from Incus — 6 operation(s) for network-zones.

Operations 14

GET /1.0/network-zones Get the network zones #
POST /1.0/network-zones Add a network zone #
DELETE /1.0/network-zones/{zone} Delete the network zone #
GET /1.0/network-zones/{zone} Get the network zone #
PATCH /1.0/network-zones/{zone} Partially update the network zone #
PUT /1.0/network-zones/{zone} Update the network zone #
GET /1.0/network-zones/{zone}/records Get the network zone records #
POST /1.0/network-zones/{zone}/records Add a network zone record #
DELETE /1.0/network-zones/{zone}/records/{name} Delete the network zone record #
GET /1.0/network-zones/{zone}/records/{name} Get the network zone record #
PATCH /1.0/network-zones/{zone}/records/{name} Partially update the network zone record #
PUT /1.0/network-zones/{zone}/records/{name} Update the network zone record #
GET /1.0/network-zones/{zone}/records?recursion=1 Get the network zone records #
GET /1.0/network-zones?recursion=1 Get the network zones #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/incus-network-zones-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

incus-network-zones-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: lxc-devel@lists.linuxcontainers.org
    name: Incus upstream
    url: https://github.com/lxc/incus
  description: 'This is the REST API used by all Incus clients.

    Internal endpoints aren''t included in this documentation.


    The Incus API is available over both a local unix+http and remote https API.

    Authentication for local users relies on group membership and access to the unix socket.

    For remote users, the default authentication method is TLS client

    certificates.'
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  title: Incus external REST certificates Network Zones API
  version: '1.0'
tags:
- name: network-zones
paths:
  /1.0/network-zones:
    get:
      description: Returns a list of network zones (URLs).
      operationId: network_zones_get
      parameters:
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Retrieve network zones from all projects
        example: true
        in: query
        name: all-projects
        schema:
          type: boolean
      - description: Collection filter
        example: default
        in: query
        name: filter
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of endpoints
                    example: "[\n  \"/1.0/network-zones/example.net\",\n  \"/1.0/network-zones/example.com\"\n]"
                    items:
                      type: string
                    type: array
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the network zones
      tags:
      - network-zones
    post:
      description: Creates a new network zone.
      operationId: network_zones_post
      parameters:
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Add a network zone
      tags:
      - network-zones
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkZonesPost'
        description: zone
        required: true
  /1.0/network-zones/{zone}:
    delete:
      description: Removes the network zone.
      operationId: network_zone_delete
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Delete the network zone
      tags:
      - network-zones
    get:
      description: Gets a specific network zone.
      operationId: network_zone_get
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          description: zone
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    $ref: '#/components/schemas/NetworkZone'
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the network zone
      tags:
      - network-zones
    patch:
      description: Updates a subset of the network zone configuration.
      operationId: network_zone_patch
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Partially update the network zone
      tags:
      - network-zones
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkZonePut'
        description: zone configuration
        required: true
    put:
      description: Updates the entire network zone configuration.
      operationId: network_zone_put
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Update the network zone
      tags:
      - network-zones
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkZonePut'
        description: zone configuration
        required: true
  /1.0/network-zones/{zone}/records:
    get:
      description: Returns a list of network zone records (URLs).
      operationId: network_zone_records_get
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Collection filter
        example: default
        in: query
        name: filter
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of endpoints
                    example: "[\n  \"/1.0/network-zones/example.net/records/foo\",\n  \"/1.0/network-zones/example.net/records/bar\"\n]"
                    items:
                      type: string
                    type: array
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the network zone records
      tags:
      - network-zones
    post:
      description: Creates a new network zone record.
      operationId: network_zone_records_post
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Add a network zone record
      tags:
      - network-zones
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkZoneRecordsPost'
        description: zone
        required: true
  /1.0/network-zones/{zone}/records/{name}:
    delete:
      description: Removes the network zone record.
      operationId: network_zone_record_delete
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Record name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Delete the network zone record
      tags:
      - network-zones
    get:
      description: Gets a specific network zone record.
      operationId: network_zone_record_get
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Record name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          description: zone
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    $ref: '#/components/schemas/NetworkZoneRecord'
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the network zone record
      tags:
      - network-zones
    patch:
      description: Updates a subset of the network zone record configuration.
      operationId: network_zone_record_patch
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Record name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Partially update the network zone record
      tags:
      - network-zones
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkZoneRecordPut'
        description: zone record configuration
        required: true
    put:
      description: Updates the entire network zone record configuration.
      operationId: network_zone_record_put
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Record name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EmptySyncResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Update the network zone record
      tags:
      - network-zones
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkZoneRecordPut'
        description: zone record configuration
        required: true
  /1.0/network-zones/{zone}/records?recursion=1:
    get:
      description: Returns a list of network zone records (structs).
      operationId: network_zone_records_get_recursion1
      parameters:
      - description: Network zone name
        in: path
        name: zone
        required: true
        schema:
          type: string
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Collection filter
        example: default
        in: query
        name: filter
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of network zone records
                    items:
                      $ref: '#/components/schemas/NetworkZoneRecord'
                    type: array
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the network zone records
      tags:
      - network-zones
  /1.0/network-zones?recursion=1:
    get:
      description: Returns a list of network zones (structs).
      operationId: network_zones_get_recursion1
      parameters:
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Retrieve network zones from all projects
        example: true
        in: query
        name: all-projects
        schema:
          type: boolean
      - description: Collection filter
        example: default
        in: query
        name: filter
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of network zones
                    items:
                      $ref: '#/components/schemas/NetworkZone'
                    type: array
                  status:
                    description: Status description
                    example: Success
                    type: string
                  status_code:
                    description: Status code
                    example: 200
                    type: integer
                  type:
                    description: Response type
                    example: sync
                    type: string
                type: object
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get the network zones
      tags:
      - network-zones
components:
  responses:
    PreconditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            properties:
              error:
                example: precondition failed
                type: string
                x-go-name: Error
              error_code:
                example: 412
                format: int64
                type: integer
                x-go-name: ErrorCode
              type:
                example: error
                type: string
                x-go-name: Type
            type: object
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            properties:
              error:
                example: not authorized
                type: string
                x-go-name: Error
              error_code:
                example: 403
                format: int64
                type: integer
                x-go-name: ErrorCode
              type:
                example: error
                type: string
                x-go-name: Type
            type: object
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            properties:
              error:
                example: internal server error
                type: string
                x-go-name: Error
              error_code:
                example: 500
                format: int64
                type: integer
                x-go-name: ErrorCode
              type:
                example: error
                type: string
                x-go-name: Type
            type: object
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            properties:
              error:
                example: bad request
                type: string
                x-go-name: Error
              error_code:
                example: 400
                format: int64
                type: integer
                x-go-name: ErrorCode
              type:
                example: error
                type: string
                x-go-name: Type
            type: object
    EmptySyncResponse:
      description: Empty sync response
      content:
        application/json:
          schema:
            properties:
              status:
                example: Success
                type: string
                x-go-name: Status
              status_code:
                example: 200
                format: int64
                type: integer
                x-go-name: StatusCode
              type:
                example: sync
                type: string
                x-go-name: Type
            type: object
  schemas:
    NetworkZonesPost:
      description: NetworkZonesPost represents the fields of a new network zone
      properties:
        config:
          description: Zone configuration map (refer to doc/network-zones.md)
          example:
            user.mykey: foo
          type: object
          x-go-name: Config
        description:
          description: Description of the network zone
          example: Internal domain
          type: string
          x-go-name: Description
        name:
          description: The name of the zone (DNS domain name)
          example: example.net
          type: string
          x-go-name: Name
      type: object
      x-go-package: github.com/lxc/incus/v7/shared/api
    NetworkZoneRecordEntry:
      description: NetworkZoneRecordEntry represents the fields in a record entry
      properties:
        ttl:
          description: TTL for the entry
          example: 3600
          format: uint64
          type: integer
          x-go-name: TTL
        type:
          description: Type of DNS entry
          example: TXT
          type: string
          x-go-name: Type
        value:
          description: Value for the record
          example: v=spf1 mx ~all
          type: string
          x-go-name: Value
      type: object
      x-go-package: github.com/lxc/incus/v7/shared/api
    NetworkZoneRecord:
      properties:
        config:
          description: Advanced configuration for the record
          example:
            user.mykey: foo
          type: object
          x-go-name: Config
        description:
          description: Description of the record
          example: SPF record
          type: string
          x-go-name: Description
        entries:
          description: Entries in the record
          items:
            $ref: '#/components/schemas/NetworkZoneRecordEntry'
          type: array
          x-go-name: Entries
        name:
          description: The name of the record
          example: '@'
          type: string
          x-go-name: Name
      title: NetworkZoneRecord represents a network zone (DNS) record.
      type: object
      x-go-package: github.com/lxc/incus/v7/shared/api
    NetworkZoneRecordsPost:
      description: NetworkZoneRecordsPost represents the fields of a new network zone record
      properties:
        config:
          description: Advanced configuration for the record
          example:
            user.mykey: foo
          type: object
          x-go-name: Config
        description:
          description: Description of the record
          example: SPF record
          type: string
          x-go-name: Description
        entries:
          description: Entries in the record
          items:
            $ref: '#/components/schemas/NetworkZoneRecordEntry'
          type: array
          x-go-name: Entries
        name:
          description: The record name in the zone
          example: '@'
          type: string
          x-go-name: Name
      type: object
      x-go-package: github.com/lxc/incus/v7/shared/api
    NetworkZone:
      properties:
        config:
          description: Zone configuration map (refer to doc/network-zones.md)
          example:
            user.mykey: foo
          type: object
          x-go-name: Config
        description:
          description: Description of the network zone
          example: Internal domain
          type: string
          x-go-name: Description
        name:
          description: The name of the zone (DNS domain name)
          example: example.net
          type: string
          x-go-name: Name
        project:
          description: Project name
          example: project1
          type: string
          x-go-name: Project
        used_by:
          description: List of URLs of objects using this network zone
          example:
          - /1.0/networks/foo
          - /1.0/networks/bar
          items:
            type: string
          readOnly: true
          type: array
          x-go-name: UsedBy
      title: NetworkZone represents a network zone (DNS).
      type: object
      x-go-package: github.com/lxc/incus/v7/shared/api
    NetworkZonePut:
      description: NetworkZonePut represents the modifiable fields of a network zone
      properties:
        config:
          description: Zone configuration map (refer to doc/network-zones.md)
          example:
            user.mykey: foo
          type: object
          x-go-name: Config
        description:
          description: Description of the network zone
          example: Internal domain
          type: string
          x-go-name: Description
      type: object
      x-go-package: github.com/lxc/incus/v7/shared/api
    NetworkZoneRecordPut:
      description: NetworkZoneRecordPut represents the modifiable fields of a network zone record
      properties:
        config:
          description: Advanced configuration for the record
          example:
            user.mykey: foo
          type: object
          x-go-name: Config
        description:
          description: Description of the record
          example: SPF record
          type: string
          x-go-name: Description
        entries:
          description: Entries in the record
          items:
            $ref: '#/components/schemas/NetworkZoneRecordEntry'
          type: array
          x-go-name: Entries
      type: object
      x-go-package: github.com/lxc/incus/v7/shared/api