---
title: "Download a video"
method: POST
path: "/v3/downloads/videos/{id}"
tags: ["Downloads"]
---

# Download a video

`POST /v3/downloads/videos/{id}`

Use this endpoint to generate download URLs and related data for videos you are authorized to download.

Most product offerings have enforced periodic download limits such as monthly, weekly, and daily. When this operation executes, the count of allowed downloads is decremented by one for the product offering. Once the download limit is reached for a given product offering, no further downloads may be requested for that product offering until the next download period.

The download limit for a given download period is covered in your product agreement established with Getty Images.

You'll need an API key and an access token generated through the [Client Credentials grant](https://developers.gettyimages.com/docs/authorization/#client-credentials-grant) or [Authorization Code grant](https://developers.gettyimages.com/docs/authorization/#authorization-code-grant) to use this resource.

## Auto Downloads
The `auto_download` request query parameter specifies whether to automatically download the video.

If the `auto_download` request query parameter is set to _true_, the API will return an HTTP status code 303 *See Other*. Your client code will need to process this response and redirect to the URI specified in the *Location* header to enable you to automatically download the file. The redirection workflow follows the [HTTP 1.1 protocol](https://tools.ietf.org/html/rfc7231#section-6.4.4).

Client Request:

```
https://api.gettyimages.com/v3/downloads/videos/[asset_id]?auto_download=true
```

Server Response:

Your client code should follow redirect (3xx) status codes returned from the URI in the response Location header. More information here: [HTTP 1.1 protocol](https://tools.ietf.org/html/rfc7231#section-6.4).

```
HTTP/1.1 303 See Other
Location: https://delivery.gettyimages.com/...
```

If the `auto_download` request query parameter is set to false, the API will return a HTTP status code 200, along with the URI in the response body which can be used to download the video. 

Client Request:

```
https://api.gettyimages.com/v3/downloads/videos/[asset_id]?auto_download=false
```

Server Response:

```
HTTP/1.1 200 OK
{
	"uri": "https://delivery.gettyimages.com/..."
}
```

## Downloading Via the Returned URI

Your client code should follow redirect (3xx) status codes returned from the URI in the response. More information here: [HTTP 1.1 protocol](https://tools.ietf.org/html/rfc7231#section-6.4).

The URI returned by this call should be considered opaque and the format could change at any time.
In order to get the filename, length or file type, the response headers must be inspected. An example
response follows:

```
content-length: 283925783
content-type: video/quicktime
content-disposition: attachment; filename=GettyImages-690773579.mov
```

The `content-disposition` header must be parsed to get a usable filename.

## Download URI expiration

Download URIs are _**only valid for 24 hours**_, starting from the moment they are returned from this call.

## Path parameters

- `id` string, required

## Query parameters

- `auto_download` boolean
- `size` string
- `product_id` integer
- `product_type` 'easyaccess' | 'editorialsubscription' | 'imagepack' | 'premiumaccess' | 'royaltyfreesubscription' | 'creditpack' | 'aigen'
- `use_team_credits` boolean

## Headers

- `Accept-Language` string — Provide a header to specify the language of result values. Supported values: cs (iStock only), de, en-GB, en-US, es, fi (iStock only), fr, hu (iStock only), id (iStock only), it, ja, ko (creative assets only), nl, pl (creative assets only), pt-BR, pt-PT, ro (iStock only), ru (creative assets only), sv, th (iStock only), tr, uk (iStock only), vi (iStock only), zh-HK (creative assets only).

## Request body

- GettyImagesServicesConnectPublicModelsDownloadsPremiumAccessDownloadData
  - `download_notes` string, nullable
  - `project_code` string, nullable

## Response `200`

OK

## Other responses

- `303` — See Other
- `400` — MissingRequiredQueryParameters
- `401` — AuthorizationTokenRequired
- `403` — OverageLimitReached
- `404` — VideoNotFound

---

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