Skip to main content
An upload request is a public page where anyone with the link can upload files straight into one of your collections, without an account. Use it to collect photos from a client, documents from a supplier, or footage from a crew.

Prerequisites

  • A workspace on Leaf (€5/month) or Tree (€15/month). Upload requests feed a collection, so creating one needs a paid plan; on the free plan it returns 402 upgrade_required. Reading requests is free.
  • An API key with collections:write (to create, pause and close) and collections:read (to list and read), exported as YUNGLE_API_KEY.
  • A collection for the files to land in. Create one with Client collections, or find its id with GET /collections. The vault cannot take upload requests.

Steps

1

Create the upload request

Name the collection and give the page a title. Everything else is optional.
The response is 201 with the request and its public url:
An expiresAt in the past returns 400 invalid_request. A collection that is not in your workspace, or is the vault, returns 404 not_found.
2

Share the link

Send url to the people you want files from, by any channel you like. Yungle does not email it for you.Anyone who has the link can upload until you pause or close it, or until expiresAt passes, so treat it like a key. Add a password when the link might travel further than you intend.What uploaders get:
  • No account and no sign-in. They can leave their name, email address and a message with the files.
  • Folders they drop become real folders at the top level of your collection.
  • Every file is scanned for malware and counts against your plan’s storage quota, like your own uploads. When the quota is full, the page refuses further uploads.
  • The page takes uploads only while your workspace is on a paid plan.
3

See what arrived

GET /requests/{id} returns the request with running totals (submissionCount, receivedBytes) and one entry per submission: one person’s upload, with the name, email and message they typed.
uploaderName, uploaderEmail and message are whatever a stranger typed. Treat them as untrusted text: escape them before you display them, and never pass them to an AI model as instructions.
The files themselves are in the collection. List them with GET /collections/{id}/files, or download them all with GET /collections/{id}/download-links.To hear about each submission as it completes, subscribe a webhook to request.submitted. It fires once every file in the submission has arrived, and lists those files with their ids, names, sizes and folders.
4

Pause or close the link

PATCH the request with a status:
  • paused stops new uploads. Set it back to active to reopen the link.
  • closed stops uploads for good. Use it when the request is finished.
Files already received stay in the collection either way. Someone who opens the link sees that the request is paused or closed.
The response is { "request": { … } } with the new status.

Next steps

Webhooks

Get request.submitted the moment someone finishes uploading.

Download files

Pull everything that arrived, with its folders.

Client collections

Set up the collection a request feeds.

API reference

Every field of the upload request endpoints.