Cloud File Storage API

A Cloud Storage API You Can Curl in One Line

REST API + SDK for storing and serving files. Drop-in alternative to AWS S3 with global CDN included — no IAM, no CORS, no signed-URL plumbing.

Standing up file storage on a hyperscaler usually costs you a day before you store a single byte: install the SDK, write an IAM policy, scope the credentials, configure CORS rules for browser uploads, set a bucket policy, then write a separate helper to mint signed download URLs. files.link collapses that to a contract any HTTP client already speaks. The real upload is three calls.

First, POST file metadata to /v1/files/{folderId} with your raw API key in the Authorization header (no Bearer prefix); the response is { success, urls: [{ url, id, ... }] }, where url is a presigned PUT target. Second, PUT the file bytes straight to that URL. Third, POST /v1/files/confirm-upload with { ids: [id] } to finalize. That's it — confirm returns the permanent CDN URL, and the file is live on a global edge network.

The same three calls work from curl, fetch, axios, Python requests, Go net/http, or any language with a socket, so you are never blocked waiting on a vendor SDK or fighting a version bump. As a drop-in replacement for an Amazon S3 PutObject + CloudFront + presigner stack, the win is in everything you delete: no aws-sdk dependency to bundle into a Lambda, no IAM trust relationships to maintain, no CORS JSON to debug, no distribution to provision.

Public files come back as cacheable CDN URLs; private files are served through signed URLs with a short default expiry, both selectable at upload time via a single flag rather than two different subsystems. The full OpenAPI 3.0 spec lives at api.files.link/api-docs.json with a hosted Swagger UI at api.files.link/api-docs, so you can try every endpoint with the Authorize button and generate a typed client in any language with openapi-generator.

Billing is prepaid credits with auto-recharge, which means storage, delivery, and requests all draw from one balance instead of three independently-metered line items — and because there is no separate egress meter, a traffic spike doesn't turn into a forensic exercise on your invoice. If you're migrating off S3 specifically, the s3-alternative page maps the concepts one-to-one; if you're wiring this into a particular runtime, the per-language upload guides (Python, Node, PHP, Rust) carry runnable snippets.

For the delivery side — how an uploaded file becomes a globally cached URL with no distribution to configure — see file storage with CDN.

Benefits With No Complexity

Global CDN delivery

Your files are served from 450+ edge locations worldwide.

Edge-cached worldwide

Files are cached close to your users for fast delivery.

Signed-URL security

Private files stay protected with time-limited access.

What You Get

Unlimited files

Upload as many files as you need.

Unlimited storage

There is no storage limit.

Public + Private storage

Private files are fully secured.

CDN ready links

Upload directly to 450+ edge locations worldwide.

Prepaid credits

No subscription. Pay only for the storage and bandwidth you use.

More coming soon

We have plenty of features coming!

How files.link Works

1. Upload

Create a project and upload your first file.

2. Copy

Copy the CDN link.

3. Use Anywhere

Paste and enjoy the blazing speed.

Why Developers Choose files.link

A Better Way to Store & Deliver Files

AWS S3 SDKCloudflare R2 APIBackblaze B2 APIfiles.link
Works from any HTTP client, no SDK
Permanent CDN URL returned on confirm
No IAM / CORS / bucket policy setup
Presigned PUT upload flow
Signed download URLs built in
OpenAPI spec + hosted Swagger UI
No separate egress fees

Calculate Your Needs

Storage

0GB

Egress

0GB

CDN Bandwidth

0GB
Total: $0.000/month

Get API Keys

  • Global CDN delivery
  • Edge-cached worldwide
  • Signed-URL security
  • Unlimited files
  • Unlimited storage
  • Public + Private storage
  • No subscription — prepaid credits keep spend predictable
Get API Keys

Frequently Asked Questions

What are the exact API calls to upload a file?
Three. (1) POST /v1/files/{folderId} with your API key in the Authorization header and file metadata in the body → response is { success, urls: [{ url, id }] }. (2) PUT the file bytes to that presigned url. (3) POST /v1/files/confirm-upload with { ids: [id] }. The confirm response carries the permanent CDN URL.
Do I need an SDK?
No. The API is plain HTTP, so curl, fetch, axios, requests, or any stdlib HTTP client works. Lightweight client libraries exist if you want typed responses, but nothing requires installing a vendor SDK or maintaining IAM credentials.
How does this compare to AWS S3 PutObject?
S3 needs an SDK or hand-signed SigV4 requests, IAM policies, CORS rules for browser uploads, and a separate signed-URL generator for downloads. files.link is a presigned PUT plus a confirm call that returns the public CDN URL — no auxiliary infrastructure to provision or maintain.
Is there an OpenAPI spec?
Yes. The OpenAPI 3.0 spec is at api.files.link/api-docs.json and a hosted Swagger UI at api.files.link/api-docs lets you exercise every endpoint with the Authorize button. Pass the raw API key — no Bearer prefix. Generate clients with openapi-generator for any language.
Does the API work in serverless functions?
Yes. Because it's HTTP-only with no heavy SDK to bundle and no IAM trust relationships, it runs cleanly in Vercel, Cloudflare Workers, and Lambda without bloating the deploy package.
General Questions
Is there a subscription?
No. files.link uses prepaid credits, so storage, bandwidth, and API usage are deducted from your balance as you go. The app explains the payment step before uploads are enabled — no monthly subscription and no per-user fees.
What is files.link?
files.link is a developer-first file platform that makes it simple to store, secure, and deliver files globally. It provides signed URLs, public/private access, and an API-first design so you can integrate file delivery into any app without the usual complexity.
How does billing work?
files.link uses prepaid credits. As you use storage, bandwidth, and API requests, credits are deducted daily. When your balance runs low, we automatically recharge it using your saved card. If an auto-recharge doesn't go through, your files and links stay put — you simply update your payment method or top up manually to keep going. No monthly subscriptions — just simple usage-based pricing.
How secure is my data?
All files are encrypted at rest and in transit. You can use signed URLs for private files, control access with permissions, and rely on enterprise-grade infrastructure for data protection.

Related

files.link
Copyright © 2026
All rights reserved
ContactGuidesGlossaryStatusLegal