Skip to main content
POST
Create a transfer

Authorizations

Authorization
string
header
required

An API key from Settings → API keys, sent as Authorization: Bearer yk_live_…. Scopes: transfers:read, transfers:write, collections:read, collections:write, contacts:read, contacts:write, webhooks:read, webhooks:write. A write scope implies read of the same resource.

Body

application/json
files
object[]

Files you will upload yourself.

Maximum array length: 500
imports
object[]

Files Yungle fetches from URLs itself, so the bytes never pass through you. Up to 20 per call. Each is created like an upload (quota, size ceilings, API metering) and imported in the background; follow it with GET /imports/{fileId}.

Maximum array length: 20
title
string

Shown in your dashboard; never to recipients.

Maximum string length: 200
expiresInDays
integer

Defaults to 7. Clamped to your plan’s maximum (7 free, 365 paid) rather than rejected.

Required range: x <= 3650
e2ee
boolean

The files are encrypted by the client before upload and Yungle never holds the key, which travels in the link’s fragment. Such a transfer takes no title, no imports, and cannot be emailed or password-protected.

Response

Draft created, with upload targets.

tusEndpoint
string<uri>
required

Stream each file here with tus.

files
object[]
required

One per entry in files, in the same order.

imports
object[]
required

One per entry in imports, in the same order. Empty when none were sent.

transfer
object
required