---
title: "Download receipts"
method: GET
path: "/transfers/{id}/downloads"
tags: ["Transfers"]
---

# Download receipts

`GET /transfers/{id}/downloads`

## Request

- Base URL: `https://yungle.co/api/v1`
- URL: `https://yungle.co/api/v1/transfers/{id}/downloads`
- Auth: HTTP bearer

One page visit is one download, not one per file — events from the same visit share a `sessionId`. Most recent 200 events.

## Response `200`

Download events and per-recipient status.

- object
  - `downloads` Download[], required
    - `id` string, required
    - `fileName` string, nullable, required: Null for the whole-transfer zip.
    - `recipientEmail` string, nullable, required
    - `sessionId` string, required: One page visit is one download; its files share this id.
    - `ipTruncated` string, nullable, required: Retired: always null.
    - `createdAt` string, date-time, required: When the download started.
    - `completedAt` string, date-time, nullable, required: When the last byte was sent. Null while in progress, or if the download stopped partway.
  - `recipients` Recipient[], required
    - `id` string, required
    - `email` string, required
    - `notifiedAt` string, date-time, nullable, required
    - `downloaded` boolean, required
    - `opened` boolean, required: Retired: always false. Page visits are no longer recorded.
    - `bouncedAt` string, date-time, nullable, required: Set when mail to this address permanently failed.
    - `bounceKind` string, nullable, required
  - `totalDownloads` integer, required

## Other responses

- `401`: Missing or invalid credential. Codes: `unauthorized`.
- `402`: Needs a paid plan, or prepaid credit for metered usage. Codes: `upgrade_required`, `out_of_credit`.
- `403`: The credential lacks a required scope, or a shared link refused access. Codes: `insufficient_scope`, `password_required`, `wrong_password`, `guests_only`.
- `404`: No such resource in this workspace. Codes: `not_found`.
- `429`: Rate limit or email budget exhausted. Wait for `Retry-After`. Codes: `rate_limited`, `email_budget_exhausted`.
- `500`: Our fault. `details.requestId` ties it to our logs. Codes: `internal_error`.

---

[API](https://skmtc.dev/yungle/apis/yungle-api.md) · [All operations](https://skmtc.dev/yungle/apis/yungle-api/llms.txt) · [OpenAPI document](https://skmtc.dev/yungle/apis/yungle-api/revisions/fee7cb2d7419?raw)
