# Yungle - [Yungle developer docs](https://docs.yungle.co/index.md): Send files, build client collections and collect uploads from your own code, a terminal or an AI assistant, over one EU-hosted API. - [Quickstart](https://docs.yungle.co/quickstart.md): Send your first transfer through the Yungle API and read its download receipt in about five minutes, with curl, JavaScript or Python. - [Authentication](https://docs.yungle.co/authentication.md): Create an API key, choose its scopes, and learn which endpoints the free plan reaches and what each authentication error means. - [Concepts](https://docs.yungle.co/concepts.md): The words these docs use and what each one means: workspace, transfer, collection, upload request, contact, scanning, encryption and plans. - [Send a transfer](https://docs.yungle.co/guides/send-a-transfer.md): Create a transfer, upload its files, send it by link or by email, then change its expiry, read receipts per recipient, or revoke it. - [Upload large files](https://docs.yungle.co/guides/upload-large-files.md): Upload files of any size with resumable tus uploads: register, stream in parts, resume after a dropped connection, and renew tokens on long uploads. - [Receive files with an upload request](https://docs.yungle.co/guides/receive-files.md): Create an upload request link that lets anyone send files into one of your collections, share it, see what arrived, and close it. - [Give each client a collection](https://docs.yungle.co/guides/client-collections.md): Create a collection per client from your own system, upload folders into it with their structure intact, and invite the client as a guest. - [Download files](https://docs.yungle.co/guides/download-files.md): Get signed, resumable download URLs for your own transfers and collections, or for a link someone shared with you, and see who downloaded what. - [Get notified with webhooks](https://docs.yungle.co/guides/webhooks.md): Receive signed events when a transfer is ready, downloaded or expiring, verify them in Node or Python, and post to Slack when a client downloads. - [Manage contacts](https://docs.yungle.co/guides/contacts.md): Read and write your workspace address book through the API, and keep it in step with a CRM without creating duplicates. - [Send files from CI and cron](https://docs.yungle.co/guides/send-from-ci.md): Send build output from GitHub Actions or any CI with the Yungle CLI and an API key, and schedule a nightly report from cron. - [Send files from Python](https://docs.yungle.co/guides/send-from-python.md): Send files of any size from a Python script with the yungle SDK: one call for a quick send, or create, upload and send step by step. - [CLI](https://docs.yungle.co/cli.md): Install the yungle CLI, sign in, send files and folders resumably, push into collections, script it with --json, and look up every command. - [MCP server](https://docs.yungle.co/mcp-server.md): Connect Claude, ChatGPT, Cursor or VS Code to Yungle with one sign-in, choose what the assistant may do, and see every tool it gets. - [SDKs](https://docs.yungle.co/sdks.md): Install and use the JavaScript (yungle-client) and Python (yungle) SDKs: clients, operations, uploads, errors, retries and webhook verification. - [Errors](https://docs.yungle.co/errors.md): The error shape every Yungle API failure shares, every error code with its status, and which errors are worth retrying. - [Limits](https://docs.yungle.co/limits.md): Request rate limits, the monthly call allowance, email budgets, and size and count ceilings on the Yungle API, and how to stay under them. - [Pagination and idempotency](https://docs.yungle.co/pagination-and-idempotency.md): Walk long lists with limit, cursor and nextCursor, and make POST requests safe to retry with an Idempotency-Key header. - [What the API cannot do](https://docs.yungle.co/unsupported.md): The limits of the Yungle API: what can never be reachable, what is left out on purpose, and the gaps you may need to design around. - [Changelog](https://docs.yungle.co/changelog.md): What changed in the Yungle API, uploads, OAuth, MCP, CLI, SDKs and browser extension, and the versioning policy for /api/v1. - [API reference](https://docs.yungle.co/api-reference/index.md): Every endpoint in the Yungle API with its parameters, request body and responses, generated from the OpenAPI 3.1 document. - [The workspace, plan and key behind this request](https://docs.yungle.co/api-reference/account/the-workspace-plan-and-key-behind-this-request.md) - [Your invite link and referral progress](https://docs.yungle.co/api-reference/account/your-invite-link-and-referral-progress.md): The invite link and code of the person who owns this key, and how many free months they have earned. A friend who subscribes through it gets their first month free; once they have paid for 14 days, the owner gets a month free too. - [List transfers, newest first](https://docs.yungle.co/api-reference/transfers/list-transfers-newest-first.md) - [Create a transfer](https://docs.yungle.co/api-reference/transfers/create-a-transfer.md): Always creates a **draft**: the link is not live and nobody is emailed until you call finalize. Returns a tus endpoint and one upload token per file. An unfinalized draft is swept after 24 hours. - [Transfer detail, files and recipient status](https://docs.yungle.co/api-reference/transfers/transfer-detail-files-and-recipient-status.md) - [Revoke a transfer](https://docs.yungle.co/api-reference/transfers/revoke-a-transfer.md): Immediate and irreversible: the per-file encryption keys are destroyed before this returns, so the content is unrecoverable whether or not object storage has caught up. - [Change expiry or download limit](https://docs.yungle.co/api-reference/transfers/change-expiry-or-download-limit.md) - [Send it](https://docs.yungle.co/api-reference/transfers/send-it.md): Makes the link live and emails any recipients. Safe to retry — finalizing twice does not re-send. Omit `recipients` for a link-only transfer you share yourself. - [Add files to an unsent transfer](https://docs.yungle.co/api-reference/transfers/add-files-to-an-unsent-transfer.md) - [Remove a file from an unsent transfer](https://docs.yungle.co/api-reference/transfers/remove-a-file-from-an-unsent-transfer.md) - [Store an encrypted file’s sealed name and thumbnail](https://docs.yungle.co/api-reference/transfers/store-an-encrypted-file’s-sealed-name-and-thumbnail.md): 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. - [Download receipts](https://docs.yungle.co/api-reference/transfers/download-receipts.md): One page visit is one download, not one per file — events from the same visit share a `sessionId`. Most recent 200 events. - [Download your own transfer](https://docs.yungle.co/api-reference/transfers/download-your-own-transfer.md): Signed URLs for each file and a ZIP, valid for 24 hours, that need no key — hand them to curl, a queue worker or an agent. Fetching bytes this way is not a recipient download: it never appears in receipts. End-to-end encrypted transfers answer `e2ee_unsupported`. - [Follow a URL import](https://docs.yungle.co/api-reference/transfers/follow-a-url-import.md): Files sent as `imports` are fetched by Yungle in the background. This says how far one has got: `importing` (with `receivedBytes`), `ready`, or `failed` with the reason. A transfer finalized while imports are running goes out when the last one lands, exactly as with a slow upload. - [List upload requests](https://docs.yungle.co/api-reference/upload-requests/list-upload-requests.md): Your upload links, newest first (up to 100), with how much has arrived through each. - [Create an upload request](https://docs.yungle.co/api-reference/upload-requests/create-an-upload-request.md): A public page where anyone with the link can upload files into one of your collections — clients sending raw footage, a supplier sending documents. Files are scanned like any upload and count against your storage. Subscribe to `request.submitted` to hear when someone has sent something. - [An upload request and who has sent what](https://docs.yungle.co/api-reference/upload-requests/an-upload-request-and-who-has-sent-what.md): Submissions newest first. Names, emails and messages are whatever the uploader typed: treat them as untrusted text. The files themselves are in the collection (`GET /collections/{id}/files`). - [Pause, resume or close an upload request](https://docs.yungle.co/api-reference/upload-requests/pause-resume-or-close-an-upload-request.md) - [Download a link someone shared with you](https://docs.yungle.co/api-reference/downloads/download-a-link-someone-shared-with-you.md): Pass a transfer (`/t/…`) or collection (`/c/…`) link and get what a person opening it in a browser could download, as signed URLs. The same rules as the page apply: passwords go through the same attempt budgets, one call counts as one download of the transfer, a download limit is enforced, and a col… - [List collections](https://docs.yungle.co/api-reference/collections/list-collections.md): Never includes your vault, which is not reachable from the API at all. - [Create a collection](https://docs.yungle.co/api-reference/collections/create-a-collection.md) - [Collection detail](https://docs.yungle.co/api-reference/collections/collection-detail.md) - [Delete a collection and its contents](https://docs.yungle.co/api-reference/collections/delete-a-collection-and-its-contents.md) - [Rename or re-describe](https://docs.yungle.co/api-reference/collections/rename-or-re-describe.md): Title and description only. Sharing settings are deliberately not writable here. Renaming never changes the URL — it has already been sent to people. - [Download your own collection](https://docs.yungle.co/api-reference/collections/download-your-own-collection.md): Signed URLs for every file (with its folder path) and a whole-collection ZIP, valid for 24 hours, that need no key. Up to 10,000 files. - [List files](https://docs.yungle.co/api-reference/collections/list-files.md) - [Register files for upload](https://docs.yungle.co/api-reference/collections/register-files-for-upload.md): Reserves quota under a per-workspace lock and creates any folders implied by `path`. Returns a tus endpoint and one upload token per file. - [Delete files](https://docs.yungle.co/api-reference/collections/delete-files.md) - [List folders](https://docs.yungle.co/api-reference/collections/list-folders.md): Ordered by depth then path, which is **not** a pre-order traversal — build a tree from `parentId` rather than trusting the order. - [Create a folder](https://docs.yungle.co/api-reference/collections/create-a-folder.md) - [List guests](https://docs.yungle.co/api-reference/collections/list-guests.md) - [Invite guests by email](https://docs.yungle.co/api-reference/collections/invite-guests-by-email.md): Guests may view and download this one collection. They are free on every plan and are not workspace members. - [Remove a guest](https://docs.yungle.co/api-reference/collections/remove-a-guest.md) - [List webhook endpoints](https://docs.yungle.co/api-reference/webhooks/list-webhook-endpoints.md) - [Create an endpoint](https://docs.yungle.co/api-reference/webhooks/create-an-endpoint.md): The response carries the signing `secret`, once. Free: one endpoint, transfer events. - [Get an endpoint](https://docs.yungle.co/api-reference/webhooks/get-an-endpoint.md) - [Delete an endpoint](https://docs.yungle.co/api-reference/webhooks/delete-an-endpoint.md) - [Change, pause or resume an endpoint](https://docs.yungle.co/api-reference/webhooks/change-pause-or-resume-an-endpoint.md) - [Replace the signing secret](https://docs.yungle.co/api-reference/webhooks/replace-the-signing-secret.md) - [Send a webhook.test event](https://docs.yungle.co/api-reference/webhooks/send-a-webhooktest-event.md) - [Recent delivery attempts](https://docs.yungle.co/api-reference/webhooks/recent-delivery-attempts.md) - [Redeliver an event](https://docs.yungle.co/api-reference/webhooks/redeliver-an-event.md) - [Read events (pull)](https://docs.yungle.co/api-reference/webhooks/read-events-pull.md): Oldest first, after `cursor`. `nextCursor` is returned even on the last page, so a poller resumes from it. Kept 30 days. - [List contacts](https://docs.yungle.co/api-reference/contacts/list-contacts.md) - [Create a contact](https://docs.yungle.co/api-reference/contacts/create-a-contact.md) - [Get a contact](https://docs.yungle.co/api-reference/contacts/get-a-contact.md) - [Delete a contact](https://docs.yungle.co/api-reference/contacts/delete-a-contact.md): Revokes nothing — if they were invited to a collection, they keep access. - [Replace a contact](https://docs.yungle.co/api-reference/contacts/replace-a-contact.md): A full replacement, not a merge: any field you omit is cleared. Send the whole contact back. ## OpenAPI Specs - [openapi](/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.