TL;DR
File.io is a dead-simple file sharing service: upload a file via POST, get back a shareable URL, and the file is automatically deleted after the first download. No account, no storage management, no lingering files. Supports any file type up to 5GB on the free plan. The API returns JSON with the download URL, expiry date, and file size. Perfect for one-time file transfers where privacy matters — after one download, the file is gone forever.
Quick start (upload): curl -F "file=@myfile.zip" https://file.io
No API key needed — just make a request!
How to Use This API
1. Upload a File (POST)
Send a multipart form with your file:
curl -F "file=@document.pdf" https://file.io
Response: {"success":true,"key":"abc123","link":"https://file.io/abc123","expiry":"2026-06-17","size":12345}
2. Custom Expiry (POST)
Set how long the link should last before auto-deleting:
curl -F "file=@image.png" -F "expires=1d" https://file.io
Expiry options: 1d (1 day), 7d (1 week), 30d (1 month). Default is 1 download-triggered deletion.
3. JavaScript — In-Browser Upload
async function shareFile(file) {
const form = new FormData();
form.append('file', file);
const resp = await fetch('https://file.io', {
method: 'POST',
body: form
});
const result = await resp.json();
if (result.success) {
console.log('Share this link:', result.link);
return result.link;
}
}
// Usage: shareFile(inputElement.files[0])
4. Python — Upload and Share
import requests
with open('screenshot.png', 'rb') as f:
resp = requests.post('https://file.io', files={'file': f})
data = resp.json()
if data.get('success'):
print(f"Uploaded! Link: {data['link']}")
print(f"Key: {data['key']}")
print(f"Expires: {data.get('expiry', 'after first download')}")
else:
print(f"Error: {data.get('message', 'Unknown')}")
Frequently Asked Questions
- What's the maximum file size?
- The free plan allows files up to 5GB. This makes it suitable for large files like video recordings, disk images, and compressed archives.
- When are files deleted?
- By default, files are deleted immediately after the first download. You can also set a time-based expiry (1 day, 7 days, or 30 days).
- Do I need an account or API key?
- No. File.io works without any registration for basic file uploads. Paid plans offer additional features like password protection.
- What file types are supported?
- Any file type is accepted — PDFs, images, videos, archives, executables, documents. There are no content restrictions beyond legal use.
- Is the upload encrypted?
- Files are transferred over HTTPS. However, file.io is a convenience service, not a secure vault. Do not upload sensitive credentials or personal data.
- Can I delete a file before it's downloaded?
- There is no API endpoint for manual deletion. The file will live until its first download or until the time-based expiry reaches zero.
API Details
- API URL
https://file.io- Documentation
- file.io
- Category
- Storage
- Authentication
- Not Required (free tier)
- Geographic Coverage
- Global
What You Can Build
- Temporary file attachment system for a helpdesk ticketing tool
- Screenshot sharing utility that auto-uploads and copies the link to clipboard
- CI/CD pipeline that uploads build artifacts for one-time download by testers
- Peer-to-peer file transfer without needing both parties online simultaneously
- Quick file sharing CLI tool using curl scripts wrapped in bash aliases