Need to add file sharing to your app? Most file sharing APIs require OAuth setup, API key management, webhook configuration and a billing account before you can upload your first file. The EasySend API requires none of that. Zero authentication, zero configuration, zero cost.
One POST request. One shareable link back. That is the entire integration.
Quick Start: Upload a File with cURL
curl -F 'files[][email protected]' https://easysend.co/api/v1/upload
Response:
{
"success": true,
"short_code": "Ab3Kz",
"share_url": "/Ab3Kz",
"upload_url": "/u/abc123...def456",
"upload_token": "abc123...def456",
"files": [
{"id": 42, "name": "report.pdf", "size": 1048576, "mime_type": "application/pdf"}
]
}
The share link is https://easysend.co/Ab3Kz. Anyone with that link can download the file. The upload token lets you add more files or delete files later.
Upload Multiple Files
curl -F 'files[][email protected]' -F 'files[][email protected]' -F 'files[][email protected]' \
https://easysend.co/api/v1/upload
All three files get bundled under a single shareable link.
Python Example
import requests
# Upload a file
with open('report.pdf', 'rb') as f:
response = requests.post(
'https://easysend.co/api/v1/upload',
files={'files[]': f}
)
data = response.json()
print(f"Share link: https://easysend.co/{data['short_code']}")
print(f"Upload token: {data['upload_token']}")
JavaScript / Node.js Example
const fs = require('fs');
const FormData = require('form-data');
const form = new FormData();
form.append('files[]', fs.createReadStream('report.pdf'));
const response = await fetch('https://easysend.co/api/v1/upload', {
method: 'POST',
body: form
});
const data = await response.json();
console.log(`Share link: https://easysend.co/${data.short_code}`);
API Endpoints
The full API reference is at easysend.co/api. Here are the key endpoints:
Upload files
POST /api/v1/upload
Content-Type: multipart/form-data
Field: files[] (one or more files)
Get bundle info
GET /api/v1/bundle/{short_code}
Returns file list, sizes, download counts, expiry time and encryption status.
Download a file
GET /api/v1/download/{file_id}
Returns the raw file content with appropriate Content-Type and Content-Disposition headers.
Add files to existing bundle
POST /api/v1/upload/{upload_token}
Content-Type: multipart/form-data
Field: files[]
Delete a file
DELETE /api/v1/file/{file_id}
Authorization: Bearer {upload_token}
Check code availability
GET /api/v1/check/{code}
Check if a custom short code is available before upload.
Optional Features via API
Add these POST fields to your upload request:
description- a note visible to recipients ("Q1 reports attached")notify_email- get emailed when someone downloads your filesaccess_password- require a password to view the bundlecustom_code- choose your own short URL (3-30 chars)encrypted=1- mark as encrypted (files must be pre-encrypted client-side)
CLI Tool
For quick terminal uploads, install our CLI:
curl -fsSL https://easysend.co/cli/install.sh | bash
Then:
# Upload a file
easysend report.pdf
# Output: https://easysend.co/Ab3Kz
# Upload multiple files
easysend file1.pdf file2.png file3.zip
# Copy link to clipboard
easysend report.pdf --copy
# Get bundle info
easysend --info Ab3Kz
# Raw JSON output
easysend report.pdf --json
Claude Code MCP Plugin
If you use Claude Code, you can share files directly from your AI assistant session. Our MCP plugin lets Claude upload, download and manage files on EasySend.
# In Claude Code settings (~/.claude/settings.json):
{
"mcpServers": {
"easysend": {
"command": "npx",
"args": ["-y", "easysend-mcp"]
}
}
}
Then just tell Claude: "Upload this file to EasySend" or "Download the files from easysend.co/Ab3Kz".
Embeddable Widget
Want to add file uploads to your own website? Drop in one script tag:
<script src="https://easysend.co/widget/easysend-widget.js" data-theme="dark"></script>
<div id="easysend-upload"></div>
That renders a complete upload widget with drag-and-drop, progress bar, share link and copy button. Configurable via data attributes for theme, max files and button text. See the live demo on our API docs page.
Use Cases
- CI/CD pipelines - upload build artifacts and share with QA teams
- Automated reports - cron jobs that generate and share daily reports
- AI agent workflows - let AI assistants share files with users
- Slack/Discord bots - upload files and post share links in channels
- Customer support - let users upload log files for debugging
- Content delivery - share downloadable assets from your app
Rate Limits
The API is rate limited to prevent abuse:
- Uploads: 10 new bundles per hour per IP
- API requests: 60 per minute per IP
- Downloads: 100 per hour per IP
These limits are generous for normal usage. If you need higher limits for production workloads, contact us.
Get Started
No API key to generate. No OAuth flow to implement. No billing to set up. Just send a POST request and you are live.
curl -F 'files[][email protected]' https://easysend.co/api/v1/upload
Full documentation: easysend.co/api