Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  1. Fotoware Alto
    • 11.14 Schreckhorn
    • Terminology
    • Solutions
    • User Guide - Deutsch
    • User Guide - English
    • API Changelog
  2. Fotoware Veloz
    • Managing users and groups
    • Configuring archives
    • Configuring workflows
    • Configuring site behavior
    • Navigating and searching to find your assets
    • Working with your assets
    • Editing asset metadata
    • Uploading files
    • Version Control in Fotoware
    • Albums - Creating and sharing collections
    • Placing assets in a CMS
    • Working with the Fotoware Pro interface
    • Using the Fotoware plugins
    • Consent management
    • User guide to FotoWeb for iPad (Legacy)
    • Picture conferencing with FotoWeb Screens (Legacy)
    • What's what in Fotoware
    • GDPR
    • Fotoware Veloz releases
    • Activity Exports
    • Fotoware Example Workflows
  3. Fotostation
    • Getting started with Fotostation
    • Viewing, selecting and sorting files
    • Managing your assets with archives
    • Adding metadata to assets
    • Searching for assets
    • Working with your assets
    • Version Control in Fotostation
    • Automating tasks with Actions
    • Configuring metadata fields and editors
    • Configuring Fotostation
    • Configuring Fotostation for multi-user environments
    • Troubleshooting Fotostation
  4. Fotoware Flow
    • What is Flow?
    • Getting started
    • Flow dictionary
  5. Fotoware On-Premises
    • Getting started
    • Index Manager
    • FotoWeb
    • Color Factory
    • Connect
    • Operations Center Guide
  6. Integrations and APIs
    • The Fotoware API
    • Creating integrations using embeddable widgets
    • Authorizing applications using OAuth
    • Auto-tagging
    • FotoWeb Drag and Drop export
    • Integration using webhooks
    • Optimizely and Episerver plugin documentation
    • User Interface Integrations
  7. Fotoware Mobile
    • User guide for Fotoware Mobile for iPhone and Android
    • User guide to FotoWeb for iPad (Legacy)
    • User guide to FotoWeb for iPhone and Android (Legacy)

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Support

Table of Contents

Notes Authentication and Impersonation Renditions Notes: Rendition Requests How to obtain the Rendition Request Service URL Polling and Downloading the Rendition
  • Home
  • Integrations and APIs
  • The Fotoware API
  • Fotoware API Overview

Downloading asset renditions using the RESTful API

Applies to: FotoWare 8.0 Feature Release 10

04. April 2025

Elaine Foley

Table of Contents

Notes Authentication and Impersonation Renditions Notes: Rendition Requests How to obtain the Rendition Request Service URL Polling and Downloading the Rendition

Integrations and applications can download assets from a FotoWeb site using the FotoWeb RESTful API. The same download options are available as for interactive users. This means that

  • Download is controlled by permissions. An API client that impersonates a user can only download assets for which the impersonated user has download permission.
  • Available renditions are configurable. Site administrators can define processing profiles for each archive that control whether it is possible to download original files, or processed renditions, or both, and which renditions are available.
  • Metadata filtering may be performed on downloaded assets. This means that downloaded assets contain only the metadata fields which are configured to be Included in Downloads.

Downloading an asset requires the following steps:

  1. Obtain a rendition URL
  2. Create a rendition request
  3. Download the rendition

The first step is necessary because each asset can have multiple renditions. The second step is necessary because the server may need time to prepare the rendition (e.g., by applying a processing profile or metadata filtering to the original asset). When the rendition is ready, the client can download it from a temporary URL provided by the server.

Notes

  • The API only allows download of a single rendition of a single file per request. It is not possible to download multiple files as a ZIP file (as interactive users can do).
  • It is not possible to download XMP sidecar files. This means that when downloading a file of a type which does not support embedded XMP metadata (such as a PowerPoint presentation), then the downloaded file will not include any metadata. To export metadata of assets, the API can be used to get a JSON representation of the metadata. It is, however, not easy to convert this information into XMP format.

Authentication and Impersonation

Both guests and authenticated users can download assets. It is possible to download assets using the API as long as the guest user has download permission on these assets.

Different users may have access to different renditions (or no renditions at all). It is therefore recommended to perform all three steps of the download process with the same request user. For example, if the rendition request is made as the Guest user, then the rendition URL should be obtained as the Guest user, because otherwise, it is not guaranteed that Guest has access to this rendition, and the rendition request may fail.

When using server-to-server authentication, all configured renditions are available for all assets in all archives.

Renditions

The JSON representation of an asset contains a renditions list, which is a list of renditions that are available for download in the renditions parameter. It is up to the API client to choose which rendition to download. An interactive application may also present the rendition list to the user in a similar way as the FotoWeb download interface does and let the user select a rendition.

How renditions are configured

