> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gizmo.antimlabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get scene progress and delivery findings



## OpenAPI

````yaml /openapi.json get /v1/scenes/{scene_id}
openapi: 3.1.0
info:
  title: Gizmo API
  description: >-
    Generate individual assets, Team batches, or complete Team scenes from text
    and reference images. Start with the [API
    Guides](https://docs.gizmo.antimlabs.com/api-access) for complete workflows.


    Export assets to USD / USDZ, MJCF, SDF, and GLB. Available formats depend on
    the asset and its accepted release. A successful export is not simulator
    certification.


    ## Authentication


    All endpoints require an API key passed via the `Authorization` header:


    ```

    Authorization: Bearer gzm_k1_<your-key>

    ```


    Select Personal or your Team in Gizmo, then create a key in API Access. Both
    use https://api.gizmo.antimlabs.com; the key selects the library and billing
    account. A Team may be called workspace in response fields and error codes.


    ## Rate Limiting


    Rate limits are per-key. Rate-limited API-key responses include:

    - `X-RateLimit-Limit` — requests allowed per minute

    - `X-RateLimit-Remaining` — requests remaining in current window

    - `X-RateLimit-Reset` — Unix timestamp when the window resets


    ## Async Generation


    Generation is asynchronous. POST /v1/scenes reconstructs a Team scene
    through planning, canonical assets, structure and placement; it requires
    Idempotency-Key and uses a configured job budget unless max_cost_cents is
    supplied. Scene availability depends on the Team release. Asset generation
    is asynchronous. `POST /v1/assets` returns `202 Accepted` with a `job_id`.
    Use `GET /v1/jobs/{id}` to poll. Personal keys also support `GET
    /v1/jobs/{id}/events` for SSE streaming. Team keys currently do not support
    SSE, GET /v1/usage or DELETE /v1/assets/{asset_id}; those operations return
    403 workspace_route_unavailable. Use polling for progress and Team Billing
    for the current balance. Batch generation, saved-file links and export-only
    retries require Team access. One shared API reference describes both key
    types; it does not imply every operation is available to both. Team
    generation requires Idempotency-Key.


    ## Errors


    Errors on public endpoints use `detail.error` with code, message, and
    status. Validation errors also include fields. Responses include
    X-Request-ID for support.

    ```json

    {"detail": {"error": {"code": "asset_not_found", "message": "Asset not
    found", "status": 404}}}

    ```
  version: 1.0.0
servers:
  - url: https://api.gizmo.antimlabs.com
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Assets
    description: Generate individual assets and browse your Personal or Team library.
  - name: Scenes
    description: >-
      Reconstruct complete Team scenes from text or inline reference images,
      track delivery, and download scene files.
  - name: Batches
    description: >-
      Team-only generation of up to 1,000 assets, with partial results and
      automatic queueing.
  - name: Images
    description: Upload and retrieve private original reference images.
  - name: Jobs
    description: >-
      Track, cancel and recover generation jobs. Teams use polling; Personal
      keys also support SSE.
  - name: Exports
    description: >-
      Download simulator formats, visual GLBs and collision bundles. Saved-file
      routes require Team access.
  - name: Account
    description: >-
      Check your key's identity. Request usage statistics currently require
      Personal access.
paths:
  /v1/scenes/{scene_id}:
    get:
      tags:
        - Scenes
      summary: Get scene progress and delivery findings
      operationId: get_scene_v1_scenes__scene_id__get
      parameters:
        - name: scene_id
          in: path
          required: true
          schema:
            type: string
            title: Scene Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SceneStatusResponse'
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
          description: Too Many Requests
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
          description: Service Unavailable
components:
  schemas:
    SceneStatusResponse:
      properties:
        ok:
          type: boolean
          const: true
          title: Ok
        scene_id:
          type: string
          title: Scene Id
        job:
          $ref: '#/components/schemas/JobSummary'
        result:
          anyOf:
            - $ref: '#/components/schemas/SceneResult'
            - type: 'null'
      type: object
      required:
        - ok
        - scene_id
        - job
        - result
      title: SceneStatusResponse
    ApiErrorResponse:
      properties:
        detail:
          $ref: '#/components/schemas/ApiErrorPayload'
      type: object
      required:
        - detail
      title: ApiErrorResponse
    JobSummary:
      properties:
        reserved_spend_cents:
          anyOf:
            - type: integer
            - type: 'null'
          title: Reserved Spend Cents
          description: >-
            Legacy customer credits held; zero for new usage-billed jobs, null
            when unavailable
        settled_spend_cents:
          anyOf:
            - type: integer
            - type: 'null'
          title: Settled Spend Cents
          description: >-
            Customer credits charged so far, not total provider infrastructure
            cost
        unresolved_provider_calls:
          anyOf:
            - type: integer
            - type: 'null'
          title: Unresolved Provider Calls
        billing_status:
          type: string
          enum:
            - unavailable
            - pending
            - reconciliation_required
            - complete
          title: Billing Status
          default: unavailable
        artifact_status:
          type: string
          enum:
            - unavailable
            - not_published
            - published
          title: Artifact Status
          default: unavailable
        published_formats:
          items:
            type: string
          type: array
          title: Published Formats
        validation_status:
          type: string
          const: not_reported
          title: Validation Status
          default: not_reported
        scene_pricing:
          anyOf:
            - $ref: '#/components/schemas/ScenePricing'
            - type: 'null'
          description: >-
            Immutable fixed scene price: delivered canonical assets × asset
            price + assembly fee; failed/cancelled jobs are free
        scene_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Scene Id
        scene_progress:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Scene Progress
        phase:
          anyOf:
            - type: string
            - type: 'null'
          title: Phase
        failure_stage:
          anyOf:
            - type: string
              enum:
                - parent
                - blender
                - export
            - type: 'null'
          title: Failure Stage
          description: Recorded failed stage, when known
        retry_mode:
          anyOf:
            - type: string
              const: export
            - type: 'null'
          title: Retry Mode
          description: Export recovery reuses saved authoring without regeneration
        retry_of_job_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Retry Of Job Id
          description: Source job for an explicit workspace retry
        asset_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Asset Id
          description: Library asset identifier, when assigned
        id:
          type: string
          title: Id
          description: Job identifier
          examples:
            - job_a1b2c3d4
        status:
          type: string
          title: Status
          description: Job status
          examples:
            - running
        mode:
          type: string
          title: Mode
          description: Generation mode
          examples:
            - asset
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        created_at:
          type: number
          title: Created At
          default: 0
        started_at:
          anyOf:
            - type: number
            - type: 'null'
          title: Started At
        completed_at:
          anyOf:
            - type: number
            - type: 'null'
          title: Completed At
      type: object
      required:
        - id
        - status
        - mode
      title: JobSummary
    SceneResult:
      properties:
        id:
          type: string
          title: Id
        status:
          type: string
          enum:
            - complete
            - candidate_delivered
            - partial
          title: Status
        sceneCommitted:
          type: boolean
          title: Scenecommitted
        validationPassed:
          type: boolean
          title: Validationpassed
        structure_status:
          type: string
          enum:
            - complete
            - partial
          title: Structure Status
        assetDefinitions:
          anyOf:
            - $ref: '#/components/schemas/SceneAssetDefinitions'
            - type: 'null'
        counts:
          $ref: '#/components/schemas/SceneCounts'
        exports:
          additionalProperties:
            $ref: '#/components/schemas/SceneExport'
          type: object
          title: Exports
      type: object
      required:
        - id
        - status
        - sceneCommitted
        - validationPassed
        - structure_status
        - counts
        - exports
      title: SceneResult
    ApiErrorPayload:
      properties:
        error:
          $ref: '#/components/schemas/ApiErrorDetail'
      type: object
      required:
        - error
      title: ApiErrorPayload
    ScenePricing:
      properties:
        asset_price_cents:
          type: integer
          title: Asset Price Cents
        assembly_fee_cents:
          type: integer
          title: Assembly Fee Cents
        delivered_assets:
          anyOf:
            - type: integer
            - type: 'null'
          title: Delivered Assets
      type: object
      required:
        - asset_price_cents
        - assembly_fee_cents
      title: ScenePricing
    SceneAssetDefinitions:
      properties:
        planned:
          type: integer
          title: Planned
        delivered:
          type: integer
          title: Delivered
        excluded:
          type: integer
          title: Excluded
      type: object
      required:
        - planned
        - delivered
        - excluded
      title: SceneAssetDefinitions
    SceneCounts:
      properties:
        planned:
          type: integer
          title: Planned
        eligible:
          type: integer
          title: Eligible
        excluded:
          type: integer
          title: Excluded
        accepted:
          type: integer
          title: Accepted
        pending:
          type: integer
          title: Pending
      type: object
      required:
        - planned
        - eligible
        - excluded
        - accepted
        - pending
      title: SceneCounts
    SceneExport:
      properties:
        url:
          type: string
          title: Url
          description: Team-authenticated POST download URL, relative to the API origin
        sha256:
          type: string
          title: Sha256
        size_bytes:
          type: integer
          title: Size Bytes
      type: object
      required:
        - url
        - sha256
        - size_bytes
      title: SceneExport
    ApiErrorDetail:
      properties:
        code:
          type: string
          title: Code
          description: Machine-readable error code
          examples:
            - asset_not_found
        message:
          type: string
          title: Message
          description: Human-readable description
          examples:
            - Asset ast_abc123 not found
        fields:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Fields
        status:
          type: integer
          title: Status
          description: HTTP status code
          examples:
            - 404
      type: object
      required:
        - code
        - message
        - status
      title: ApiErrorDetail
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: gzm_k1_<hex>
      description: >-
        Select Personal or your Team in Gizmo, then create a key in API Access.
        The key selects your library and billing account.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.