# Prusa Camera Service > REST API for cameras that send information and JPEG snapshots to Prusa Connect. Base URL: https://camera-service.prusa3d.com Key rules: - Every request needs headers Token (20 chars, from Prusa Connect or the Prusa app) and Fingerprint (16-64 chars, generated by the camera, stable per device). - The first call must happen within 15 minutes of creating the camera; the fingerprint is bound on the first call and cannot change. - PUT /v1/camera-info with JSON {config, features, device}; config.name and device.type/firmware_version/hardware_version are required; unknown keys are rejected with 422; config.trigger_scheme is one of MANUAL, EACH_LAYER, FIFTH_LAYER, GCODE, TEN_SEC, THIRTY_SEC, SIXTY_SEC, TEN_MIN (default THIRTY_SEC). Every request needs a User-Agent header. - PUT /v1/snapshot with a raw image/jpeg body, Content-Length required; max 1 MB; max 6 uploads per minute per camera; only the latest snapshot is kept, so upload every 10-60 s. 400, 401, 411, 413 and 415 may come from the gateway without a JSON body; 429 and 503 come only from the gateway. ## Docs - [Quickstart](https://camera-service.prusa3d.com/docs/guide/quickstart.md) - [Getting a token](https://camera-service.prusa3d.com/docs/guide/getting-a-token.md) - [Authentication](https://camera-service.prusa3d.com/docs/guide/authentication.md) - [Camera info](https://camera-service.prusa3d.com/docs/guide/camera-info.md) - [Snapshots](https://camera-service.prusa3d.com/docs/guide/snapshots.md) - [Camera types](https://camera-service.prusa3d.com/docs/guide/camera-types.md) - [Errors](https://camera-service.prusa3d.com/docs/guide/errors.md) - [ESP32 firmware](https://camera-service.prusa3d.com/docs/guide/esp32.md) - [Browser webcam](https://camera-service.prusa3d.com/docs/guide/webcam.md) - [Migrating from Prusa Connect](https://camera-service.prusa3d.com/docs/guide/migrating-from-connect.md) ## API - [OpenAPI 3.0 spec](https://camera-service.prusa3d.com/docs/openapi.yaml)