upload from a script
Send the file with a PUT to its name. The answer is plain text with its links:
curl -T photo.png https://files.zqpvr.net/ page: https://files.zqpvr.net/Ab3dEf6hIj9k direct: https://files.zqpvr.net/Ab3dEf6hIj9k/photo.png delete: https://files.zqpvr.net/Ab3dEf6hIj9k?delete=… kept: until 2026-11-12 21:00 UTC
Options go in headers:
- X-Keep
1h,1d(the default),7dor30d- X-Burn
1deletes the file once it has been opened (whoever opens it first has it for 15 minutes)- X-Password
- an access password; the file then only opens on its page, after the password
curl -T notes.txt -H "X-Keep: 7d" -H "X-Password: hunter2" https://files.zqpvr.net/
Ask for Accept: application/json to get the same as JSON: id, name, size, expires (Unix time, or null), page, raw, direct and delete_page.
delete
curl -X POST -d key=THE_DELETE_KEY https://files.zqpvr.net/Ab3dEf6hIj9k/delete
The delete key is the part after ?delete= in the delete link.
links
- /<id>
- the file's page, with a preview and the tags chat apps use to show pictures and videos inline
- /<id>/<name>
- the file itself, to open or embed anywhere
- …?download=1
- the same, saved instead of shown
Videos get a thumbnail, and a copy browsers and chat apps can play inline at any size: H.264, VP9 and AV1 keep their own quality and are at most repackaged into MP4 or WebM; anything else (HEVC, old formats, above 4K) becomes H.264. The page and its tags use them once they are ready.
limits
Up to 1 GB a file and 30 days. From one address: 10 uploads an hour and 3 GB a day. Big uploads from the pages go in 8 MB pieces and resume after a dropped connection; a single PUT has to finish in one go.
pastes
Pastes at paste.zqpvr.net are encrypted in the browser (AES-256-GCM; the key is only in the link after #), so they are made on the page rather than with a plain request. A script can do the same: encrypt, then POST {"blob": {"v": 1, "ct", "iv", "salt", "pw"}, "keep", "burn"} to https://paste.zqpvr.net/api/, all base64url, the key derived with PBKDF2-SHA-256 (200,000 rounds) from the 32 random key bytes followed by the password.