> ## 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 Oluştur

> World Labs Marble dünya üretim görevi oluşturur

World Labs Marble ile keşfedilebilir 3D dünyalar oluşturun. Bu API asenkrondur: oluşturma yanıtları bir görev kimliği ve durum kontrolleri için `poll_url` döndürür.

Desteklenen modeller `marble-1.0`, `marble-1.1` ve `marble-1.1-plus` modelleridir. World Labs `marble-1.0-draft` modelini belgeler, ancak TokenLab bu endpoint içinde draft generation özelliğini henüz sunmaz.

## İstek Gövdesi

<ParamField body="model" type="string" default="marble-1.0">
  Kullanılacak Marble modeli: `marble-1.0`, `marble-1.1` veya `marble-1.1-plus`.
</ParamField>

<ParamField body="prompt" type="string">
  Yalnızca metin üretimi için ya da görüntü/video girişleriyle rehber olarak kullanılacak metin promptu.
</ParamField>

<ParamField body="world_prompt" type="object">
  Gelişmiş çağrılar için native World Labs `world_prompt` nesnesi. Desteklenen prompt türleri `text`, `image`, `multi-image` ve `video`.
</ParamField>

<ParamField body="image" type="string">
  Base64 veya data URL görüntü promptu.
</ParamField>

<ParamField body="image_url" type="string">
  Görüntü URL promptu.
</ParamField>

<ParamField body="images" type="array">
  Kısa yoldan multi-image generation için birden çok görüntü promptu. En fazla 4 görüntü sağlayın. Native World Labs reconstruction mode için `world_prompt.type="multi-image"`, `reconstruct_images: true` ve en fazla 8 görüntü gönderin.
</ParamField>

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

<ParamField body="is_pano" type="boolean | string">
  Görüntü girişlerinde mevcut panorama için `true`, normal tek görüntü için `false` ya da `auto` ayarlayın.
</ParamField>

<ParamField body="seed" type="integer">
  0 ile 4294967295 arasında isteğe bağlı seed.
</ParamField>

<ParamField body="display_name" type="string">
  Upstream dünya için isteğe bağlı görünen ad, en fazla 64 karakter.
</ParamField>

<ParamField body="tags" type="array">
  İsteğe bağlı World Labs etiketleri. En fazla 10 etiket, her biri en fazla 32 karakter.
</ParamField>

<ParamField body="permission" type="object">
  İsteğe bağlı World Labs permission nesnesi.
</ParamField>

## Yanıt

<ResponseField name="id" type="string">
  Polling için genel görev IDsi.
</ResponseField>

<ResponseField name="task_id" type="string">
  Asenkron görev tanımlayıcı aliası.
</ResponseField>

<ResponseField name="operation_id" type="string">
  World Labs işlem kimliği.
</ResponseField>

<ResponseField name="poll_url" type="string">
  Bu görev için tercih edilen polling URLsi.
</ResponseField>

<ResponseField name="status" type="string">
  Görev durumu: `pending`, `processing`, `completed` veya `failed`.
</ResponseField>

<ResponseField name="world_marble_url" type="string">
  Tamamlandığında oluşturulan Marble dünya URLsi.
</ResponseField>

<ResponseField name="glb_url" type="string">
  Varsa collider mesh GLB URLsi.
</ResponseField>

<ResponseField name="pano_url" type="string">
  Varsa panorama görüntü URLsi.
</ResponseField>

## Fiyatlandırma

World Labs credits üzerinden ücretlendirir. TokenLab istek türü maksimumunu önceden düşer ve tamamlanan operation içinde `cost.total_credits` varsa gerçek credits üzerinden kapatır. Standart Marble istekleri en fazla 1.600 credits kullanır. `marble-1.1-plus` en fazla 3.100 credits kullanır.

## Kapsam

Bu yönetim endpointleri TokenLab sahipliğindeki medya varlıklarını ve tamamlanan world kayıtlarını kapsar. TokenLab hâlâ `marble-1.0-draft` üretimini veya bağımsız pano/depth araçlarını açmaz.

<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": "Gün batımında dar sokakları ve sıcak ışıkları olan sakin bir sahil kasabası"
    }'
  ```

  ```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": "Gün batımında dar sokakları ve sıcak ışıkları olan sakin bir sahil kasabası",
      },
  )

  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: 'Gün batımında dar sokakları ve sıcak ışıkları olan sakin bir sahil kasabası'
    })
  });

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