FileShot API

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

Integrate FileShot uploads into your app, CI pipeline, or internal tools without exposing files to third-party cloud storage. All transfers use TLS; optional zero-knowledge encryption matches the behavior documented on our security model. New to the platform? Start with the web uploader or read secure file transfer best practices.

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.