---
title: "Get downloads for an order"
description: "Retrieve a flat list of all downloadable files for an order. Each item includes pre-computed boolean flags indicating whether the download has expired, the download limit has been reached, access has been revoked, or the"
url: https://docs.filemonk.io/api-reference/downloads/get-order-downloads/
api: "API v1 reference"
method: GET
path: "/orders/{id}/downloads"
---

# Get downloads for an order

`GET https://app.filemonk.io/api/v1/external/orders/{id}/downloads`

Retrieve a flat list of all downloadable files for an order. Each item
includes pre-computed boolean flags indicating whether the download has
expired, the download limit has been reached, access has been revoked,
or the file is part of a preorder that hasn't been released yet.

The `downloadable` field is a master flag: it is `true` only when all
conditions are met (not expired, limit not reached, access not revoked,
preorder released).

When `downloadable` is `true`, the `download_url` field contains a
signed URL (for internal files) or the external URL. When `downloadable`
is `false`, `download_url` is `null`.

If PDF watermarking is enabled for the shop, calling this endpoint also
starts watermark generation for eligible PDFs that do not have it yet.
Watermarking is asynchronous: entries with `watermark_status` of
`processing` have a `null` `download_url` and should be polled until the
status becomes `ready`, at which point `download_url` points at the
watermarked copy of the file.

## Path parameters

- `id` (string, required): The order ID

## Headers

- `X-Auth-Token` (string, required): API key for authentication

## Returns

- `order_id` (string): e.g. `3e84eb8d-e1d9-4e92-a4b2-a419c7f1122f`
- `order_name` (string): e.g. `#1001`
- `downloads` (array of objects)
  - `id` (string): Unique identifier for this download entry
  - `product_name` (string): Name of the product this file belongs to
  - `file_name` (string): Name of the file
  - `file_type` (string): MIME type of the file
  - `file_size_bytes` (integer): File size in bytes (0 for external links and licence keys)
  - `download_url` (string, nullable): Signed download URL (for internal files) or external URL. When the file is watermarked and `watermark_status` is `ready`, this points at the watermarked copy. `null` when `downloadable` is `false` or while `watermark_status` is `processing`.
  - `is_watermarked` (boolean): Whether this file is personalised with the buyer's details by the shop's PDF watermarking settings
  - `watermark_status` (string): `not_applicable` when the file is not watermarked, `processing` while the watermarked copy is being generated (`download_url` is `null`), and `ready` once `download_url` serves the watermarked copy. One of: `not_applicable`, `processing`, `ready`.
  - `download_count` (integer): Number of times this file has been downloaded for this order
  - `download_limit` (integer, nullable): Maximum number of downloads allowed per file. `null` means unlimited.
  - `download_limit_reached` (boolean): Whether the download limit has been reached
  - `expires_at` (string, nullable): When the download expires. `null` means no expiration date is set.
  - `download_expired` (boolean): Whether the download has expired based on the store's download limit days setting
  - `access_revoked` (boolean): Whether access to this file has been revoked (e.g. due to refund or cancellation)
  - `is_preorder` (boolean): Whether this file belongs to a preorder product
  - `preorder_available_at` (string, nullable): When the preorder content becomes available. `null` if not a preorder.
  - `preorder_released` (boolean): Whether the preorder has been released (always `true` for non-preorder items)
  - `is_licence_key` (boolean): Whether this download is a licence key rather than a file
  - `licence_key` (string, nullable): The licence key value if this is a licence key type and one has been assigned. `null` otherwise.
  - `downloadable` (boolean): Master flag indicating whether the file can be downloaded right now. `true` only when: not expired, download limit not reached, access not revoked, and preorder released (if applicable).

Rate limit: this call costs 1 point ([rate limits](https://docs.filemonk.io/rate-limiting/)).

## Example request

```sh
curl "https://app.filemonk.io/api/v1/external/orders/{id}/downloads" \
  -H "X-Auth-Token: $FILEMONK_API_KEY"
```

## 200

List of downloads for the order

```json
{
  "order_id": "3e84eb8d-e1d9-4e92-a4b2-a419c7f1122f",
  "order_name": "#1001",
  "downloads": [
    {
      "id": "3e84eb8d-e1d9-4e92-a4b2-a419c7f1122f",
      "product_name": "Digital Art Pack",
      "file_name": "artwork-collection.zip",
      "file_type": "application/zip",
      "file_size_bytes": 52428800,
      "download_url": "https://example.com",
      "is_watermarked": true,
      "watermark_status": "not_applicable",
      "download_count": 2,
      "download_limit": 5,
      "download_limit_reached": true,
      "expires_at": "2026-01-15T09:30:00Z",
      "download_expired": true,
      "access_revoked": true,
      "is_preorder": true,
      "preorder_available_at": "2026-01-15T09:30:00Z",
      "preorder_released": true,
      "is_licence_key": true,
      "licence_key": "string",
      "downloadable": true
    }
  ]
}
```

## 401

Authentication failed

```json
{
  "error": "API key is required"
}
```

## 404

Resource not found

```json
{
  "error": "Resource not found"
}
```

## 429

Rate limit exceeded

