---
title: "Store the sealed name and thumbnail of an encrypted file"
method: POST
path: "/transfers/{id}/files/{fileId}/sealed"
tags: ["Transfers"]
---

# Store the sealed name and thumbnail of an encrypted file

`POST /transfers/{id}/files/{fileId}/sealed`

## Request

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

End-to-end encrypted transfers only. Sealed with `yungle-e2e` after the file is created, because each blob binds the file’s id. Yungle stores the ciphertext and learns nothing from it.

## Request body

- object
  - `meta` string: Sealed `{ name, path, size, type }`, from `yungle-e2e`.
  - `thumb` string: Sealed WebP thumbnail, base64. Images only.

## Response `200`

Stored.

- object
  - `stored` true, 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`.
- `409`: Already exists, an Idempotency-Key conflict, or end-to-end encrypted content the server cannot serve. Codes: `conflict`, `e2ee_unsupported`.
- `410`: The transfer has been sent, revoked or expired; or a shared link is no longer available. Codes: `not_editable`, `link_unavailable`.
- `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)
