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

# Video oluştur

> Bir video üretim görevi oluşturur

## Genel bakış

Video üretimi asenkron çalışır. Bir istek gönderirsiniz, `task_id` ve `poll_url` alırsınız, ardından nihai sonuç hazır olana kadar durumu düzenli olarak sorgularsınız.

### Polling davranışı

Oluşturma yanıtı kanonik asenkron kimlik olarak `id` döndürür ve çoğu zaman bunu `task_id` içinde de tekrar eder. Önce `poll_url` adresini izleyin; sabit bir durum uç noktası gerekiyorsa `GET /v1/tasks/{id}` kullanın.

Bir create yanıtı `poll_url` döndürürse, tam olarak o URL’yi çağırın. Bu URL `/v1/tasks/{id}` adresine işaret ediyorsa, onu kanonik sabit durum uç noktası olarak kabul edin.

En güvenilir durum sorgulaması için oluşturma yanıtında dönen `poll_url` değerini aynen kullanın.

### Model ve medya davranışı

Ses çıkışı modele bağlıdır. TokenLab’de Veo 3 ve Seedance istekleri `output_audio` atlandığında varsayılan olarak ses açık kabul edilir. Model ses kontrolünü destekliyorsa, açıkça değiştirmek için `output_audio` kullanın. Uyumluluk için `outputAudio` ve `generate_audio` alias’ları da kabul edilir ve birden fazlası gönderildiğinde `output_audio` ile aynı değerde olmalıdır.

Üretim entegrasyonlarında görsel, video ve ses girdileri için herkese açık `https` URL’leri tercih edin. Uyumlu modeller `data:` URL’lerini kabul etmeye devam eder, ancak büyük base64 yüklerini yeniden denemek, incelemek ve hata ayıklamak daha zordur.

## İstek gövdesi

<ParamField body="model" type="string" default="veo3.1">
  Video model ID si. `veo3.1`, `wan-2.7`, `happyhorse-1.0`, `viduq3`, `pixverse-v6` veya `kling-3.0-video` gibi urun duzeyi mantiksal ID ler kullanin; text-to-video, image-to-video, reference-to-video veya diger varyantlari `operation` ile secin. [Video rehberi](/tr/guides/video-generation) ve [Models API](/tr/api-reference/models/list-models) sayfalarina bakin.
</ParamField>

<Note>
  **PixVerse**

  * Model: `pixverse-c1`, `pixverse-v6`, `pixverse-v5.6`
  * İşlemler: `text-to-video`, `image-to-video`, `start-end-to-video`, `reference-to-video`
  * Ses seçici: `output_audio`, varsayılan `false`

  TokenLab'de, yukarıdaki PixVerse modelleri `operation=video-extension`'ı kabul etmez.

  **HappyHorse**

  * Model: `happyhorse-1.0`
  * İşlemler: `text-to-video`, `image-to-video`, `reference-to-video`, `video-to-video`
  * Ses seçici: `output_audio` göndermeyin
</Note>

<ParamField body="prompt" type="string" required>
  Oluşturulacak videonun metin açıklaması. Bu alan herkese açık video modellerinin çoğunda zorunludur.
</ParamField>

<ParamField body="operation" type="string">
  Çalıştırılacak video işlemi. Herkese açık sözleşme `text-to-video`, `image-to-video`, `reference-to-video`, `start-end-to-video`, `video-to-video`, `video-extension`, `audio-to-video` ve `motion-control` değerlerini destekler. TokenLab işlemi gönderdiğiniz girdilerden çıkarabilir, ancak üretimde `operation` değerini açıkça göndermeniz önerilir.
</ParamField>

<ParamField body="image_url" type="string">
  Görselden videoya akışı için başlangıç görselinin herkese açık URL’si. Modeller arası en geniş uyumluluk için `image_url` tercih edilmelidir.
</ParamField>

<ParamField body="image" type="string">
  `data:` URL biçiminde satır içi görsel (örneğin `data:image/jpeg;base64,...`). Uyumlu modeller bunu destekler, ancak üretimde genellikle `image_url` daha sağlamdır.
</ParamField>

