DEV Community

Alex Spinov
Alex Spinov

Posted on

Zipline Has a Free API: Self-Hosted File Sharing and Screenshot Platform for Developers

What is Zipline?

Zipline is a self-hosted ShareX/file upload server with a beautiful dashboard. Upload files, share screenshots, shorten URLs, paste text — all via API or ShareX integration.

Perfect for developers who want their own file hosting.

Quick Start

git clone https://github.com/diced/zipline
cd zipline
docker compose up -d
Enter fullscreen mode Exit fullscreen mode

The REST API

export ZIP_URL="https://your-zipline.com/api"
export ZIP_TOKEN="your-api-token"
Enter fullscreen mode Exit fullscreen mode

Upload Files

# Upload file
curl -X POST "$ZIP_URL/upload" \
  -H "Authorization: $ZIP_TOKEN" \
  -F "file=@screenshot.png"

# Response:
# {"files": ["https://your-zipline.com/u/abc123.png"]}

# Upload with custom settings
curl -X POST "$ZIP_URL/upload" \
  -H "Authorization: $ZIP_TOKEN" \
  -H "Format: DATE" \
  -H "Expires-At: 24h" \
  -H "Max-Views: 100" \
  -F "file=@document.pdf"
Enter fullscreen mode Exit fullscreen mode

Shorten URLs

curl -X POST "$ZIP_URL/shorten" \
  -H "Authorization: $ZIP_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://very-long-url.example.com/path/to/page"}'
Enter fullscreen mode Exit fullscreen mode

Text Pastes

curl -X POST "$ZIP_URL/upload" \
  -H "Authorization: $ZIP_TOKEN" \
  -H "Content-Type: text/plain" \
  -d 'const hello = "world";\nconsole.log(hello);'
Enter fullscreen mode Exit fullscreen mode

Get Stats

curl -s "$ZIP_URL/stats" \
  -H "Authorization: $ZIP_TOKEN" | jq
# {"count": 1234, "size": "2.5 GB", "views": 56789}
Enter fullscreen mode Exit fullscreen mode

List Files

curl -s "$ZIP_URL/user/files?page=1" \
  -H "Authorization: $ZIP_TOKEN" | jq '.[] | {name, mimetype, views, createdAt}'
Enter fullscreen mode Exit fullscreen mode

Delete Files

curl -X DELETE "$ZIP_URL/user/files" \
  -H "Authorization: $ZIP_TOKEN" \
  -d '{"id": ["FILE_ID_1", "FILE_ID_2"]}'
Enter fullscreen mode Exit fullscreen mode

Features

  • File uploads: Any file type, configurable size limits
  • Screenshots: ShareX/Flameshot integration
  • URL shortener: Built-in link shortener
  • Text pastes: Code/text sharing with syntax highlighting
  • Folders: Organize uploads
  • Expiring uploads: Auto-delete after time/views
  • Embeds: Discord/Slack rich embeds
  • Multi-user: User management with roles
  • OAuth: GitHub/Discord/Google login

ShareX Configuration

{
  "Name": "Zipline",
  "DestinationType": "ImageUploader, FileUploader",
  "RequestMethod": "POST",
  "RequestURL": "https://your-zipline.com/api/upload",
  "Headers": {
    "Authorization": "YOUR_TOKEN"
  },
  "Body": "MultipartFormData",
  "FileFormName": "file",
  "URL": "$json:files[0]$"
}
Enter fullscreen mode Exit fullscreen mode

Screenshot → auto-upload → clipboard URL. Instant sharing.

Zipline vs Alternatives

Feature Zipline ShareX (local) Imgur
Self-hosted Yes Desktop only No
API Full REST N/A REST
URL shortener Yes No No
Text pastes Yes No No
File types Any Images Images/video
Expiring links Yes No No
Free Yes (self) Yes Free (limited)

Need file management or sharing automation?

📧 spinov001@gmail.com
🔧 My tools on Apify Store

How do you share screenshots and files? Comment below!

Top comments (0)