Quickstart
Sign in, find a camera and render its latest image — in one page.
Four requests take you from nothing to a live image: sign in, list your projects, list that project's cameras, then fetch a snapshot. Everything below is plain HTTP — no SDK required.
From nothing to an image
Sign in
Exchange an email and password for a JWT.
curl -X POST "https://media.evercam.io/v2/auth/login" \
-H "Content-Type: application/json" \
-d '{"username": "you@example.com", "password": "…"}'Keep the token — every request below sends it as a bearer credential.
List your projects
A project is a construction site. Each has an exid, the string identifier you
use everywhere else.
Returns the projects your account can see.
curl -H "Authorization: Bearer $EVERCAM_TOKEN" \
"https://media.evercam.io/v2/projects"List that project's cameras
Returns the cameras in one project.
curl -H "Authorization: Bearer $EVERCAM_TOKEN" \
"https://media.evercam.io/v2/projects/$PROJECT_EXID/cameras"Cameras have an exid too, plus a status. Prefer one reporting online.
Online does not guarantee an image
A camera can report status: "online" and still return 404 from the
snapshot endpoint, because no image is currently stored for it. Treat that as
an ordinary empty state, not an error — try another camera.
Render a snapshot
The most recent stored image for a camera.
The response JSON puts the image in data as a data:image/jpeg;base64,…
URI, so it drops straight into an img tag:
const res = await fetch(
`https://media.evercam.io/v2/cameras/${cameraId}/recordings/snapshots/latest`,
{ headers: { Authorization: `Bearer ${token}` } },
)
const { data, created_at } = await res.json()
return <img src={data} alt={`Captured ${created_at}`} />Try it
Where to go next
- Authentication — the header each API expects.
- Display the latest snapshot — the same request with every parameter explained.
- Browse recordings on a timeline — reach back through the archive.