---
title: "Pano Depth To Rgb"
method: POST
path: "/marble/v1/pano:depth_to_rgb"
---

# Pano Depth To Rgb

`POST /marble/v1/pano:depth_to_rgb`

## Request

- Base URL: `https://api.worldlabs.ai`
- URL: `https://api.worldlabs.ai/marble/v1/pano:depth_to_rgb`
- Auth: API key in header `WLT-Api-Key`
- TypeScript: <https://skmtc.dev/worldlabs/apis/marble-public-api-v1/docs/marble/v1/pano:depth_to_rgb/post.ts> (a function with typed inputs; its response is checked against the schema)

Generate an RGB panorama from a depth panorama.

Provide a depth panorama and a text prompt
describing the desired appearance. The depth map
supplies the scene geometry; the model synthesizes
textures that match that geometry and returns a
panoramic RGB image.

Accepted depth inputs:

* **EXR**: float depth values. Omit
  ``z_min`` and ``z_max``.
* **PNG**: depth values normalized to [0, 1].
  Provide both ``z_min`` and ``z_max`` so the
  service can decode the PNG correctly.

For a complete PNG-based workflow, see the
[web-chisel-depth-png example](https://github.com/worldlabsai/worldlabs-api-examples/tree/main/web-chisel-depth-png).

Returns a long-running ``Operation``. Poll
``GET /operations/{operation_id}`` until
``done`` is ``true``, then read the generated
panorama URL from ``response.pano_url``.

Raises:
    HTTPException: 400 if invalid request
    HTTPException: 402 if insufficient credits
    HTTPException: 500 if generation could not start

## Request body

- PanoDepthToRgbRequest: Request to generate an RGB panorama from a depth panorama. Provide a depth panorama and a text prompt describing the desired appearance. The depth map supplies the scene geometry; the model synthesizes textures that loosely adhere to that geometry and returns a panoramic RGB image. Accepted depth inputs: * **EXR**: float depth values. Omit ``z_min`` and ``z_max``. * **PNG**: depth values normalized to [0, 1]. Provide both ``z_min`` and ``z_max`` so the service can decode the PNG correctly. For a complete PNG-based workflow, see the `web-chisel-depth-png example <https://github.com/worldlabsai/worldlabs-api-examples/tree/main/web-chisel-depth-png>`. This endpoint returns a long-running ``Operation``. Poll ``GET /operations/{operation_id}`` until ``done`` is ``true``, then read the generated panorama URL from ``response.pano_url``.
  - `depth_pano_image` union, required: Depth panorama image (EXR or PNG). Provide via URI, media_asset, or base64 (max 100 MB).
    - MediaAssetReference: Reference to a previously uploaded MediaAsset.
      - `media_asset_id` string, required: ID of a MediaAsset resource previously created and marked READY
      - `source` 'media_asset'
    - UriReference: Reference to content via a publicly accessible URL.
      - `source` 'uri'
      - `uri` string, required: Publicly accessible URL pointing to the media
    - DataBase64Reference: Reference to content via base64-encoded data.
      - `data_base64` string, required: Base64-encoded content data
      - `extension` string, nullable: File extension without dot (e.g., 'jpg', 'png')
      - `source` 'data_base64'
  - `seed` integer, nullable: Random seed for reproducible generation.
  - `text_prompt` string, required: Text description of the desired appearance.
  - `z_max` number, nullable: Maximum depth. Required for PNG depth maps (normalized to [0, 1]). Must be provided together with z_min and must be greater than z_min. Omit for EXR depth maps.
  - `z_min` number, nullable: Minimum depth. Required for PNG depth maps (normalized to [0, 1]). Must be provided together with z_max. Omit for EXR depth maps.

## Response `200`

Successful Response

- OperationPanoDepthToRgbResult
  - `cost` OperationCost: Settled credit cost for a successful operation.
    - `line_items` OperationCostLineItem[]: Usage events that make up the operation's total credits
      - `credits` integer, required: Credits charged for this usage event
      - `name` string, required: Human-readable usage event name
    - `total_credits` integer, required: Total credits charged for the operation
  - `created_at` string, date-time, nullable: Creation timestamp
  - `done` boolean, required: True if the operation is completed
  - `error` OperationError: Error information for a failed operation.
    - `code` integer, nullable: Error code
    - `message` string, nullable: Error message
  - `expires_at` string, date-time, nullable: Expiration timestamp
  - `metadata` object, nullable: Service-specific metadata, such as progress percentage
  - `operation_id` string, required: Operation identifier
  - `response` PanoDepthToRgbResult: Result from depth-to-RGB panorama generation. Returned inside ``Operation.response`` when the operation completes successfully (``done=true``).
    - `pano_url` string, nullable: URL of the generated RGB panorama image. Available when the operation succeeds.
  - `updated_at` string, date-time, nullable: Last update timestamp

## Other responses

- `402`: The account has insufficient API credits for this request.
- `422`: Validation Error

## Changes

- **2026-11-03** `4a3ed614672e`: 1 info
  - added `data_base64, media_asset, uri` discriminator mapping keys to the `depth_pano_image` request property

[Operation history](https://skmtc.dev/worldlabs/apis/marble-public-api-v1/changes/marble/v1/pano:depth_to_rgb/post.md)

---

[API](https://skmtc.dev/worldlabs/apis/marble-public-api-v1.md) - [All operations](https://skmtc.dev/worldlabs/apis/marble-public-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/worldlabs/apis/marble-public-api-v1/revisions/4a3ed614672e?raw)