<ParamField body="reference_images" type="array">
  Özel referans koşullandırmasını destekleyen akışlar için referans görseller. Desteklenen adet modele bağlıdır. `seedance-2.0` ve `seedance-2.0-fast` için TokenLab şu anda en fazla 9 referans görseli, ayrıca en fazla 3 referans video ve 3 referans ses girdisini destekler. Model seçimi, 4K sınırları ve Mini notları için [Seedance 2.0 video modelleri kılavuzuna](/tr/guides/seedance-2-video) bakın. Herkese açık `https` URL'leri önerilir; uyumlu modeller `data:` URL'lerini de kabul eder. `grok-imagine-video` için reference-to-video en fazla 7 görüntü referansı kabul eder ve `duration` en fazla 10 saniyedir. `grok-imagine-video-1.5-preview` yalnızca image-to-video destekler ve referans görüntü kabul etmez.
</ParamField>

<ParamField body="material_asset_id" type="string">
  [Materyal Oluştur](/tr/api-reference/video/create-material-asset) veya otomatik görsel hazırlama tarafından döndürülen TokenLab Seedance materyal ID’si. Materyal `ACTIVE` olduktan sonra TokenLab materyal kitaplığını kullanabilen Seedance modelleriyle kullanın.
</ParamField>

<ParamField body="material_asset_ids" type="array">
  Birden çok TokenLab Seedance materyal ID’si. `reference_images` ile aynı Seedance görsel referans limitini paylaşır; seçilen model TokenLab materyal kitaplığını kullanabilmelidir.
</ParamField>

<Info>
  Seçilen Seedance modeli TokenLab materyal kitaplığını kullanabiliyorsa TokenLab, oluşturma öncesinde görsel alanlarını (`image`, `image_url`, `image_urls`, `reference_images`, `start_image`, `end_image`) yeniden kullanılabilir materyaller olarak hazırlar. Hazırlık 60 saniye içinde tamamlanmazsa API, `auto_material_asset_ids` ile `409 seedance_material_preparing` döndürür; bu materyaller `ACTIVE` olduktan sonra tekrar deneyin. Seçilen model materyal kitaplığını kullanamıyorsa normal görsel girdileri standart görsel yolunda devam eder ve açık materyal ID’leri yeniden denenebilir materyal kullanılabilirliği hatasıyla güvenli şekilde başarısız olur.
</Info>

<ParamField body="reference_image_type" type="string">
  `asset` ve `style` referanslarını ayıran modeller için isteğe bağlı alandır.
</ParamField>

<ParamField body="kling_elements" type="array">
  Kling 3.0 öğe referansı tanımlarıdır. Yalnızca görüntü koşullu `kling-3.0-video` isteklerinde desteklenir. 1-3 öğe tanımlayın; her öğede `name`, isteğe bağlı `description` ve 2-4 görüntü URL’si içeren `element_input_urls` bulunur. `prompt` içinde öğeyi `@name` ile referanslayın. `kling_elements` ile `output_audio=true` birlikte kullanılamaz; öğe referanslı isteklerde `output_audio` alanını kaldırın veya `false` yapın.
</ParamField>

<ParamField body="video_url" type="string">
  Kaynak videonun herkese açık URL’sidir. Video URL tabanlı `video-to-video` akışları ve `motion-control` için gereklidir; bazı türev akışlar bunun yerine `task_id` kullanır.
</ParamField>

<ParamField body="video_urls" type="array">
  Çok modlu referans koşullandırmasını destekleyen modeller için ek referans video girdileri. Desteklenen adet modele bağlıdır. `seedance-2.0` ve `seedance-2.0-fast` için TokenLab şu anda en fazla 3 referans videoyu destekler.
</ParamField>

<ParamField body="audio_url" type="string">
  `audio-to-video` destekleyen modeller için herkese açık ses URL’si.
</ParamField>

<ParamField body="audio_urls" type="array">
  Çok modlu referans koşullandırmasını destekleyen modeller için ek referans ses girdileri. Desteklenen adet modele bağlıdır. `seedance-2.0` ve `seedance-2.0-fast` için TokenLab şu anda en fazla 3 referans sesi destekler.
</ParamField>

