# EasySend API - Full Documentation > EasySend is a free, instant file sharing service. No signup required. > Base URL: https://easysend.co/api/v1 ## Rate Limits - 60 requests per minute per IP address - Rate limiting is defined but not strictly enforced yet - Please be respectful with automated usage ## Authentication Most endpoints are public. Delete and add-to-bundle operations require the upload_token returned when a bundle is first created. Pass it as a Bearer token: Authorization: Bearer {upload_token} --- ## 1. Upload Files Upload one or more files to create a new bundle. POST https://easysend.co/api/v1/upload ### Request - Content-Type: multipart/form-data - Body field: files[] (one or more files) ### Response (201 Created) ```json { "success": true, "bundle": { "short_code": "aB3xZ", "share_url": "https://easysend.co/aB3xZ", "upload_token": "tok_abc123def456", "expires_at": "2026-03-29T12:00:00Z", "files": [ { "id": 42, "original_name": "report.pdf", "size": 1048576, "mime_type": "application/pdf" } ] } } ``` ### Error Response (400 Bad Request) ```json { "success": false, "error": "No files provided" } ``` ### Error Response (413 Payload Too Large) ```json { "success": false, "error": "Total upload size exceeds 1GB limit" } ``` ### cURL Example ```bash curl -X POST https://easysend.co/api/v1/upload \ -F "files[]=@document.pdf" \ -F "files[]=@photo.jpg" ``` --- ## 2. Get Bundle Info Retrieve metadata about a bundle and its files. GET https://easysend.co/api/v1/bundle/{short_code} ### Parameters - short_code (path) - The 5-character bundle identifier ### Response (200 OK) ```json { "success": true, "bundle": { "short_code": "aB3xZ", "share_url": "https://easysend.co/aB3xZ", "created_at": "2026-03-26T12:00:00Z", "expires_at": "2026-03-29T12:00:00Z", "is_encrypted": false, "files": [ { "id": 42, "original_name": "report.pdf", "size": 1048576, "mime_type": "application/pdf" }, { "id": 43, "original_name": "photo.jpg", "size": 2097152, "mime_type": "image/jpeg" } ] } } ``` ### Error Response (404 Not Found) ```json { "success": false, "error": "Bundle not found" } ``` ### Error Response (410 Gone) ```json { "success": false, "error": "Bundle has expired" } ``` ### cURL Example ```bash curl https://easysend.co/api/v1/bundle/aB3xZ ``` --- ## 3. Download File Download a single file by its ID. Returns the raw file binary. GET https://easysend.co/api/v1/download/{file_id} ### Parameters - file_id (path) - The numeric file identifier ### Response (200 OK) - Content-Type: (original file MIME type) - Content-Disposition: attachment; filename="original_name.ext" - Body: raw file bytes ### Error Response (404 Not Found) ```json { "success": false, "error": "File not found" } ``` ### Error Response (410 Gone) ```json { "success": false, "error": "File has expired" } ``` ### cURL Example ```bash curl -OJ https://easysend.co/api/v1/download/42 ``` --- ## 4. Add Files to Existing Bundle Upload additional files to an existing bundle using the upload token. POST https://easysend.co/api/v1/upload/{upload_token} ### Request - Content-Type: multipart/form-data - Body field: files[] (one or more files) ### Headers - Authorization: Bearer {upload_token} ### Response (200 OK) ```json { "success": true, "bundle": { "short_code": "aB3xZ", "share_url": "https://easysend.co/aB3xZ", "upload_token": "tok_abc123def456", "expires_at": "2026-03-29T12:00:00Z", "files": [ { "id": 42, "original_name": "report.pdf", "size": 1048576, "mime_type": "application/pdf" }, { "id": 44, "original_name": "extra-notes.txt", "size": 512, "mime_type": "text/plain" } ] } } ``` ### Error Response (401 Unauthorized) ```json { "success": false, "error": "Invalid or missing upload token" } ``` ### Error Response (404 Not Found) ```json { "success": false, "error": "Bundle not found for this token" } ``` ### cURL Example ```bash curl -X POST https://easysend.co/api/v1/upload/tok_abc123def456 \ -H "Authorization: Bearer tok_abc123def456" \ -F "files[]=@extra-notes.txt" ``` --- ## 5. Delete File Remove a specific file from a bundle. Requires the upload token. DELETE https://easysend.co/api/v1/file/{file_id} ### Headers - Authorization: Bearer {upload_token} (required) ### Parameters - file_id (path) - The numeric file identifier ### Response (200 OK) ```json { "success": true, "message": "File deleted" } ``` ### Error Response (401 Unauthorized) ```json { "success": false, "error": "Invalid or missing upload token" } ``` ### Error Response (403 Forbidden) ```json { "success": false, "error": "Token does not own this file" } ``` ### Error Response (404 Not Found) ```json { "success": false, "error": "File not found" } ``` ### cURL Example ```bash curl -X DELETE https://easysend.co/api/v1/file/42 \ -H "Authorization: Bearer tok_abc123def456" ``` --- ## 6. Health Check Verify the API is operational. GET https://easysend.co/api/v1/health ### Response (200 OK) ```json { "success": true, "status": "ok" } ``` ### cURL Example ```bash curl https://easysend.co/api/v1/health ``` --- ## Common Error Codes | HTTP Code | Meaning | |-----------|----------------------------------------------| | 400 | Bad request (missing fields, invalid input) | | 401 | Unauthorized (missing or invalid token) | | 403 | Forbidden (token doesn't own the resource) | | 404 | Resource not found | | 410 | Resource expired | | 413 | Payload too large (exceeds 1GB) | | 429 | Rate limit exceeded | | 500 | Internal server error | ## Notes - Maximum upload size: 1GB per bundle (free tier) - Files expire after 3 days on the free tier - Encrypted bundles use AES-256-GCM; the server never sees the encryption key - The upload_token is returned only on initial upload - save it if you need to manage files later - All timestamps are in UTC, ISO 8601 format - The API accepts and returns JSON (except file downloads and uploads which use multipart/form-data and binary respectively) ## Site Index (175 pages) Full content guide: https://easysend.co/llms.txt Sitemap (175 URLs): https://easysend.co/sitemap.xml Pricing: https://easysend.co/pricing CLI tool: https://easysend.co/cli/ MCP plugin: https://easysend.co/mcp Remote MCP server: https://easysend.co/mcp/sse Answers (AEO, 15 Q&A): https://easysend.co/answers Question pages (5): https://easysend.co/q/max-file-size, /q/how-long-do-files-last, /q/is-easysend-safe, /q/no-signup-needed, /q/api-free Guides hub: https://easysend.co/guides Blog (33 articles): https://easysend.co/blog FAQ: https://easysend.co/faq Glossary: https://easysend.co/glossary Comparisons (21): https://easysend.co/compare/best-file-sharing-services-2026 Use cases (19): easysend.co/use-case/ + freelancer, teacher, photographer, developer, healthcare, real-estate, legal, hr, nonprofit, startup, wedding, student, musician, event-planner, designer, gamer, journalist, podcast, youtuber Industry pages (10): easysend.co/for/ + agencies, education, healthcare, construction, accounting, marketing, finance, engineering, media, hr File type pages (37+): easysend.co/share/ + pdf, video, photos, music, documents, zip, excel, powerpoint, word, code, csv, psd, apk, iso, cad, font, ebook, svg, gif, raw, mp3, wav, mov, rar, tar, mkv, flac, pptx, xlsx, docx, indd, blend, unity, dat, bak, vmdk, ova, torrent, pkg, bin + extension aliases