Skip to main content
Use these examples when you already know the kind of input you want to send. For the full request schema, see POST /marble/v1/worlds:generate.

Text prompt

Text prompts are the smallest request. The API generates the panorama first, then generates the world from that panorama.

Single image

For a regular photo or illustration, omit is_pano or set it to false. The API uses the image to generate a panorama, then generates the world.
A source: "uri" URL must be fetchable by World Labs servers with no cookies, authentication, or referer. Hotlink-protected or login-gated hosts can block these fetches and return a 400. If a URL won’t fetch, upload the file as a media asset or inline it with source: "data_base64". See Errors and troubleshooting.

Existing panorama

If your image is a full 360-degree equirectangular panorama, send it as an image prompt. is_pano defaults to auto, so the API checks whether the image looks like a valid equirectangular panorama before skipping pano generation.
Set is_pano to true when your integration has already validated the image as a pano. Set it to false for wide 2:1 images that are not 360-degree equirectangular panoramas, such as banners, crops, or collages.

Multiple images

Use multi-image input when you have several views of the same scene. Add azimuth values when you know where each image faces.

Local media

For local files, create a media asset, upload to the signed URL, then reference the returned media_asset_id in world_prompt. The same flow works for local images, local panoramas, and local videos.
See the Quickstart upload flow for the signed upload steps.