<ParamField body="task_id" type="string">
  Bazı devam, uzatma veya türetilmiş akışlarda kullanılan görev kimliği.
</ParamField>

<ParamField body="extend_at" type="integer">
  Bazı `video-extension` akışlarında kullanılan modele özgü başlangıç ofsetidir.
</ParamField>

<ParamField body="extend_times" type="string">
  Bazı `video-extension` akışlarında kullanılan modele özgü çarpan veya tekrar sayısıdır.
</ParamField>

<ParamField body="duration" type="integer">
  Oluşturulan çıktı videosunun saniye cinsinden süresi. Seedance 1.5/2.0 modellerinde bu alan atlanırsa `5` kullanılır; `-1` göndermek modelin desteklediği aralıkta seçim yapmasını sağlar ve görev bitene kadar ücretlendirme ihtiyatlı tahmin edilir.
</ParamField>

<ParamField body="seconds" type="integer">
  `duration` için uyumluluk alias’ı. `seconds` ve `duration` birlikte gönderilirse değerleri aynı olmalıdır. Seedance için `seconds=-1`, `duration=-1` ile aynı otomatik süre anlamına gelir.
</ParamField>

<ParamField body="aspect_ratio" type="string">
  Kanonik en-boy oranı, örneğin `adaptive`, `16:9`, `9:16`, `1:1`, `4:3`, `3:4` veya `21:9`. Seedance atlandığında varsayılan olarak `adaptive` kullanır.
</ParamField>

<ParamField body="resolution" type="string">
  Modele bağlı çıktı çözünürlüğü. Seedance varsayılan olarak `720p` kullanır; `seedance-2.0` `480p`, `720p`, `1080p` ve `4k` desteklerken `seedance-2.0-fast` ve `seedance-2.0-mini` `480p` ve `720p` ile sınırlıdır.
</ParamField>

<ParamField body="output_audio" type="boolean">
  Modele bağlı kanonik ses çıkışı anahtarı. Veo 3 ve Seedance atlandığında varsayılan olarak `true` kullanır. `kling-3.0-video`, öğe referansı olmayan isteklerde bu seçiciyi kabul eder ve atlandığında sessiz çıktı üretir. `output_audio=true` ile `kling_elements` birlikte kullanılmamalıdır.
</ParamField>

<ParamField body="draft" type="boolean">
  Seedance 1.5 Pro Draft iş akışı bayrağı. Draft görevlerini destekleyen Seedance modellerinde `draft=true` kullanın. `draft_task_id` ile birlikte göndermeyin.
</ParamField>

<ParamField body="draft_task_id" type="string">
  Seedance 1.5 Pro draft yükseltme görev ID'si. Nihai videoyu oluşturmak için önceki bir draft görev ID'si gönderin; bu genel bir video alanı değildir.
</ParamField>

<ParamField body="ratio" type="string">
  `aspect_ratio` için uyumluluk alias’ı. `ratio` ve `aspect_ratio` birlikte gönderilirse aynı olmalıdır.
</ParamField>

<ParamField body="generate_audio" type="boolean">
  `output_audio` için uyumluluk alias’ı. `generate_audio`, `output_audio` ve `outputAudio` birlikte görünürse tüm değerler eşleşmelidir.
</ParamField>

<ParamField body="execution_expires_after" type="integer">
  Uyumlu video modelleri için saniye cinsinden isteğe bağlı yürütme sona erme süresi. Seedance atlandığında varsayılan olarak `172800` saniye kullanır.
</ParamField>

<ParamField body="priority" type="integer">
  Uyumlu video modelleri için `0` ile `9` arasında isteğe bağlı görev önceliği. `priority` ile `service_tier=flex` birlikte kullanılmamalıdır.
</ParamField>

<ParamField body="safety_identifier" type="string">
  Uyumlu video modelleri için isteğe bağlı son kullanıcı güvenlik tanımlayıcısı. Seedance için atlanırsa TokenLab sağlandığında `user` değerini kullanır.
</ParamField>

<ParamField body="service_tier" type="string">
  Seedance 2.0 modellerinde `default` uyumluluk no-op’u olarak kabul edilir. `flex` yalnızca seçilen model destekliyorsa kullanılabilir.
