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
- OpenAPI
- Specification ↗
- Spec updated
- 2021-06-21
Endpoints
| Method | Path | What it does |
|---|---|---|
| GET | /_ping | Ping |
| POST | /auth | Check auth configuration |
| POST | /build | Build an image |
| POST | /build/prune | Delete builder cache |
| POST | /commit | Create a new image from a container |
| GET | /configs | List configs |
| POST | /configs/create | Create a config |
| GET | /configs/{id} | Inspect a config |
| DELETE | /configs/{id} | Delete a config |
| POST | /configs/{id}/update | Update a Config |
| POST | /containers/create | Create a container |
| GET | /containers/json | List containers |
| POST | /containers/prune | Delete stopped containers |
| DELETE | /containers/{id} | Remove a container |
| GET | /containers/{id}/archive | Get an archive of a filesystem resource in a container |
| PUT | /containers/{id}/archive | Extract an archive of files or folders to a directory in a container |
| POST | /containers/{id}/attach | Attach to a container |
| GET | /containers/{id}/attach/ws | Attach to a container via a websocket |
| GET | /containers/{id}/changes | Get changes on a container’s filesystem |
| POST | /containers/{id}/exec | Create an exec instance |
| GET | /containers/{id}/export | Export a container |
| GET | /containers/{id}/json | Inspect a container |
| POST | /containers/{id}/kill | Kill a container |
| GET | /containers/{id}/logs | Get container logs |
| POST | /containers/{id}/pause | Pause a container |
| POST | /containers/{id}/rename | Rename a container |
| POST | /containers/{id}/resize | Resize a container TTY |
| POST | /containers/{id}/restart | Restart a container |
| POST | /containers/{id}/start | Start a container |
| GET | /containers/{id}/stats | Get container stats based on resource usage |
| POST | /containers/{id}/stop | Stop a container |
| GET | /containers/{id}/top | List processes running inside a container |
| POST | /containers/{id}/unpause | Unpause a container |
| POST | /containers/{id}/update | Update a container |
| POST | /containers/{id}/wait | Wait for a container |
| GET | /distribution/{name}/json | Get image information from the registry |
| GET | /events | Monitor events |
| GET | /exec/{id}/json | Inspect an exec instance |
| POST | /exec/{id}/resize | Resize an exec instance |
| POST | /exec/{id}/start | Start an exec instance |
| POST | /images/create | Create an image |
| GET | /images/get | Export several images |
| GET | /images/json | List Images |
| POST | /images/load | Import images |
| POST | /images/prune | Delete unused images |
| GET | /images/search | Search images |
| DELETE | /images/{name} | Remove an image |
| GET | /images/{name}/get | Export an image |
| GET | /images/{name}/history | Get the history of an image |
| GET | /images/{name}/json | Inspect an image |
| POST | /images/{name}/push | Push an image |
| POST | /images/{name}/tag | Tag an image |
| GET | /info | Get system information |
| GET | /networks | List networks |
| POST | /networks/create | Create a network |
| POST | /networks/prune | Delete unused networks |
| GET | /networks/{id} | Inspect a network |
| DELETE | /networks/{id} | Remove a network |
| POST | /networks/{id}/connect | Connect a container to a network |
| POST | /networks/{id}/disconnect | Disconnect a container from a network |
| GET | /nodes | List nodes |
| GET | /nodes/{id} | Inspect a node |
| DELETE | /nodes/{id} | Delete a node |
| POST | /nodes/{id}/update | Update a node |
| GET | /plugins | List plugins |
| POST | /plugins/create | Create a plugin |
| GET | /plugins/privileges | Get plugin privileges |
| POST | /plugins/pull | Install a plugin |
| DELETE | /plugins/{name} | Remove a plugin |
| POST | /plugins/{name}/disable | Disable a plugin |
| POST | /plugins/{name}/enable | Enable a plugin |
| GET | /plugins/{name}/json | Inspect a plugin |
| POST | /plugins/{name}/push | Push a plugin |
| POST | /plugins/{name}/set | Configure a plugin |
| POST | /plugins/{name}/upgrade | Upgrade a plugin |
| GET | /secrets | List secrets |
| POST | /secrets/create | Create a secret |
| GET | /secrets/{id} | Inspect a secret |
| DELETE | /secrets/{id} | Delete a secret |
| POST | /secrets/{id}/update | Update a Secret |
| GET | /services | List services |
| POST | /services/create | Create a service |
| GET | /services/{id} | Inspect a service |
| DELETE | /services/{id} | Delete a service |
| GET | /services/{id}/logs | Get service logs |
| POST | /services/{id}/update | Update a service |
| POST | /session | Initialize interactive session |
| GET | /swarm | Inspect swarm |
| POST | /swarm/init | Initialize a new swarm |
| POST | /swarm/join | Join an existing swarm |
| POST | /swarm/leave | Leave a swarm |
| POST | /swarm/unlock | Unlock a locked manager |
| GET | /swarm/unlockkey | Get the unlock key |
| POST | /swarm/update | Update a swarm |
| GET | /system/df | Get data usage information |
| GET | /tasks | List tasks |
| GET | /tasks/{id} | Inspect a task |
| GET | /tasks/{id}/logs | Get task logs |
| GET | /version | Get version |
| GET | /volumes | List 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.
Similar development APIs
Compare alternatives →Cloudflare
DevelopmentManage DNS, CDN, Workers and other services; documented with an official OpenAPI 3.0 spec
Azure DevOps
DevelopmentThe Azure DevOps basic components of a REST API request/response pair
IPify
DevelopmentA simple IP Address API
App Store Connect API
DevelopmentThe data structure that represents an app store connect api resource.
StackExchange
DevelopmentQ&A forum for developers
IPinfo
DevelopmentAnother simple IP Address API
Listed from APIs.guru (CC0).