# OpenVibe.Cam > OpenVibe.Cam is the camera app: photos with on-device filters saved to OpenVibe.Pics, private cameras with revocable viewer grants, and a still from a Live stream for its chat. A camera is private; there is no public directory in v1. The element loads from /embed/ov-camera.js: facing, filters, timer, mode and upload attributes, ov-camera:capture and ov-camera:error events, and start/stop/capture/flip methods. GET /api/v1/cameras lists a signed-in person's cameras; POST /api/v1/cameras pairs one; POST /api/v1/cameras/:id/grants names a viewer and a number of days; DELETE /api/v1/cameras/:id/grants/:grantId revokes it at once. POST /api/v1/stills takes a frame from OpenVibe.Media's public GET /live/:sel/frame.jpg and saves it to OpenVibe.Pics as the person. No route is public except GET /api/v1/stills/:id for an unlisted still. ## Start here - [OpenVibe.Cam](https://openvibe.cam/index.md): the camera app and the privacy rules - [The camera app](https://openvibe.cam/app.md) - [The API](https://openvibe.cam/developers.md) ## Optional - [Sitemap](https://openvibe.cam/sitemap.xml) - [Full text for language models](https://openvibe.cam/llms-full.txt) - [Release metadata (JSON)](https://openvibe.cam/release.json) - [OpenVibe.Live](https://openvibe.live): the stream the cam button takes a still from - [OpenVibe.Media](https://openvibe.media): the live frame endpoint - [OpenVibe.Pics](https://openvibe.pics): where a photo and a still are stored - [OpenVibe.Network](https://openvibe.network): accounts and usernames