A shorter path to upload
Declare accepted file types and sizes, authorize on your server, and upload directly to storage.
Typed uploads, organized storage, and controlled delivery.
Everything your files need, in one developer workspace.
const upload = createUploadthing();
export const fileRouter = {
images: upload({ image: {
maxFileSize: "4MB",
maxFileCount: 10,
} })
.onUploadComplete(async ({ file }) => {
// Your file is ready.
}),
};The upload is one moment. Manage everything that comes after it, with your team in control.
Declare accepted file types and sizes, authorize on your server, and upload directly to storage.
Public or private files, signed delivery links, scoped server keys, and clear team permissions.
Keep files, API keys, plans, and usage separate while managing your people in one organization.
Track stored data, downloads, file count, and request units. Enable overages only when you choose.
Give developers the tools to build and billing members the controls to pay, without sharing access.
Framework adapters and typed components built from the MIT-licensed UploadThing SDK fork.
Get your workspace ready, then connect your application.