Public API · built for agents

Give any agent a film lab in one line.

Upload a photograph, name a film-inspired filter—or let PhotDev choose—and receive the processed full-resolution image. No account. No API key.

one request
curl -sS https://api.phot.dev/v1/develop \
  -F '[email protected]' \
  -F 'film=Kodak Portra 400' \
  -o developed.jpg
No key 100 public transformations / UTC day HEIC · JPEG · PNG · TIFF · WebP · RAW Binary full-resolution output

Teach an agent

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.

Contract

POST
https://api.phot.dev/v1/develop
file
Required multipart image. Maximum 120 MB.
film
Exact name from /v1/filters, or auto. Defaults to auto.
format
jpeg or heic. Defaults to jpeg.
quality
1–100. Defaults to 92.
strength
0–1.5. Defaults to 1.
response
Binary image at the original oriented dimensions.

Two useful modes

Exact film

Use a name from the catalog. Unknown names fail instead of silently substituting another stock.

-F 'film=Fuji FP-100c Negative'

Automatic

PhotDev inspects tone, saturation, skin-like hues, sky, foliage, and clipping before selecting a restrained candidate.

-F 'film=auto'

Rate limit

The free public pool allows 100 transformations per UTC day, shared globally. Discovery endpoints do not consume the quota.

Every image response includes RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset. Exhausted requests return HTTP 429. The counter resets at 00:00 UTC.

Privacy

The API uploads the source to an isolated Cloudflare Container, processes it ephemerally, returns the result, and removes the one-shot upload.

Prefer the browser app at phot.dev when local-only processing matters: the browser version keeps photos on-device. The API is an explicit opt-in convenience for agents and automations.

Agent-readable