API

Upload files with a single request. One file per POST, streamed straight to storage.

Upload

Send the file in a file field of a multipart/form-data POST to /api/upload:

curl -F 'file=@cat.png' https://u.stairs.lat/api/upload

Response

{
  "success": true,
  "files": [
    {
      "name": "cat.png",
      "url": "https://u.stairs.lat/a1b2c",
      "hash": "a1b2c",
      "size": 12345,
      "expiry": 1792345678
    }
  ]
}

expiry is a Unix timestamp. Errors look like {"success": false, "error": "..."} with status 400, 413 or 500.

Download

Files are served at their URL (e.g. https://u.stairs.lat/a1b2c) and open inline in the browser. The original filename travels in the Content-Disposition header.

Limits

Max upload size is 128 MiB per file, files expire after 72 hours and are then deleted permanently.

← Back to Subtee