How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Pebble API

Pebble is Canonical's lightweight service manager, used inside snaps, ROCKs and Kubernetes charm workloads. It exposes a local REST API over a unix socket for managing services, layers, checks, files, exec sessions and notices. Canonical publishes an OpenAPI 3.1.0 contract for it.

Pebble API is one of 22 APIs that Canonical publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Service Management, Containers, and Init. The published artifact set on APIs.io includes an OpenAPI specification and API documentation.

This API exposes 25 operations across 19 paths, organized into 14 resource areas, and defines 40 schemas. It is described by OpenAPI 3.1.0, at version v1.

25 operations 19 paths 40 schemas 15 GET10 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
v1
Resource Areas
14

Paths & Operations 25

Across 19 paths, the API surfaces 25 operations — 15 GET, 10 POST. They span 14 resource areas, including changes and tasks, checks, exec, files, health, identities, layers, logs, and 6 more. Each is listed below with its method, path, parameters, and response codes.

changes and tasks 5
GET
/v1/changes
Get changes
2 params → 200
GET
/v1/changes/{id}
Get a specific change
1 param → 200
POST
/v1/changes/{id}
Perform an action on a change
1 param body → 200
GET
/v1/changes/{id}/wait
Wait for a change to complete
2 params → 200
GET
/v1/tasks/{task-id}/websocket/{websocket-id}
Connect to a task's websocket
2 params → 101
checks 3
GET
/v1/checks
Get checks
2 params → 200
POST
/v1/checks
Manage checks
body → 200
POST
/v1/checks/refresh
Refresh a check
body → 200
exec 1
POST
/v1/exec
Execute a command
body → 202
files 2
GET
/v1/files
Read or list files
4 params → 200
POST
/v1/files
Create, write, remove files/directories
body → 200
health 1
GET
/v1/health
Health of specified checks
2 params → 200502
identities 2
GET
/v1/identities
Get all identities
→ 200
POST
/v1/identities
Manage identities
body → 200
layers 1
POST
/v1/layers
Add a layer to the plan
body → 200
logs 1
GET
/v1/logs
Get service logs
3 params → 200
metrics 1
GET
/v1/metrics
Get Pebble metrics
→ 200
notices 3
GET
/v1/notices
Get notices
6 params → 200
POST
/v1/notices
Create a new notice
body → 200
GET
/v1/notices/{id}
Get a specific notice
1 param → 200
plan 1
GET
/v1/plan
Get the current plan
1 param → 200
services 2
GET
/v1/services
List services
1 param → 200
POST
/v1/services
Manage services
body → 202
signals 1
POST
/v1/signals
Send a signal to services
body → 200
system info 1
GET
/v1/system-info
Get system information
→ 200

Schemas 40

The contract defines 40 schemas that model the data the API accepts and returns. The most detailed are PostExecRequest (14 properties), notice (11 properties), FileInfo (10 properties), changeInfo (10 properties). Each schema is shown below with its type and property counts.

BaseResponse
object
3 properties
BaseAsyncResponse
CheckActionResponse
GetChangesResponse
GetChangeByIDResponse
GetServicesResponse
PostServicesResponse
GetSystemInfoResponse
GetHealthOKResponse
GetHealthUnhealthyResponse
GetChecksResponse
RefreshCheckResponse
GetPlanResponse
PostLayersResponse
PostSignalsResponse
PostFilesResponse
ListFilesResponse
ReadFilesResponse
object
2 properties
FileInfo
object
10 properties 5 required
PostFilesMakeDirsRequest
object
2 properties 2 required
PostFilesRemovePathsRequest
object
2 properties 2 required
PostExecRequest
object
14 properties 1 required
PostExecResponse
GetNoticesResponse
PostNoticesResponse
GetNoticeByIDResponse
GetIdentitiesResponse
serviceInfo
object
4 properties
changeInfo
object
10 properties
taskInfo
object
9 properties
taskInfoProgress
object
3 properties
systemInfo
object
3 properties 2 required
checkInfo
object
8 properties
logs
object
3 properties 3 required
errorResult
object
3 properties 1 required
fileResult
object
2 properties
makeDirsItem
object
7 properties 1 required
removePathsItem
object
2 properties 1 required
notice
object
11 properties
identity
object
3 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

canonical-pebble-api-openapi.yml Raw ↑

Other APIs Canonical publishes across the network.

Snap Store API
Charmhub API
snapd REST API
MAAS API
Juju Client / Controller API
Launchpad Web Services API
Ubuntu Pro Client API
Landscape API
Canonical Assertions API
Canonical Search API
Canonical Snaps API
LXD REST API
Where this information came from

This is an independent, third-party profile of Pebble API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.