RapidfileAPI
Sign in
Upload API v1

File uploads for your app, without the bill

Let your users upload photos, videos and documents straight from the browser. You get a CDN link, a signed webhook and one fixed monthly price. No bandwidth fees, no surprises.

Get an API key Read the docs
  • 2 GBfree storage
  • $5/mo for 100 GB
  • 50 GBmax file size
app/api/upload/route.ts
// app/api/upload/route.ts: runs on your server, so the secret key stays private
import { auth } from '@/lib/auth'; // your own session check

export async function POST(req: Request) {
  const user = await auth(req);
  if (!user) return Response.json({ error: 'unauthorized' }, { status: 401 });

  const { name, size, type } = await req.json();
  const res = await fetch('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 } }),
  });
  return Response.json(await res.json(), { status: res.status });
}
200PUT upload.url
{
  "file": {
    "id": "Xy7Kq2Lm9P",
    "name": "cat.jpg",
    "status": "ready",
    "url": "https://cdn.rapidfile.cc/Xy7Kq2Lm9P/cat.jpg"
  }
}

How it works

Three requests, zero file proxying

  1. 1

    Your server creates an upload

    One POST /v1/uploads with your secret key. You decide who may upload what, and how big.

    your server → Rapidfile
    POST /v1/uploads
    Authorization: Bearer rk_live_…
    
    { "name": "cat.jpg", "size": 48213, "type": "image/jpeg" }
  2. 2

    The browser uploads directly

    The response holds a signed URL. The browser PUTs the file to it; large files go up in parallel parts.

    browser → Rapidfile
    await uploadFile(file, { getUpload: '/api/upload' })
  3. 3

    Webhook and CDN link

    The file is ready on the CDN and your app gets a signed file.uploaded webhook to save it.

    Rapidfile → your server
    { "type": "file.uploaded", "data": { "url": "https://cdn.rapidfile.cc/Xy7K…/cat.jpg" } }

Features

Everything user uploads need, nothing you have to run

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.

Multipart up to 50 GB

Big files are split into parts that upload in parallel and retry on their own. The SDK does it with one function call.

CDN links

Every public file gets a permanent URL on cdn.rapidfile.cc, ready for an <img>, <video> or download link.

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.

Webhooks with HMAC

Get file.uploaded and file.deleted events, signed with HMAC-SHA256 so you know they came from us.

Free bandwidth

No egress fees. Plans include a daily number of CDN requests instead of a meter that runs every time someone views a file.

Fixed price

Free to start, then $5, $15, $49 a month. The price on the page is the price on the invoice.

Plain REST, tiny SDK

A handful of endpoints, JSON in and out, CORS enabled. Use the browser SDK or just fetch from any language.

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
MCP docsGet a key
Claude Code
claude mcp add --transport http rapidfile-api https://api.rapidfile.cc/mcp --header "Authorization: Bearer rk_live_…"

Pricing

Start free. Grow on a fixed price.

Compare plans and estimate your cost

Guides

Pick your stack

Questions

What is the Rapidfile Upload API?

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?

There is a free plan with 2 GB of storage and 100,000 CDN requests a day. Paid plans start at $5 a month for 100 GB. Prices are fixed: there are no bandwidth or per-upload fees. See pricing.

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 512 MB per file on the free plan and up to 50 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.

Open the dashboard