Download 3D model file
curl --request GET \
--url https://api.splat-3d.com/v1/scenes/{id}/download \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.splat-3d.com/v1/scenes/{id}/download"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.splat-3d.com/v1/scenes/{id}/download', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}Scenes
Download 3D model file
Download the processed 3D Gaussian Splat model file.
GET
/
v1
/
scenes
/
{id}
/
download
Download 3D model file
curl --request GET \
--url https://api.splat-3d.com/v1/scenes/{id}/download \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.splat-3d.com/v1/scenes/{id}/download"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.splat-3d.com/v1/scenes/{id}/download', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}{
"error": {
"code": "not_found",
"message": "Scene not found.",
"details": [
{
"field": "iterations",
"value": 15000,
"allowed": {
"min": 3000,
"max": 10000
},
"tier": "standard",
"hint": "iterations=15000 requires the quality tier or higher."
}
]
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"period": "2026-10",
"limit": 100,
"field": "scenes_created",
"current": 2
}
}Authorizations
API key in format: s3d_...
Path Parameters
Scene ID
Example:
"a1b2c3d4e5f6"
Query Parameters
File to download. Omit it for the default: spz if the scene has one, otherwise sog, then ply; the X-Splat-Format header names the file sent. spz: Niantic's compressed splat format, lossy, for viewers that load .spz files, such as native renderers. Older scenes, and scenes whose SPZ conversion failed, have none: format=spz answers 404 for them, never another format. sog: compressed, for web viewers. ply: raw splat at full precision. sog and ply fall back to each other.
Available options:
sog, ply, spz Example:
"spz"
Response
Binary model file (application/octet-stream).