Upload a cover or avatar
Multipart form with kind (project or user) and file. Project covers need section.create; an avatar needs an active writable account. The image is re-encoded to JPEG; the answer names its cookie-authorised URL under /media/c.
Try the REST routes against the public demo at https://demostash.aldyernesto.my.id. Get a read-only token (valid for 60 minutes), then paste it as the Bearer token in the console of any route.
Multipart form with kind (project or user) and file. Project covers need section.create; an avatar needs an active writable account. The image is re-encoded to JPEG; the answer names its cookie-authorised URL under /media/c.
SessionTokenAuthorizationBearer <token>Session token from POST /api/v1/auth/login or the login mutation, sent as Authorization: Bearer <token>.
multipart/form-data- body
kind?|project (a project cover, needs section.create) or user (your own avatar).
"project""user"nullfile*stringThe image, at most 10 MiB; re-encoded to JPEG.
Cover stored
application/json- response
url*stringRelative cookie-authorised URL, /media/c/<kind>/<id>?v=<n>.
id*stringCover id (UUID).
curl -X POST "https://example.com/api/upload/cover" \ -F file="string"{ "url": "string", "id": "string"}Instance status GET
Version and storage and database and cache and search and the processing queue for the status page. Only for accounts that may configure the instance; everyone else gets 404.
Upload one part PUT
Streams one part of a resumable upload started with the initiateUpload mutation. The body is the raw bytes; Content-MD5 is required and checked. Sending a part again replaces it.