https://api.gizmo.antimlabs.com/v1
Authentication
All endpoints require an API key via theAuthorization header:
Quick Start
1. Verify your key
2. Generate a scene
202 Accepted with a job_id — poll with GET /v1/jobs/{job_id} or stream real-time progress via SSE at GET /v1/jobs/{job_id}/events.
3. Export to a simulator
Endpoint Groups
Scenes
Assets
POST /v1/assets attaches generated assets to a scene. If scene_id is omitted, a scene is created for you automatically. To generate a standalone environment instead, use POST /v1/scenes.Both
POST /v1/scenes and POST /v1/assets accept an optional asset_pipeline field (auto, gizmo, or cad). auto picks the best pipeline for the prompt; gizmo uses editable parametric primitives; cad uses B-Rep solids via build123d for precision mechanical parts.Reference images. Both generate endpoints accept
reference_image_urls (up to 3 http(s) URLs). For scenes, a room photo grounds the structure build in your image; for assets, photos ground geometry and texture.Build method is automatic. Asset requests are triaged per prompt: structured or jointed objects (furniture, appliances, racks) build as prim-based articulated assets (~15–20 min); organic objects (food, plants, fabric) build as high-fidelity mesh scans (~2–4 min). There is no knob to set — the API picks the right method.
Jobs
Catalog
Account
Async Generation
Scene and asset generation is asynchronous.POST endpoints return 202 Accepted with a job_id. Use the Jobs endpoints to track progress:
- Polling:
GET /v1/jobs/{id}returns status (queued→running→succeeded|failed|cancelled) - Streaming:
GET /v1/jobs/{id}/eventsprovides real-time Server-Sent Events with stage transitions, asset completions, and errors
SSE Event Types
Rate Limiting
Every response includes rate limit headers:X-RateLimit-Limit— requests allowed per minuteX-RateLimit-Remaining— requests remaining in current windowX-RateLimit-Reset— Unix timestamp when the window resets
Error Format
All errors follow a consistent structure:authentication_required (401), insufficient_credits (402), scene_not_found (404), rate_limit_exceeded (429).