Files
API Documentation

Liff Files

Simple file storage API with tagging. Upload, download, list and delete files.

All requests require an X-API-Key header with a valid API key.

Endpoints

POST /files

Upload a file with optional tags.

ParameterInDescription
file requiredbodyThe file to upload (multipart/form-data)
tagsbody / queryTags for the file. Repeatable form field, or comma-separated query param.
Example
# Upload with tags
curl -X POST https://apifiles.liff.se/files \
  -H "X-API-Key: your-key" \
  -F "file=@naxconnect-v2.1.zip" \
  -F "tags=naxconnect" \
  -F "tags=release"
Response 201
{
  "id": "a1b2c3d4e5f6789012345678abcdef01",
  "name": "naxconnect-v2.1.zip",
  "size": 138412032,
  "tags": ["naxconnect", "release"]
}
GET /files

List all files, optionally filtered by tag.

ParameterInDescription
tagqueryFilter by tag (case-insensitive)
Example
curl https://apifiles.liff.se/files?tag=naxconnect \
  -H "X-API-Key: your-key"
Response 200
[
  {
    "id": "a1b2c3d4e5f6789012345678abcdef01",
    "name": "naxconnect-v2.1.zip",
    "size": 138412032,
    "created_at": "2026-11-09 22:15:00",
    "tags": ["naxconnect", "release"]
  }
]
GET /files/{id}

Download a file. Optionally delete after download.

ParameterInDescription
id requiredpathThe file ID
delete_afterquerySet to true to delete the file after download
Example
# Download and delete
curl -OJ https://apifiles.liff.se/files/a1b2c3...?delete_after=true \
  -H "X-API-Key: your-key"
DELETE /files/{id}

Permanently delete a file.

Example
curl -X DELETE https://apifiles.liff.se/files/a1b2c3... \
  -H "X-API-Key: your-key"
Response
204 No Content

Limits

Maximum file size: 500 MB. Tags are stored lowercase.