Let your users upload photos, videos and documents straight from the browser. Files are stored for good until you or your app delete them, each with a CDN link and a signed webhook. Included in every Rapidfile plan, with no bandwidth fees.
codePersistent file storage for developers' apps: files stay until you or your app delete them, served from CDN links. To send a file that expires on its own, use Rapidfile. To host your own images and videos, use Rapidfile Media.
addGet an API keyRead the docs
၂ GBfree storage
$5/mo for ၁၀၀ GB
၅၀ GBmax file size
app/api/upload/route.ts
// app/api/upload/route.ts: runs on your server, so the secret key stays privateimport { auth } from'@/lib/auth'; // your own session checkexportasyncfunctionPOST(req: Request) {
const user = awaitauth(req);
if (!user) returnResponse.json({ error: 'unauthorized' }, { status: 401 });
const { name, size, type } = await req.json();
const res = awaitfetch('https://api.rapidfile.cc/v1/uploads', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.RAPIDFILE_SECRET_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ name, size, type, metadata: { userId: user.id } }),
});
returnResponse.json(await res.json(), { status: res.status });
}
// In the browser: no SDK, no API keyconst picked = document.querySelector('input[type=file]').files[0];
// 1. Ask your own server for an upload URLconst { upload } = awaitfetch('/api/upload', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: picked.name, size: picked.size, type: picked.type }),
}).then((r) => r.json());
// 2. Send the bytes straight to Rapidfile (files up to 95 MB use one PUT)const res = awaitfetch(upload.url, { method: 'PUT', body: picked });
const { file } = await res.json();
console.log(file.url); // https://cdn.rapidfile.cc/<id>/<name>
terminal
# 1. Create an upload (server side, with your secret key)curl https://api.rapidfile.cc/v1/uploads \
-H"Authorization: Bearer $RAPIDFILE_SECRET_KEY" \
-H"Content-Type: application/json" \
-d'{"name":"cat.jpg","size":48213,"type":"image/jpeg"}'# 2. PUT the bytes to upload.url from the response (no key needed)curl-T cat.jpg "$UPLOAD_URL"# Or upload from your server in one request (up to 95 MB)curl-T cat.jpg -H"Content-Type: image/jpeg" \
-H"Authorization: Bearer $RAPIDFILE_SECRET_KEY" \
"https://api.rapidfile.cc/v1/files?name=cat.jpg"
Everything user uploads need, nothing you have to run
bolt
Direct browser uploads
Your server hands the browser a signed upload URL. Bytes never touch your servers, so there is nothing to proxy or scale.
upload_file
Multipart up to ၅၀ GB
Big files are split into parts that upload in parallel and retry on their own. The SDK does it with one function call.
link
CDN links
Every public file gets a permanent URL on cdn.rapidfile.cc, ready for an <img>, <video> or download link.
lock
Private files, signed URLs
Mark uploads private and hand out signed URLs that expire when you choose, from a few seconds up to 7 days.
notifications
Webhooks with HMAC
Get file.uploaded and file.deleted events, signed with HMAC-SHA256 so you know they came from us.
speed
Free bandwidth
No egress fees and no daily request limit: CDN delivery is unlimited on every plan, so a popular file never costs you more.
verified_user
Fixed price
Free to start, then $5, $15, $49 a month. The price on the page is the price on the invoice.
terminal
Plain REST, tiny SDK
A handful of endpoints, JSON in and out, CORS enabled. Use the browser SDK or just fetch from any language.
smart_toy MCP server
Give your AI agent file uploads
Connect Claude Code, Cursor, VS Code or any MCP client to https://api.rapidfile.cc/mcp with an app's secret key. Your agent can upload text, binary or a URL and get a CDN link back, hand out signed upload URLs, list and delete files and check usage.
upload_file
create_upload_url
list_files
get_file
delete_file
get_signed_url
get_usage
descriptionMCP docsGet a key
Claude Code
claude mcp add --transport http rapidfile-api https://api.rapidfile.cc/mcp --header"Authorization: Bearer rk_live_…"
Which one do I need?
The Upload API is persistent storage for developers: files stay until you or your app delete them. To send someone a file that expires on its own, or to host your own images and videos, these are a better fit.
sendSend a file once → Rapidfilephoto_libraryHost an image or video for good → Mediacode_blocksStore your app's files for good → Upload API
send
Rapidfile
rapidfile.cc
Send a file to someone
boltWhat it does
Send big files, folders and videos with a link, a QR code or a 6-digit code.
scheduleHow long files stay
Temporary: 1 hour to 30 days, then deleted automatically.
groupWho it is for
Anyone. Recipients never need an account.
paymentsIncluded in your plan
Free: ၅၀၀ MB without an account, ၂ GB signed in. Plus from $3.99/month covers all three products.
uploadSend a filephoto_library
Rapidfile Media
media.rapidfile.cc
Host images and videos
boltWhat it does
Permanent CDN links for images, GIFs and videos, with a clean player and embed codes.
scheduleHow long files stay
Until you delete them. Persistent storage with CDN links.
groupWho it is for
Creators, bloggers, forums, docs and READMEs.
paymentsIncluded in your plan
Free: ၁ GB. Rapidfile Plus: ၁၀ GB, Pro: ၅၀ GB. Add-on for heavy use from $4.99/month.
cloud_uploadUpload mediacode_blocks
Rapidfile Upload API
api.rapidfile.cc
You are here
Add file uploads to your app
boltWhat it does
Persistent file storage and uploads for your own web or mobile app: signed browser uploads, CDN links, webhooks, private files and a tiny SDK.
scheduleHow long files stay
Until you or your app delete them. Persistent storage with CDN links.
groupWho it is for
Developers building apps for their own users.
paymentsIncluded in your plan
Free: ၂ GB with unlimited CDN requests. Rapidfile Plus: ၁၀ GB, Pro: ၅၀ GB. Add-on for heavy use from $5/month.
A hosted file upload service for your web or mobile app. Your server creates an upload with a secret key, your user's browser sends the file straight to Rapidfile, and you get a CDN link plus a webhook. It is built and run by Enzonic LLC, the team behind Rapidfile.
How much does it cost?
The Upload API is included in every Rapidfile plan: ၂ GB of persistent storage and unlimited CDN requests free, more storage with Rapidfile Plus and Pro. For heavy use, add-ons start at $5 a month for ၁၀၀ GB. Prices are fixed: there are no bandwidth or per-upload fees. See pricing.
How long are files kept?
For good. The Upload API is persistent storage: files stay until you delete them in the dashboard or your app deletes them through the API (DELETE /v1/files/:id). Nothing expires on its own, unlike Rapidfile transfers, which delete themselves after 1 hour to 30 days.
Do files pass through my server?
No. Your server only makes one small JSON request to create the upload. The bytes go from the browser directly to Rapidfile using a signed URL that is valid for one hour and only works for that one file.
How large can uploads be?
Up to ၅၁၂ MB per file on the free plan and up to ၅၀ GB on Scale. Files over 95 MB are uploaded in parallel parts; the browser SDK handles that, including retries and progress.
Can files be private?
Yes. Create the upload with "acl": "private". Private files have no public URL; your server creates short-lived signed URLs (up to 7 days) when a user should see the file.
Which frameworks are supported?
Anything that can make an HTTPS request. The docs have copy-paste guides for Next.js, Express, SvelteKit and plain HTML, and the API is plain REST with JSON.
Is there an SDK?
A dependency-free browser module at https://api.rapidfile.cc/sdk.js (MIT licensed). It uploads single files and multipart files, reports progress and retries failed parts. Server side you only need fetch.
Can AI agents use the API?
Yes. https://api.rapidfile.cc/mcp is a remote MCP server (Streamable HTTP). Connect Claude Code, Cursor, VS Code or any MCP client with an app's secret key and the agent can upload files, list and delete them, create signed URLs and check usage. See MCP for AI agents.
Ship uploads this afternoon
Create an app, copy the secret key into your server, drop in the SDK.