← all helpUPLOAD a file (raw body or multipart):
POST https://skale.dev/throway/?name=filename.ext
with the file bytes as the body.
-> Returns JSON: id, url, size, name, content_type, expires_in, expires_at.
LIFETIME (optional):
POST https://skale.dev/throway/?name=x.txt&ttl=24h
-> default is 4h; &ttl=<h|d> extends a single file, clamped to
[4h, 14d] (MAX 14 days).
SHARE NAME (optional):
POST https://skale.dev/throway/?share=my-note
-> store the upload under a chosen, memorable name (create-or-get, like a
named dir) at /d/my-note, instead of a random hex id. Rules: 5-32 chars
[a-z0-9-], >=1 letter, not a reserved word. Sliding lifetime (default
7d, &ttl= clamped [4h,14d]).
DOWNLOAD ONCE (optional, single files only):
POST https://skale.dev/throway/?once=1
-> burn-after-reading: the file auto-deletes after the first download.
A second GET returns 404. Not combinable with &share= (dirs).
TAGS on uploads/imports (filter+sort later):
POST https://skale.dev/throway/?name=x.pdf&tag=papers&tag=2026
-> up to 5 tags per file ([a-z0-9-], 1-24 chars); returned in the JSON.
Update later: POST https://skale.dev/throway/<id>?tag=a&untag=b
Browse/filter: GET https://skale.dev/throway/browse?tag=papers&q=&sort=created&order=desc
(sort: created | name | size | expires)
IMPORT FROM A URL (server-side fetch):
POST https://skale.dev/throway/?url=<encoded-url>[&name=<filename>]
-> server downloads the document and stores it like a normal upload.
Max 5MB; private/loopback hosts are blocked.
STORE A URL AS A DOCUMENT (link doc):
POST https://skale.dev/throway/?url=<encoded-url>&link=1[&name=<name>]
-> stores a tiny editable HTML redirect page for that URL.agent hint — this page is machine-readable
curl -A curl https://skale.dev/throway/help/files # this topic as plain text