</ParamField>

<ParamField body="frames" type="integer">
  Uyumlu video modelleri için isteğe bağlı kare sayısı. Seedance 2.0 modelleri ve Seedance 1.5 Pro bu alanı desteklemez.
</ParamField>

<ParamField body="camera_fixed" type="boolean">
  Uyumlu video modelleri için isteğe bağlı sabit kamera seçici. Seedance 2.0 modelleri bu alanı desteklemez.
</ParamField>

<ParamField body="fps" type="integer">
  Saniyedeki kare sayısı (1-120). Yalnızca FPS kontrolü sunan modellerde etkilidir.
</ParamField>

<ParamField body="negative_prompt" type="string">
  Üretilen videoda kaçınılması gereken öğeler.
</ParamField>

<ParamField body="seed" type="integer">
  Tekrarlanabilir üretim için rastgele seed. Seedance atlandığında rastgele seed için `-1` kullanır.
</ParamField>

<ParamField body="cfg_scale" type="number">
  Prompt’a bağlılık gücü (0-20). Sadece bu kontrolü sunan modellerde geçerlidir.
</ParamField>

<ParamField body="motion_strength" type="number">
  Hareket yoğunluğu (0-1). Sadece bu kontrolü sunan modellerde geçerlidir.
</ParamField>

<ParamField body="start_image" type="string">
  `start-end-to-video` için ilk kare görselinin URL’si veya uyumlu girişidir.
</ParamField>

<ParamField body="end_image" type="string">
  `start-end-to-video` için son kare görselinin URL’si veya uyumlu girişidir.
</ParamField>

<ParamField body="size" type="string">
  Uyumlu video modelleri için modele özel boyut kademesi.
</ParamField>

<ParamField body="watermark" type="boolean">
  Bunu sunan modeller için isteğe bağlı filigran anahtarı. Seedance atlandığında varsayılan olarak `false` kullanır.
</ParamField>

<ParamField body="effect_type" type="string">
  Bazı düzenleme veya efekt akışlarında kullanılan modele özgü efekt seçicisidir.
</ParamField>

<ParamField body="user" type="string">
  Son kullanıcı için benzersiz tanımlayıcı. Seedance için TokenLab, bu alan atlandığında bu değeri `safety_identifier` olarak da kullanır.
</ParamField>

## Uyumluluk notları

* Kanonik public alanlar snake\_case kalır: `aspect_ratio`, `output_audio`, `reference_images` ve `reference_image_type`.
* Uyumluluk için TokenLab ayrıca `ratio`, `generate_audio`, `outputAudio`, `seconds`, `referenceImages` ve `referenceImageType` kabul eder.
* Kanonik alanlar ve alias alanları birlikte gönderilirse değerleri eşleşmelidir; çakışan alias’lar görev oluşturulmadan önce reddedilir.
* `operation` atlanırsa TokenLab bunu sağlanan girdilerden çıkarır. Production trafik için açık `operation` göndermek hâlâ önerilir.

## Medya girdileri için en iyi uygulamalar

* `image_url`, `reference_images`, `video_url` ve `audio_url` için herkese açık `https` URL’lerini tercih edin.
* Mümkünse aynı istekte satır içi base64 ve uzak URL’leri karıştırmayın.
* Uzak medya URL’lerinin yeniden deneme süresini ve asenkron görev oluşturma sürecini karşılayacak kadar uzun süre geçerli olmasına dikkat edin.

## Seedance parametreleri

Seedance 1.5/2.0 modellerinde birleşik endpoint TokenLab alan adlarını izler ve uyumluluk alias’ları `seconds`, `ratio` ve `generate_audio` değerlerini de kabul eder. Seedance seçicileri atlandığında şu varsayılanlar kullanılır: `duration=5`, `resolution=720p`, `aspect_ratio=adaptive`, `output_audio=true`, `watermark=false`, `return_last_frame=false`, `execution_expires_after=172800`, `priority=0` ve `seed=-1`.

