> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yungle.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Yungle developer docs

> Send files, build client collections and collect uploads from your own code, a terminal or an AI assistant, over one EU-hosted API.

Yungle is a private, EU-hosted file transfer service. These docs show you how to drive it from your own code, from a terminal or CI job, or from an AI assistant.

> **[Build with the API](https://docs.yungle.co/quickstart.md)**
>
> Send your first transfer with curl, JavaScript or Python, and read its download receipt.

> **[Send from a terminal or CI](https://docs.yungle.co/cli.md)**
>
> Install `yungle-cli` and run `yungle send ./dist`. Resumable, scriptable, with `--json` output.

> **[Connect an AI assistant](https://docs.yungle.co/mcp-server.md)**
>
> Add `https://yungle.co/mcp` to Claude, ChatGPT, Cursor or another MCP client and sign in. No key needed.

## What you can do

| You want to | Use | Guide |
| - | - | - |
| Send files to someone as a link that expires | a **transfer** | [Send a transfer](https://docs.yungle.co/guides/send-a-transfer.md) |
| Keep files for a client in folders, with invited guests | a **collection** | [Client collections](https://docs.yungle.co/guides/client-collections.md) |
| Let someone else upload files to you | an **upload request** | [Receive files](https://docs.yungle.co/guides/receive-files.md) |
| Know when a transfer is downloaded or a file arrives | a **webhook** | [Webhooks](https://docs.yungle.co/guides/webhooks.md) |
| Keep an address book in sync | **contacts** | [Contacts](https://docs.yungle.co/guides/contacts.md) |

Each of these words means one thing everywhere in these docs. [Concepts](https://docs.yungle.co/concepts.md) defines them.

## Free plan and paid plans

Every account can use the API, the CLI and the MCP server. What a workspace can reach depends on its plan.

| | Free | Leaf | Tree |
| - | - | - | - |
| Price | €0 | €5 a month | €15 a month |
| Transfers and contacts | Yes | Yes | Yes |
| Webhooks | 1 endpoint, transfer events | 10 endpoints, all events | 10 endpoints, all events |
| Largest transfer | 10 GB | 250 GB | 1 TB |
| Transfer lifetime | 7 days | You choose | You choose |
| Collections and upload requests | No | Yes, 250 GB of storage | Yes, 1 TB of storage |

Uploads made through the API are metered apart from the plans, the same way on every tier: the first 10 GB each month are free, then €0.02 per GB from prepaid credit. Downloads are never metered. [Pricing](https://yungle.co/pricing) has the full plan details.

## The base URL

Every endpoint lives under one base URL, takes JSON and returns JSON:

```text theme={null}
https://yungle.co/api/v1
```

You authenticate with an API key sent as a bearer token. [Authentication](https://docs.yungle.co/authentication.md) covers keys and scopes. The full list of endpoints is in the [API reference](https://docs.yungle.co/api-reference.md), generated from the [OpenAPI 3.1 document](https://yungle.co/api/v1/openapi.json).

`/api/v1` changes only by adding things. New endpoints and new response fields can appear; existing fields keep their meaning, and no new required request field is added. A breaking change would get `/api/v2`, and v1 would keep working.

The CLI, the MCP server and the JavaScript and Python SDKs are open source (MIT) on [GitHub](https://github.com/heindewilde/yungle-clients).

## What you get

Yungle is small, independent and self-hosted in the EU. Your files are always encrypted, nothing is sent to a US cloud, and every byte is served from the EU under a data processing agreement.

Free usage is free: 10 GB of API uploads each month, 50,000 calls, and 10 GB per transfer, with no card and no trial clock. Beyond the upload allowance, you pay €0.02 per GB from credit you top up in advance.

Credit is prepaid on purpose. No invoice can arrive for traffic you did not expect, and a runaway script cannot spend money you have not put in. When the balance runs out, your next upload is refused before any bytes move, so the failure lands on you, where you can see it, and never on a recipient waiting for a file. The call allowance is an abuse guard rather than a price, set far above what a working integration uses.

> [!NOTE]
>
> The vault and end-to-end encrypted transfers are encrypted in the client with keys Yungle never receives, so the API can never read them. [What the API cannot do](https://docs.yungle.co/unsupported.md) explains where that boundary is.

## Next steps

> **[Quickstart](https://docs.yungle.co/quickstart.md)**
>
> Send a transfer and read its receipt in about five minutes.

> **[Concepts](https://docs.yungle.co/concepts.md)**
>
> Workspaces, transfers, collections and the rest, in one page.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.