# PhotDev > Apply analog film-inspired filters to photographs in the browser or through a one-request public API. PhotDev has two deliberately separate modes: 1. Browser app at https://phot.dev/ — free, on-device processing; photos never leave the browser. 2. Agent API at https://api.phot.dev/v1 — opt-in upload to an ephemeral Cloudflare Container; no account or API key. ## Teach any agent in one line To apply a film look, POST the image to https://api.phot.dev/v1/develop as multipart field `file`, set `film` to an exact filter name or `auto`, and save the binary response. ```bash curl -sS https://api.phot.dev/v1/develop -F 'file=@photo.jpg' -F 'film=Kodak Portra 400' -o developed.jpg ``` ## Public API contract - Endpoint: POST https://api.phot.dev/v1/develop - Content type: multipart/form-data - Authentication: none - `file`: required; HEIC, JPEG, PNG, TIFF, WebP, or supported RAW; maximum 120 MB - `film`: exact name from https://api.phot.dev/v1/filters, or `auto`; default `auto` - `format`: `jpeg` or `heic`; default `jpeg` - `quality`: 1–100; default 92 - `strength`: 0–1.5; default 1 - `lift`: 0–2; default 0 - `vignette`: 0–2; default 0 - Response: binary full-resolution image preserving the original oriented dimensions - Selected filter: response headers `X-PhotDev-Film`, `X-PhotDev-Preset-Id`, and `X-PhotDev-Selection` - Unknown exact film names return HTTP 404; PhotDev does not silently substitute another stock Machine-readable discovery: - https://api.phot.dev/v1 — compact JSON contract and one-line example - https://api.phot.dev/v1/filters — exact accepted film names and stable preset IDs - https://api.phot.dev/openapi.json — OpenAPI schema - https://phot.dev/api/ — human-readable agent/API documentation ## Public quota - 100 transformations per UTC day, shared globally across the public pool - Discovery endpoints do not consume quota - Counter resets at 00:00 UTC - Responses include `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset` - Exhausted requests return HTTP 429 JSON ## Privacy The browser app processes photos locally and does not upload them. The public API is an explicit opt-in upload: it processes the image in a Cloudflare Container, returns the result, and removes the one-shot upload after processing. Use the browser app when local-only processing matters. ## Browser app facts - 1,700+ preset variants and 100+ agent-addressable film families - Agfa, Fuji, Ilford, Kodak, Polaroid, Konica, Rollei, cinema, instant, and archival scan looks - iPhone HEIC decoding in-browser - Per-film grain, tone curves, HSL, split toning, calibration, bloom, halation, optics, and damage controls - Full-resolution JPEG export - No accounts, cookies, or analytics ## Pages - https://phot.dev/ — browser app - https://phot.dev/api/ — API guide - https://phot.dev/llms.txt — this file - https://phot.dev/robots.txt — crawler policy - https://phot.dev/sitemap.xml — sitemap ## Credits Film names are informational descriptions of approximated looks. PhotDev is not affiliated with or endorsed by the trademark owners. The Film Scans pack is derived from the RawTherapee Film Simulation Collection by Pat David, Pavlov Dmitry, and Michael Ezra under CC BY-SA 4.0. Author: Stas Kulesh — https://sliday.com