Images v4.176.0
List images
Returns a paginated list of Images.
Public Images have IDs that begin with “linode/”. These distribution images are generally available to all users.
Private Images have IDs that begin with “private/”. These Images are Account-specific and only accessible to Users with appropriate Grants.
To view only public Images, call this operation with or without authentication. To view private Images as well, call this operation with authentication.
OAuth.
images:read_only
Authorizations
| personalAccessToken | |
| oauth | images:read_only |
Query Parameters
| page |
The page of a collection to return. |
| page_size |
The number of items to return per page. |
Request Samples
# Returns public Images only
curl https://api.linode.com/v4/images
# Returns private and public Images
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/imageslinode-cli images listResponse Samples
{
"data": [
{
"capabilities": [
"cloud-init"
],
"created": "2021-08-14T22:44:02",
"created_by": "linode",
"deprecated": false,
"description": "Example Image description.",
"eol": "2026-07-01T04:00:00",
"expiry": null,
"id": "linode/debian11",
"is_public": true,
"label": "Debian 11",
"size": 2500,
"status": "available",
"type": "manual",
"updated": "2021-08-14T22:44:02",
"vendor": "Debian"
}
],
"page": 1,
"pages": 1,
"results": 1
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
data | array
of objects
| ||||||||||||||||||||||||||||||
page | integerRead-only The current page. | ||||||||||||||||||||||||||||||
pages | integerRead-only The total number of pages. | ||||||||||||||||||||||||||||||
results | integerRead-only The total number of results. |
errors | array
of objects
|
Create an image
Captures a private gold-master Image from a Linode Disk.
Note. Images are not encrypted even when they are taken from an encrypted disk. When a compute instance is rebuilt from an image, and if the instance has disk encryption enabled, the disk is automatically encrypted.
CLI.
linode-cli images createOAuth.
images:read_write
linodes:read_only ```
[Learn more...](https://techdocs.akamai.com/linode-api/reference/oauth)Authorizations
| personalAccessToken | |
| oauth | images:read_write,linodes:read_only |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"disk_id": 123,
"label": "this_is_a_label",
"description": "A longer description of the image"
}' \
https://api.linode.com/v4/imageslinode-cli images create \
--label this_is_a_label \
--description "A longer description \
of the image" \
--disk_id 123Request Body Schema
cloud_init | booleanWhether this Image supports cloud-init. |
description | stringA detailed description of this Image. |
disk_id Required | integerThe ID of the Linode Disk that this Image will be created from. |
label | stringA short title of this Image. Defaults to the label of the Disk it is being created from if not provided. |
Response Samples
{
"capabilities": [
"cloud-init"
],
"created": "2021-08-14T22:44:02",
"created_by": "linode",
"deprecated": false,
"description": "Example Image description.",
"eol": "2026-07-01T04:00:00",
"expiry": null,
"id": "linode/debian11",
"is_public": true,
"label": "Debian 11",
"size": 2500,
"status": "available",
"type": "manual",
"updated": "2021-08-14T22:44:02",
"vendor": "Debian"
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
capabilities | array
of stringsRead-only A list containing the following possible capabilities of this Image:
|
created | string<date-time>Read-only When this Image was created. |
created_by | stringRead-only The name of the User who created this Image, or “linode” for public Images. |
deprecated | booleanRead-only Whether or not this Image is deprecated. Will only be true for deprecated public Images. |
description Nullable | string
1..65000
charactersA detailed description of this Image. |
eol Nullable | string<date-time>Read-only The date of the public Image’s planned end of life. |
expiry Nullable | string<date-time>Read-only Only Images created automatically from a deleted Linode (type=automatic)
will expire. |
id | stringRead-only The unique ID of this Image. |
is_public | booleanRead-only True if the Image is a public distribution image. False if Image is private Account-specific Image. |
label | stringA short description of the Image. |
size | integerRead-only The minimum size this Image needs to deploy. Size is in MB. |
status | stringEnum:
creating
pending_upload
availableRead-only The current status of this Image. Only Images in an “available” status can be deployed. Images in a “creating” status are being created from a Linode Disk, and will become “available” shortly. Images in a “pending_upload” status are waiting for data to be uploaded, and become “available” after the upload and processing are complete. The “+order_by” and “+order” operators are not available for filtering on this key. |
type | stringEnum:
manual
automaticRead-only How the Image was created. “Manual” Images can be created at any time. “Automatic” Images are created automatically from a deleted Linode. |
updated | string<date-time>Read-only When this Image was last updated. |
vendor Nullable | stringRead-only The upstream distribution vendor. |
errors | array
of objects
|
Upload an image
Initiates an Image upload.
This operation creates a new private Image object and returns it along with the URL to which image data can be uploaded.
Image data must be uploaded within 24 hours of creation or the upload will be canceled and the image deleted.
Image uploads should be made as an HTTP PUT request to the URL returned in the
upload_toresponse parameter, with aContent-type: application/octet-streamheader included in the request. For example:curl -v \ -H "Content-Type: application/octet-stream" \ --upload-file example.img.gz \ $UPLOAD_URL \ --progress-bar \ --output /dev/nullUploaded image data should be compressed in gzip (
.gz) format. The uncompressed disk should be in raw disk image (.img) format. A maximum compressed file size of 5GB is supported for upload at this time.
To initiate and complete an Image upload in a single step, see our guide on how to Upload an Image using Cloud Manager or the Linode CLI image-upload plugin.
Note. Images are not encrypted even when they are taken from an encrypted disk. When a compute instance is rebuilt from an image, and if the instance has disk encryption enabled, the disk is automatically encrypted.
CLI.
linode-cli images uploadOAuth.
images:read_write
Authorizations
| personalAccessToken | |
| oauth | images:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"description": "Optional details about the Image",
"label": "Example Image",
"region": "us-east"
}' \
https://api.linode.com/v4/images/upload# Upload the Image file in a single step
linode-cli image-upload \
--description "Optional details about the Image" \
--label "Example Image" \
--region us-east \
/path/to/image-file.img.gz
# Returns the upload_to URL
linode-cli images upload \
--description "Optional details about the Image" \
--label "Example Image" \
--region us-eastRequest Body Schema
cloud_init | booleanWhether the uploaded Image supports cloud-init. |
description | stringDescription for the uploaded Image. |
label Required | stringLabel for the uploaded Image. |
region Required | stringThe region to upload to. Once uploaded, the Image can be used in any region. |
Response Samples
{
"image": {
"capabilities": [
"cloud-init"
],
"created": "2021-08-14T22:44:02",
"created_by": "linode",
"deprecated": false,
"description": "Example Image description.",
"eol": "2026-07-01T04:00:00",
"expiry": null,
"id": "linode/debian11",
"is_public": true,
"label": "Debian 11",
"size": 2500,
"status": "available",
"type": "manual",
"updated": "2021-08-14T22:44:02",
"vendor": "Debian"
},
"upload_to": null
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
image | objectImage object
| ||||||||||||||||||||||||||||||
upload_to | stringThe URL to upload the Image to. |
errors | array
of objects
|
Delete an image
Deletes a private Image you have permission to read_write.
Deleting an Image is a destructive action and cannot be undone.
OAuth.
images:read_write
Authorizations
| personalAccessToken | |
| oauth | images:read_write |
Path Parameters
| imageId | stringRequiredID of the Image to look up. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/images/private/12345linode-cli images delete 12345Response Samples
{}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
errors | array
of objects
|
Get an image
Get information about a single Image.
Public Images have IDs that begin with “linode/”. These distribution images are generally available to all users.
Private Images have IDs that begin with “private/”. These Images are Account-specific and only accessible to Users with appropriate Grants.
To view a public Image, call this operation with or without authentication. To view a private Image, call this operation with authentication.
CLI.
linode-cli images viewOAuth.
images:read_only
Authorizations
| personalAccessToken | |
| oauth | images:read_only |
Path Parameters
| imageId | stringRequiredID of the Image to look up. |
Request Samples
# Public Image
curl https://api.linode.com/v4/images/linode/debian11
# Private Image
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/images/private/12345linode-cli images view linode/debian9Response Samples
{
"capabilities": [
"cloud-init"
],
"created": "2021-08-14T22:44:02",
"created_by": "linode",
"deprecated": false,
"description": "Example Image description.",
"eol": "2026-07-01T04:00:00",
"expiry": null,
"id": "linode/debian11",
"is_public": true,
"label": "Debian 11",
"size": 2500,
"status": "available",
"type": "manual",
"updated": "2021-08-14T22:44:02",
"vendor": "Debian"
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
capabilities | array
of stringsRead-only A list containing the following possible capabilities of this Image:
|
created | string<date-time>Read-only When this Image was created. |
created_by | stringRead-only The name of the User who created this Image, or “linode” for public Images. |
deprecated | booleanRead-only Whether or not this Image is deprecated. Will only be true for deprecated public Images. |
description Nullable | string
1..65000
charactersA detailed description of this Image. |
eol Nullable | string<date-time>Read-only The date of the public Image’s planned end of life. |
expiry Nullable | string<date-time>Read-only Only Images created automatically from a deleted Linode (type=automatic)
will expire. |
id | stringRead-only The unique ID of this Image. |
is_public | booleanRead-only True if the Image is a public distribution image. False if Image is private Account-specific Image. |
label | stringA short description of the Image. |
size | integerRead-only The minimum size this Image needs to deploy. Size is in MB. |
status | stringEnum:
creating
pending_upload
availableRead-only The current status of this Image. Only Images in an “available” status can be deployed. Images in a “creating” status are being created from a Linode Disk, and will become “available” shortly. Images in a “pending_upload” status are waiting for data to be uploaded, and become “available” after the upload and processing are complete. The “+order_by” and “+order” operators are not available for filtering on this key. |
type | stringEnum:
manual
automaticRead-only How the Image was created. “Manual” Images can be created at any time. “Automatic” Images are created automatically from a deleted Linode. |
updated | string<date-time>Read-only When this Image was last updated. |
vendor Nullable | stringRead-only The upstream distribution vendor. |
errors | array
of objects
|
Update an image
Updates a private Image that you have permission to read_write.
CLI.
linode-cli images updateOAuth.
images:read_write
Authorizations
| personalAccessToken | |
| oauth | images:read_write |
Path Parameters
| imageId | stringRequiredID of the Image to look up. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "My gold-master image",
"description": "The detailed description of my Image."
}' \
https://api.linode.com/v4/images/private/12345linode-cli images update private/12345 \
--label "My gold-master image" \
--description "The detailed description \
of my Image."Request Body Schema
description Nullable | string
1..65000
charactersA detailed description of this Image. |
label | stringA short description of the Image. |
Response Samples
{
"capabilities": [
"cloud-init"
],
"created": "2021-08-14T22:44:02",
"created_by": "linode",
"deprecated": false,
"description": "Example Image description.",
"eol": "2026-07-01T04:00:00",
"expiry": null,
"id": "linode/debian11",
"is_public": true,
"label": "Debian 11",
"size": 2500,
"status": "available",
"type": "manual",
"updated": "2021-08-14T22:44:02",
"vendor": "Debian"
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
capabilities | array
of stringsRead-only A list containing the following possible capabilities of this Image:
|
created | string<date-time>Read-only When this Image was created. |
created_by | stringRead-only The name of the User who created this Image, or “linode” for public Images. |
deprecated | booleanRead-only Whether or not this Image is deprecated. Will only be true for deprecated public Images. |
description Nullable | string
1..65000
charactersA detailed description of this Image. |
eol Nullable | string<date-time>Read-only The date of the public Image’s planned end of life. |
expiry Nullable | string<date-time>Read-only Only Images created automatically from a deleted Linode (type=automatic)
will expire. |
id | stringRead-only The unique ID of this Image. |
is_public | booleanRead-only True if the Image is a public distribution image. False if Image is private Account-specific Image. |
label | stringA short description of the Image. |
size | integerRead-only The minimum size this Image needs to deploy. Size is in MB. |
status | stringEnum:
creating
pending_upload
availableRead-only The current status of this Image. Only Images in an “available” status can be deployed. Images in a “creating” status are being created from a Linode Disk, and will become “available” shortly. Images in a “pending_upload” status are waiting for data to be uploaded, and become “available” after the upload and processing are complete. The “+order_by” and “+order” operators are not available for filtering on this key. |
type | stringEnum:
manual
automaticRead-only How the Image was created. “Manual” Images can be created at any time. “Automatic” Images are created automatically from a deleted Linode. |
updated | string<date-time>Read-only When this Image was last updated. |
vendor Nullable | stringRead-only The upstream distribution vendor. |
errors | array
of objects
|