Skip to content

Transfers

Create a durable, shareable link from files or folders already in the library.

A transfer is a shareable link to one or more files or folders already in the workspace’s library (upload them first with Uploads). It is the same kind of link the app’s own send flow creates: an expiry, a password, one-time-download protection. This endpoint covers the plain case only – video, audio and canvas transfers, paid transfers and the “organization” recipient-email flow stay app-only for now.

Method and path Scope What it does
POST /transfers transfers:create Creates a transfer and returns its share link
GET /transfers/{id} transfers:read Reads one transfer’s current status
DELETE /transfers/{id} transfers:create Ends a transfer early; the link stops working at once

Create a transfer

curl -X POST -H "Authorization: Bearer $TARKLE_TOKEN" -H "X-Workspace-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"items":[{"id":"123","type":"file"}],"access":"public","title":"Q4 build"}' \
  https://tarkle.com/api/v1/transfers
{
  "id": "2857",
  "url": "https://acme.tarkle.com/t/3QL4HIF9OTOP",
  "slug": "3QL4HIF9OTOP",
  "title": "Q4 build",
  "description": null,
  "access": "public",
  "expires_at": null,
  "burn_after_read": false,
  "view_only": false,
  "download_mode": "standard",
  "created_at": "2026-11-06T07:19:01.603729+00:00"
}

url is the real, working share link on the workspace’s own custom domain when it has one, otherwise its hosted address – always /t/{slug}.

Body

Field Required Description
items Yes [{ id, type }], type is "file" or "folder", id is a file id (digits, from POST /uploads/.../complete) or a folder id (uuid)
access Yes "public" or "password"
password Only with access: "password" The password needed to open the link
title No Shown on the share page
description No Shown on the share page
expires_at No ISO 8601, must be in the future. Omit for a link that never expires
burn_after_read No The link stops working after its first download. There is no numeric download-count limit today – only this one-time form
view_only No Viewers can open files but not download them
download_mode No "standard" (default), "email_required" or "direct"

Read and end a transfer

curl -H "Authorization: Bearer $TARKLE_TOKEN" -H "X-Workspace-Key: $KEY" https://tarkle.com/api/v1/transfers/2857
curl -X DELETE -H "Authorization: Bearer $TARKLE_TOKEN" -H "X-Workspace-Key: $KEY" https://tarkle.com/api/v1/transfers/2857

DELETE answers { "deleted": true, "id": "2857" }; the public link answers 404 immediately afterward.

Plan limits

The same transfer-size and monthly-transfer-count limits the app applies: 413 transfer_too_large when the combined size of the selected items exceeds the plan’s maximum transfer size, 429 transfer_monthly_limit when the workspace has reached its plan’s monthly transfer count (Free: 15/month, Pro and above: unlimited).

From a CI pipeline

tarkleHQ/upload-action wraps this endpoint for GitHub Actions – upload a build artifact and get a share link back in one step. See Automate with GitHub Actions.

Type to search…

↑↓ navigate↵ selectEsc close