Add File Sharing to Your App in 5 Minutes
Add File Sharing to Any App
The fastest way to add file sharing to any application is to use EasySend's free REST API. With a single HTTP POST request and no API key, your app can upload files and generate shareable download links. Works with any language or framework. No OAuth, no billing, no setup.
curl -F 'files[][email protected]' https://easysend.co/api/v1/upload
# Returns: {"share_url": "/Ab3Kz", "upload_token": "...", "files": [...]}
View Full API Docs
Code Examples
JavaScript / Node.js
const form = new FormData();
form.append('files[]', fs.createReadStream('report.pdf'));
const res = await fetch('https://easysend.co/api/v1/upload', {
method: 'POST',
body: form
});
const { short_code } = await res.json();
console.log(`Share: https://easysend.co/${short_code}`);
Python
import requests
with open('report.pdf', 'rb') as f:
r = requests.post('https://easysend.co/api/v1/upload', files={'files[]': f})
data = r.json()
print(f"Share: https://easysend.co/{data['short_code']}")
PHP
$ch = curl_init('https://easysend.co/api/v1/upload');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, ['files[]' => new CURLFile('report.pdf')]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);
echo "Share: https://easysend.co/" . $data['short_code'];
Go
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("files[]", "report.pdf")
io.Copy(part, file)
writer.Close()
resp, _ := http.Post("https://easysend.co/api/v1/upload",
writer.FormDataContentType(), body)
// Parse JSON response for share URL
Ruby
require 'net/http'
require 'json'
uri = URI('https://easysend.co/api/v1/upload')
req = Net::HTTP::Post.new(uri)
req.set_form([['files[]', File.open('report.pdf')]], 'multipart/form-data')
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
puts "Share: https://easysend.co/#{JSON.parse(res.body)['short_code']}"
cURL (Bash)
RESPONSE=$(curl -s -F 'files[][email protected]' https://easysend.co/api/v1/upload)
LINK=$(echo $RESPONSE | grep -o '"short_code":"[^"]*"' | cut -d'"' -f4)
echo "Share: https://easysend.co/$LINK"
Use Cases
- SaaS apps - let users export and share reports, invoices or generated content via a link
- Internal tools - share build artifacts, test results or log files across teams
- CI/CD pipelines - upload build outputs and share download links in Slack or email
- Chatbots - send files to users without hosting your own file server
- AI agents - let AI assistants upload and share files as part of automated workflows
- Customer support - receive log files and screenshots from users for debugging
Why Not Build Your Own?
Building file sharing from scratch means setting up:
- File upload handling with size validation
- Cloud storage (S3/R2/GCS) with credentials
- Download proxy with streaming
- Expiration and cleanup cron jobs
- Optional encryption layer
- Short URL generation
- Rate limiting and abuse prevention
Or you can call one API endpoint. One POST request. One shareable link back. Zero infrastructure.
Claude Code / AI Agent Integration
EasySend works natively with AI assistants via MCP (Model Context Protocol). Install our Claude Code plugin and let AI upload and share files as part of your workflow:
// Add to ~/.claude/settings.json
{
"mcpServers": {
"easysend": {
"command": "npx",
"args": ["-y", "easysend-mcp"]
}
}
}
Then tell Claude: "Upload report.pdf to EasySend" and it handles the rest. Source on GitHub.
CLI Tool
For terminal workflows, install our CLI with one command:
curl -fsSL https://easysend.co/cli/install.sh | bash
easysend report.pdf # Upload and get link
Embeddable Widget
Add file uploads to your website with one script tag:
<script src="https://easysend.co/widget/easysend-widget.js" data-theme="dark"></script>
<div id="easysend-upload"></div>
See the API documentation for the complete reference.
FAQ
How do I add file sharing to my app?
Send a POST request to https://easysend.co/api/v1/upload with your file as multipart/form-data. No API key needed. The response JSON contains a shareable URL. Works from any language - JavaScript, Python, PHP, Go, Ruby or anything that can make HTTP requests.
Does the API require authentication?
No. The upload API is completely public. No API key, no OAuth, no signup. Upload tokens are returned in the response for managing files after upload.
What are the rate limits?
10 new bundles per hour per IP, 60 API requests per minute. These limits are generous for normal usage. For higher volume, contact us.
Can I use this in production?
Yes. EasySend is built on encrypted cloud infrastructure with global CDN distribution. The API is stable and versioned (v1). We use it ourselves for all our integrations.