FileShot API

REST API for secure file sharing. Available on Creator tier and above. Base URL: https://api.fileshot.io

Authentication

Include your API key in the Authorization header as a Bearer token. Generate keys from your Account Dashboard.

Authorization: Bearer <your_api_key>

Upload File Creator+

POST/api/files/upload

Upload a complete file (for files under 100MB). Returns file metadata and download URL.

ParamTypeRequiredDescription
filebinaryYesThe file to upload
customSlugstringNoCustom URL slug (e.g. "my-project")
passwordProtectedbooleanNoEnable AES-256-GCM password encryption
expiryDaysintegerNoDays until expiry (1-365). Free max: 90.
enablePaidAccessbooleanNoRequire payment to download
pricenumberNoDownload price in USD cents (min 100)
# cURL curl -X POST https://api.fileshot.io/api/files/upload \\ -H "Authorization: Bearer <token>" \\ -F "file=@document.pdf" \\ -F "customSlug=my-doc" \\ -F "expiryDays=30" # Response { "success": true, "fileId": "abc123...", "downloadUrl": "https://fileshot.io/f/abc123...", "expiresAt": "2026-06-25T12:00:00Z", "fileSize": 1048576 }

Upload Chunk Creator+

POST/api/files/upload-chunk/:fileId/:chunkIndex

Upload a chunk for resumable/large file uploads. First call /api/files/init-upload to get a fileId.

# cURL curl -X POST https://api.fileshot.io/api/files/upload-chunk/FILE_ID/0 \\ -H "Authorization: Bearer <token>" \\ -H "Content-Type: application/octet-stream" \\ --data-binary @chunk0.bin

Get File Info

GET/api/files/:fileId

Retrieve metadata for a file. No auth required for public files.

curl https://api.fileshot.io/api/files/abc123... # Response { "fileId": "abc123...", "fileName": "document.pdf", "fileSize": 1048576, "mimeType": "application/pdf", "expiresAt": "2026-06-25T12:00:00Z", "isZeroKnowledge": false, "passwordProtected": false }

Download File

GET/api/files/download/:fileId

Redirect to the actual file download URL. Returns 302 to CDN or direct stream.

Delete File Creator+

DELETE/api/files/:fileId

Permanently delete a file and all associated data. Requires ownership.

List My Files Creator+

GET/api/files

List files uploaded by the authenticated user. Supports pagination.

QueryTypeDescription
pageintegerPage number (default: 1)
limitintegerItems per page (default: 20, max: 100)

Error Codes

CodeMeaning
400Bad Request — invalid parameters or missing required fields
401Unauthorized — invalid or missing API key
403Forbidden — valid key but insufficient tier (Creator+ required)
404Not Found — file does not exist or has expired
413Payload Too Large — file exceeds tier limit
429Too Many Requests — rate limit exceeded
503Service Unavailable — temporary backend issue

Rate Limits

TierUploadAPI CallsMax File Size
Free10/hourN/A10 GB
Pro100/hourN/A100 GB
Creator500/hour1,000/min300 GB
ProfessionalUnlimitedUnlimited500 GB

Need higher limits? Upgrade your plan or contact us for enterprise pricing.