Import from a capture app

Paste a share URL from Luma, Polycam, or Scaniverse. We resolve it to the direct splat asset and run the same optimize pipeline as /v1/jobs — no manual download / re-upload. You'll get a job_id back; poll /v1/jobs/<id> for progress.

Luma

Gaussian splats

Only complete captures import. Still-processing scans return 415 with a hint.

Polycam

PLY export required

If the capture isn't exported as PLY in the Polycam app yet, you'll get a 415 telling you to export first.

Scaniverse

USDZ → PLY only

Scaniverse USDZ-without-PLY captures aren't supported yet — convert to PLY in the desktop app and re-share.

API

Each endpoint is a plain POST to https://api.splatforge.dev/v1/import/<provider> with the same bearer auth as /v1/jobs. 10 requests/min/key.

curl -X POST https://api.splatforge.dev/v1/import/luma \
  -H "Authorization: Bearer $SPLATFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"share_url": "https://lumalabs.ai/capture/abc-123"}'

# response
{
  "job_id": "0e2a…",
  "source_url": "https://cdn-luma.com/scenes/abc-123/scene.ply",
  "provider": "luma"
}

Full reference →