EvercamDevelopers

Search

Search guides, documentation and the API reference

Upload and display a 360 capture

Send a walkthrough to the 360 ingest API, then render the panorama interactively.

360 walkthroughs are organised by project, floor and date. You upload captures to the ingest API, and the processed panoramas come back as assets you can render.

Ingest authentication is not enforced server-side

The 360 specification declares bearer authentication and the service does not enforce it server-side. Send the header on every request, and do not treat it as an access control.

From capture to panorama

Upload a capture

POST/{project_id}/upload360 Ingest API

Uploads capture files for a project. Sent as multipart form data.

curl -X POST "https://ingest.evercam.io/360/$PROJECT_ID/upload" \
  -H "Authorization: Bearer $EVERCAM_TOKEN" \
  -F "file=@walkthrough.jpg"

Note the base URL already includes /360, so the project path appends to it.

List the processed assets

GET/assets/{project_id}360 Ingest API

The 360 assets belonging to a project.

GET/assets/{project_id}/{date}/{floor}360 Ingest API

Assets for one floor on one date.

curl -H "Authorization: Bearer $EVERCAM_TOKEN" \
  "https://ingest.evercam.io/360/assets/$PROJECT_ID"

Floors are managed separately, which is what lets a walkthrough be organised by level:

GET/floors/360 Ingest API

The floors defined for a project.

Display the panorama

A 360 capture is an equirectangular image: a single frame where the horizontal axis spans a full 360°. Rendering it means mapping a slice of that image to the viewport and moving the slice as the user drags.

// The whole panorama is one wide image; show a window onto it and pan.
const sliceWidth = image.width / 4

context.drawImage(
  image,
  yaw % image.width, 0, sliceWidth, image.height,
  0, 0, canvas.width, canvas.height,
)

The portal's own viewer does exactly this on a 2D canvas, with no 3D engine required. Drag to look around:

Bring your own asset

The viewer takes any equirectangular image URL, so you can point it at a processed 360 asset from the endpoints above.

Next

Send data to the BIM or drone ingest APIs — the same upload shape, different payloads.