Temporary links
A signed /t/… address to one file: it opens without a token, but only until it expires and,
if needed, a limited number of times.
Two kinds of links
by defaultNothing is stored in the database: the expiry is sealed in the signature. It cannot be
revoked on its own — only all links of the bucket at once. A note is not kept.
revocable · maxDownloadsStored in the database, can be revoked on its own, shows in the lists. Counts downloads only
with maxDownloads.
A link becomes tracked when revocable: true or maxDownloads is given.
- With
revocablealone thedownloadscounter stays0— downloads are counted only withmaxDownloads. - A link with
maxDownloadsdoes not supportRange: the file is served whole only.
POST /v1/files/{id}/link
{
"ttl": 86400,
"disposition": 1,
"maxDownloads": 5,
"revocable": true,
"note": "for the contractor"
}| Field | Default | Description |
|---|---|---|
ttl |
3600 |
Lifetime, seconds: up to 2592000 (30 days). Optional. |
disposition |
0 |
0 (INLINE) — open in the browser if the type allows it (as on /o); 1 (ATTACHMENT) — download. |
maxDownloads |
— | Download limit, 1–1000. Makes the link tracked. |
revocable |
false |
Can be revoked on its own. Makes the link tracked. |
note |
"" |
A note for yourself, up to 255 characters. Kept only on a tracked link. |
Returns 201:
{
"id": 17,
"url": "https://s5.example.com/t/…",
"expiresAt": "2026-11-08T17:10:44+00:00",
"revocable": true,
"maxDownloads": 5,
"downloads": 0,
"revoked": false,
"disposition": { "id": 1, "name": "ATTACHMENT" },
"note": "for the contractor"
}A signed link has id — null and revocable — false.
A long link that cannot be revoked
A signed link for a week or longer without a download limit cannot be revoked on its own: if it leaks, the only option left is revoking every link of the bucket.
GET /v1/files/{id}/links
The last 20 tracked links of the file, newest first — as an array, no pagination. Expired, revoked
and used-up ones included: a link is kept until 7 days after its expiresAt.
GET /v1/links
The tracked links of the whole bucket, page by page, newest first — expired, revoked and used-up
ones included until 7 days after their expiresAt.
DELETE /v1/links/{id}
Revokes one tracked link. Returns 204.
DELETE /v1/links
Revokes every link of the bucket, signed ones included — it changes the signing “epoch”.
Returns { "epoch": 3 }. New links are issued as usual afterwards.
A link also stops working together with its file: delete the file and the links to it are dead.