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

# World erstellen

> Erstellt eine World Labs Marble-Weltgenerierungsaufgabe

Erzeugen Sie erkundbare 3D-Welten mit World Labs Marble. Diese API ist asynchron: Create-Responses geben eine Task-Identität und eine `poll_url` für Statusabfragen zurück.

Unterstützte Modelle sind `marble-1.0`, `marble-1.1` und `marble-1.1-plus`. World Labs dokumentiert `marble-1.0-draft`, aber TokenLab stellt draft generation in diesem Endpoint derzeit nicht bereit.

## Request-Body

<ParamField body="model" type="string" default="marble-1.0">
  Zu verwendendes Marble-Modell: `marble-1.0`, `marble-1.1` oder `marble-1.1-plus`.
</ParamField>

<ParamField body="prompt" type="string">
  Textprompt für reine Textgenerierung oder als Anleitung mit Bild-/Videoeingaben.
</ParamField>

<ParamField body="world_prompt" type="object">
  Natives World Labs `world_prompt`-Objekt für fortgeschrittene Aufrufer. Unterstützte Prompt-Typen sind `text`, `image`, `multi-image` und `video`.
</ParamField>

<ParamField body="image" type="string">
  Base64- oder data-URL-Bildprompt.
</ParamField>

<ParamField body="image_url" type="string">
  Bild-URL-Prompt.
</ParamField>

<ParamField body="images" type="array">
  Mehrere Bildprompts für verkürzte multi-image-Generierung. Bis zu 4 Bilder. Für den nativen World Labs reconstruction mode übergeben Sie `world_prompt.type="multi-image"` mit `reconstruct_images: true` und bis zu 8 Bilder.
</ParamField>

<ParamField body="video_url" type="string">
  Video-URL-Prompt.
</ParamField>

<ParamField body="is_pano" type="boolean | string">
  Bei Bildeingaben `true` für ein vorhandenes Panorama, `false` für ein normales Einzelbild oder `auto`.
</ParamField>

<ParamField body="seed" type="integer">
  Optionaler Seed von 0 bis 4294967295.
</ParamField>

<ParamField body="display_name" type="string">
  Optionaler Anzeigename für die Upstream-Welt, bis zu 64 Zeichen.
</ParamField>

<ParamField body="tags" type="array">
  Optionale Upstream-Tags. Bis zu 10 Tags, jeweils bis zu 32 Zeichen.
</ParamField>

<ParamField body="permission" type="object">
  Optionales World Labs permission-Objekt.
</ParamField>

## Antwort

<ResponseField name="id" type="string">
  Öffentliche Task-ID für Polling.
</ResponseField>

<ResponseField name="task_id" type="string">
  Alias für die Async-Task-ID.
</ResponseField>

<ResponseField name="operation_id" type="string">
  World-Labs-Vorgangs-ID.
</ResponseField>

<ResponseField name="poll_url" type="string">
  Bevorzugte Polling-URL für diesen Task.
</ResponseField>

<ResponseField name="status" type="string">
  Task-Status: `pending`, `processing`, `completed` oder `failed`.
</ResponseField>

<ResponseField name="world_marble_url" type="string">
  URL der generierten Marble-Welt nach Abschluss.
</ResponseField>

<ResponseField name="glb_url" type="string">
  Collider-Mesh-GLB-URL, sofern verfügbar.
</ResponseField>

<ResponseField name="pano_url" type="string">
  Panorama-Bild-URL, sofern verfügbar.
</ResponseField>

## Preise

World Labs rechnet in credits ab. TokenLab zieht zunächst das Maximum des Request-Typs ab und rechnet anhand von `cost.total_credits` der abgeschlossenen operation ab, sofern verfügbar. Standard-Marble-Requests benötigen bis zu 1.600 credits. `marble-1.1-plus` benötigt bis zu 3.100 credits.

## Umfang

Diese Management-Endpunkte decken TokenLab-eigene Medien-Assets und abgeschlossene generierte Worlds ab. TokenLab stellt weiterhin keine `marble-1.0-draft`-Generierung und keine eigenständigen pano/depth-Tools bereit.

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tokenlab.sh/v1/worlds/generations" \
    -H "Authorization: Bearer sk-your-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "marble-1.1",
      "prompt": "Eine ruhige Küstenstadt bei Sonnenuntergang mit engen Gassen und warmem Licht"
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.tokenlab.sh/v1/worlds/generations",
      headers={"Authorization": "Bearer sk-your-api-key"},
      json={
          "model": "marble-1.1",
          "prompt": "Eine ruhige Küstenstadt bei Sonnenuntergang mit engen Gassen und warmem Licht",
      },
  )

  task = response.json()
  print(task["id"], task["poll_url"])
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.tokenlab.sh/v1/worlds/generations', {
    method: 'POST',
    headers: {
      Authorization: 'Bearer sk-your-api-key',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'marble-1.1',
      prompt: 'Eine ruhige Küstenstadt bei Sonnenuntergang mit engen Gassen und warmem Licht'
    })
  });

  const task = await response.json();
  console.log(task.id, task.poll_url);
  ```
</RequestExample>