`duration=-1` veya `seconds=-1`, Seedance’ın modelin desteklediği aralıkta çıktı süresini seçmesini sağlar. TokenLab görev tamamlanmadan önce maliyeti ihtiyatlı tahmin eder, tamamlanan görev usage bilgisi varsa gerçek sonuca göre kapatır. `service_tier=default`, Seedance 2.0 için uyumluluk no-op’u olarak kabul edilir; `service_tier=flex`, `frames` ve `camera_fixed`, seçilen model desteklemiyorsa reddedilir.

### Seedance örneği

```bash cURL theme={null}
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0",
    "prompt": "A sleek product reveal with cinematic camera movement",
    "operation": "text-to-video",
    "duration": -1,
    "aspect_ratio": "adaptive",
    "resolution": "720p",
    "output_audio": true
  }'
```

## Yanıt

<ResponseField name="id" type="string">
  Kanonik asenkron görev kimliği.
</ResponseField>

<ResponseField name="task_id" type="string">
  Durum sorgulaması için kullanılacak benzersiz görev tanımlayıcısı.
</ResponseField>

<ResponseField name="poll_url" type="string">
  Bu görev için önerilen durum sorgulama URL’si. Durumu kontrol ederken bu yolu aynen kullanın.
</ResponseField>

<ResponseField name="billing_transaction_id" type="string">
  Mutabakat tamamlandığında dönen TokenLab faturalama işlem kimliği. Dashboard / mutabakat için kullanılan işlem tanımlayıcısıdır ve asenkron `id` / `task_id` alanlarından ayrıdır.
</ResponseField>

<ResponseField name="status" type="string">
  Başlangıç durumu: `pending`.
</ResponseField>

<ResponseField name="created" type="integer">
  Görevin oluşturulduğu Unix zaman damgası.
</ResponseField>

<ResponseField name="model" type="string">
  Kullanılan model.
</ResponseField>

<ResponseField name="video_url" type="string">
  Sonuç hazırsa doğrudan kullanılabilecek video URL'si.
</ResponseField>

<ResponseField name="video" type="object">
  Mevcutsa `url`, `duration`, `width` ve `height` içeren tek video nesnesi.
</ResponseField>

<ResponseField name="videos" type="array">
  Üst sağlayıcı birden fazla çıktı döndürdüğünde video dizisi görünebilir.
</ResponseField>

