Portainer · Capability

PortainerCE API

Portainer API is an HTTP API served by Portainer. It is used by the Portainer UI and everything you can do with the UI can be done using the HTTP API. Examples are available at https://documentation.portainer.io/api/api-examples/ You can find out more about Portainer at [http://portainer.io](http://portainer.io) and get some support on [Slack](http://portainer.io/slack/). # Authentication Most of the API environments(endpoints) require to be authenticated as well as some level of authorization to be used. Portainer API uses JSON Web Token to manage authentication and thus requires you to provi

Run with Naftiko PortainerAPI

What You Can Do

POST
Authenticateuser — Authenticate
/auth
POST
Logout — Logout
/auth/logout
POST
Validateoauth — Authenticate with OAuth
/auth/oauth/validate
POST
Backup — Creates an archive with a system data snapshot that could be used to restore the system.
/backup
GET
Customtemplatelist — List available custom templates
/custom_templates
DELETE
Customtemplatedelete — Remove a template
/custom_templates/{id}
GET
Customtemplateinspect — Inspect a custom template
/custom_templates/{id}
PUT
Customtemplateupdate — Update a template
/custom_templates/{id}
GET
Customtemplatefile — Get Template stack file content.
/custom_templates/{id}/file
PUT
Customtemplategitfetch — Fetch the latest config file content based on custom template's git repository configuration
/custom_templates/{id}/git_fetch
POST
Customtemplatecreatefile — Create a custom template
/custom_templates/create/file
POST
Customtemplatecreaterepository — Create a custom template
/custom_templates/create/repository
POST
Customtemplatecreatestring — Create a custom template
/custom_templates/create/string
GET
Dockercontainergpusinspect — Fetch container gpus data
/docker/{environmentId}/containers/{containerId}/gpus
GET
Dockerdashboard — Get counters for the dashboard
/docker/{environmentId}/dashboard
GET
Dockerimageslist — Fetch images
/docker/{environmentId}/images
GET
Edgegrouplist — list EdgeGroups
/edge_groups
POST
Edgegroupcreate — Create an EdgeGroup
/edge_groups
DELETE
Edgegroupdelete — Deletes an EdgeGroup
/edge_groups/{id}
GET
Edgegroupinspect — Inspects an EdgeGroup
/edge_groups/{id}
PUT
Edgegroupupdate — Updates an EdgeGroup
/edge_groups/{id}
GET
Edgejoblist — Fetch EdgeJobs list
/edge_jobs
DELETE
Edgejobdelete — Delete an EdgeJob
/edge_jobs/{id}
GET
Edgejobinspect — Inspect an EdgeJob
/edge_jobs/{id}
PUT
Edgejobupdate — Update an EdgeJob
/edge_jobs/{id}
GET
Edgejobfile — Fetch a file of an EdgeJob
/edge_jobs/{id}/file
GET
Edgejobtaskslist — Fetch the list of tasks on an EdgeJob
/edge_jobs/{id}/tasks
DELETE
Edgejobtasksclear — Clear the log for a specifc task on an EdgeJob
/edge_jobs/{id}/tasks/{taskID}/logs
GET
Edgejobtasklogsinspect — Fetch the log for a specifc task on an EdgeJob
/edge_jobs/{id}/tasks/{taskID}/logs
POST
Edgejobtaskscollect — Collect the log for a specifc task on an EdgeJob
/edge_jobs/{id}/tasks/{taskID}/logs
POST
Edgejobcreatefile — Create an EdgeJob from a file
/edge_jobs/create/file
POST
Edgejobcreatestring — Create an EdgeJob from a text
/edge_jobs/create/string
GET
Edgestacklist — Fetches the list of EdgeStacks
/edge_stacks
DELETE
Edgestackdelete — Delete an EdgeStack
/edge_stacks/{id}
GET
Edgestackinspect — Inspect an EdgeStack
/edge_stacks/{id}
PUT
Edgestackupdate — Update an EdgeStack
/edge_stacks/{id}
GET
Edgestackfile — Fetches the stack file for an EdgeStack
/edge_stacks/{id}/file
PUT
Edgestackstatusupdate — Update an EdgeStack status
/edge_stacks/{id}/status
POST
Edgestackcreatefile — Create an EdgeStack from file
/edge_stacks/create/file
POST
Edgestackcreaterepository — Create an EdgeStack from a git repository
/edge_stacks/create/repository
POST
Edgestackcreatestring — Create an EdgeStack from a text
/edge_stacks/create/string
GET
Endpointgrouplist — List Environment(Endpoint) groups
/endpoint_groups
POST
Post endpoint groups — Create an Environment(Endpoint) Group
/endpoint_groups
DELETE
Endpointgroupdelete — Remove an environment(endpoint) group
/endpoint_groups/{id}
GET
Get endpoint groups id — Inspect an Environment(Endpoint) group
/endpoint_groups/{id}
PUT
Endpointgroupupdate — Update an environment(endpoint) group
/endpoint_groups/{id}
DELETE
Endpointgroupdeleteendpoint — Removes environment(endpoint) from an environment(endpoint) group
/endpoint_groups/{id}/endpoints/{endpointId}
PUT
Endpointgroupaddendpoint — Add an environment(endpoint) to an environment(endpoint) group
/endpoint_groups/{id}/endpoints/{endpointId}
DELETE
Endpointdeletebatchdeprecated — Remove multiple environments
/endpoints
GET
Endpointlist — List environments(endpoints)
/endpoints
POST
Endpointcreate — Create a new environment(endpoint)
/endpoints
DELETE
Endpointdelete — Remove an environment
/endpoints/{id}
GET
Endpointinspect — Inspect an environment(endpoint)
/endpoints/{id}
PUT
Endpointupdate — Update an environment(endpoint)
/endpoints/{id}
PUT
Endpointassociationdelete — De-association an edge environment(endpoint)
/endpoints/{id}/association
POST
Post endpoints id docker v2 browse put — Upload a file under a specific path on the file system of an environment (endpoint)
/endpoints/{id}/docker/v2/browse/put
GET
Endpointdockerhubstatus — fetch docker pull limits
/endpoints/{id}/dockerhub/{registryId}
POST
Post endpoints id edge jobs jobid logs — Update the logs collected from an Edge Job
/endpoints/{id}/edge/jobs/{jobID}/logs
GET
Get endpoints id edge stacks stackid — Inspect an Edge Stack for an Environment(Endpoint)
/endpoints/{id}/edge/stacks/{stackId}
GET
Endpointedgestatusinspect — Get environment(endpoint) status
/endpoints/{id}/edge/status

