Landscape API

Canonical Landscape is the systems-management platform for Ubuntu at scale. Its API lets operators manage and automate inventories, upgrades, patch compliance, reboots, scripts, monitoring, and alerts across fleets of Ubuntu machines (on-prem, hybrid, or hosted Landscape SaaS).

Operations 30

GET /v1/locals #
POST /v1/locals #
GET /v1/locals/{local} #
DELETE /v1/locals/{local} #
PATCH /v1/locals/{local} #
GET /v1/locals/{local}/packages #
POST /v1/locals/{local}:importPackages #
POST /v1/locals:batchGet #
GET /v1/mirrors #
POST /v1/mirrors #
GET /v1/mirrors/{mirror} #
DELETE /v1/mirrors/{mirror} #
PATCH /v1/mirrors/{mirror} #
GET /v1/mirrors/{mirror}/packages #
POST /v1/mirrors/{mirror}:sync #
POST /v1/mirrors:batchGet #
GET /v1/operations/{operation} #
POST /v1/operations:batchGet #
GET /v1/publicationTargets #
POST /v1/publicationTargets #
GET /v1/publicationTargets/{publicationTarget} #
DELETE /v1/publicationTargets/{publicationTarget} #
PATCH /v1/publicationTargets/{publicationTarget} #
POST /v1/publicationTargets:batchGet #
GET /v1/publications #
POST /v1/publications #
GET /v1/publications/{publication} #
DELETE /v1/publications/{publication} #
PATCH /v1/publications/{publication} #
POST /v1/publications/{publication}:publish #

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/landscape-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

canonical-landscape-debarchive-api-openapi.yml Raw ↑
# Generated with protoc-gen-openapi
# https://github.com/google/gnostic/tree/master/cmd/protoc-gen-openapi

openapi: 3.0.3
info:
    title: debarchive
    version: 0.1.0
