Getty Images Downloads API

The Downloads API from Getty Images — 5 operation(s) for downloads.

Operations 3

GET /v3/downloads Returns information about a customer's downloaded assets #
POST /v3/downloads/images/{id} Download an image #
POST /v3/downloads/videos/{id} Download a video #

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/getty-images-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

getty-images-downloads-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Getty Images Downloads API
  version: '3'
  description: 'Operations tagged Downloads across 2 of this provider''s published API definitions: getty-images-openapi.yml, getty-images-swagger-v3-openapi.json. Each path carries the servers of the definition it was published in.'
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
          - 'null'
          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"
          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
          - 'null'
          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.'
          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
          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'
          default: false
      - name: page
        in: query
        description: Identifies page to return. Default is 1.
        schema:
          type: integer
          description: Identifies page to return. Default is 1.
          format: int32
          default: 1
      - name: page_size
        in: query
        description: Specifies page size. Default is 30, maximum page_size is 100.
        schema:
          type: integer
          description: Specifies page size. Default is 30, maximum page_size is 100.
          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/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
          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.
          default: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDownloadsResponse'
        '400':
          description: Bad request
        '401':
          description: AuthorizationTokenRequired
        '403':
          description: Forbidden
      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 a Resource Owner Grant or Implicit Grant access token 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
          - 'null'
          description: "<remarks>\n                    Id of image to download.\n                </remarks>"
      - 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
          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>"
          default: true
      - name: file_type
        in: query
        description: "<remarks>\n                    File Type expressed with three character file extension.\n                </remarks>"
        schema:
          $ref: '#/components/schemas/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
          - 'null'
          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>"
      - name: product_id
        in: query
        description: "<remarks>\n                    Identifier of the instance for the selected product offering type.\n                </remarks>"
        schema:
          type:
          - integer
          - 'null'
          description: "<remarks>\n                    Identifier of the instance for the selected product offering type.\n                </remarks>"
          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/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
          - 'null'
          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.
          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/PremiumAccessDownloadData'
      responses:
        '200':
          description: OK
        '303':
          description: See Other
        '400':
          description: MissingRequiredQueryParameters
        '401':
          description: AuthorizationTokenRequired
        '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 a Resource Owner Grant or Implicit Grant access token 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
          - 'null'
          description: "<remarks>\n                    Id of video to download.\n                </remarks>"
      - 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
          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>"
          default: false
      - name: size
        in: query
        description: Specifies the size to be downloaded.
        schema:
          type:
          - string
          - 'null'
          description: Specifies the size to be downloaded.
      - name: product_id
        in: query
        description: "<remarks>\n                    Identifier of the instance for the selected product offering type.\n                </remarks>"
        schema:
          type:
          - integer
          - 'null'
          description: "<remarks>\n                    Identifier of the instance for the selected product offering type.\n                </remarks>"
          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/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
          - 'null'
          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.
      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/PremiumAccessDownloadData'
      responses:
        '200':
          description: OK
        '303':
          description: See Other
        '400':
          description: MissingRequiredQueryParameters
        '401':
          description: AuthorizationTokenRequired
        '403':
          description: OverageLimitReached
        '404':
          description: VideoNotFound
      operationId: postV3DownloadsVideosById
      x-operation-id-source: derived
components:
  schemas:
    DownloadFileType:
      enum:
      - eps
      - jpg
      type: string
    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/DownloadDetails'
        download_source:
          type:
          - string
          - 'null'
        user:
          $ref: '#/components/schemas/User'
        size_name:
          type:
          - string
          - 'null'
        dimensions:
          $ref: '#/components/schemas/Dimensions'
        license_model:
          type:
          - string
          - 'null'
        generated_asset_id:
          type:
          - string
          - 'null'
      additionalProperties: false
    ProductTypeForDownloads:
      enum:
      - easyaccess
      - editorialsubscription
      - imagepack
      - premiumaccess
      - royaltyfreesubscription
      - creditpack
      - aigen
      type: string
    PremiumAccessDownloadData:
      type: object
      properties:
        download_notes:
          type:
          - string
          - 'null'
        project_code:
          type:
          - string
          - 'null'
      additionalProperties: false
    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
    DownloadDetails:
      type: object
      properties:
        download_notes:
          type:
          - string
          - 'null'
        project_code:
          type:
          - string
          - 'null'
      additionalProperties: false
    Dimensions:
      type: object
      properties:
        width:
          type:
          - integer
          - 'null'
          format: int32
        height:
          type:
          - integer
          - 'null'
          format: int32
        dpi:
          type:
          - integer
          - 'null'
          format: int32
      additionalProperties: false
    GetDownloadsResponse:
      type: object
      properties:
        result_count:
          type: integer
          format: int32
        downloads:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/HistoricalDownload'
      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.Controllers.Download.DownloadFileType:
      enum:
      - eps
      - jpg
      type: string
    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.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.PremiumAccessDownloadData:
      type: object
      properties:
        download_notes:
          type:
          - string
          - 'null'
        project_code:
          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.Dimensions:
      type: object
      properties:
        width:
          type:
          - integer
          - 'null'
          format: int32
        height:
          type:
          - integer
          - 'null'
          format: int32
        dpi:
          type:
          - integer
          - 'null'
          format: int32
      additionalProperties: false
  securitySchemes:
    Api-Key:
      type: apiKey
      name: Api-Key
      in: header
    OAuth2:
      type: oauth2
      flows:
        password:
          tokenUrl: https://api.gettyimages.com/v4/oauth2/token
          refreshUrl: https://api.gettyimages.com/v4/oauth2/token
          scopes: {}
        clientCredentials:
          tokenUrl: https://api.gettyimages.com/v4/oauth2/token
          scopes: {}
        authorizationCode:
          authorizationUrl: https://api.gettyimages.com/v4/oauth2/auth
          tokenUrl: https://api.gettyimages.com/v4/oauth2/token
          refreshUrl: https://api.gettyimages.com/v4/oauth2/token
          scopes: {}
x-refined-from:
- getty-images-openapi.yml
- getty-images-swagger-v3-openapi.json