MCP Tools

authenticateuser

Authenticate

logout

Logout

validateoauth

Authenticate with OAuth

backup

Creates an archive with a system data snapshot that could be used to restore the system.

customtemplatelist

List available custom templates

read-only idempotent
customtemplatedelete

Remove a template

idempotent
customtemplateinspect

Inspect a custom template

read-only idempotent
customtemplateupdate

Update a template

idempotent
customtemplatefile

Get Template stack file content.

read-only idempotent
customtemplategitfetch

Fetch the latest config file content based on custom template's git repository configuration

idempotent
customtemplatecreatefile

Create a custom template

customtemplatecreaterepository

Create a custom template

customtemplatecreatestring

Create a custom template

dockercontainergpusinspect

Fetch container gpus data

read-only idempotent
dockerdashboard

Get counters for the dashboard

read-only idempotent
dockerimageslist

Fetch images

read-only idempotent
edgegrouplist

list EdgeGroups

read-only idempotent
edgegroupcreate

Create an EdgeGroup

edgegroupdelete

Deletes an EdgeGroup

idempotent
edgegroupinspect

Inspects an EdgeGroup

read-only idempotent
edgegroupupdate

Updates an EdgeGroup

idempotent
edgejoblist

Fetch EdgeJobs list

read-only idempotent
edgejobdelete

Delete an EdgeJob

idempotent
edgejobinspect

Inspect an EdgeJob

read-only idempotent
edgejobupdate

Update an EdgeJob

idempotent
edgejobfile

Fetch a file of an EdgeJob

read-only idempotent
edgejobtaskslist

Fetch the list of tasks on an EdgeJob

read-only idempotent
edgejobtasksclear

Clear the log for a specifc task on an EdgeJob

idempotent
edgejobtasklogsinspect

Fetch the log for a specifc task on an EdgeJob

read-only idempotent
edgejobtaskscollect

Collect the log for a specifc task on an EdgeJob

edgejobcreatefile

Create an EdgeJob from a file

edgejobcreatestring

Create an EdgeJob from a text

edgestacklist

Fetches the list of EdgeStacks

read-only idempotent
edgestackdelete

Delete an EdgeStack

idempotent
edgestackinspect

Inspect an EdgeStack

read-only idempotent
edgestackupdate

Update an EdgeStack

idempotent
edgestackfile

Fetches the stack file for an EdgeStack

