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
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 |
|
Content-Type |
|
Sample Response
{
"id": 999,
"name": "Example Name",
"project_id": "evercam",
"floor_id": 5555,
"date": "2026-01-20",
"Processing_status": "created",
"uploaded_by": "daniel.caffrey@evercam.io",
"inserted_at": "2026-01-20T12:31:30.022170",
"updated_at": "2026-01-20T12:31:30.022175",
"is_timelapse": false,
"Images": [],
"videos": [],
"tus_links": []
}
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 |
|
Upload-Length |
|
Upload-Metadata |
|
Content-Length |
|
TE |
|
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 |
|
Tus-Resumable |
|
Upload-Offset |
|
Content-Type |
|
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 |
|
Authorization |
|
Request Body
{
"asset_type": "video",
"upload": [
{
"url": "http://portal.evercam.io/files/{file_id}",
"title": "{filename}",
"file_extension": "insv"
}
],
"start_position": "{latitude},{longitude}",
"end_position": "{latitude},{longitude}",
"target_points_count": 0
}