paths:
    /v1/locals:
        get:
            tags:
                - LocalService
            description: Returns a list of local repositories.
            operationId: LocalService_ListLocals
            parameters:
                - name: pageSize
                  in: query
                  description: |-
                    The maximum number of local repositories to return.
                     The service may return fewer than this value.
                     If unspecified, at most 100 local repositories will be returned.
                     The maximum value is 1000; values above 1000 will be treated as 1000.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    A page token, received from a previous call.
                     Provide this to retrieve the subsequent page.

                     When paginating, all other request parameters provided must match
                     the call that provided the page token.
                  schema:
                    type: string
                - name: filter
                  in: query
                  description: |-
                    An expression for filtering the results of the request.
                     The fields eligible for filtering are:

                       * `display_name`

                     Some examples of using filters are:

                       * `display_name="local"`  --> The local has the display name "local".
                       * `display_name="local*"` --> The local has the prefix "local" in its display name.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListLocalsResponse'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - LocalService
            description: Creates a new local repository.
            operationId: LocalService_CreateLocal
            parameters:
                - name: localId
                  in: query
                  description: |-
                    The ID to use for the local repository (optional).
                     If provided, the full resource name will be `locals/{local_id}`.
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/Local'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Local'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/locals/{local}:
        get:
            tags:
                - LocalService
            description: Retrieves a local repository by its resource name.
            operationId: LocalService_GetLocal
            parameters:
                - name: local
                  in: path
                  description: The local id.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Local'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        delete:
            tags:
                - LocalService
            description: Deletes a local repository.
            operationId: LocalService_DeleteLocal
            parameters:
                - name: local
                  in: path
                  description: The local id.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content: {}
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        patch:
            tags:
                - LocalService
            description: Updates a local repository.
            operationId: LocalService_UpdateLocal
            parameters:
                - name: local
                  in: path
                  description: The local id.
                  required: true
                  schema:
                    type: string
                - name: updateMask
                  in: query
                  description: The list of fields to update.
                  schema:
                    type: string
                    format: field-mask
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/Local'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Local'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/locals/{local}/packages:
        get:
            tags:
                - LocalService
            description: Retrieves a list of packages available in a local repository.
            operationId: LocalService_ListLocalPackages
            parameters:
                - name: local
                  in: path
                  description: The local id.
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    The maximum number of packages to return.
                     The service may return fewer than this value.
                     If unspecified, at most 100 packages will be returned.
                     The maximum value is 1000; values above 1000 will be treated as 1000.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    A page token, received from a previous call.
                     Provide this to retrieve the subsequent page.

                     When paginating, all other parameters provided must match
                     the call that provided the page token.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListLocalPackagesResponse'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/locals/{local}:importPackages:
        post:
            tags:
                - LocalService
            description: |-
                Imports packages from a URL pointing to a package list or index
                 into the local repository. This is an async operation; poll the returned operation for status.
            operationId: LocalService_ImportLocalPackages
            parameters:
                - name: local
                  in: path
                  description: The local id.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ImportLocalPackagesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Operation'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/locals:batchGet:
        post:
            tags:
                - LocalService
            description: Retrieves a list of local repositories based on their names.
            operationId: LocalService_BatchGetLocals
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/BatchGetLocalsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/BatchGetLocalsResponse'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/mirrors:
        get:
            tags:
                - MirrorService
            description: Returns a list of mirrors.
            operationId: MirrorService_ListMirrors
            parameters:
                - name: pageSize
                  in: query
                  description: |-
                    The maximum number of mirrors to return.
                     The service may return fewer than this value.
                     If unspecified, at most 100 mirrors will be returned.
                     The maximum value is 1000; values above 1000 will be treated as 1000.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    A page token, received from a previous call.
                     Provide this to retrieve the subsequent page.

                     When paginating, all other request parameters provided must match
                     the call that provided the page token.
                  schema:
                    type: string
                - name: filter
                  in: query
                  description: |-
                    An expression for filtering the results of the request.
                     The fields eligible for filtering are:

                       * `display_name`

                     Some examples of using filters are:

                       * `display_name="mirror"`  --> The mirror has the display name "mirror".
                       * `display_name="mirror*"` --> The mirror has the prefix "mirror" in its display name.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMirrorsResponse'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - MirrorService
            description: |-
                Creates a new mirror.
                 It validates the upstream but does not initiate synchronization.
            operationId: MirrorService_CreateMirror
            parameters:
                - name: mirrorId
                  in: query
                  description: |-
                    The ID to use for the mirror (optional).
                     If provided, the full resource name will be `mirrors/{mirror_id}`.
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/Mirror'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Mirror'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/mirrors/{mirror}:
        get:
            tags:
                - MirrorService
            description: Retrieves a mirror by its resource name.
            operationId: MirrorService_GetMirror
            parameters:
                - name: mirror
                  in: path
                  description: The mirror id.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Mirror'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        delete:
            tags:
                - MirrorService
            description: Deletes a mirror.
            operationId: MirrorService_DeleteMirror
            parameters:
                - name: mirror
                  in: path
                  description: The mirror id.
                  required: true
                  schema:
                    type: string
                - name: force
                  in: query
                  description: If `true`, the mirror will be deleted even if it has other resources attached to it.
                  schema:
                    type: boolean
            responses:
                "200":
                    description: OK
                    content: {}
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        patch:
            tags:
                - MirrorService
            description: Updates the details of a mirror.
            operationId: MirrorService_UpdateMirror
            parameters:
                - name: mirror
                  in: path
                  description: The mirror id.
                  required: true
                  schema:
                    type: string
                - name: updateMask
                  in: query
                  description: The list of fields to update.
                  schema:
                    type: string
                    format: field-mask
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/Mirror'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Mirror'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/mirrors/{mirror}/packages:
        get:
            tags:
                - MirrorService
            description: Retrieves the list of packages available in a mirror.
            operationId: MirrorService_ListMirrorPackages
            parameters:
                - name: mirror
                  in: path
                  description: The mirror id.
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    The maximum number of packages to return.
                     The service may return fewer than this value.
                     If unspecified, at most 100 packages will be returned.
                     The maximum value is 1000; values above 1000 will be treated as 1000.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    A page token, received from a previous call.
                     Provide this to retrieve the subsequent page.

                     When paginating, all other request parameters provided must match
                     the call that provided the page token.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMirrorPackagesResponse'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/mirrors/{mirror}:sync:
        post:
            tags:
                - MirrorService
            description: Synchronizes a mirror.
            operationId: MirrorService_SyncMirror
            parameters:
                - name: mirror
                  in: path
                  description: The mirror id.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SyncMirrorRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Operation'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/mirrors:batchGet:
        post:
            tags:
                - MirrorService
            description: Retrieves a batch of mirrors based on their name.
            operationId: MirrorService_BatchGetMirrors
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/BatchGetMirrorsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/BatchGetMirrorsResponse'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/operations/{operation}:
        get:
            tags:
                - OperationService
            description: |-
                Retrieves the latest state of a long-running operation. Use this
                 to poll the operation result.
            operationId: OperationService_GetOperation
            parameters:
                - name: operation
                  in: path
                  description: The operation id.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Operation'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/operations:batchGet:
        post:
            tags:
                - OperationService
            description: Retrieves a batch of long-running operations based on their names.
            operationId: OperationService_BatchGetOperations
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/BatchGetOperationsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/BatchGetOperationsResponse'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/publicationTargets:
        get:
            tags:
                - PublicationTargetService
            description: Lists publication targets.
            operationId: PublicationTargetService_ListPublicationTargets
            parameters:
                - name: pageSize
                  in: query
                  description: |-
                    The maximum number of publication targets to return.
                     The service may return fewer than this value.
                     If unspecified, at most 100 publication targets will be returned.
                     The maximum value is 1000; values above 1000 will be treated as 1000.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    A page token, received from a previous call.
                     Provide this to retrieve the subsequent page.

                     When paginating, all other request parameters provided must match
                     the call that provided the page token.
                  schema:
                    type: string
                - name: filter
                  in: query
                  description: |-
                    An expression for filtering the results of the request.
                     The fields eligible for filtering are:

                       * `display_name`

                     Some examples of using filters are:

                       * `display_name="target"`  --> The publication target has the display name "target".
                       * `display_name="target*"` --> The publication target has the prefix "target" in its display name.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPublicationTargetsResponse'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - PublicationTargetService
            description: Creates a new publication target.
            operationId: PublicationTargetService_CreatePublicationTarget
            parameters:
                - name: publicationTargetId
                  in: query
                  description: |-
                    The ID to use for the publication target (optional).
                     If not provided, the server will generate one.
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/PublicationTarget'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PublicationTarget'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/publicationTargets/{publicationTarget}:
        get:
            tags:
                - PublicationTargetService
            description: Retrieves details of a single publication target.
            operationId: PublicationTargetService_GetPublicationTarget
            parameters:
                - name: publicationTarget
                  in: path
                  description: The publicationTarget id.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PublicationTarget'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        delete:
            tags:
                - PublicationTargetService
            description: Deletes a PublicationTarget. This does not necessarily clean up published artifacts.
            operationId: PublicationTargetService_DeletePublicationTarget
            parameters:
                - name: publicationTarget
                  in: path
                  description: The publicationTarget id.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content: {}
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        patch:
            tags:
                - PublicationTargetService
            description: Updates an existing publication target.
            operationId: PublicationTargetService_UpdatePublicationTarget
            parameters:
                - name: publicationTarget
                  in: path
                  description: The publicationTarget id.
                  required: true
                  schema:
                    type: string
                - name: updateMask
                  in: query
                  description: The list of fields to update.
                  schema:
                    type: string
                    format: field-mask
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/PublicationTarget'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PublicationTarget'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/publicationTargets:batchGet:
        post:
            tags:
                - PublicationTargetService
            description: Retrieves a list of publication targets based on their names.
            operationId: PublicationTargetService_BatchGetPublicationTargets
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/BatchGetPublicationTargetsRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/BatchGetPublicationTargetsResponse'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/publications:
        get:
            tags:
                - PublicationService
            description: Returns a list of publications.
            operationId: PublicationService_ListPublications
            parameters:
                - name: pageSize
                  in: query
                  description: |-
                    The maximum number of publications to return.
                     The service may return fewer than this value.
                     If unspecified, at most 100 publications will be returned.
                     The maximum value is 1000; values above 1000 will be treated as 1000.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    A page token, rec

# --- truncated at 32 KB (74 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canonical/refs/heads/main/openapi/canonical-landscape-debarchive-api-openapi.yml