Images v4.96.0
Images List
Returns a paginated list of Images.
Public Images have IDs that begin with “linode/”. These distribution images are generally available to all users. To view only public Images, call this endpoint without authentication.
Private Images have IDs that begin with “private/”. These images are account-specific and only accessible to users with
images:read_onlyauthorization. To view private Images you have access to in addition to public images, call this endpoint with authentication.
Authorizations
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/images
linode-cli images list
Response Samples
{
"data": [
{
"created": "2018-01-01T00:01:01",
"created_by": "linode",
"deprecated": false,
"description": null,
"eol": "2200-10-23T00:00:00",
"expiry": null,
"id": "linode/ubuntu17.10",
"is_public": true,
"label": "Ubuntu 17.10",
"size": 2500,
"status": null,
"type": "manual",
"updated": "2019-01-02T00:01:01",
"vendor": "Ubuntu"
}
],
"page": 1,
"pages": 1,
"results": 1
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
data | array of objects
| ||||||||||||||||||||||||||||
page | integer | ||||||||||||||||||||||||||||
pages | integer | ||||||||||||||||||||||||||||
results | integer |
errors | array of objects
|
Image Create
Captures a private gold-master Image from a Linode Disk.
Pricing change: Images will transition to a paid service with a cost of $0.10/GB per month for each manual Custom Image stored on an account. This change will be communicated to customers in advance. Recovery Images, which are generated automatically after a Linode is deleted and available for a finite period of time, are provided at no cost.
Authorizations
| personalAccessToken | |
| oauth | images:read_write,linodes:read_only |
Request Body Schema
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. |
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/images
linode-cli images create \
--label this_is_a_label \
--description "A longer description \
of the image" \
--disk_id 123
Response Samples
{
"created": "2018-01-01T00:01:01",
"created_by": "somename",
"deprecated": false,
"description": "The detailed description of my Image.",
"eol": "2200-10-23T00:00:00",
"expiry": "2018-08-01T00:01:01",
"id": "private/67848373",
"is_public": false,
"label": "My gold-master image",
"size": 2500,
"status": null,
"type": "manual",
"updated": "2019-01-02T00:01:01",
"vendor": null
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
created | string <date-time>When this Image was created. |
created_by | stringThe name of the User who created this Image. |
deprecated Filterable | booleanWhether or not this Image is deprecated. Will only be True for deprecated public Images. |
description | stringA detailed description of this Image. |
eol | string <date-time>The date of the image’s planned end of life. Some images, like custom private images, will not have an end of life date. In that case this field will be |
expiry | string <date-time>Only Images created automatically (from a deleted Linode; type=automatic) will expire. |
id | stringThe unique ID of this Image. |
is_public Filterable | booleanTrue if the Image is public. |
label Filterable | stringA short description of the Image. Labels cannot contain special characters. |
size Filterable | integerThe minimum size this Image needs to deploy. Size is in MB. |
status | stringEnum:
creating
pending_upload
availableThe 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 for the image, and will become “available” after the upload is complete and processing occurs. |
type Filterable | stringEnum:
manual
automaticHow 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>When this Image was last updated. |
vendor Filterable Nullable | stringThe upstream distribution vendor. |
errors | array of objects
|
Image Upload
Initiates an Image upload.
This endpoint 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 cancelled 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.
Authorizations
| personalAccessToken | |
| oauth | images:read_write |
Request Body Schema
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. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"description": "This is an example Machine Image.",
"label": "example-machine-image-label",
"region": "us-east"
}' \
https://api.linode.com/v4/images/upload
linode-cli images upload \
--label example-machine-image-label \
--description "This is an example Machine Image." \
--region us-east
Response Samples
{
"image": {
"created": "2018-01-01T00:01:01",
"created_by": "somename",
"deprecated": false,
"description": "The detailed description of my Image.",
"eol": "2200-10-23T00:00:00",
"expiry": "2018-08-01T00:01:01",
"id": "private/67848373",
"is_public": false,
"label": "My gold-master image",
"size": 2500,
"status": null,
"type": "manual",
"updated": "2019-01-02T00:01:01",
"vendor": null
},
"upload_to": null
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
image | objectPrivate Image object
| ||||||||||||||||||||||||||||
upload_to | stringThe URL to upload the Image to. |
errors | array of objects
|
Image Delete
Deletes a private Image you have permission to read_write.
Deleting an Image is a destructive action and cannot be undone.
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/67848373
linode-cli images delete 67848373
Response Samples
{}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
errors | array of objects
|
Image View
Get information about a single Image.
Authorizations
Path Parameters
| imageId | stringRequiredID of the Image to look up. |
Request Samples
curl https://api.linode.com/v4/images/linode/debian9
linode-cli images view linode/debian9
Response Samples
{
"created": "2018-01-01T00:01:01",
"created_by": "somename",
"deprecated": false,
"description": "The detailed description of my Image.",
"eol": "2200-10-23T00:00:00",
"expiry": "2018-08-01T00:01:01",
"id": "private/67848373",
"is_public": false,
"label": "My gold-master image",
"size": 2500,
"status": null,
"type": "manual",
"updated": "2019-01-02T00:01:01",
"vendor": null
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
created | string <date-time>When this Image was created. |
created_by | stringThe name of the User who created this Image. |
deprecated Filterable | booleanWhether or not this Image is deprecated. Will only be True for deprecated public Images. |
description | stringA detailed description of this Image. |
eol | string <date-time>The date of the image’s planned end of life. Some images, like custom private images, will not have an end of life date. In that case this field will be |
expiry | string <date-time>Only Images created automatically (from a deleted Linode; type=automatic) will expire. |
id | stringThe unique ID of this Image. |
is_public Filterable | booleanTrue if the Image is public. |
label Filterable | stringA short description of the Image. Labels cannot contain special characters. |
size Filterable | integerThe minimum size this Image needs to deploy. Size is in MB. |
status | stringEnum:
creating
pending_upload
availableThe 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 for the image, and will become “available” after the upload is complete and processing occurs. |
type Filterable | stringEnum:
manual
automaticHow 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>When this Image was last updated. |
vendor Filterable Nullable | stringThe upstream distribution vendor. |
errors | array of objects
|
Image Update
Updates a private Image that you have permission to read_write.
Authorizations
| personalAccessToken | |
| oauth | images:read_write |
Path Parameters
| imageId | stringRequiredID of the Image to look up. |
Request Body Schema
description | stringA detailed description of this Image. |
label Filterable | stringA short description of the Image. Labels cannot contain special characters. |
status | stringEnum:
creating
pending_upload
availableThe 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 for the image, and will become “available” after the upload is complete and processing occurs. |
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/67848373
linode-cli images update private/67848373 \
--label "My gold-master image" \
--description "The detailed description \
of my Image."
Response Samples
{
"created": "2018-01-01T00:01:01",
"created_by": "somename",
"deprecated": false,
"description": "The detailed description of my Image.",
"eol": "2200-10-23T00:00:00",
"expiry": "2018-08-01T00:01:01",
"id": "private/67848373",
"is_public": false,
"label": "My gold-master image",
"size": 2500,
"status": null,
"type": "manual",
"updated": "2019-01-02T00:01:01",
"vendor": null
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
created | string <date-time>When this Image was created. |
created_by | stringThe name of the User who created this Image. |
deprecated Filterable | booleanWhether or not this Image is deprecated. Will only be True for deprecated public Images. |
description | stringA detailed description of this Image. |
eol | string <date-time>The date of the image’s planned end of life. Some images, like custom private images, will not have an end of life date. In that case this field will be |
expiry | string <date-time>Only Images created automatically (from a deleted Linode; type=automatic) will expire. |
id | stringThe unique ID of this Image. |
is_public Filterable | booleanTrue if the Image is public. |
label Filterable | stringA short description of the Image. Labels cannot contain special characters. |
size Filterable | integerThe minimum size this Image needs to deploy. Size is in MB. |
status | stringEnum:
creating
pending_upload
availableThe 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 for the image, and will become “available” after the upload is complete and processing occurs. |
type Filterable | stringEnum:
manual
automaticHow 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>When this Image was last updated. |
vendor Filterable Nullable | stringThe upstream distribution vendor. |
errors | array of objects
|


