API Endpoints
Complete reference for all vid2scene API endpoints.
🏢 Enterprise API
All endpoints require Enterprise subscription and API key authentication. You can only access your own jobs.
Jobs
Manage your video processing jobs.
GET List Jobs
GET /api/v1/jobs/
Retrieve a list of your video processing jobs.
Example Request
curl -H "Authorization: Api-Key YOUR_API_KEY" \
"https://vid2scene.com/api/v1/jobs/"
Example Response
[
{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"title": "My awesome video",
"status": "Finished",
"percent_complete": 100,
"uploaded_at": "2024-01-15T10:30:00Z",
"public": false,
"reconstruction_method": "glomap",
"training_max_num_gaussians": 30000,
"training_num_steps": 7000,
"has_ply": true,
"has_spz": false,
"camera_data": {
"position": {"x": 0.0, "y": 0.0, "z": 5.0},
"lookAt": {"x": 0.0, "y": 0.0, "z": 0.0},
"up": {"x": 0.0, "y": 1.0, "z": 0.0},
"cameraType": "orbital"
}
}
]
GET Get Job Status
GET /api/v1/jobs/{job_id}/
Get the current processing status and progress of a job. This endpoint returns detailed information about the job including its current status, progress, and configuration.
Status Values
The status
field can have the following values:
Queued
- Waiting to start processingQueued - position: X
- Waiting in queue at position XProcessing video
- Currently processing the videoGenerating 3D scene
- Creating the 3D reconstructionFinished
- Completed successfullyFailed
- Processing failedNot found
- Job not found in queue
The percent_complete
field shows progress during 3D scene generation (0-100), or null
if not yet started.
Example Response
{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"title": "My awesome video",
"status": "Generating 3D scene",
"percent_complete": 75,
"uploaded_at": "2024-01-15T10:30:00Z",
"public": false,
"reconstruction_method": "glomap",
"training_max_num_gaussians": 30000,
"training_num_steps": 7000,
"has_ply": false,
"has_spz": false,
"camera_data": {
"position": {"x": 0.0, "y": 0.0, "z": 5.0},
"lookAt": {"x": 0.0, "y": 0.0, "z": 0.0},
"up": {"x": 0.0, "y": 1.0, "z": 0.0},
"cameraType": "orbital"
}
}
PATCH Update Job
PATCH /api/v1/jobs/{job_id}/
Update job properties like title, public status, or camera data.
Request Body
Field | Type | Description |
---|---|---|
title |
string | Job title |
public |
boolean | Whether the job is publicly visible |
camera_data |
object | Camera configuration data |
Example Request
curl -X PATCH \
-H "Authorization: Api-Key YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Updated title", "public": true}' \
"https://vid2scene.com/api/v1/jobs/123e4567-e89b-12d3-a456-426614174000/"
DELETE Delete Job
DELETE /api/v1/jobs/{job_id}/
Delete a job and all associated files. This action cannot be undone.
Example Request
curl -X DELETE \
-H "Authorization: Api-Key YOUR_API_KEY" \
"https://vid2scene.com/api/v1/jobs/123e4567-e89b-12d3-a456-426614174000/"
GET Get Download URL (Redirect)
GET /api/v1/jobs/{job_id}/download/{file_type}/
Returns a 302 redirect to a secure, time-limited download URL for the specified file type. URLs expire in 15 minutes.
Path Parameters
Parameter | Type | Description |
---|---|---|
job_id |
UUID | The unique identifier of the job |
file_type |
string | File type to download: ply or spz |
Example Request
# Follow redirects to download the file
curl -H "Authorization: Api-Key YOUR_API_KEY" \
-L "https://vid2scene.com/api/v1/jobs/123e4567-e89b-12d3-a456-426614174000/download/ply/" \
-o scene.ply --fail --show-error
Response
Returns a 302 Found
redirect to the secure download URL. The file will be downloaded directly from cloud storage.
-L
to follow redirects and -o
to save the file. No additional authentication required for the redirected URL.
GET Get Preview Image (Redirect)
GET /api/v1/jobs/{job_id}/preview/
Returns a 302 redirect to a secure, time-limited URL for the preview image. URLs expire in 15 minutes.
Example Request
curl -H "Authorization: Api-Key YOUR_API_KEY" \
-L "https://vid2scene.com/api/v1/jobs/123e4567-e89b-12d3-a456-426614174000/preview/" \
-o preview.jpg --fail --show-error
-L
to follow redirects and -o
to save the image to a file.
Upload
Upload videos for processing.
POST Generate Upload URL
POST /api/v1/generate-upload-url/
Generate a secure upload URL for video files. This returns a time-limited URL that you can use to upload your video directly to our storage.
Request Body
Field | Type | Required | Description |
---|---|---|---|
file_extension |
string | Yes | File extension only (e.g., mp4 , mov ) |
Example Request
curl -X POST \
-H "Authorization: Api-Key YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"file_extension": "mp4"}' \
"https://vid2scene.com/api/v1/generate-upload-url/"
Example Response
{
"url": "https://storage.blob.core.windows.net/container/videos/uuid.mp4?sv=...",
"blob_name": "videos/uuid.mp4"
}
POST Create Processing Job
POST /api/v1/submit-job/
Create and start a new video processing job after uploading your video file.
Request Body
Field | Type | Required | Description |
---|---|---|---|
blob_name |
string | Yes | Blob name from upload response |
title |
string | No | Job title (defaults to filename) |
public |
boolean | No | Make job publicly visible (default: false) |
reconstruction_method |
string | No | Processing method (default: "glomap") |
camera_data |
object | No | Camera view data (position, lookAt, up, cameraType) |
Example Request
curl -X POST \
-H "Authorization: Api-Key YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"blob_name": "videos/uuid.mp4", "title": "My awesome video", "public": false, "reconstruction_method": "glomap"}' \
"https://vid2scene.com/api/v1/submit-job/"
Example Response
{
"success": true,
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"title": "My awesome video",
"status": "queued",
"uploaded_at": "2024-01-15T10:30:00Z",
"public": false,
"reconstruction_method": "glomap",
"training_max_num_gaussians": 30000,
"training_num_steps": 7000,
"camera_data": {
"position": {"x": 0.0, "y": 0.0, "z": 5.0},
"lookAt": {"x": 0.0, "y": 0.0, "z": 0.0},
"up": {"x": 0.0, "y": 1.0, "z": 0.0},
"cameraType": "orbital"
}
}
Error Responses
All error responses include an error message and appropriate HTTP status code.
Status Code | Description | Example Response |
---|---|---|
400 |
Bad Request | {"error": "Invalid file format"} |
401 |
Unauthorized | {"error": "Invalid API key"} |
403 |
Forbidden | {"error": "Insufficient permissions"} |
404 |
Not Found | {"error": "Job not found"} |
429 |
Rate Limited | {"error": "Rate limit exceeded"} |
500 |
Server Error | {"error": "Internal server error"} |