๐ค Upload File
Or upload from URL
๐ฅ๏ธ System Info
๐ API Documentation
Health Check
GET /status
Check if the server is running
{
"status": 200,
"state": "Server running",
"version": "2.0.0",
"uptime_seconds": 12345
}
Upload File (Multipart)
POST /upload
curl -X POST http://localhost:6227/upload \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@image.png"
Upload from URL
POST /upload
curl -X POST http://localhost:6227/upload \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"url": "https://example.com/image.png"}'
Upload Multiple Files
Repeat the file field, or send a urls array. Files and URLs can be mixed.
curl -X POST http://localhost:6227/upload \
-F "file=@a.png" -F "file=@b.jpg" -F "file=@c.pdf"
# or multiple URLs
curl -X POST http://localhost:6227/upload \
-H "Content-Type: application/json" \
-d '{"urls": ["https://a.com/1.jpg", "https://b.com/2.png"]}'
A batch returns { count, files: [...] }; a single upload returns the flat object below.
Mirror via GET (query string)
GET /upload?url=...
Handy for browsers and webhooks โ just open the link. Pass url once or repeat it for multiple files.
# Single file
http://localhost:6227/upload?url=https://example.com/image.png
# Multiple files
http://localhost:6227/upload?url=https://a.com/1.jpg&url=https://b.com/2.png
Response Format
{
"status": 200,
"url": "http://localhost:6227/files/abc123.png",
"name": "abc123.png",
"original_name": "image.png",
"type": "image/png",
"size": {
"bytes": 123456,
"kb": 120.56,
"mb": "0.12",
"human": "120.56 KB"
},
"uploaded_at": "2026-07-29T00:00:00.000Z",
"author": "LunarKrystal"
}
Serve Files
GET /files/:filename
Access uploaded files directly
System Metrics
GET /system
Realtime host stats โ CPU usage %, RAM, disk, uptime. The panel above polls this every 2s while the tab is open.
Auto-Cleanup
Files not accessed for over a year are automatically deleted to save space. Every access via /files keeps a file alive, so active files are never removed.