File Upload Service

Easily upload files directly from the web browser to Amazon S3 or Digitalocean spaces using our 2kb client. Perfect for serverless web development

Start with a 1000 free uploads, no credit card required

Upload Quick-Start

  1. Create an account, API key and storage provider
  2. Install the UploadClient library via NPM or <script>
  3. Initialize the library with your API key
  4. Grab a file from <input type=”file”>
  5. Start the upload task and monitor progress

NPM Install

npm install --save @betterstack/upload-client

Script Tag Install

<script src=""></script>


import UploadClient from "@betterstack/upload-client"; // NPM
const UC = new UploadClient({ apiKey: "<YOUR_API_KEY>" });
const file = document.getElementById("file-input").files[0];
const task = UC.upload({
providerId: "<YOUR_PROVIDER_ID>",
files: [{ file: file }]
task.onProgress((e) => console.log(e.loadedPercent));
.then((uploaded) => {})
.catch((e) => {});


Client-Side Uploads

Files are uploaded directly from the browser to your storage provider

Upload Multiple Files

Our client library can easily handle multiple file uploads in one task

Track Upload Progress

Monitor the progress of every file to be uploaded by percent and bytes

No File Size Restriction

Upload files as small or big as you like without any restrictions

Secure Your Provider Keys

Protect your keys to your storage provider for client-side uploads

Reliable Infrastructure

All services run using Kubernetes with a robust high-availability structure

Minimal JS Upload Client

Just 1.9kb, no external dependencies and includes includes TypeScript definitions

Easy To Setup

Excellent documentation will get you up and running in 10 minutes

Affordable Pricing

Upload files for a fraction of a cent with non-expiring upload credits


1 Credit = 1 File Upload

Buy credits to upload files. Credits never expire so you can purchase them in bulk for extended use

Upload CreditsPricePrice Per Upload

Start with a 1000 free uploads, no credit card required