<ResponseField name="error" type="string">
  Görev başarısız olursa dönen hata mesajı ya da yapılandırılmış hata nesnesi.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
    -H "Authorization: Bearer sk-your-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "veo3.1",
      "prompt": "A cat walking through a garden, cinematic lighting",
      "operation": "text-to-video",
      "duration": 4,
      "aspect_ratio": "16:9"
    }'
  ```
</RequestExample>

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

## Görselden videoya

```python theme={null}
response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "hailuo-2.3-standard",
        "prompt": "The scene begins from the provided image and adds gentle natural motion.",
        "operation": "image-to-video",
        "image_url": "https://example.com/image.jpg",
        "duration": 6,
        "aspect_ratio": "16:9"
    }
)
```

## Kling 3.0 Elements

Öğe referanslarına ihtiyacınız olduğunda `kling_elements` alanını `kling-3.0-video` ile kullanın. Görüntü koşullu bir istek (`image_url`, `image_urls`, `start_image` veya `end_image`) sağlayın ve prompt içinde her öğeyi `@name` ile referanslayın. `kling_elements` ile `output_audio=true` birlikte kullanılamaz; öğe referanslı isteklerde `output_audio` alanını kaldırın veya `false` yapın.

```python theme={null}
response = requests.post("https://api.tokenlab.sh/v1/videos/generations",
    headers=headers,
    json={
        "model": "kling-3.0-video",
        "prompt": "Place @hero_bag on a studio turntable with soft product lighting.",
        "operation": "image-to-video",
        "image_url": "https://example.com/studio-start.png",
        "duration": 5,
        "resolution": "720p",
        "kling_elements": [
            {
                "name": "hero_bag",
                "description": "black leather handbag",
                "element_input_urls": [
                    "https://example.com/bag-front.png",
                    "https://example.com/bag-side.png"
                ]
            }
        ]
    }
)
```

## Referans görselle videoya

Model özel referans koşullandırmasını destekliyorsa `operation=reference-to-video` kullanın. TokenLab'nın herkese açık sözleşmesinde görsel referanslar `reference_images`, çok modlu referans video ve sesler ise `video_urls` ve `audio_urls` ile iletilir. `seedance-2.0` ve `seedance-2.0-fast` için TokenLab şu anda en fazla 9 referans görseli, ayrıca en fazla 3 referans video ve 3 referans sesi destekler. Model seçimi, 4K sınırları ve Mini notları için [Seedance 2.0 video modelleri kılavuzuna](/tr/guides/seedance-2-video) bakın. `duration` yalnızca üretilen çıktının süresini kontrol eder; referans video girdisi için ayrı bir süre sınırı belirlemez. `grok-imagine-video` için reference-to-video en fazla 7 görüntü referansı (`reference_images` veya `image_urls`) kabul eder ve `duration` en fazla 10 saniyedir. Referans görüntüleri `image_url` / `image` ilk kare girdileriyle birlikte göndermeyin. `grok-imagine-video-1.5-preview` yalnızca image-to-video destekler.

```python theme={null}
response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "veo3.1",
        "prompt": "Keep the same subject identity, palette, and framing while adding subtle natural motion.",
        "operation": "reference-to-video",
        "reference_images": [
            "https://example.com/ref-a.jpg",
            "https://example.com/ref-b.jpg"
        ],
        "reference_image_type": "asset",
        "duration": 8,
        "resolution": "720p",
        "aspect_ratio": "9:16"
    }
)
```

## İlk ve son kare kontrolü

İlk ve son kareyi kontrol etmek için `start_image` ve `end_image` kullanın.

```python theme={null}
response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "viduq2-pro",
        "prompt": "Smooth transition from day to night",
        "operation": "start-end-to-video",
        "start_image": "https://example.com/day.jpg",
        "end_image": "https://example.com/night.jpg",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9"
    }
)
```

## Videodan videoya

`grok-imagine-video` video-to-video için `video_url` içinde herkese açık HTTPS `.mp4` URL gönderin. TokenLab bunu xAI REST `video.url` gövdesine çevirir. `resolution` için `480p` veya `720p` gönderebilirsiniz; bu düzenleme akışı `duration` ve `aspect_ratio` kabul etmez.

Model mevcut bir videoyu birincil giriş olarak kabul ediyorsa `operation=video-to-video` kullanın.

```python theme={null}
response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "grok-imagine-video",
        "operation": "video-to-video",
        "video_url": "https://example.com/source.mp4",
        "prompt": "Enhance the clip while preserving the original motion.",
        "resolution": "720p"
    }
)
```

## Hareket kontrolü

Model hem özne görseli hem de hareket referans videosu bekliyorsa `operation=motion-control` kullanın. TokenLab herkese açık `image_url` + `video_url` biçimini uyumlu hareket kontrolü girdisine dönüştürür.

```python theme={null}
response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "kling-3.0-motion-control",
        "operation": "motion-control",
        "prompt": "Keep the subject stable while following the motion reference.",
        "image_url": "https://example.com/subject.png",
        "video_url": "https://example.com/motion.mp4",
        "resolution": "720p"
    }
)
```

## Model keşfi

Herkese açık video envanteri ve desteklenen işlemler zamanla değişir. Modele özgü bir akışı bağlamadan önce [Models API](/tr/api-reference/models/list-models) uç noktasını doğruluk kaynağı olarak kullanın:

```bash theme={null}
curl "https://api.tokenlab.sh/v1/models?recommended_for=video" \
  -H "Authorization: Bearer sk-your-api-key"

curl "https://api.tokenlab.sh/v1/models/veo3.1" \
  -H "Authorization: Bearer sk-your-api-key"
```

Model detay yanıtındaki `tokenlab.capabilities`, `tokenlab.supported_operations`, `GET /v1/models` ve `GET /v1/models/{model}` alanlarını okuyun. `audio-to-video` ve `video-extension` gibi işlemler modele özgüdür; güncel kullanılabilirliği bu sayfadaki statik örneklerden değil oradan doğrulayın.
