OPENSTRATE_RECON_API
HTTPS endpoints on openstrate.com to upload video, run volumetric reconstruction, poll job state, and open the resulting mesh in the browser viewer. CORS is open for browser use; no API key is required for the public upload and status flow described here.
00_BASE_URL
https://openstrate.com
All paths below are rooted here. JSON bodies use Content-Type: application/json unless noted.
01_TYPICAL_FLOW
- Upload a video with
POST /api/upload(multipart). For.mp4,.webm, etc., the API stores the file and starts reconstruction automatically, returning ajob_id. - Poll
GET /api/reconstruct/status/{job_id}untilstatusiscompleteorfailed. - Open
view_urlfrom the job (or useGET /view/{id}.glbonce you have the asset id).
If you already host the video at a public URL OpenStrate can fetch, you can skip
multipart upload and call POST /api/reconstruct with
video_url instead.
02_POST_API_UPLOAD
Multipart upload for 3D assets and video. Video uploads trigger reconstruction in the same response.
POST /api/upload Content-Type: multipart/form-data
| Field | Description |
|---|---|
file |
Single file field. |
Allowed types include .glb, .ply, .bin,
.omxl, .stl,
and video: .mp4, .mov, .avi, .mkv, .webm.
Max size: 500 MB.
curl -X POST https://openstrate.com/api/upload \ -F "file=@walkthrough.mp4"
Response 200 (mesh upload — no video):
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"filename": "scene.glb",
"url": "https://openstrate.com/api/files/a1b2c3d4-e5f6-7890-abcd-ef1234567890.glb",
"view": "https://openstrate.com/view/a1b2c3d4-e5f6-7890-abcd-ef1234567890.glb",
"size": 2048576
}
Response 200 (video — reconstruction started): same fields plus:
job_id— use with status endpointreconstruction_started— booleanreconstruction_error— present if the pipeline could not be reached (e.g. maintenance)
03_POST_API_RECONSTRUCT
Start a job when the input video is already available at a downloadable HTTPS URL
(e.g. the url from a prior upload).
POST /api/reconstruct
Content-Type: application/json
{
"video_url": "https://openstrate.com/api/files/{uuid}.mp4",
"filename": "optional-original-name.mp4"
}
| Field | Required | Description |
|---|---|---|
video_url |
Yes | URL OpenStrate’s reconstruction worker can fetch. |
filename |
No | Label for logs / job metadata. |
Response 200
{ "job_id": "…", "status": "processing" }
Response 503 — worker unavailable; body may include job_id and error.
04_GET_RECONSTRUCT_STATUS
GET /api/reconstruct/status/{job_id}
Returns the persisted job document. Poll every few seconds while status is pending or processing.
Common fields
| Field | Meaning |
|---|---|
status |
pending, processing, complete, failed |
current_frame / total_frames |
Progress hints when the pipeline reports them |
view_url |
Interactive viewer link when complete |
mesh_viewer_url, glb_asset_url, … |
Optional extra links depending on export settings |
mission_id, relay_base |
Present for progressive / live viewer flows |
error |
Human-readable failure when failed |
curl -s https://openstrate.com/api/reconstruct/status/YOUR_JOB_ID | jq .
05_PIPELINE_CALLBACKS
Endpoints such as POST
/api/reconstruct/progress/{job_id}, POST /api/reconstruct/complete/{job_id}, and POST /api/reconstruct/session/{job_id} are invoked by the
OpenStrate reconstruction service, not by end-user apps. Integrators only need upload + status +
viewer URLs above.
06_MESH_DOWNLOAD_VIEWER
After reconstruction (or direct mesh upload):
- Download:
GET /api/files/{id}.{ext} - Viewer:
GET /view/{id}.{ext}— WebGL viewer, orbit / zoom / pan - Preview PNG (for link unfurls):
GET /api/preview/{id}.{ext}
Upload, download, and preview error semantics match the OpenStrate file host contract
(multipart field file, GET /api/files/…, GET /api/preview/…).
07_ERRORS
| HTTP | Typical cause |
|---|---|
| 400 | Missing file, invalid type, or missing video_url on reconstruct |
| 404 | Unknown job_id or file id |
| 503 | Reconstruction worker unreachable |
| 500 | Storage or internal error |
08_RELATED
Sensing-as-a-service positioning · embed viewers on your site