/api/v1/upload
The core endpoint. Accepts a multipart/form-data body with one or more files. Returns a plain box URL by default, or the full JSON object when you send Accept: application/json.
Request fields
fileOne or more files. Repeat the field for multiple files. Used by curl, browsers, and the CLI.
sharexAlternative file field used by ShareX custom uploader configs. Same behaviour as file.
max_daysOptional. Days before the box expires. Defaults to 7.
expires_minutesOptional. Lifetime in minutes. Takes precedence over max_days when > 0. Use it for expiries under a day (e.g. 60 = one hour).
max_downloadsOptional. Auto-expire the box after this many downloads.
passwordOptional. Password required before viewing or downloading.
obfuscate_metadataOptional on. Hides file names/counts until unlock (only meaningful with a password).
Request headers
Acceptapplication/json to receive the JSON body; otherwise a single plain-text URL.
AuthorizationOptional Bearer <token>. Attributes the upload to your account.
X-Warpbox-BatchOptional grouping key. Uploads sharing a value within 20s land in the same box. See Integrations.
Example
curl -F file=@./report.pdf \
-F max_downloads=5 \
-F expires_minutes=1440 \
-H 'Accept: application/json' \
https://warpbox.dev/api/v1/upload