> ## 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.

# 3D Model Oluştur

> Bir 3D model oluşturma görevi oluşturur

Tripo3D ve diğer sağlayıcıları kullanarak metin veya görsellerden 3D modeller oluşturun. Bu asenkron bir API'dir. Oluşturma yanıtları görev kimliğini döndürür ve uygun olduğunda tercih edilen `poll_url` değerini de içerebilir.

Herkese açık 3D operation değeri istek şekline göre çıkarılır: yalnızca `prompt` içeren istekler `text-to-3d`, `image` veya `image_url` içeren istekler `image-to-3d` olarak işlenir. Bu endpoint `operation` istek alanını sunmaz; legacy `3d-generation` değerini göndermeyin.

## İstek Gövdesi

<ParamField body="model" type="string" default="tripo-h3.1">
  Kullanilacak model, ornegin `tripo-h3.1` veya `tripo-p1.0`. Belirli bir giris turu veya cikti formatina guvenmeden once `GET /v1/models?recommended_for=3d` sorgulayin.
</ParamField>

<ParamField body="prompt" type="string" required>
  Oluşturulacak 3D modelin metin açıklaması.
</ParamField>

<ParamField body="image" type="string">
  Görselden 3D'ye üretim için Base64 kodlu görsel.
</ParamField>

<ParamField body="image_url" type="string">
  Görselden 3D'ye üretim için görselin URL'si.
</ParamField>

<ParamField body="format" type="string" default="glb">
  Çıktı formatı: `glb`, `fbx`, `obj` veya `usdz`.
</ParamField>

<ParamField body="quality" type="string" default="standard">
  Kalite seviyesi: `draft`, `standard` veya `high`.
</ParamField>

<ParamField body="style" type="string">
  Model için stil ön ayarı.
</ParamField>

<ParamField body="seed" type="integer">
  Tekrarlanabilir üretim için seed değeri.
</ParamField>

<ParamField body="user" type="string">
  Son kullanıcı için benzersiz bir tanımlayıcı.
</ParamField>

## Yanıt

<ResponseField name="id" type="string">
  Durum sorgulama için görev kimliği (Task ID).
</ResponseField>

<ResponseField name="task_id" type="string">
  Adaptör tarafından döndürüldüğünde asenkron görev kimliği takma adı.
</ResponseField>

<ResponseField name="poll_url" type="string">
  Uygun olduğunda dönen öncelikli polling URL'si.
</ResponseField>

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

<ResponseField name="created" type="integer">
  Görevin oluşturulma zamanına ait Unix zaman damgası.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tokenlab.sh/v1/3d/generations" \
    -H "Authorization: Bearer sk-your-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "tripo-h3.1",
      "prompt": "A detailed medieval castle with towers",
      "format": "glb",
      "quality": "high"
    }'
  ```

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

  response = requests.post(
      "https://api.tokenlab.sh/v1/3d/generations",
      headers={"Authorization": "Bearer sk-your-api-key"},
      json={
          "model": "tripo-h3.1",
          "prompt": "A detailed medieval castle with towers",
          "format": "glb",
          "quality": "high"
      }
  )

  task_id = response.json()["id"]
  print(f"Task ID: {task_id}")
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.tokenlab.sh/v1/3d/generations', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer sk-your-api-key',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'tripo-h3.1',
      prompt: 'A detailed medieval castle with towers',
      format: 'glb',
      quality: 'high'
    })
  });

  const data = await response.json();
  console.log(`Task ID: ${data.id}`);
  ```

  ```go Go theme={null}
  package main

  import (
      "bytes"
      "encoding/json"
      "fmt"
      "net/http"
  )

  func main() {
      payload := map[string]interface{}{
          "model":   "tripo-h3.1",
          "prompt":  "A detailed medieval castle with towers",
          "format":  "glb",
          "quality": "high",
      }
      body, _ := json.Marshal(payload)

      req, _ := http.NewRequest("POST", "https://api.tokenlab.sh/v1/3d/generations", bytes.NewBuffer(body))
      req.Header.Set("Authorization", "Bearer sk-your-api-key")
      req.Header.Set("Content-Type", "application/json")

      client := &http.Client{}
      resp, _ := client.Do(req)
      defer resp.Body.Close()

      var result map[string]interface{}
      json.NewDecoder(resp.Body).Decode(&result)
      fmt.Printf("Task ID: %s\n", result["id"])
  }
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init('https://api.tokenlab.sh/v1/3d/generations');

  curl_setopt_array($ch, [
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_POST => true,
      CURLOPT_HTTPHEADER => [
          'Content-Type: application/json',
          'Authorization: Bearer sk-your-api-key'
      ],
      CURLOPT_POSTFIELDS => json_encode([
          'model' => 'tripo-h3.1',
          'prompt' => 'A detailed medieval castle with towers',
          'format' => 'glb',
          'quality' => 'high'
      ])
  ]);

  $response = curl_exec($ch);
  curl_close($ch);

  $data = json_decode($response, true);
  echo "Task ID: " . $data['id'];
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "status": "pending",
    "created": 1706000000,
    "model": "tripo-h3.1"
  }
  ```
</ResponseExample>
