# 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 (513 pages) Full content guide: https://easysend.co/llms.txt Sitemap (513 URLs): https://easysend.co/sitemap.php Pricing: https://easysend.co/pricing Integrations: https://easysend.co/integrations Integration pages (8): easysend.co/integrations/ + slack, vscode, github-action, raycast, chatgpt, zapier, discord, browser CLI tool: https://easysend.co/cli/ MCP plugin: https://easysend.co/mcp Remote MCP server: https://easysend.co/mcp/sse OpenAPI GPT spec: https://easysend.co/openapi-gpt.json Answers (AEO, 15 Q&A): https://easysend.co/answers Question pages (69): easysend.co/q/ + max-file-size, how-long-do-files-last, is-easysend-safe, no-signup-needed, api-free, how-to-send-large-files, free-file-sharing, encryption-how-it-works, delete-files, file-types-supported, password-protect, how-to-share-files-without-email, what-is-zero-knowledge-encryption, share-files-with-password, best-file-sharing-api, send-files-without-account, how-to-share-files-with-a-raycast-extension, what-are-the-easysend-pricing-plans, how-to-share-files-with-zapier, can-i-use-easysend-for-backup, how-to-report-abuse-on-easysend + 33 more Guides hub: https://easysend.co/guides Blog (115 articles): https://easysend.co/blog FAQ: https://easysend.co/faq Glossary: https://easysend.co/glossary Comparisons (69): easysend.co/compare/easysend-vs- + wetransfer, dropbox, google-drive, onedrive, firefox-send, mega, sendanywhere, filemail, hightail, jumpshare, smash, transfernow, gofile, catbox, pixeldrain, mediafire, icloud, box, pcloud, sync, fileio, swisstransfer, tresorit, proton-drive, whatsapp-file-sharing, email-file-sharing, usb-drive, bluetooth, nfc, imessage-file-sharing, teams-file-sharing, zoom-file-sharing, notion + 36 more Alternative pages (35): easysend.co/ + wetransfer-alternative, filemail-alternative, sendgb-alternative, smash-alternative, swisstransfer-alternative, hightail-alternative, jumpshare-alternative, fileio-alternative, tresorit-alternative, proton-drive-alternative, nextcloud-alternative, owncloud-alternative, syncthing-alternative, resilio-alternative + 21 more Use cases (46): 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, architect, recruiter, researcher, accountant, filmmaker, real-estate-agent, veterinarian, wedding-photographer, contractor, interior-designer, podcaster, author, insurance-agent, dentist, tattoo-artist, dj, tutor, personal-trainer, translator, property-manager, surveyor, notary, coach, data-scientist, drone-operator, social-media-manager, 3d-printer Industry pages (29): easysend.co/for/ + agencies, education, healthcare, construction, accounting, marketing, finance, engineering, media, hr, music, nonprofit, logistics, dental, solar, robotics, fashion + 12 more Guide pages (3): easysend.co/guides/ + file-sharing-for-business, secure-file-transfer-methods, file-sharing-api-integration File type pages (100): 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, heic, webp, m4a, obj, tiff, pages, keynote, numbers, dotx, txt, conf, yaml, cr2, nef, arw, dng, avif, dmg, deb, rpm, jar, wmv, aep, prproj, fig, sketch, figma, dwg, stl, epub, sql, env, ai-models, database, log, 3d-print, presentation, firmware, step, fbx, glb, woff2, ics, vcf, gltf, parquet, markdown, dockerfile, r-data, swf, eml, mbox, gpx, dicom, jupyter, midi, pem, sketch-up, stata, terraform + extension aliases