UploadCenter

Built for developers. Designed to scale.

Every capability — including AI — is a documented API endpoint first. The dashboard you'll use is a client of the exact same API you get.

API-first, always
Nothing is dashboard-only. Every action you can take in the UI has a documented, versioned endpoint behind it.
Official SDKs
Fully-typed TypeScript/JavaScript and Python clients, generated directly from the API's own OpenAPI schema — never hand-maintained, never out of sync.
Signed webhooks
HMAC-signed, retried event delivery for uploads, processing, AI generations, and quota thresholds — verify before you trust the payload.
Scoped API keys
Per-project, per-environment keys with granular scopes, shown once and never stored in plaintext.

Three calls to a working upload

Presign, upload directly to storage, confirm — the same flow whether you call the API directly or use an SDK.

typescript
import { createClient } from "@uploadcenter/sdk-js";

const client = createClient({
  baseUrl: "https://api.uploadscenter.com",
  token: process.env.UPLOADCENTER_API_KEY,
});

const { file_id, upload_url } =
  await client.uploads.presignUploadEndpointV1UploadsPresignPost({
    project_id: projectId,
    filename: "photo.jpg",
    size_bytes: file.size,
    mime_type: "image/jpeg",
    visibility: "private",
  });

await fetch(upload_url, { method: "PUT", body: file });

await client.uploads.completeUploadEndpointV1UploadsCompletePost({ file_id });

Start building

Create a project and get an API key in under a minute.