read-only idempotent
edgestackstatusupdate

Update an EdgeStack status

idempotent
edgestackcreatefile

Create an EdgeStack from file

edgestackcreaterepository

Create an EdgeStack from a git repository

edgestackcreatestring

Create an EdgeStack from a text

endpointgrouplist

List Environment(Endpoint) groups

read-only idempotent
post-endpoint-groups

Create an Environment(Endpoint) Group

endpointgroupdelete

Remove an environment(endpoint) group

idempotent
get-endpoint-groups-id

Inspect an Environment(Endpoint) group

read-only idempotent
endpointgroupupdate

Update an environment(endpoint) group

idempotent
endpointgroupdeleteendpoint

Removes environment(endpoint) from an environment(endpoint) group

idempotent
endpointgroupaddendpoint

Add an environment(endpoint) to an environment(endpoint) group

idempotent
endpointdeletebatchdeprecated

Remove multiple environments

idempotent
endpointlist

List environments(endpoints)

read-only idempotent
endpointcreate

Create a new environment(endpoint)

endpointdelete

Remove an environment

idempotent
endpointinspect

Inspect an environment(endpoint)

read-only idempotent
endpointupdate

Update an environment(endpoint)

idempotent
endpointassociationdelete

De-association an edge environment(endpoint)

idempotent
post-endpoints-id-docker-v2-browse-put

Upload a file under a specific path on the file system of an environment (endpoint)

endpointdockerhubstatus

fetch docker pull limits

read-only idempotent
post-endpoints-id-edge-jobs-jobid-logs

Update the logs collected from an Edge Job

get-endpoints-id-edge-stacks-stackid

Inspect an Edge Stack for an Environment(Endpoint)

read-only idempotent
endpointedgestatusinspect

Get environment(endpoint) status

read-only idempotent

Capability Spec

