API 360 Walkthrough Upload

This guide outlines the five-step process for performing a 360 Walkthrough upload via the Evercam API.


Sample Code

The sample code linked below requires some hard-coded values

360_upload_sample.py

Pre-requisites

Before beginning the API calls, you must identify your Project and Drawing IDs from the Evercam dashboard URL.

Example URL: https://dash.evercam.io/v2/projects/evercam/drawings/map?id=6143

  • project_id: Located between "projects" and "drawings" (e.g., evercam).

  • drawing_id: Located at the end of the URL (e.g., 6143).

You can also obtain the drawing_id if you create a Drawing/Floor programmatically via this guide: Drawing/Floor creation

Step 1: Get Authentication Token

Authenticate the user to receive a bearer token for subsequent requests.

Endpoint: POST https://media.evercam.io/auth/login

Request Body

{
  "username": "{evercam_email}",
  "password": "{evercam_password}"
}

Response

{
  "token": "{auth_token}"
}


Step 2: Create an Upload Object

Initialize the upload entry in the system to generate an upload_id.

Endpoint: POST https://ingest2.evercam.io/360/{project_id}/upload?date={upload_date}&name={upload_name}&drawing_id={drawing_id}&uploaded_by={upload_email}

  • upload_name: A human-readable identifier (e.g., "Office 20th July").

  • upload_date: Current date in DD-MM-YYYY format.

  • upload_email: Email of uploading user


Headers

Header

Value

Authorization

Bearer {auth_token}

Content-Type

application/x-www-form-urlencoded

Sample Response


Step 3: Create Placeholder File

Initialize an interruptible upload session using the Tus protocol.

Endpoint: POST https://portal.evercam.io/files/

Headers

Header

Value

Tus-Resumable

1.0.0

Upload-Length

{upload_length_bytes}

Upload-Metadata

filename {filename_base64_encoded},filetype

Content-Length

0

TE

trailers

Response Headers

  • location: http://portal.evercam.io/files/{file_id} (Save this {file_id} for the next steps).

  • tus-resumable: 1.0.0


Step 4: Send File Data

Upload the actual binary data to the file object created in Step 3.

Endpoint: PATCH https://portal.evercam.io/files/{file_id}

Headers

Header

Value

Content-Length

{upload_length_bytes}

Tus-Resumable

1.0.0

Upload-Offset

{upload_offset_bytes} (Set to 0 for new uploads)

Content-Type

application/offset+octet-stream


Body

INSV file binary data

Step 5: Write File Metadata

Finalize the upload by linking the uploaded file to the specific upload record.

Endpoint: PUT https://ingest2.evercam.io/360/{upload_id}/upload?uploaded_by={uploaded_by}

Headers

Header

Value

Content-Type

application/json

Authorization

Bearer {auth_token}

Request Body