Capture Metadata (v2)
Version 2
This version improves on version 1 with better performance and extra features. New users of the Teleport API should use this endpoint instead of the original v1.
Use this endpoint to retrieve detailed metadata for a specific capture.
The response contains the model_url to retrieve the encoded splats according to the desired content_profile, the position and rotation to place the initial camera, GPS transformation and registration telemetry and the url to retrieve all the camera sequence payloads.
You must supply the capture identifiers explicitly inside the structured URL path. You can use the optional content_profile, crop_variant, and coord_system query parameters to specify which model variant you want to download and in which coordinates basis the transforms should be returned.
Endpoint#
Replace RESOURCEID with the share identifier (sid) of the capture you wish to query. You can obtain the sid from the capture listing.
An optional segmented_capture_eid can be added to select the specific segment, separated by a - (eg. 9db9accf580b4040bd75c28610d318a7-va2wyxcbt1fi).
Parameters#
Additional query parameters can be added to the url: the endpoint will retrieve the specific combination of capture, segmented_capture and encoded_splats for the specific content_profile with cropped or full crop_variant and using the desired coord_system to generate the correct url to retrieve the correct metadata.json.
If the combination of parameters doesn't yield a valid result, for example the segmented_capture doesn't exist, the endpoint will return the appropriate error (404 for example).
| Parameter | Type | Description | Values |
|---|---|---|---|
content_profile |
string | (Optional) Selects the encoded splats file content profile. Defaults to ply. |
see below |
crop_variant |
string | (Optional) Selects explicit spatial geometry and cropping variations. | e.g., autocrop |
coord_system |
string | (Optional) Selects the target positioning alignment matrix coordinates. Defaults to threejs. |
threejs or colmap (see below) |
The content_profile could be one of the following values:
| Profile | Description |
|---|---|
ply |
Uncompressed, full-resolution .ply model file containing the complete 3D reconstruction. This format preserves the highest fidelity but results in large file sizes. Ideal for offline processing, analysis, or custom rendering pipelines that support .ply meshes directly. |
rad |
Multi-resolution Gaussian Splatting format designed for optimized progressive streaming and multi-scale Level of Detail (LoD) rendering. It packages spatial scene hierarchies seamlessly to allow immediate visual feedback and dynamic network chunk loading with range headers. |
sogs-sh0 |
Compressed model using the Self-Organizing Gaussian Splatting (SOGS) method. The returned URL points to a .zip archive containing six data files (.bin and .json), which together describe the splat-based representation. Best for efficient streaming and real-time visualization where quality and size must be balanced. |
fragment-chunk1 |
Fragmented version of the reconstruction split into one or more smaller chunks. Each chunk is optimized for tiled or incremental loading in 3D applications. This profile offers moderate compression and faster access times for partial loading scenarios. |
fragment-float16 |
Similar to fragment-chunk1, but uses 16-bit floating-point precision for storage. This reduces file size further at a small cost to numerical precision, making it suitable for lightweight devices or when bandwidth is limited. |
fragment-chunk1-sh0 |
A variant of the fragmented format that applies SH0 (spherical harmonics order 0) lighting coefficients. Provides compact files optimized for real-time lighting and rendering consistency across different environments. |
ksplat-compress0 |
First-generation Kernel Splatting format using baseline compression. Produces smaller files than ply while maintaining good quality. Recommended for general use cases and visualization pipelines already supporting ksplat models. |
ksplat-v2-compress0 |
Version 2 of the Kernel Splatting format with updated data encoding and improved GPU compatibility. Uses minimal compression for fast decompression and higher visual fidelity. |
ksplat-v2-compress1 |
Same as ksplat-v2-compress0 but applies stronger compression to reduce file size. Ideal for cloud storage or web distribution where download speed matters more than minor quality loss. |
ksplat-v2-compress2 |
The highest compression level of the V2 ksplat format. Generates the smallest files with minimal visual degradation. Recommended for quick previews, large-scale dataset sharing, or mobile visualization. |
The coord_system could be one of the following values (default threejs):
| System | Description |
|---|---|
threejs |
Right-handed coordinate system where the X-axis points right, the Y-axis points up, and the Z-axis points out of the screen toward the viewer. This matches the standard default conventions used across the Three.js runtime library and web-based WebGL environments. |
colmap |
Right-handed coordinate system typical of computer vision and Structure-from-Motion (SfM) pipelines. The X-axis points right, the Y-axis points down (matching image space vertical conventions), and the Z-axis points forward along the optical viewing axis into the scene. |
Example Request#
curl -X GET "https://teleport.varjo.com/api/v2/captures/3f417d8s82d484236ab911f160c738ebd/metadata?content_profile=rad&crop_variant=autocrop&coord_system=threejs"
⚠️ Note: The endpoint will evaluate the validity of the parameters and, if succesful, issue a
307 TEMPORARY REDIRECTresponse to the client with the location to the CDN url of the metadata.json payload.
Example Response#
{
"name": "My Capture",
"sid": "3f417d8s82d484236ab911f160c738ebd",
"segmented_capture_eid": "mnfgkhvlhdt4",
"encoded_splats_eid": "tvkg7nn196r2",
"content_profile": "rad",
"crop_variant": null,
"coord_system": "threejs",
"first_camera": {
"matrix": [0.952639297541089, -0.00242687668640873, -0.30409287898596, 0, -0.0782583169447297, 0.96433321678674, -0.252857831262385, 0, 0.293860518970138, 0.26468010365588, 0.918471794950348, 0, -126.499737648297, 117.44144276809, 452.788709279489, 1],
"position": [-126.499737648297, 117.44144276809, 452.788709279489],
"rotation": [-0.132130887573649, 0.152661491784358, 0.0193602726124849, 0.979214520582464]
},
"gps_transform": {
"matrix": [0.994090498273602, 0.00181318486139238, -0.048666314049058, 0, 0.0486638874816957, -0.0753215006347429, 0.99123464130226, 0, -0.00187718343056261, -0.99242682371201, -0.0753199328171446, 0, -457.635035906481, 133.419543491566, -214.887277175702, 1],
"position": [-457.635035906481, 133.419543491566, -214.887277175702],
"rotation": [0.733170783508482, 0.0172934868979755, -0.017316244204907, 0.679604065031327],
"gps": {
"latitude": 32.3545526944444,
"longitude": 34.8650305277778,
"altitude": 150.119
}
},
"model_url": "https://6das98dsa8das.cloudfront.net/api-captures-production/7dsa8dsa28ad/...",
"cameras_url": "https://d2dbs5xyxtkvd5.cloudfront.net/api/v2/captures-metadata/3f417d8s82d484236ab911f160c738ebd/uia18xq4z5fz/5m2d3zcvj82n/threejs/cameras.json"
}
Response Details#
content_profile- Indicates which output profile this metadata describes (for example,plyorrad).first_camera- Contains the decoupled spatial tracking structures (matrix, position, and quaternion rotation) corresponding to the capture's initial viewpoint pose.gps_transform- Provides the affine matrices and quaternion arrays required to align the local mesh spatial volume with real-world geospatial coordinates (latitude, longitude, altitude).model_url- CDN link for downloading the generated 3D models.cameras_url- CDN link for the list of the decoupled spatial tracking structures (matrix, position, and quaternion rotation) of all the camera poses used during the reconstruction.
💡 Tip: You can use the returned
model_urlto directly download the model file from the CDN, or integrate them into your 3D visualization pipeline.