Renditions are configured in the FotoWeb Site Settings in the Operations Center, under Processing Profiles. Having made one or more processing profiles, you can collect these in a set, which can be applied to an archive, where the file can be delivered in one of three ways:
1) in its original form, 2) always processed with the processing profile the administrator has associated with the archive, or 3) based on the available processing profiles in the set that the admin has associated with the archive.

Each item in the rendition list has the following form:

1

2

3

4

5

6

7

8

9

{

"display_name": "Original File",

"description": "Original File",

"width": 5472,

"height": 3648,

"href": "/fotoweb/archives/5000-Photos/Folder/image.jpg.info/__renditions/ORIGINAL",

"default": true|false,

"original": true|false

}

where

Parameter Type Description
display_name string Human-readable display name of the rendition
description string Human-readable detailed description of the rendition
width integer Width of the rendition in pixels (if applicable)
height integer Height of the rendition in pixels (if applicable)
href URL (string) Rendition URL
default boolean If true, this rendition is the default rendition that should be offered to users in a selection interface
original boolean If true, this rendition is the original asset file without any processing applied

Notes:

  • Clients can use the display_name attribute as a unique identifier of a specific rendition type. It is identical to the name of the processing profile that is applied to the asset, unless original is true, which means that no processing profile is applied.
  • It is not possible to make requests to the rendition URL. The rendition cannot be downloaded from this URL. The rendition URL only serves as an identifier of a specific rendition of a specific asset. The remainder of this article explains how to download assets using the API.

Rendition Requests

Rendition requests are made to the rendition request service using the rendition URL from the rendition list:

1

2

3

4

5

6

7

8

POST RENDITION_REQUEST_SERVICE_URL

Content-Type: application/vnd.fotoware.rendition-request+json

Accept: application/vnd.fotoware.rendition-response+json

 

 

{

"href": "RENDITION_URL"

}

The server returns one of the following responses:

1

2

3

4

5

6

202 Accepted

Location: RENDITION_REQUEST_URL

Content-Type: application/vnd.fotoware.rendition-response+json

{

href: "RENDITION_REQUEST_URL"

}

1 403 Forbidden

This means that the impersonated user (or guest) does not (or does not longer have) permission to download the rendition.

How to obtain the Rendition Request Service URL

The request URL (RENDITION_REQUEST_SERVICE_URL) is obtained from the API descriptor. It is provided both in the full API descriptor as well as in the public API descriptor in the services.rendition_requests attribute:

1

2

3

4

5

6

7

8

09

{

...

services: {

...

rendition_requests: "RENDITION_REQUEST_SERVICE_URL",

...

}

...

}

The href parameter in the request body must be the rendition URL obtained from the rendition list of the asset representation.

The response contains a temporary rendition request URL, RENDITION_REQUEST_URL, which the client can use to download the rendition when it is ready.

Polling and Downloading the Rendition

To download the rendition, the client makes the following request to the rendition request URL obtained in the previous step:

GET RENDITION_REQUEST_URL

If the rendition request URL is valid, the server returns one of the following responses:

202 Accepted

This response means that the rendition is not ready yet, and the client should retry the request after a short delay.

200 OK
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="image.jpg"

This response means that the rendition is ready. The binary rendition file is contained in the body of the response (as in a regular HTTP download response).

The Content-Type header is currently always application/octet-stream. This is due to some browsers having problems when setting it to the correct MIME type of the rendition file. File type information can be obtained from the JSON representation of an asset.

410 Gone

This means that the download has failed, usually for one of the following reasons:

  • An internal server error has occurred while processing the rendition(s)
  • The download task was canceled. This does not happen normally.
  • Permissions were changed, and the user no longer has access to the rendition(s)

The client should stop polling the rendition request URL. However, it may attempt to retry the download by creating a new rendition request. If the download failed due to a permission change, then the rendition request will fail immediately with 403 Forbidden (unless permissions were changed again). After repeated failures with 410 Gone during polling, the client should eventually give up retrying the download.

api downloads asset retrieval

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Indexing PDF documents
  • Downloading a rendition of a certain page in a document
  • Replacing lo-res images with hi-res in PDF workflows
  • API entry points
eco-lighthouse-miljøfyrtårn

Company

  • About us
  • Resellers
  • Careers
  • Contact us

Help & support

  • Support center
  • Consultancy
  • Tech partners
  • Fotostation
  • System status

Trust Center

  • Legal
  • Security
  • Sustainability & ESG

Locations

Fotoware AS (HQ)
Tollbugata 35
0157 OSLO
Norway
FotoWare Switzerland AG
Industriestrasse 25
5033 Buchs (AG)
Switzerland

Copyright 2025 Fotoware All rights reserved.

  • Terms of service
  • Privacy policy
  • Cookie policy

Knowledge Base Software powered by Helpjuice

Expand

Definition by