portainer-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: PortainerCE API
  description: 'Portainer API is an HTTP API served by Portainer. It is used by the Portainer UI and everything you can do
    with the UI can be done using the HTTP API. Examples are available at https://documentation.portainer.io/api/api-examples/
    You can find out more about Portainer at [http://portainer.io](http://portainer.io) and get some support on [Slack](http://portainer.io/slack/).
    # Authentication Most of the API environments(endpoints) require to be authenticated as well as some level of authorization
    to be used. Portainer API uses JSON Web Token to manage authentication and thus requires you to provi'
  tags:
  - Portainer
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: portainer
    baseUri: https://api.example.com
    description: PortainerCE API HTTP API.
    resources:
    - name: auth
      path: /auth
      operations:
      - name: authenticateuser
        method: POST
        description: Authenticate
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: auth-logout
      path: /auth/logout
      operations:
      - name: logout
        method: POST
        description: Logout
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: auth-oauth-validate
      path: /auth/oauth/validate
      operations:
      - name: validateoauth
        method: POST
        description: Authenticate with OAuth
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: backup
      path: /backup
      operations:
      - name: backup
        method: POST
        description: Creates an archive with a system data snapshot that could be used to restore the system.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: custom-templates
      path: /custom_templates
      operations:
      - name: customtemplatelist
        method: GET
        description: List available custom templates
        inputParameters:
        - name: type
          in: query
          type: string
          required: true
          description: Template types
        - name: edge
          in: query
          type: string
          description: Filter by edge templates
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: custom-templates-id
      path: /custom_templates/{id}
      operations:
      - name: customtemplatedelete
        method: DELETE
        description: Remove a template
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Template identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: customtemplateinspect
        method: GET
        description: Inspect a custom template
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Template identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: customtemplateupdate
        method: PUT
        description: Update a template
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Template identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: custom-templates-id-file
      path: /custom_templates/{id}/file
      operations:
      - name: customtemplatefile
        method: GET
        description: Get Template stack file content.
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Template identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: custom-templates-id-git-fetch
      path: /custom_templates/{id}/git_fetch
      operations:
      - name: customtemplategitfetch
        method: PUT
        description: Fetch the latest config file content based on custom template's git repository configuration
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Template identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: custom-templates-create-file
      path: /custom_templates/create/file
      operations:
      - name: customtemplatecreatefile
        method: POST
        description: Create a custom template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: custom-templates-create-repository
      path: /custom_templates/create/repository
      operations:
      - name: customtemplatecreaterepository
        method: POST
        description: Create a custom template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: custom-templates-create-string
      path: /custom_templates/create/string
      operations:
      - name: customtemplatecreatestring
        method: POST
        description: Create a custom template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: docker-environmentid-containers-containerid-gpus
      path: /docker/{environmentId}/containers/{containerId}/gpus
      operations:
      - name: dockercontainergpusinspect
        method: GET
        description: Fetch container gpus data
        inputParameters:
        - name: environmentId
          in: path
          type: string
          required: true
          description: Environment identifier
        - name: containerId
          in: path
          type: string
          required: true
          description: Container identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: docker-environmentid-dashboard
      path: /docker/{environmentId}/dashboard
      operations:
      - name: dockerdashboard
        method: GET
        description: Get counters for the dashboard
        inputParameters:
        - name: environmentId
          in: path
          type: string
          required: true
          description: Environment identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: docker-environmentid-images
      path: /docker/{environmentId}/images
      operations:
      - name: dockerimageslist
        method: GET
        description: Fetch images
        inputParameters:
        - name: environmentId
          in: path
          type: string
          required: true
          description: Environment identifier
        - name: withUsage
          in: query
          type: string
          description: Include image usage information
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-groups
      path: /edge_groups
      operations:
      - name: edgegrouplist
        method: GET
        description: list EdgeGroups
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: edgegroupcreate
        method: POST
        description: Create an EdgeGroup
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-groups-id
      path: /edge_groups/{id}
      operations:
      - name: edgegroupdelete
        method: DELETE
        description: Deletes an EdgeGroup
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeGroup Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: edgegroupinspect
        method: GET
        description: Inspects an EdgeGroup
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeGroup Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: edgegroupupdate
        method: PUT
        description: Updates an EdgeGroup
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeGroup Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-jobs
      path: /edge_jobs
      operations:
      - name: edgejoblist
        method: GET
        description: Fetch EdgeJobs list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-jobs-id
      path: /edge_jobs/{id}
      operations:
      - name: edgejobdelete
        method: DELETE
        description: Delete an EdgeJob
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeJob Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: edgejobinspect
        method: GET
        description: Inspect an EdgeJob
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeJob Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: edgejobupdate
        method: PUT
        description: Update an EdgeJob
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeJob Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-jobs-id-file
      path: /edge_jobs/{id}/file
      operations:
      - name: edgejobfile
        method: GET
        description: Fetch a file of an EdgeJob
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeJob Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-jobs-id-tasks
      path: /edge_jobs/{id}/tasks
      operations:
      - name: edgejobtaskslist
        method: GET
        description: Fetch the list of tasks on an EdgeJob
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeJob Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-jobs-id-tasks-taskid-logs
      path: /edge_jobs/{id}/tasks/{taskID}/logs
      operations:
      - name: edgejobtasksclear
        method: DELETE
        description: Clear the log for a specifc task on an EdgeJob
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeJob Id
        - name: taskID
          in: path
          type: string
          required: true
          description: Task Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: edgejobtasklogsinspect
        method: GET
        description: Fetch the log for a specifc task on an EdgeJob
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeJob Id
        - name: taskID
          in: path
          type: string
          required: true
          description: Task Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: edgejobtaskscollect
        method: POST
        description: Collect the log for a specifc task on an EdgeJob
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeJob Id
        - name: taskID
          in: path
          type: string
          required: true
          description: Task Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-jobs-create-file
      path: /edge_jobs/create/file
      operations:
      - name: edgejobcreatefile
        method: POST
        description: Create an EdgeJob from a file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-jobs-create-string
      path: /edge_jobs/create/string
      operations:
      - name: edgejobcreatestring
        method: POST
        description: Create an EdgeJob from a text
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-stacks
      path: /edge_stacks
      operations:
      - name: edgestacklist
        method: GET
        description: Fetches the list of EdgeStacks
        inputParameters:
        - name: summarizeStatuses
          in: query
          type: string
          description: will summarize the statuses
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-stacks-id
      path: /edge_stacks/{id}
      operations:
      - name: edgestackdelete
        method: DELETE
        description: Delete an EdgeStack
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeStack Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: edgestackinspect
        method: GET
        description: Inspect an EdgeStack
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeStack Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: edgestackupdate
        method: PUT
        description: Update an EdgeStack
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeStack Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-stacks-id-file
      path: /edge_stacks/{id}/file
      operations:
      - name: edgestackfile
        method: GET
        description: Fetches the stack file for an EdgeStack
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeStack Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-stacks-id-status
      path: /edge_stacks/{id}/status
      operations:
      - name: edgestackstatusupdate
        method: PUT
        description: Update an EdgeStack status
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EdgeStack Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-stacks-create-file
      path: /edge_stacks/create/file
      operations:
      - name: edgestackcreatefile
        method: POST
        description: Create an EdgeStack from file
        inputParameters:
        - name: dryrun
          in: query
          type: string
          description: if true, will not create an edge stack, but just will check the settings and return a non-persisted
            edge stack object
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-stacks-create-repository
      path: /edge_stacks/create/repository
      operations:
      - name: edgestackcreaterepository
        method: POST
        description: Create an EdgeStack from a git repository
        inputParameters:
        - name: dryrun
          in: query
          type: string
          description: if true, will not create an edge stack, but just will check the settings and return a non-persisted
            edge stack object
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: edge-stacks-create-string
      path: /edge_stacks/create/string
      operations:
      - name: edgestackcreatestring
        method: POST
        description: Create an EdgeStack from a text
        inputParameters:
        - name: dryrun
          in: query
          type: string
          description: if true, will not create an edge stack, but just will check the settings and return a non-persisted
            edge stack object
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoint-groups
      path: /endpoint_groups
      operations:
      - name: endpointgrouplist
        method: GET
        description: List Environment(Endpoint) groups
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: post-endpoint-groups
        method: POST
        description: Create an Environment(Endpoint) Group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoint-groups-id
      path: /endpoint_groups/{id}
      operations:
      - name: endpointgroupdelete
        method: DELETE
        description: Remove an environment(endpoint) group
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EndpointGroup identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-endpoint-groups-id
        method: GET
        description: Inspect an Environment(Endpoint) group
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Environment(Endpoint) group identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: endpointgroupupdate
        method: PUT
        description: Update an environment(endpoint) group
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EndpointGroup identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoint-groups-id-endpoints-endpointid
      path: /endpoint_groups/{id}/endpoints/{endpointId}
      operations:
      - name: endpointgroupdeleteendpoint
        method: DELETE
        description: Removes environment(endpoint) from an environment(endpoint) group
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EndpointGroup identifier
        - name: endpointId
          in: path
          type: string
          required: true
          description: Environment(Endpoint) identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: endpointgroupaddendpoint
        method: PUT
        description: Add an environment(endpoint) to an environment(endpoint) group
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: EndpointGroup identifier
        - name: endpointId
          in: path
          type: string
          required: true
          description: Environment(Endpoint) identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoints
      path: /endpoints
      operations:
      - name: endpointdeletebatchdeprecated
        method: DELETE
        description: Remove multiple environments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: endpointlist
        method: GET
        description: List environments(endpoints)
        inputParameters:
        - name: start
          in: query
          type: string
          description: Start searching from
        - name: limit
          in: query
          type: string
          description: Limit results to this value
        - name: sort
          in: query
          type: string
          description: Sort results by this value
        - name: order
          in: query
          type: string
          description: Order sorted results by desc/asc
        - name: search
          in: query
          type: string
          description: Search query
        - name: groupIds
          in: query
          type: string
          description: List environments(endpoints) of these groups
        - name: status
          in: query
          type: string
          description: List environments(endpoints) by this status
        - name: types
          in: query
          type: string
          description: List environments(endpoints) of this type
        - name: tagIds
          in: query
          type: string
          description: search environments(endpoints) with these tags (depends on tagsPartialMatch)
        - name: tagsPartialMatch
          in: query
          type: string
          description: If true, will return environment(endpoint) which has one of tagIds, if false (or missing) will return
            only environments(endpoints) that has all the tags
        - name: endpointIds
          in: query
          type: string
          description: will return only these environments(endpoints)
        - name: excludeIds
          in: query
          type: string
          description: will exclude these environments(endpoints)
        - name: excludeGroupIds
          in: query
          type: string
          description: will exclude environments(endpoints) belonging to these endpoint groups
        - name: provisioned
          in: query
          type: string
          description: If true, will return environment(endpoint) that were provisioned
        - name: agentVersions
          in: query
          type: string
          description: will return only environments with on of these agent versions
        - name: edgeAsync
          in: query
          type: string
          description: if exists true show only edge async agents, false show only standard edge agents. if missing, will
            show both types (relevant only for edge agents)
        - name: edgeDeviceUntrusted
          in: query
          type: string
          description: if true, show only untrusted edge agents, if false show only trusted edge agents (relevant only for
            edge agents)
        - name: edgeCheckInPassedSeconds
          in: query
          type: string
          description: if bigger then zero, show only edge agents that checked-in in the last provided seconds (relevant only
            for edge agents)
        - name: excludeSnapshots
          in: query
          type: string
          description: if true, the snapshot data won't be retrieved
        - name: name
          in: query
          type: string
          description: will return only environments(endpoints) with this name
        - name: edgeStackStatus
          in: query
          type: string
          description: only applied when edgeStackId exists. Filter the returned environments based on their deployment status
            in the stack (not the environment status!)
        - name: edgeGroupIds
          in: query
          type: string
          description: List environments(endpoints) of these edge groups
        - name: excludeEdgeGroupIds
          in: query
          type: string
          description: Exclude environments(endpoints) of these edge groups
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: endpointcreate
        method: POST
        description: Create a new environment(endpoint)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoints-id
      path: /endpoints/{id}
      operations:
      - name: endpointdelete
        method: DELETE
        description: Remove an environment
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Environment(Endpoint) identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: endpointinspect
        method: GET
        description: Inspect an environment(endpoint)
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Environment(Endpoint) identifier
        - name: excludeSnapshot
          in: query
          type: string
          description: if true, the snapshot data won't be retrieved
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: endpointupdate
        method: PUT
        description: Update an environment(endpoint)
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Environment(Endpoint) identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoints-id-association
      path: /endpoints/{id}/association
      operations:
      - name: endpointassociationdelete
        method: PUT
        description: De-association an edge environment(endpoint)
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Environment(Endpoint) identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoints-id-docker-v2-browse-put
      path: /endpoints/{id}/docker/v2/browse/put
      operations:
      - name: post-endpoints-id-docker-v2-browse-put
        method: POST
        description: Upload a file under a specific path on the file system of an environment (endpoint)
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Environment(Endpoint) identifier
        - name: volumeID
          in: query
          type: string
          description: Optional volume identifier to upload the file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoints-id-dockerhub-registryid
      path: /endpoints/{id}/dockerhub/{registryId}
      operations:
      - name: endpointdockerhubstatus
        method: GET
        description: fetch docker pull limits
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: endpoint ID
        - name: registryId
          in: path
          type: string
          required: true
          description: registry ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoints-id-edge-jobs-jobid-logs
      path: /endpoints/{id}/edge/jobs/{jobID}/logs
      operations:
      - name: post-endpoints-id-edge-jobs-jobid-logs
        method: POST
        description: Update the logs collected from an Edge Job
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: environment(endpoint) Id
        - name: jobID
          in: path
          type: string
          required: true
          description: Job Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoints-id-edge-stacks-stackid
      path: /endpoints/{id}/edge/stacks/{stackId}
      operations:
      - name: get-endpoints-id-edge-stacks-stackid
        method: GET
        description: Inspect an Edge Stack for an Environment(Endpoint)
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: environment(endpoint) Id
        - name: stackId
          in: path
          type: string
          required: true
          description: EdgeStack Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: endpoints-id-edge-status
      path: /endpoints/{id}/edge/status
      operations:
      - name: endpointedgestatusinspect
        method: GET
        description: Get environment(endpoint) status
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: Environment(Endpoint) identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: portainer-rest
    description: REST adapter for PortainerCE API.
    resources:
    - path: /auth
      name: authenticateuser
      operations:
      - method: POST
        name: authenticateuser
        description: Authenticate
        call: portainer.authenticateuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /auth/logout
      name: logout
      operations:
      - method: POST
        name: logout
        description: Logout
        call: portainer.logout
        outputParameters:
        - type: object
          mapping: $.
    - path: /auth/oauth/validate
      name: validateoauth
      operations:
      - method: POST
        name: validateoauth
        description: Authenticate with OAuth
        call: portainer.validateoauth
        outputParameters:
        - type: object
          mapping: $.
    - path: /backup
      name: backup
      operations:
      - method: POST
        name: backup
        description: Creates an archive with a system data snapshot that could be used to restore the system.
        call: portainer.backup
        outputParameters:
        - type: object
          mapping: $.
    - path: /custom_templates
      name: customtemplatelist
      operations:
      - method: GET
        name: customtemplatelist
        description: List available custom templates
        call: portainer.customtemplatelist
        outputParameters:
        - type: object
          mapping: $.
    - path: /custom_templates/{id}
      name: customtemplatedelete
      operations:
      - method: DELETE
        name: customtemplatedelete
        description: Remove a template
        call: portainer.customtemplatedelete
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /custom_templates/{id}
      name: customtemplateinspect
      operations:
      - me

# --- truncated at 32 KB (79 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/portainer/refs/heads/main/capabilities/portainer-capability.yaml