{
  "opencollection": "1.0.0",
  "info": {
    "name": "Public API v1 credits Marble API",
    "version": "1.0.0"
  },
  "request": {
    "auth": {
      "type": "apikey",
      "key": "WLT-Api-Key",
      "value": "{{WLT-Api-Key}}",
      "placement": "header"
    }
  },
  "items": [
    {
      "info": {
        "name": "Marble",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Media Asset",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.worldlabs.ai/marble/v1/media-assets/:media_asset_id",
            "params": [
              {
                "name": "media_asset_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a media asset by ID.\n\nRetrieves metadata for a previously created media asset.\n\nArgs:\n    media_asset_id: The media asset identifier.\n\nReturns:\n    MediaAsset object with media_asset_id, file_name, extension, kind,\n    metadata, created_at, and updated_at.\n\nRaises:\n    HTTPException: 404 if not found"
        },
        {
          "info": {
            "name": "Prepare a media asset upload",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.worldlabs.ai/marble/v1/media-assets:prepare_upload",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Prepare a media asset upload for use in world generation.\n\nThis API endpoint creates a media asset record and returns a signed upload URL.\nUse this workflow to upload images or videos that you want to reference in world\ngeneration requests.\n\n## Workflow\n\n1. **Prepare Upload** (this endpoint): Get a `media_asset_id` and `upload_url`\n2. **Upload File**: Use the signed URL to upload your file\n3. **Generate World**: Reference the `media_asset_id` in `/worlds:generate` with\n   source type \"media_asse"
        },
        {
          "info": {
            "name": "Get Operation",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.worldlabs.ai/marble/v1/operations/:operation_id",
            "params": [
              {
                "name": "operation_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get an operation by ID.\n\nPoll this endpoint to check the status of a long-running operation.\nWhen done=true, the response field contains the generated world.\n\nArgs:\n    operation_id: The operation identifier from /worlds:generate.\n\nReturns:\n    GetOperationResponse[World] with:\n        - operation_id: Operation identifier\n        - created_at: Creation timestamp\n        - updated_at: Last update timestamp\n        - expires_at: Expiration timestamp\n        - done: true when complete, false while "
        },
        {
          "info": {
            "name": "Pano Depth To Rgb",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.worldlabs.ai/marble/v1/pano:depth_to_rgb",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Generate an RGB panorama from a depth panorama.\n\nProvide a depth panorama and a text prompt\ndescribing the desired appearance. The depth map\nsupplies the scene geometry; the model synthesizes\ntextures that match that geometry and returns a\npanoramic RGB image.\n\nAccepted depth inputs:\n\n* **EXR**: float depth values. Omit\n  ``z_min`` and ``z_max``.\n* **PNG**: depth values normalized to [0, 1].\n  Provide both ``z_min`` and ``z_max`` so the\n  service can decode the PNG correctly.\n\nFor a complete PNG"
        },
        {
          "info": {
            "name": "Get World",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.worldlabs.ai/marble/v1/worlds/:world_id",
            "params": [
              {
                "name": "world_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a world by ID.\n\nRetrieves a world's details including generated assets if available.\nOnly the world owner or users with access to public worlds can retrieve them.\n\nArgs:\n    world_id: The unique identifier of the world.\n\nReturns:\n    World object with world_id, display_name, tags, assets, created_at,\n    updated_at, permission, model, world_prompt, and world_marble_url.\n\nRaises:\n    HTTPException: 404 if world not found or access denied"
        },
        {
          "info": {
            "name": "Delete World",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.worldlabs.ai/marble/v1/worlds/:world_id",
            "params": [
              {
                "name": "world_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a world by ID.\n\nPermanently deletes a world and its associated assets.\nOnly the world owner can delete a world.\n\nArgs:\n    world_id: The unique identifier of the world to delete.\n\nReturns:\n    DeleteWorldResponse confirming the deletion.\n\nRaises:\n    HTTPException: 403 if user is not the world owner\n    HTTPException: 404 if world not found\n    HTTPException: 500 if deletion fails"
        },
        {
          "info": {
            "name": "Export World",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.worldlabs.ai/marble/v1/worlds/:world_id:export",
            "params": [
              {
                "name": "world_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Export a generated world asset.\n\nPLY splat exports are converted synchronously, cached in GCS, and returned\nas completed operations. HQ mesh exports reuse the existing async mesh\nexport service and return an in-progress operation."
        },
        {
          "info": {
            "name": "Generate World",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.worldlabs.ai/marble/v1/worlds:generate",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Start world generation.\n\nCreates a new world generation job and returns a long-running operation.\nPoll the /operations/{operation_id} endpoint to check generation status\nand retrieve the generated world when complete.\n\nArgs:\n    request: The world generation request containing world_prompt, display_name,\n        tags, model, seed, and permission settings.\n\nReturns:\n    GenerateWorldResponse with operation_id and timestamps. Use the operation_id\n    to poll for completion.\n\nRaises:\n    HTTPExcept"
        },
        {
          "info": {
            "name": "List Worlds",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.worldlabs.ai/marble/v1/worlds:list",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "List worlds with optional filters.\n\nReturns worlds created through the API with optional filtering and pagination.\n\nArgs:\n    request: List request with optional filters:\n        - page_size: Number of results per page (default: 10)\n        - page_token: Pagination token from previous response\n        - status: Filter by status (e.g., \"COMPLETED\")\n        - model: Filter by model name (e.g., \"marble-1.0-plus\")\n        - tags: Filter by tags (matches worlds with any tag)\n        - is_public: Filt"
        }
      ]
    }
  ],
  "bundled": true
}