Skip to content

HTTP API

Full REST API reference. All endpoints accept/return JSON unless noted.

Public Endpoints

MethodPathDescription
GET/configServer configuration (feature flags, limits)
GET/versionBuild info (version, git commit)
GET/qrcode?url=...&size=...Generate QR code PNG
GET/healthHealth check

Upload & File Endpoints

Authentication: session cookie or X-PlikToken header.

MethodPathDescription
POST/Quick upload: create upload + add file
POST/uploadCreate upload with options
GET/upload/{uploadID}Get upload metadata
DELETE/upload/{uploadID}Delete upload
POST/file/{uploadID}Add file (multipart)
POST/file/{uploadID}/{fileID}/{filename}Add file with known ID (stream mode)
DELETE/file/{uploadID}/{fileID}/{filename}Remove file
GET/file/{uploadID}/{fileID}/{filename}Download file
HEAD/file/{uploadID}/{fileID}/{filename}File metadata
POST/stream/{uploadID}/{fileID}/{filename}Stream upload
GET/stream/{uploadID}/{fileID}/{filename}Stream download
GET/archive/{uploadID}/{filename}Download all files as zip

Create Upload (POST /upload)

json
{
    "ttl": 86400,
    "oneShot": false,
    "removable": true,
    "stream": false,
    "login": "foo",
    "password": "bar",
    "comments": "optional markdown"
}

Response:

json
{
    "id": "TczL35OTIb3InNr6",
    "uploadToken": "50lGHbLEIrpJOl4uECddTI7pga...",
    "files": []
}

Add File (POST /file/{uploadID})

Send as multipart/form-data with file field. The X-UploadToken header is required (returned from upload creation).

Download File

The upload token is not required for public uploads. For password-protected uploads, provide HTTP Basic auth with the upload's login/password.

Authentication Endpoints

MethodPathDescription
GET/auth/google/loginGet Google consent URL
GET/auth/google/callbackGoogle OAuth callback
GET/auth/ovh/loginGet OVH consent URL
GET/auth/ovh/callbackOVH OAuth callback
GET/auth/oidc/loginGet OIDC consent URL
GET/auth/oidc/callbackOIDC callback
POST/auth/local/loginLogin { "login": "...", "password": "..." }
GET/auth/logoutLogout

User Endpoints

Requires authenticated session cookie.

MethodPathDescription
GET/meCurrent user info
DELETE/meDelete own account
GET/me/tokenList tokens (paginated)
POST/me/tokenCreate upload token { "comment": "..." }
DELETE/me/token/{token}Revoke token
GET/me/uploadsList uploads (paginated)
DELETE/me/uploadsRemove all uploads
GET/me/statsUser statistics

Admin Endpoints

Requires admin session cookie.

MethodPathDescription
POST/userCreate user
GET/user/{userID}Get user info
POST/user/{userID}Update user
DELETE/user/{userID}Delete user
GET/statsServer statistics
GET/usersList all users (paginated)
GET/uploadsList all uploads (paginated)

Pagination

Paginated endpoints accept these query parameters:

ParameterDefaultDescription
offset0Skip N results
limit50Max results per page
orderdescSort order (asc/desc)
sortcreatedAtSort field

Released under the MIT License.