Skip to content

Docker Engine API API

by docker.com

No authHTTPSDevelopment
Open documentation ↗

Overview

The Engine API is an HTTP API served by Docker Engine. It is the API the Docker client uses to communicate with the Engine, so everything the Docker client can do can be done with the API. Most of the client's commands map directly to API endpoints (e.g. `docker ps` is `GET /containers/json`). The notable exception is running containers, which consists of several API calls. # Errors The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format: ``` { "message": "page not found" } ``` # Versioning The API is usually changed in each release of Docker, so API calls are versioned to ensure that clients don't break. For Docker Engine 17.09, the API version is 1.32. To lock to this version, you prefix the URL with `/v1.32`. For example, calling `/info` is the same as calling `/v1.32/info`. Engine releases in the near future should support this version of the API, so your client will continue to work even if it is talking to a newer Engine. In previous versions of Docker, it was possible to access the API without providing a version. This behaviour is now deprecated will be removed in a future version of Docker. The API uses an open schema model, which means server may add extra properties to responses. Likewise, the server will ignore any extra query parameters and request body properties. When you write clients, you need to ignore additional properties in responses to ensure they do not break when talking to newer Docker daemons. This documentation is for version 1.33 of the API. Use this table to find documentation for previous versions of the API: Docker version | API version | Changes ----------------|-------------|--------- 17.09.x | [1.31](https://docs.docker.com/engine/api/v1.32/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-32-api-changes) 17.07.x | [1.31](https://docs.docker.com/engine/api/v1.31/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-31-api-changes) 17.06.x | [1.30](https://docs.docker.com/engine/api/v1.30/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-30-api-changes) 17.05.x | [1.29](https://docs.docker.com/engine/api/v1.29/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-29-api-changes) 17.04.x | [1.28](https://docs.docker.com/engine/api/v1.28/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-28-api-changes) 17.03.1 | [1.27](https://docs.docker.com/engine/api/v1.27/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-27-api-changes) 1.13.1 & 17.03.0 | [1.26](https://docs.docker.com/engine/api/v1.26/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-26-api-changes) 1.13.0 | [1.25](https://docs.docker.com/engine/api/v1.25/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-25-api-changes) 1.12.x | [1.24](https://docs.docker.com/engine/api/v1.24/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-24-api-changes) 1.11.x | [1.23](https://docs.docker.com/engine/api/v1.23/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-23-api-changes) 1.10.x | [1.22](https://docs.docker.com/engine/api/v1.22/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-22-api-changes) 1.9.x | [1.21](https://docs.docker.com/engine/api/v1.21/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-21-api-changes) 1.8.x | [1.20](https://docs.docker.com/engine/api/v1.20/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-20-api-changes) 1.7.x | [1.19](https://docs.docker.com/engine/api/v1.19/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-19-api-changes) 1.6.x | [1.18](https://docs.docker.com/engine/api/v1.18/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-18-api-changes) # Authentication Authentication for registries is handl

Docker Engine API is a development API from docker.com. It needs no API key. It is served over HTTPS. Its OpenAPI description documents 104 endpoints.

At a glance

Authentication
No auth
HTTPS
Yes
CORS
Unknown
Category
Development
Version
1.33
Endpoints
104
Spec updated
2021-06-21

Endpoints

MethodPathWhat it does
GET/_pingPing
POST/authCheck auth configuration
POST/buildBuild an image
POST/build/pruneDelete builder cache
POST/commitCreate a new image from a container
GET/configsList configs
POST/configs/createCreate a config
GET/configs/{id}Inspect a config
DELETE/configs/{id}Delete a config
POST/configs/{id}/updateUpdate a Config
POST/containers/createCreate a container
GET/containers/jsonList containers
POST/containers/pruneDelete stopped containers
DELETE/containers/{id}Remove a container
GET/containers/{id}/archiveGet an archive of a filesystem resource in a container
PUT/containers/{id}/archiveExtract an archive of files or folders to a directory in a container
POST/containers/{id}/attachAttach to a container
GET/containers/{id}/attach/wsAttach to a container via a websocket
GET/containers/{id}/changesGet changes on a container’s filesystem
POST/containers/{id}/execCreate an exec instance
GET/containers/{id}/exportExport a container
GET/containers/{id}/jsonInspect a container
POST/containers/{id}/killKill a container
GET/containers/{id}/logsGet container logs
POST/containers/{id}/pausePause a container
POST/containers/{id}/renameRename a container
POST/containers/{id}/resizeResize a container TTY
POST/containers/{id}/restartRestart a container
POST/containers/{id}/startStart a container
GET/containers/{id}/statsGet container stats based on resource usage
POST/containers/{id}/stopStop a container
GET/containers/{id}/topList processes running inside a container
POST/containers/{id}/unpauseUnpause a container
POST/containers/{id}/updateUpdate a container
POST/containers/{id}/waitWait for a container
GET/distribution/{name}/jsonGet image information from the registry
GET/eventsMonitor events
GET/exec/{id}/jsonInspect an exec instance
POST/exec/{id}/resizeResize an exec instance
POST/exec/{id}/startStart an exec instance
POST/images/createCreate an image
GET/images/getExport several images
GET/images/jsonList Images
POST/images/loadImport images
POST/images/pruneDelete unused images
GET/images/searchSearch images
DELETE/images/{name}Remove an image
GET/images/{name}/getExport an image
GET/images/{name}/historyGet the history of an image
GET/images/{name}/jsonInspect an image
POST/images/{name}/pushPush an image
POST/images/{name}/tagTag an image
GET/infoGet system information
GET/networksList networks
POST/networks/createCreate a network
POST/networks/pruneDelete unused networks
GET/networks/{id}Inspect a network
DELETE/networks/{id}Remove a network
POST/networks/{id}/connectConnect a container to a network
POST/networks/{id}/disconnectDisconnect a container from a network
GET/nodesList nodes
GET/nodes/{id}Inspect a node
DELETE/nodes/{id}Delete a node
POST/nodes/{id}/updateUpdate a node
GET/pluginsList plugins
POST/plugins/createCreate a plugin
GET/plugins/privilegesGet plugin privileges
POST/plugins/pullInstall a plugin
DELETE/plugins/{name}Remove a plugin
POST/plugins/{name}/disableDisable a plugin
POST/plugins/{name}/enableEnable a plugin
GET/plugins/{name}/jsonInspect a plugin
POST/plugins/{name}/pushPush a plugin
POST/plugins/{name}/setConfigure a plugin
POST/plugins/{name}/upgradeUpgrade a plugin
GET/secretsList secrets
POST/secrets/createCreate a secret
GET/secrets/{id}Inspect a secret
DELETE/secrets/{id}Delete a secret
POST/secrets/{id}/updateUpdate a Secret
GET/servicesList services
POST/services/createCreate a service
GET/services/{id}Inspect a service
DELETE/services/{id}Delete a service
GET/services/{id}/logsGet service logs
POST/services/{id}/updateUpdate a service
POST/sessionInitialize interactive session
GET/swarmInspect swarm
POST/swarm/initInitialize a new swarm
POST/swarm/joinJoin an existing swarm
POST/swarm/leaveLeave a swarm
POST/swarm/unlockUnlock a locked manager
GET/swarm/unlockkeyGet the unlock key
POST/swarm/updateUpdate a swarm
GET/system/dfGet data usage information
GET/tasksList tasks
GET/tasks/{id}Inspect a task
GET/tasks/{id}/logsGet task logs
GET/versionGet version
GET/volumesList volumes

Showing the first 100 of 104 endpoints; the full list is in the documentation.

Questions

Does the Docker Engine API API need an API key?

No. The Docker Engine API API can be called without an API key or sign-up, which makes it handy for prototypes and front-end demos.

Does the Docker Engine API API support HTTPS?

Yes, the Docker Engine API API is served over HTTPS.

How many endpoints does the Docker Engine API API have?

Its OpenAPI description lists 104 endpoints in version 1.33. The first 100 are shown on this page.

What are alternatives to the Docker Engine API API?

Other Development APIs include Cloudflare, Azure DevOps, IPify, App Store Connect API, StackExchange.

Compare alternatives →

Listed from APIs.guru (CC0).