# BlobRouter ## Docs - [Authentication](https://docs.blobrouter.com/api/authentication.md): API keys, dashboard JWTs, and how to authenticate every request. - [Errors](https://docs.blobrouter.com/api/errors.md): Error shape, status codes, and the canonical error catalog. - [Idempotency](https://docs.blobrouter.com/api/idempotency.md): What is and is not idempotent in BlobRouter v1. - [Pagination](https://docs.blobrouter.com/api/pagination.md): Limit/offset pagination for list-style endpoints. - [Rate limits](https://docs.blobrouter.com/api/rate-limits.md): Per-customer request limits by plan and how 429 responses look. - [Request IDs](https://docs.blobrouter.com/api/request-ids.md): X-Request-ID on every request and response for support and log correlation. - [Retries](https://docs.blobrouter.com/api/retries.md): What the SDKs retry, what they never retry, and how to mirror that in custom clients. - [Architecture](https://docs.blobrouter.com/architecture.md): Upload and scanner flows — how the control plane talks to your providers. - [Plans & billing](https://docs.blobrouter.com/billing/plans.md): Free audit forever, included routing GB, and paid migration tiers. - [How BlobRouter works](https://docs.blobrouter.com/concepts/how-it-works.md): Cloud optimization starting with storage — audits, migrations, and smart routing. - [Providers](https://docs.blobrouter.com/concepts/providers.md): AWS S3, Cloudflare R2, and Backblaze B2 — how BlobRouter treats each. - [Routing logic](https://docs.blobrouter.com/concepts/routing-logic.md): How BlobRouter chooses a provider — priorities, cost formula, assumptions, and fallbacks. - [Architecture decisions](https://docs.blobrouter.com/decisions/architecture-decisions.md): Why BlobRouter is built this way — Workers, direct uploads, STS, queues, and more. - [Express](https://docs.blobrouter.com/examples/express.md): Node Express example using @blobrouter/sdk with multer. - [FastAPI](https://docs.blobrouter.com/examples/fastapi.md): Upload files with FastAPI and the BlobRouter Python SDK. - [Next.js](https://docs.blobrouter.com/examples/nextjs.md): Upload from a Next.js Route Handler or Server Action — never from the browser with your API key. - [Python AI / ML](https://docs.blobrouter.com/examples/python-ai.md): Store model checkpoints and embeddings with the BlobRouter Python SDK. - [FAQ for engineers](https://docs.blobrouter.com/faq.md): Self-hosting, Intelligent-Tiering, BYO bucket, scanner-only use, billing math, and more. - [Connect AWS for Storage Audit](https://docs.blobrouter.com/guides/aws-iam-setup.md): Create a read-only IAM role so BlobRouter can scan your S3 buckets. Exact console steps and correct policy JSON. - [Connect Backblaze B2](https://docs.blobrouter.com/guides/connect-b2.md): Add B2 as a routing target for archive and low-cost storage. - [Connect Cloudflare R2](https://docs.blobrouter.com/guides/connect-r2.md): Add R2 as a routing target for hot files with zero egress fees. - [Approve and run migrations](https://docs.blobrouter.com/guides/migration.md): Move cold and hot objects based on audit recommendations — always explicit, never automatic. - [Quickstart — First upload in 5 minutes](https://docs.blobrouter.com/quickstart.md): Install the SDK, connect a provider, and upload your first file through BlobRouter. - [Request lifecycle](https://docs.blobrouter.com/request-lifecycle.md): What happens from storage.upload() to a verified file on your provider. - [Roadmap](https://docs.blobrouter.com/roadmap.md): Product direction — storage first, then broader cloud optimization. - [Python SDK](https://docs.blobrouter.com/sdk/python.md): Complete reference for the blobrouter package — bytes, file-like uploads, retries, and errors. - [REST API](https://docs.blobrouter.com/sdk/rest-api.md): HTTP reference with curl examples for router, scanner, providers, keys, and billing endpoints. - [TypeScript SDK](https://docs.blobrouter.com/sdk/typescript.md): Complete reference for @blobrouter/sdk — upload, get, delete, retries, and errors. - [Security](https://docs.blobrouter.com/security.md): How BlobRouter protects credentials and why we never store object bytes.