---
title: "Initiate an Image Action"
method: POST
path: "/v2/images/{image_id}/actions"
tags: ["DigitalOcean-public.v2-new_Image Actions"]
---

# Initiate an Image Action

`POST /v2/images/{image_id}/actions`

The following actions are available on an Image.

## Convert an Image to a Snapshot

To convert an image, for example, a backup to a snapshot, send a POST request
to `/v2/images/$IMAGE_ID/actions`. Set the `type` attribute to `convert`.

## Transfer an Image

To transfer an image to another region, send a POST request to
`/v2/images/$IMAGE_ID/actions`. Set the `type` attribute to `transfer` and set
`region` attribute to the slug identifier of the region you wish to transfer
to.

## Path parameters

- `image_id` integer, required

## Request body

- union
  - ImageActionBase
    - `type` 'convert' | 'transfer', required — The action to be taken on the image. Can be either `convert` or `transfer`.
  - ImageActionTransfer
    - `type` 'convert' | 'transfer', required — The action to be taken on the image. Can be either `convert` or `transfer`.
    - `region` 'ams1' | 'ams2' | 'ams3' | 'blr1' | 'fra1' | 'lon1' | 'nyc1' | 'nyc2' | 'nyc3' | 'sfo1' | 'sfo2' | 'sfo3' | 'sgp1' | 'tor1' | 'syd1', required — The slug identifier for the region where the resource will initially be available.

## Response `201`

The response will be a JSON object with a key called `action`. The value of this will be an object containing the standard image action attributes.

- Action
  - `id` integer — A unique numeric ID that can be used to identify and reference an action.
  - `status` 'in-progress' | 'completed' | 'errored' — The current status of the action. This can be "in-progress", "completed", or "errored".
  - `type` string — This is the type of action that the object represents. For example, this could be "transfer" to represent the state of an image transfer action.
  - `started_at` string, date-time — A time value given in ISO8601 combined date and time format that represents when the action was initiated.
  - `completed_at` string, date-time, nullable — A time value given in ISO8601 combined date and time format that represents when the action was completed.
  - `resource_id` integer, nullable — A unique identifier for the resource that the action is associated with.
  - `resource_type` string — The type of resource that the action is associated with.
  - `region` Region
    - `name` string, required — The display name of the region. This will be a full name that is used in the control panel and other interfaces.
    - `slug` string, required — A human-readable string that is used as a unique identifier for each region.
    - `features` string[], required — This attribute is set to an array which contains features available in this region
    - `available` boolean, required — This is a boolean value that represents whether new Droplets can be created in this region.
    - `sizes` string[], required — This attribute is set to an array which contains the identifying slugs for the sizes available in this region. sizes:read is required to view.
  - `region_slug` string, nullable — A human-readable string that is used as a unique identifier for each region.

## Other responses

- `401` — Authentication failed due to invalid credentials.
- `404` — The resource was not found.
- `429` — The API rate limit has been exceeded.
- `500` — There was a server error.
- `default` — There was an unexpected error.

---

[API](https://skmtc.net/digitalocean/apis/digitalocean-api.md) · [All operations](https://skmtc.net/digitalocean/apis/digitalocean-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/digitalocean/digitalocean-api/revisions/cb3bf9b21459/schema)
