Podman
Podman is a daemonless, open-source container engine for developing, managing, and running OCI containers on Linux, supporting both rootful and rootless operation as a drop-in replacement for Docker. The Podman REST API exposes a Docker-compatible surface alongside Libpod-specific endpoints for pods, volumes, networks, secrets, generators, and system management.
1 APIs
0 Features
Cloud NativeContainersDevOpsOCIOpen Source
APIs
Podman REST API
The Podman REST API (libpod) provides a Docker-compatible API surface plus Podman-specific Libpod endpoints for managing containers, images, pods, volumes, networks, secrets, ma...
Collections
Pricing Plans
Rate Limits
FinOps
Podman Finops
FINOPSResources
🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
💻
SourceCode
SourceCode
📰
Blog
Blog
🔗
Community
Community
🚀
GettingStarted
GettingStarted
Sources
opencollection: 1.0.0
info:
name: supports a RESTful API for the Libpod library
version: 5.0.0
items:
- info:
name: system (compat)
type: folder
items:
- info:
name: Check auth configuration
type: http
http:
method: POST
url: '{{baseUrl}}/auth'
docs: Check auth configuration
- info:
name: Get events
type: http
http:
method: GET
url: '{{baseUrl}}/events'
params:
- name: since
value: ''
type: query
description: start streaming events from this time
- name: until
value: ''
type: query
description: stop streaming events later than this
- name: filters
value: ''
type: query
description: JSON encoded map[string][]string of constraints
docs: Returns events filtered on query parameters
- info:
name: Get info
type: http
http:
method: GET
url: '{{baseUrl}}/info'
docs: Returns information on the system and libpod configuration
- info:
name: Ping service
type: http
http:
method: GET
url: '{{baseUrl}}/libpod/_ping'
docs: 'Return protocol information in response headers.
`HEAD /libpod/_ping` is also supported.
`/_ping` is available for compatibility with other engines.
The ''_ping'' endpoints are not versioned.
'
- info:
name: Show disk usage
type: http
http:
method: GET
url: '{{baseUrl}}/system/df'
docs: Return information about disk usage for containers, images, and volumes
- info:
name: Component Version information
type: http
http:
method: GET
url: '{{baseUrl}}/version'
docs: Component Version information
- info:
name: images (compat)
type: folder
items:
- info:
name: Build image
type: http
http:
method: POST
url: '{{baseUrl}}/build'
headers:
- name: Content-Type
value: ''
- name: X-Registry-Config
value: ''
params:
- name: dockerfile
value: ''
type: query
description: 'Path within the build context to the `Dockerfile`.
This is ignored if remote is specified and points to an external `Dockerfile`.
'
- name: t
value: ''
type: query
description: A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag, the default
latest value is assumed. You can provide several t parameters.
- name: extrahosts
value: ''
type: query
description: 'TBD Extra hosts to add to /etc/hosts
(As of version 1.xx)
'
- name: nohosts
value: ''
type: query
description: 'Not to create /etc/hosts when building the image
'
- name: remote
value: ''
type: query
description: 'A Git repository URI or HTTP/HTTPS context URI.
If the URI points to a single text file, the file’s contents are placed
into a file called Dockerfile and the image is built from that file. If
the URI points to a tarball, the file is downloaded by the daemon and the
contents therein used as the context for the build. If the URI points to a
tarball and the dockerfile parameter is also specified, there must be a file
with the corresponding path inside the tarball.
(As of version 1.xx)
'
- name: retry
value: ''
type: query
description: 'Number of times to retry in case of failure when performing push/pull.
'
- name: retry-delay
value: ''
type: query
description: 'Delay between retries in case of push/pull failures.
'
- name: q
value: ''
type: query
description: 'Suppress verbose build output
'
- name: nocache
value: ''
type: query
description: 'Do not use the cache when building the image
(As of version 1.xx)
'
- name: cachefrom
value: ''
type: query
description: 'JSON array of images used to build cache resolution
(As of version 1.xx)
'
- name: pull
value: ''
type: query
description: 'Attempt to pull the image even if an older image exists locally
(As of version 1.xx)
'
- name: rm
value: ''
type: query
description: 'Remove intermediate containers after a successful build
(As of version 1.xx)
'
- name: forcerm
value: ''
type: query
description: 'Always remove intermediate containers, even upon failure
(As of version 1.xx)
'
- name: memory
value: ''
type: query
description: 'Memory is the upper limit (in bytes) on how much memory running containers can use
(As of version 1.xx)
'
- name: memswap
value: ''
type: query
description: 'MemorySwap limits the amount of memory and swap together
(As of version 1.xx)
'
- name: cpushares
value: ''
type: query
description: 'CPUShares (relative weight
(As of version 1.xx)
'
- name: cpusetcpus
value: ''
type: query
description: 'CPUSetCPUs in which to allow execution (0-3, 0,1)
(As of version 1.xx)
'
- name: cpuperiod
value: ''
type: query
description: 'CPUPeriod limits the CPU CFS (Completely Fair Scheduler) period
(As of version 1.xx)
'
- name: cpuquota
value: ''
type: query
description: 'CPUQuota limits the CPU CFS (Completely Fair Scheduler) quota
(As of version 1.xx)
'
- name: buildargs
value: ''
type: query
description: 'JSON map of string pairs denoting build-time variables.
For example, the build argument `Foo` with the value of `bar` would be encoded in JSON as `["Foo":"bar"]`.
For example, buildargs={"Foo":"bar"}.
Note(s):
* This should not be used to pass secrets.
* The value of buildargs should be URI component encoded before being passed to the API.
(As of version 1.xx)
'
- name: shmsize
value: ''
type: query
description: 'ShmSize is the "size" value to use when mounting an shmfs on the container''s /dev/shm directory.
Default is 64MB
(As of version 1.xx)
'
- name: squash
value: ''
type: query
description: 'Silently ignored.
Squash the resulting images layers into a single layer
(As of version 1.xx)
'
- name: save-stages
value: ''
type: query
description: 'Preserve intermediate stage images instead of removing them after the build completes.
By default, they are removed to save space.
However, they can be useful for debugging multi-stage builds or reusing stages in subsequent builds.
'
- name: stage-labels
value: ''
type: query
description: 'Add metadata labels to all intermediate stage images of a multistage build, including the final image.
If set to true, save-stages must also be set to true.
If enabled, the labels ''io.buildah.stage.name'' and ''io.buildah.stage.base'' will be added.
'
- name: labels
value: ''
type: query
description: 'JSON map of key, value pairs to set as labels on the new image
(As of version 1.xx)
'
- name: networkmode
value: ''
type: query
description: "Sets the networking mode for the run commands during build.\nSupported standard values are:\n * `bridge`\
\ limited to containers within a single host, port mapping required for external access\n * `host` no isolation\
\ between host and containers on this network\n * `none` disable all networking for this container\n * container:<nameOrID>\
\ share networking with given container\n ---All other values are assumed to be a custom network's name\n(As of\
\ version 1.xx)\n"
- name: platform
value: ''
type: query
description: 'Platform format os[/arch[/variant]]
Can be comma separated list for multi arch builds.
(As of version 1.xx)
'
- name: target
value: ''
type: query
description: 'Target build stage
(As of version 1.xx)
'
- name: outputs
value: ''
type: query
description: 'output configuration TBD
(As of version 1.xx)
'
docs: Build an image from the given Dockerfile(s)
- info:
name: Remove Image
type: http
http:
method: DELETE
url: '{{baseUrl}}/images/:name'
params:
- name: name
value: ''
type: path
description: name or ID of image to delete
- name: force
value: ''
type: query
description: Remove the image even if it is being used by stopped containers or has other tags
- name: noprune
value: ''
type: query
description: do not remove dangling parent images
- name: ignore
value: ''
type: query
description: Ignore if a specified image does not exist and do not throw an error.
docs: Delete an image from local storage
- info:
name: Export an image
type: http
http:
method: GET
url: '{{baseUrl}}/images/:name/get'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
docs: Export an image in tarball format
- info:
name: History of an image
type: http
http:
method: GET
url: '{{baseUrl}}/images/:name/history'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
docs: Return parent layers of an image.
- info:
name: Inspect an image
type: http
http:
method: GET
url: '{{baseUrl}}/images/:name/json'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
docs: Return low-level information about an image.
- info:
name: Push Image
type: http
http:
method: POST
url: '{{baseUrl}}/images/:name/push'
headers:
- name: X-Registry-Auth
value: ''
params:
- name: name
value: ''
type: path
description: Name of image to push.
- name: tag
value: ''
type: query
description: The tag to associate with the image on the registry.
- name: all
value: ''
type: query
description: All indicates whether to push all images related to the image list
- name: compress
value: ''
type: query
description: Use compression on image.
- name: destination
value: ''
type: query
description: Allows for pushing the image to a different destination than the image refers to.
- name: format
value: ''
type: query
description: Manifest type (oci, v2s1, or v2s2) to use when pushing an image. Default is manifest type of source,
with fallbacks.
- name: tlsVerify
value: ''
type: query
description: Require TLS verification.
docs: Push an image to a container registry
- info:
name: Tag an image
type: http
http:
method: POST
url: '{{baseUrl}}/images/:name/tag'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: repo
value: ''
type: query
description: the repository to tag in
- name: tag
value: ''
type: query
description: the name of the new tag
docs: Tag an image so that it becomes part of a repository.
- info:
name: Create an image
type: http
http:
method: POST
url: '{{baseUrl}}/images/create'
headers:
- name: X-Registry-Auth
value: ''
params:
- name: fromImage
value: ''
type: query
description: Name of the image to pull. The name may include a tag or digest. This parameter may only be used when
pulling an image. The pull is cancelled if the HTTP connection is closed.
- name: fromSrc
value: ''
type: query
description: Source to import. The value may be a URL from which the image can be retrieved or - to read the image
from the request body. This parameter may only be used when importing an image
- name: repo
value: ''
type: query
description: Repository name given to an image when it is imported. The repo may include a tag. This parameter may
only be used when importing an image.
- name: tag
value: ''
type: query
description: Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled.
- name: message
value: ''
type: query
description: Set commit message for imported image.
- name: platform
value: ''
type: query
description: Platform in the format os[/arch[/variant]]
- name: retry
value: ''
type: query
description: Number of times to retry in case of failure when performing pull.
- name: retryDelay
value: ''
type: query
description: Delay between retries in case of pull failures.
docs: Create an image by either pulling it from a registry or importing it.
- info:
name: Export several images
type: http
http:
method: GET
url: '{{baseUrl}}/images/get'
params:
- name: names
value: ''
type: query
description: one or more image names or IDs comma separated
docs: Get a tarball containing all images and metadata for several image repositories
- info:
name: List Images
type: http
http:
method: GET
url: '{{baseUrl}}/images/json'
params:
- name: all
value: ''
type: query
description: Show all images. Only images from a final layer (no children) are shown by default.
- name: filters
value: ''
type: query
description: 'JSON-encoded string containing filters as a `map[string][]string` to process on the images list. Available
filters:
- `before`=(`<image-name>[:<tag>]`, `<image id>` or `<image@digest>`)
- `dangling=true`
- `label=key` or `label="key=value"` of an image label
- `reference`=(`<image-name>[:<tag>]`)
- `since`=(`<image-name>[:<tag>]`, `<image id>` or `<image@digest>`)
'
- name: digests
value: ''
type: query
description: Not supported
- name: shared-size
value: ''
type: query
description: Compute and show shared size as a SharedSize field on each image.
docs: Returns a list of images on the server. Note that it uses a different, smaller representation of an image than inspecting
a single image.
- info:
name: Import image
type: http
http:
method: POST
url: '{{baseUrl}}/images/load'
params:
- name: quiet
value: ''
type: query
description: not supported
docs: Load a set of images and tags into a repository.
- info:
name: Prune unused images
type: http
http:
method: POST
url: '{{baseUrl}}/images/prune'
params:
- name: filters
value: ''
type: query
description: "filters to apply to image pruning, encoded as JSON (map[string][]string). Available filters:\n - `dangling=<boolean>`\
\ When set to `true` (or `1`), prune only\n unused *and* untagged images. When set to `false`\n (or `0`),\
\ all unused images are pruned.\n - `until=<string>` Prune images created before this timestamp. The `<timestamp>`\
\ can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative\
\ to the daemon machine’s time.\n - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`)\
\ Prune images with (or without, in case `label!=...` is used) the specified labels.\n"
docs: Remove images from local storage that are not being used by a container
- info:
name: Search images
type: http
http:
method: GET
url: '{{baseUrl}}/images/search'
params:
- name: term
value: ''
type: query
description: term to search
- name: limit
value: ''
type: query
description: maximum number of results
- name: filters
value: ''
type: query
description: 'JSON-encoded string containing filters as a `map[string][]string` to process on the images list. Available
filters:
- `is-automated=(true|false)`
- `is-official=(true|false)`
- `stars=<number>` Matches images that have at least ''number'' stars.
'
- name: tlsVerify
value: ''
type: query
description: Require HTTPS and verify signatures when contacting registries.
- name: listTags
value: ''
type: query
description: list the available tags in the repository
docs: Search registries for an image
- info:
name: containers (compat)
type: folder
items:
- info:
name: New Image
type: http
http:
method: POST
url: '{{baseUrl}}/commit'
params:
- name: container
value: ''
type: query
description: the name or ID of a container
- name: repo
value: ''
type: query
description: the repository name for the created image
- name: tag
value: ''
type: query
description: tag name for the created image
- name: comment
value: ''
type: query
description: commit message
- name: author
value: ''
type: query
description: author of the image
- name: pause
value: ''
type: query
description: pause the container before committing it
- name: changes
value: ''
type: query
description: instructions to apply while committing in Dockerfile format
- name: squash
value: ''
type: query
description: squash newly built layers into a single new layer
docs: Create a new image from a container
- info:
name: Remove a container
type: http
http:
method: DELETE
url: '{{baseUrl}}/containers/:name'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: force
value: ''
type: query
description: If the container is running, kill it before removing it.
- name: v
value: ''
type: query
description: Remove the volumes associated with the container.
- name: link
value: ''
type: query
description: not supported
- name: ignore
value: ''
type: query
description: Ignore if a specified container does not exist.
- name: depend
value: ''
type: query
description: Remove container dependencies.
- name: timeout
value: ''
type: query
description: Number of seconds to wait before forcibly stopping the container.
- name: volumes
value: ''
type: query
description: Remove anonymous volumes associated with the container.
docs: Remove a container
- info:
name: Get files from a container
type: http
http:
method: GET
url: '{{baseUrl}}/containers/:name/archive'
params:
- name: name
value: ''
type: path
description: container name or id
- name: path
value: ''
type: query
description: Path to a directory in the container to extract
docs: Get a tar archive of files from a container
- info:
name: Put files into a container
type: http
http:
method: PUT
url: '{{baseUrl}}/containers/:name/archive'
params:
- name: name
value: ''
type: path
description: container name or id
- name: path
value: ''
type: query
description: Path to a directory in the container to extract
- name: noOverwriteDirNonDir
value: ''
type: query
description: if unpacking the given content would cause an existing directory to be replaced with a non-directory
and vice versa (1 or true)
- name: copyUIDGID
value: ''
type: query
description: copy UID/GID maps to the dest file or di (1 or true)
docs: Put a tar archive of files into a container
- info:
name: Attach to a container
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/attach'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: detachKeys
value: ''
type: query
description: keys to use for detaching from the container
- name: logs
value: ''
type: query
description: Stream all logs from the container across the connection. Happens before streaming attach (if requested).
At least one of logs or stream must be set
- name: stream
value: ''
type: query
description: Attach to the container. If unset, and logs is set, only the container's logs will be sent. At least
one of stream or logs must be set
- name: stdout
value: ''
type: query
description: Attach to container STDOUT
- name: stderr
value: ''
type: query
description: Attach to container STDERR
- name: stdin
value: ''
type: query
description: Attach to container STDIN
docs: 'Attach to a container to read its output or send it input. You can attach
to the same container multiple times and you can reattach to containers
that have been detached.
It uses the same stream format as docker, see the libpod attach endpoint for a description of the format.
'
- info:
name: Report on changes to container's filesystem; adds, deletes or modifications.
type: http
http:
method: GET
url: '{{baseUrl}}/containers/:name/changes'
params:
- name: name
value: ''
type: path
description: the name or id of the container
- name: parent
value: ''
type: query
description: specify a second layer which is used to compare against it instead of the parent layer
- name: diffType
value: ''
type: query
description: select what you want to match, default is all
docs: 'Returns which files in a container''s filesystem have been added, deleted, or modified. The Kind of modification
can be one of:
0: Modified
1: Added
2: Deleted
'
- info:
name: Export a container
type: http
http:
method: GET
url: '{{baseUrl}}/containers/:name/export'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
docs: Export the contents of a container as a tarball.
- info:
name: Inspect container
type: http
http:
method: GET
url: '{{baseUrl}}/containers/:name/json'
params:
- name: name
value: ''
type: path
description: the name or id of the container
- name: size
value: ''
type: query
description: include the size of the container
docs: Return low-level information about a container.
- info:
name: Kill container
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/kill'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: all
value: ''
type: query
description: Send kill signal to all containers
- name: signal
value: ''
type: query
description: signal to be sent to container
docs: Signal to send to the container as an integer or string (e.g. SIGINT)
- info:
name: Get container logs
type: http
http:
method: GET
url: '{{baseUrl}}/containers/:name/logs'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: follow
value: ''
type: query
description: Keep connection after returning logs.
- name: stdout
value: ''
type: query
description: Return logs from stdout
- name: stderr
value: ''
type: query
description: Return logs from stderr
- name: since
value: ''
type: query
description: Only return logs since this time, as a UNIX timestamp
- name: until
value: ''
type: query
description: Only return logs before this time, as a UNIX timestamp
- name: timestamps
value: ''
type: query
description: Add timestamps to every log line
- name: tail
value: ''
type: query
description: Only return this number of log lines from the end of the logs
docs: Get stdout and stderr logs from a container.
- info:
name: Pause container
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/pause'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
docs: Use the cgroups freezer to suspend all processes in a container.
- info:
name: Rename an existing container
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/rename'
params:
- name: name
value: ''
type: path
description: Full or partial ID or full name of the container to rename
- name: name
value: ''
type: query
description: New name for the container
docs: Change the name of an existing container.
- info:
name: Resize a container's TTY
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/resize'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: h
value: ''
type: query
description: Height to set for the terminal, in characters
- name: w
value: ''
type: query
description: Width to set for the terminal, in characters
- name: running
value: ''
type: query
description: Ignore containers not running errors
docs: Resize the terminal attached to a container (for use with Attach).
- info:
name: Restart container
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/restart'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: t
value: ''
type: query
description: timeout before sending kill signal to container
docs: Restart container
- info:
name: Start a container
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/start'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: detachKeys
value: ''
type: query
description: 'Override the key sequence for detaching a container. Format is a single character [a-Z] or ctrl-<value>
where <value> is one of: a-z, @, ^, [, , or _.'
docs: Start a container
- info:
name: Get stats for a container
type: http
http:
method: GET
url: '{{baseUrl}}/containers/:name/stats'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: stream
value: ''
type: query
description: Stream the output
- name: one-shot
value: ''
type: query
description: Provide a one-shot response in which preCPU stats are blank, resulting in a single cycle return.
docs: This returns a live stream of a container’s resource usage statistics.
- info:
name: Stop a container
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/stop'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: t
value: ''
type: query
description: number of seconds to wait before killing container
- name: timeout
value: ''
type: query
description: Number of seconds to wait before killing the container (libpod alias for `t`).
- name: ignore
value: ''
type: query
description: Do not return an error if the container is already stopped.
docs: Stop a container
- info:
name: List processes running inside a container
type: http
http:
method: GET
url: '{{baseUrl}}/containers/:name/top'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: ps_args
value: ''
type: query
description: arguments to pass to ps such as aux.
docs: List processes running inside a container
- info:
name: Unpause container
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/unpause'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
docs: Resume a paused container
- info:
name: Update configuration of an existing container, allowing changes to resource limits
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/update'
params:
- name: name
value: ''
type: path
description: Full or partial ID or full name of the container to rename
docs: Change configuration settings for an existing container without requiring recreation.
- info:
name: Wait on a container
type: http
http:
method: POST
url: '{{baseUrl}}/containers/:name/wait'
params:
- name: name
value: ''
type: path
description: the name or ID of the container
- name: condition
value: ''
type: query
description: "Wait condition. Valid values are:\n - not-running (default) - return when the container is not running\n\
\ (stopped, exited, or was never started).\n - next-exit - wait for the next time the container stops.\n \
\ If the container is running, block until it exits.\n If the container is already stopped, block until\n \
\ the next start-and-exit cycle.\n - removed - wait until the container is removed.\n"
docs: 'Block until a container stops or given condition is met.
This is a Docker-compatible endpoint.
'
- info:
name: Create a container
type: http
http:
method: POST
url: '{{baseUrl}}/containers/create'
params:
- name: name
value: ''
type: query
description: container name
docs: Create a container
- info:
name: List containers
type: http
http:
method: GET
url: '{{baseUrl}}/containers/json'
params:
- name: all
value: ''
type: query
description: Return all conta
# --- truncated at 32 KB (149 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/podman/refs/heads/main/apis.yml