Upload Images
Web interface
Log in and drag files to upload, or click to browse. The web UI supports batch upload and automatically copies share links on completion.
curl
# Authenticated upload
curl -X POST http://localhost:18080/api/v1/images \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@image.png"
# With expiry (24 hours)
curl -X POST http://localhost:18080/api/v1/images \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@image.png" \
-F "expires_in=24h"
# Guest upload (if enabled)
curl -X POST http://localhost:18080/api/v1/upload \
-F "file=@image.png" ShareX
PicFast provides a built-in ShareX config endpoint. See the ShareX Integration page for full setup instructions.
Other tools
PicFast also supports PicGo, PicList, uPic, Dropshare, and any tool compatible with a standard REST upload endpoint. The built-in Connections page in the admin console provides step-by-step setup instructions for each tool, including Obsidian (via Image auto upload + PicGo).
MCP (AI agents)
AI assistants can upload images through PicFast's MCP server. See the MCP Integration page for setup and the full tool reference.
Python
import requests
url = "https://picfast.example.com/api/v1/images"
headers = {"Authorization": "Bearer YOUR_TOKEN"}
with open("image.png", "rb") as f:
files = {"file": f}
r = requests.post(url, headers=headers, files=files)
print(r.json()["links"]["url"]) JavaScript
const form = new FormData();
const file = await fs.openAsBlob("image.png");
form.append("file", file);
const res = await fetch("https://picfast.example.com/api/v1/images", {
method: "POST",
headers: { "Authorization": "Bearer YOUR_TOKEN" },
body: form,
});
const data = await res.json();
console.log(data.links.markdown); Response
A successful upload returns:
{"id": 1,"key": "abc123","origin_name": "image.png",
"size_bytes": 204800,"mimetype": "image/png","extension": "png",
"width": 1920,"height": 1080,
"links": {"url": "https://picfast.example.com/i/abc123.png",
"html": "<img src=\"https://picfast.example.com/i/abc123.png\" />",
"markdown": "",
"bbcode": "[img]https://picfast.example.com/i/abc123.png[/img]",
"thumbnail_url": "https://picfast.example.com/t/abc123.png"},
"created_at": "2026-05-02T00:00:00Z"} Formats & limits
Default accepted formats: jpg, jpeg, png, gif, webp, svg, bmp, ico. Admins can extend this list per group (e.g. tif, tiff, psd).
Maximum file size is configured per group. Default is 50 MB per file.
Guest upload TTL can be configured separately via app.guest_image_ttl — useful for giving guest uploads a shorter lifespan than authenticated ones. See Configuration for details.