Canonical Permissions API

The permissions API from Canonical — 3 operation(s) for permissions.

Operations 3

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /1.0/auth/permissions List available LXD permissions · Get the permissions #
Ask an LLM
“Which permissions can I grant on LXD entities?”
“Can I list only the permissions for one entity type?”
Tell an agent
List available permissions for entity type {entityType}.
Show the permissions available in project {project}.
GET /1.0/auth/permissions?recursion=1 List LXD permissions with the groups holding them · Get the permissions #
Ask an LLM
“Which groups hold each LXD permission?”
“How do I see who has been granted a permission on an entity type?”
Tell an agent
List permissions and the groups that hold them for entity type {entity_type}.
Show which groups have permissions in project {project}.
GET /v1/permissions Get my permissions in the v1 service · Get Permissions #
Ask an LLM
“What permissions does my account have in the v1 service?”
“How do I check what I am allowed to do before calling other v1 endpoints?”
Tell an agent
Get my v1 permissions.
Tell me what my account is permitted to do in the v1 service.

Documentation

Specifications

Schemas & Data

Other Resources

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/canonical:canonical-permissions-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-permissions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canonical Permissions API
  version: '1.0'
  description: 'Operations tagged permissions across 2 of this provider''s published API definitions: canonical-lxd-rest-api-openapi.yml, canonical-test-observer-api-openapi.json. Each path carries the servers of the definition it was published in.'
tags:
- name: Permissions
paths:
  /1.0/auth/permissions:
    get:
      description: Returns a list of available permissions.
      operationId: permissions_get
      parameters:
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Type of entity
        example: instance
        in: query
        name: entityType
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of permissions
                    items:
                      $ref: '#/components/schemas/Permission'
                    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 permissions
      tags:
      - Permissions
  /1.0/auth/permissions?recursion=1:
    get:
      description: Returns a list of available permissions (including groups that have those permissions).
      operationId: permissions_get_recursion1
      parameters:
      - description: Project name
        example: default
        in: query
        name: project
        schema:
          type: string
      - description: Type of entity
        example: instance
        in: query
        name: entity-type
        schema:
          type: string
      responses:
        '200':
          description: API endpoints
          content:
            application/json:
              schema:
                description: Sync response
                properties:
                  metadata:
                    description: List of permissions
                    items:
                      $ref: '#/components/schemas/PermissionInfo'
                    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 permissions
      tags:
      - Permissions
  /v1/permissions:
    get:
      tags:
      - Permissions
      summary: Get Permissions
      operationId: get_permissions_v1_permissions_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      x-permissions:
      - view_permission
components:
  responses:
    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
    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
  schemas:
    PermissionInfo:
      properties:
        entitlement:
          description: Entitlement is the entitlement define for the entity type.
          example: can_view
          type: string
          x-go-name: Entitlement
        entity_type:
          description: EntityType is the string representation of the entity type.
          example: instance
          type: string
          x-go-name: EntityType
        groups:
          description: Groups is a list of groups that have the Entitlement on the Entity.
          example:
          - foo
          - bar
          items:
            type: string
          type: array
          x-go-name: Groups
        url:
          description: EntityReference is the URL of the entity that the permission applies to.
          example: /1.0/instances/c1?project=default
          type: string
          x-go-name: EntityReference
      title: PermissionInfo expands a Permission to include any groups that may have the specified Permission.
      type: object
      x-go-package: github.com/canonical/lxd/shared/api
    Permission:
      properties:
        entitlement:
          description: Entitlement is the entitlement define for the entity type.
          example: can_view
          type: string
          x-go-name: Entitlement
        entity_type:
          description: EntityType is the string representation of the entity type.
          example: instance
          type: string
          x-go-name: EntityType
        url:
          description: EntityReference is the URL of the entity that the permission applies to.
          example: /1.0/instances/c1?project=default
          type: string
          x-go-name: EntityReference
      title: Permission represents a permission that may be granted to a group.
      type: object
      x-go-package: github.com/canonical/lxd/shared/api
x-refined-from:
- canonical-lxd-rest-api-openapi.yml
- canonical-test-observer-api-openapi.json