Drops
Share images and PDFs with trackable, expiring download links.
What a Drop is
A Drop is a file stored privately by trak.sh and shared through a capability link such as trak.sh/d/.... Opening that link reserves one tracked download and redirects to a short-lived, signed Cloudflare R2 URL.
Drops support PNG, JPEG, GIF, WebP, and PDF files. The server checks the declared type, file size, extension, and file signature before making a Drop active.
Create a Drop
- Sign in and open Drops.
- Choose an image or PDF.
- Pro users can select an expiry from one day to one year. Free Drops expire after 30 days.
- Upload the file and wait for verification.
- Copy the
/d/...link.
The upload URL writes only to a temporary staging key. After verification, the server copies the exact verified object to a final key that the browser cannot overwrite.
Plan limits
| Limit | Free | Pro |
|---|---|---|
| Total storage | 100 MB | 5 GB |
| Files | 20 | 500 |
| Maximum file size | 10 MB | 100 MB |
| Issued-download bandwidth / month | 1 GB | 50 GB |
| Downloads per Drop | 100 | 10,000 |
| Expiry | 30 days | 1, 7, 30, 90, or 365 days |
Bandwidth is reserved from the uploader's monthly allowance whenever trak.sh issues a signed download. The signed URL is intentionally short-lived.
Privacy and deletion
Files stay in a private Cloudflare R2 bucket. File metadata, expiry, and download analytics live in Neon Postgres. trak.sh records pseudonymous download analytics for non-bot opens, including a keyed hash of the IP address, country, device/browser details, referrer, timestamp, and file size.
Deleting a Drop removes its R2 object before removing its database record. If storage is temporarily unavailable, deletion returns an error and keeps the record so you can retry without orphaning the file. Expired Drops and abandoned uploads follow the same retry-safe cleanup path.
trak.sh validates file signatures; it does not promise antivirus or malware scanning. Only share files you trust.