# img-src.io > img-src.io is an image CDN service that lets developers upload images once and serve them globally with real-time transformations via URL parameters. It supports automatic format conversion (WebP, AVIF, JXL, JPEG, PNG), resizing, cropping, and quality optimization — all at the edge with 200+ Cloudflare locations worldwide. > For complete documentation in a single file, see: https://img-src.io/llms-full.txt ## What img-src.io Does img-src.io is a developer-focused image hosting and CDN platform. You upload an image through the dashboard or REST API, and receive a permanent CDN URL. You can then transform that image on-the-fly by appending URL parameters — no build step, no image pipeline, no configuration required. **Core capabilities:** - Upload images via web dashboard or REST API - Automatic global CDN delivery via Cloudflare (200+ edge locations) - Real-time image transformation through URL parameters - Format conversion: WebP (25-34% smaller), AVIF (50%+ smaller), JXL (next-gen), JPEG, PNG - Resize, crop, and quality adjustment at the edge - Hash-based deduplication (no duplicate storage charges) - Immutable cache headers for optimal browser caching - Zero egress/bandwidth fees on all plans ## How Image URLs Work Every uploaded image gets a CDN URL in this format: ``` https://img-src.io/i/{username}/{filename} ``` Transform images by adding URL parameters: - `?w=800` — Resize width to 800px - `?h=600` — Resize height to 600px - `?w=800&h=600&fit=cover` — Resize and crop to exact dimensions - `?q=85` — Set quality to 85% - Change the file extension to convert format: `photo.webp`, `photo.avif`, `photo.jxl`, `photo.jpg` Example: `https://img-src.io/i/john/photo.webp?w=800&q=85` serves a WebP image resized to 800px width at 85% quality. **Fit modes:** `cover` (crop to fill), `contain` (fit within), `fill` (stretch), `scale-down` (only shrink) ## Pricing **Free plan ($0/month):** - 100 image uploads per month - 10 GB storage - 1,000 transformations per month - 1,000 API requests per month - 100 API requests per minute rate limit - Unlimited CDN requests (serving) - No bandwidth fees - Supports JPEG, PNG, WebP, GIF, HEIC/HEIF, SVG, BMP, TIFF, AVIF, and more **Pro plan ($5/month):** - Everything in Free, plus: - Unlimited image uploads per month - 50 GB storage - 10,000 transformations per month - 10,000 API requests per month - 500 API requests per minute rate limit - Access Links for private/signed image URLs - Image presets (e.g., `?p:thumbnail`, `?p:hero`) **Resource Pack ($10/pack, Pro users only):** - +10 GB storage, +10,000 API requests, +10,000 transformations ## REST API The API uses Bearer token authentication. Create API keys in the dashboard under Settings. **Base URL:** `https://img-src.io/api/v1` **Key endpoints:** - `POST /images` — Upload an image (multipart/form-data, max 5MB) - `GET /images` — List your images - `GET /images/search` — Search images by filename - `GET /images/:id` — Get image metadata - `DELETE /images/:id` — Delete an image - `POST /images/:id/signed-url` — Create a signed/temporary URL (Pro) - `GET /usage` — Get current usage statistics - `GET /settings` — Get account settings - `POST /settings/api-keys` — Create a new API key - `GET /settings/presets` — List image presets (Pro) - `POST /settings/presets` — Create an image preset (Pro) **Rate limits:** Free: 100 req/min, Pro: 500 req/min. Rate limit headers: `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`. ## Supported Image Formats **Input (upload):** JPEG, PNG, WebP, GIF, BMP, TIFF, ICO, SVG, HEIC/HEIF, AVIF, JXL, TGA, PNM, QOI, HDR, EXR **Output (serve):** WebP (default), AVIF (max 8 megapixels), JXL, JPEG, PNG **AVIF limitation:** Maximum 8 megapixels (~3500x2300px), maximum 4000px on any dimension. ## Architecture img-src.io runs entirely on Cloudflare's edge infrastructure: - **Frontend:** React 19 on Cloudflare Pages - **Backend API:** TypeScript on Cloudflare Workers (Hono framework) - **CDN:** Cloudflare Workers + optional Rust container for native codec support - **Storage:** Cloudflare R2 (objects), KV (cache), D1 (metadata) - **Auth:** Clerk (JWT/JWKS) ## FAQ **What counts as a transformation?** A transformation is any request that modifies the image — resize, format conversion, or quality adjustment. Cached responses from the CDN do not count toward your transformation limit. **What happens when I reach my limit?** On the Free plan, uploads and transformations are blocked until the next billing cycle. On the Pro plan, you can purchase Resource Packs to extend your quota instantly. **Can I downgrade from Pro to Free?** Yes. Cancel anytime. Your images remain accessible, but you'll be limited to Free plan quotas after the billing period ends. **Is there a bandwidth limit?** No. Cloudflare R2 has zero egress fees, so img-src.io offers unlimited bandwidth on all plans at no extra cost. **What is an Access Link?** Access Links are signed, time-limited URLs for private images. They are available on the Pro plan and allow you to share images that expire after a set duration. **What are image presets?** Presets are saved transformation configurations (e.g., `p:thumbnail` = `w=200&h=200&fit=cover`). Define them once in the dashboard, then use `?p:name` in any image URL. Pro plan only. ## Links - [Homepage](https://img-src.io) - [Pricing](https://img-src.io/pricing) - [Documentation](https://docs.img-src.io) - [About](https://img-src.io/about) - [API Reference](https://docs.img-src.io) - [Terms of Service](https://img-src.io/terms-of-service) - [Privacy Policy](https://img-src.io/privacy-policy)