Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/istock:istock-downloads-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Getty Images Downloads API
version: '3'
security:
- Api-Key: []
- OAuth2: []
tags:
- name: Downloads
paths:
/v3/downloads:
get:
tags:
- Downloads
summary: Returns information about a customer's downloaded assets
description: 'Returns information about a customer''s previously downloaded assets.
You''ll need an API key and access token to use this resource.
This endpoint requires being a Getty Images customer to limit your results to only assets that you have a license to use,
you need to also include an authorization token in the header of your request.
Please consult our Authorization FAQ for more information on authorization tokens.'
parameters:
- name: Accept-Language
in: header
description: '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).'
schema:
type: string
description: '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).'
- name: date_from
in: query
description: "If specified, selects assets downloaded on or after this date. Dates should be submitted in ISO 8601 format (i.e., YYYY-MM-DD). \nAny hour, minute, second values in the request are not used, unless useTimePart parameter is included.\nDate/times in the response are UTC. Default is 30 days prior to date_to"
schema:
type: string
format: date-time
- name: date_to
in: query
description: 'If specified, selects assets downloaded on or before this date. Dates should be submitted in ISO 8601 format (i.e., YYYY-MM-DD)
Any hour, minute, second values in the request are not used, unless useTimePart parameter is included.
Date/times in the response are UTC. Default is current date or 30 days after specified start date, whichever one is earlier.'
schema:
type: string
format: date-time
- name: use_time
in: query
description: 'If specified, time values provided with date_to or date_from will be used. Time values should be appended to the date value in ISO 8601 format
i.e.: 2019-09-19T19:30:37 or 2019-09-19 19:30:37. Time zone can be specified as optional.
Default value is false'
schema:
type: boolean
default: false
- name: page
in: query
description: Identifies page to return. Default is 1.
schema:
type: integer
format: int32
default: 1
- name: page_size
in: query
description: Specifies page size. Default is 30, maximum page_size is 100.
schema:
type: integer
format: int32
default: 30
- name: product_type
in: query
description: Specifies product type to be included in the previous download results. Product types easyaccess, editorialsubscription, imagepack, and premiumaccess are for GettyImages API keys. Product types royaltyfreesubscription and creditpack are for iStock API keys. To get previous iStockPhoto credit downloads, creditpack must be selected.
schema:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Models.ProductTypeForDownloads'
- name: company_downloads
in: query
description: If specified, returns the list of previously downloaded images for all users in your company. Your account must be enabled for this functionality. Contact your Getty Images account rep for more information. Default is false.
schema:
type: boolean
default: false
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Models.Downloads.GetDownloadsResponse'
'400':
description: Bad request
'403':
description: Forbidden
'401':
description: AuthorizationTokenRequired
operationId: getV3Downloads
x-operation-id-source: derived
/v3/downloads/images/{id}:
post:
tags:
- Downloads
summary: Download an image
description: 'Use this endpoint to generate download URLs and related data for images 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 or Authorization Code grant to use this resource.
## Auto Downloads
The `auto_download` request query parameter specifies whether to automatically download the image.
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.
Client Request:
```
https://api.gettyimages.com/v3/downloads/images/[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.
```
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 image.
Client Request:
```
https://api.gettyimages.com/v3/downloads/images/[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.
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: 33959979
content-type: image/jpeg
content-disposition: attachment; filename=GettyImages-1167612765.jpg
```
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.'
parameters:
- name: Accept-Language
in: header
description: '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).'
schema:
type: string
description: '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).'
- name: id
in: path
description: "<remarks>\n Id of image to download.\n </remarks>"
required: true
schema:
type: string
- name: auto_download
in: query
description: "<remarks>\n Specifies whether to auto-download the image. If true is specified, a 303 SeeOther status is returned with a\n Location header set to the location of the image.\n If false is specified, the download URI will be returned in the response message. Default is true.\n </remarks>"
schema:
type: boolean
default: true
- name: file_type
in: query
description: "<remarks>\n File Type expressed with three character file extension.\n </remarks>"
schema:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Controllers.Download.DownloadFileType'
- name: height
in: query
description: "<remarks>\n Specifies the pixel height of the particular image to download.\n Available heights can be found in the images/{ids} response for the specific image.\n If left blank, it will return the largest available size.\n </remarks>"
schema:
type: string
- name: product_id
in: query
description: "<remarks>\n Identifier of the instance for the selected product offering type.\n </remarks>"
schema:
type: integer
format: int32
- name: product_type
in: query
description: "<remarks>\n Product types easyaccess, editorialsubscription, imagepack, and premiumaccess are for GettyImages API keys. Product types royaltyfreesubscription and creditpack are for iStock API keys. Default product type for iStock API keys is creditpack.\n </remarks>"
schema:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Models.ProductTypeForDownloads'
- name: use_team_credits
in: query
description: Specifies whether to download the image with iStock Team Credits. Only applicable to iStock API keys authenticated with a user that has Team Credits. Blank is the same as False.
schema:
type: boolean
default: false
requestBody:
description: "<remarks>\n Additional information required from specific customers when downloading. \n Only users who have been set up with a project code by Getty Images Sales need to use this field.\n </remarks>"
content:
application/json:
schema:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Models.Downloads.PremiumAccessDownloadData'
responses:
'200':
description: OK
'303':
description: See Other
'401':
description: AuthorizationTokenRequired
'400':
description: MissingRequiredQueryParameters
'403':
description: OverageLimitReached
'404':
description: ImageNotFound
operationId: postV3DownloadsImagesById
x-operation-id-source: derived
/v3/downloads/videos/{id}:
post:
tags:
- Downloads
summary: Download a video
description: '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 or 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.
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.
```
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.
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.'
parameters:
- name: Accept-Language
in: header
description: '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).'
schema:
type: string
description: '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).'
- name: id
in: path
description: "<remarks>\n Id of video to download.\n </remarks>"
required: true
schema:
type: string
- name: auto_download
in: query
description: "<remarks>\n Specifies whether to auto-download the video. If true is specified, a 303 SeeOther status is returned with a\n Location header set to the location of the video.\n If false is specified, the download URI will be returned in the response message. Default is false.\n </remarks>"
schema:
type: boolean
default: false
- name: size
in: query
description: Specifies the size to be downloaded.
schema:
type: string
- name: product_id
in: query
description: "<remarks>\n Identifier of the instance for the selected product offering type.\n </remarks>"
schema:
type: integer
format: int32
- name: product_type
in: query
description: "<remarks>\n Product types easyaccess, editorialsubscription, imagepack, and premiumaccess are for GettyImages API keys. Product types royaltyfreesubscription and creditpack are for iStock API keys. Default product type for iStock API keys is creditpack.\n </remarks>"
schema:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Models.ProductTypeForDownloads'
- name: use_team_credits
in: query
description: Specifies whether to download the image with iStock Team Credits. Only applicable to iStock API keys authenticated with a user that has Team Credits. Blank is the same as False.
schema:
type: boolean
requestBody:
description: "<remarks>\n Additional information required from specific customers when downloading. \n Only users who have been set up with a project code by Getty Images Sales need to use this field.\n </remarks>"
content:
application/json:
schema:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Models.Downloads.PremiumAccessDownloadData'
responses:
'200':
description: OK
'303':
description: See Other
'401':
description: AuthorizationTokenRequired
'400':
description: MissingRequiredQueryParameters
'403':
description: OverageLimitReached
'404':
description: VideoNotFound
operationId: postV3DownloadsVideosById
x-operation-id-source: derived
components:
schemas:
GettyImages.Services.Connect.Public.Models.Downloads.PremiumAccessDownloadData:
type: object
properties:
download_notes:
type:
- string
- 'null'
project_code:
type:
- string
- 'null'
additionalProperties: false
GettyImages.Services.Connect.Public.Models.Downloads.HistoricalDownload:
type: object
properties:
date_downloaded:
type: string
format: date-time
id:
type:
- string
- 'null'
asset_type:
type:
- string
- 'null'
product_type:
type:
- string
- 'null'
thumb_uri:
type:
- string
- 'null'
agreement_name:
type:
- string
- 'null'
product_id:
type: integer
format: int32
download_details:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Models.Downloads.DownloadDetails'
download_source:
type:
- string
- 'null'
user:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Models.Downloads.User'
size_name:
type:
- string
- 'null'
dimensions:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Models.Downloads.Dimensions'
license_model:
type:
- string
- 'null'
generated_asset_id:
type:
- string
- 'null'
additionalProperties: false
GettyImages.Services.Connect.Public.Models.Downloads.User:
type: object
properties:
username:
type:
- string
- 'null'
first_name:
type:
- string
- 'null'
middle_name:
type:
- string
- 'null'
last_name:
type:
- string
- 'null'
additionalProperties: false
GettyImages.Services.Connect.Public.Models.Downloads.DownloadDetails:
type: object
properties:
download_notes:
type:
- string
- 'null'
project_code:
type:
- string
- 'null'
additionalProperties: false
GettyImages.Services.Connect.Public.Models.ProductTypeForDownloads:
enum:
- easyaccess
- editorialsubscription
- imagepack
- premiumaccess
- royaltyfreesubscription
- creditpack
- aigen
type: string
GettyImages.Services.Connect.Public.Models.Downloads.Dimensions:
type: object
properties:
width:
type:
- integer
- 'null'
format: int32
height:
type:
- integer
- 'null'
format: int32
dpi:
type:
- integer
- 'null'
format: int32
additionalProperties: false
GettyImages.Services.Connect.Public.Models.Downloads.GetDownloadsResponse:
type: object
properties:
result_count:
type: integer
format: int32
downloads:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/GettyImages.Services.Connect.Public.Models.Downloads.HistoricalDownload'
additionalProperties: false
GettyImages.Services.Connect.Public.Controllers.Download.DownloadFileType:
enum:
- eps
- jpg
type: string
securitySchemes:
Api-Key:
type: apiKey
name: Api-Key
in: header
OAuth2:
type: oauth2
flows:
password:
tokenUrl: https://authentication.gettyimages.com/oauth2/token
refreshUrl: https://authentication.gettyimages.com/oauth2/token
scopes: {}
clientCredentials:
tokenUrl: https://authentication.gettyimages.com/oauth2/token
scopes: {}
authorizationCode:
authorizationUrl: https://authentication.gettyimages.com/oauth2/auth
tokenUrl: https://authentication.gettyimages.com/oauth2/token
refreshUrl: https://authentication.gettyimages.com/oauth2/token
scopes: {}
x-provenance:
method: harvested
publisher: iStock
source: https://api.gettyimages.com/swagger/v3/swagger.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)