<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tobias Hoffmann</title>
    <description>The latest articles on DEV Community by Tobias Hoffmann (@tobiass_hoffmann).</description>
    <link>https://dev.to/tobiass_hoffmann</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3821706%2Ff492b371-6da6-45b8-a3b5-dc8326f72f8c.png</url>
      <title>DEV Community: Tobias Hoffmann</title>
      <link>https://dev.to/tobiass_hoffmann</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tobiass_hoffmann"/>
    <language>en</language>
    <item>
      <title>Seedance 2.0 API 2026 Nasıl Kullanılır?</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Sat, 04 Apr 2026 13:09:59 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/seedance-20-api-2026-nasil-kullanilir-17mk</link>
      <guid>https://dev.to/tobiass_hoffmann/seedance-20-api-2026-nasil-kullanilir-17mk</guid>
      <description>&lt;h2&gt;
  
  
  Özet
&lt;/h2&gt;

&lt;p&gt;Seedance 2.0 API, 2 Nisan 2026'da Volcengine Ark aracılığıyla yayınlandı. Bir POST isteğiyle video oluşturma görevi başlatabilir, ardından durum "başarılı" olana kadar bir GET uç noktasını sorgulayabilirsiniz. API; metinden videoya, görselden videoya, ilk/son kare kontrolü, çok modlu referanslar ve yerel ses üretimini destekler. 5 saniyelik 1080p bir video yaklaşık 0,93 dolara mal olur. Videoyu 24 saat içinde indirmeniz gerekir; aksi takdirde URL'nin süresi dolar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u bugün deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://hypereal.cloud" rel="noopener noreferrer"&gt;Hypereal AI&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://hypereal.cloud/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9no1b7kwev33vq2bcepw.png" alt="Hypereal AI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hypereal.cloud/" rel="noopener noreferrer"&gt;Hypereal AI'yi Deneyin&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Giriş
&lt;/h2&gt;

&lt;p&gt;2 Nisan 2026 itibarıyla, ByteDance’in Volcengine Ark platformu resmi Seedance 2.0 API’sini kullanıma açtı. Önceden yalnızca web konsolu üzerinden video üretimi mümkündü. Bu rehber, geliştiricilerin doğrudan API ile entegrasyon süreçlerini kapsar ve programatik kontrol sağlayan uçtan uca uygulama adımlarını sunar.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;API asenkron görev modeli kullanır:&lt;/strong&gt; Görev oluşturmak için POST gönderin, görev kimliğini alın ve iş bitene kadar GET ile sorgulayın. Yayına almadan önce uçtan uca test etmek kritik önem taşır. Apidog’un Test Senaryoları ile POST gönderimini zincirleyin, görev kimliğini çıkarın, GET sorgusunu döngüye alın ve son yanıtta geçerli video URL’si doğrulayın. Alttaki Apidog bölümünde adım adım uygulamayı bulabilirsiniz.&lt;/p&gt;

&lt;p&gt;Bu makalede, tüm giriş türlerini, fiyatlama matematiğini ve tipik hata senaryolarının çözümlerini bulacaksınız.&lt;/p&gt;




&lt;h2&gt;
  
  
  Seedance 2.0 Nedir?
&lt;/h2&gt;

&lt;p&gt;Seedance 2.0, ByteDance tarafından geliştirilen bir video üretim modelidir. Volcengine Ark üzerinde &lt;code&gt;doubao-seedance-2-0-260128&lt;/code&gt; (standart) ve &lt;code&gt;doubao-seedance-2-0-fast-260128&lt;/code&gt; (hızlı, daha düşük kalite) model kimlikleriyle çalışır.&lt;/p&gt;

&lt;h3&gt;
  
  
  Desteklenen giriş türleri:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metinden videoya&lt;/li&gt;
&lt;li&gt;Görselden videoya&lt;/li&gt;
&lt;li&gt;İlk ve son kare kontrolü (başlangıç ve bitiş görselleriyle)&lt;/li&gt;
&lt;li&gt;Çok modlu referanslar (görsel, video, ses birlikte)&lt;/li&gt;
&lt;li&gt;Yerel ses üretimi (diyalog, ortam, müzik, 8+ dilde dudak senkronizasyonu)&lt;/li&gt;
&lt;li&gt;Kamera hareketleri (doğal dil ile kontrol)&lt;/li&gt;
&lt;li&gt;2K çözünürlüğe ve 15 saniyeye kadar çıktı&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Çıktı videoları 1:1’den 21:9’a kadar en-boy oranlarında ve 24fps olarak üretilir. Çözünürlüğü ve oranı istek sırasında belirtebilirsiniz.&lt;/p&gt;




&lt;h2&gt;
  
  
  Ne değişti: Kılavuz ve Resmi API
&lt;/h2&gt;

&lt;p&gt;Daha önceki Seedance 2.0 rehberleri web konsolunu anlatıyordu. Artık API ile doğrudan çağrı yapabilir, video oluşturma süreçlerini otomatikleştirebilir, ürünlerinize Seedance’i entegre edebilirsiniz. Bu makale, tamamen API tabanlı entegrasyon içindir.&lt;/p&gt;




&lt;h2&gt;
  
  
  Önkoşullar
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Volcengine hesabı oluşturun:&lt;/strong&gt; &lt;a href="https://www.volcengine.com/" rel="noopener noreferrer"&gt;volcengine.com&lt;/a&gt; üzerinden ücretsiz hesap alın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API anahtarınızı alın:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   https://console.volcengine.com/ark/region:ark+cn-beijing/apikey
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Anahtarı ortam değişkeni olarak ayarlayın:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ARK_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your-api-key-here"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;API çağrılarında Authorization başlığında kullanın:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;   Authorization: Bearer YOUR_ARK_API_KEY
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yeni hesaplar, 1080p’de yaklaşık 8 adet 15 saniyelik video oluşturmanıza yetecek ücretsiz krediyle başlar.&lt;/p&gt;




&lt;h2&gt;
  
  
  Metinden Videoya: İlk İsteğiniz
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Temel URL:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://ark.cn-beijing.volces.com/api/v3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  cURL Örneği
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$ARK_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "doubao-seedance-2-0-260128",
    "content": [
      {
        "type": "text",
        "text": "A golden retriever running through a sunlit wheat field, wide tracking shot, cinematic"
      }
    ],
    "resolution": "1080p",
    "ratio": "16:9",
    "duration": 5,
    "watermark": false
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;API hemen bir görev kimliği döndürür:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cgt-2025xxxxxxxx-xxxx"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Python Örneği (Resmi SDK)
&lt;/h3&gt;

&lt;p&gt;SDK kurulumu:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;volcenginesdkarkruntime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Görev gönderimi:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;volcenginesdkarkruntime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Ark&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Ark&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ARK_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content_generation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;doubao-seedance-2-0-260128&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A golden retriever running through a sunlit wheat field, wide tracking shot, cinematic&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;resolution&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1080p&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;16:9&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;watermark&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Görev kimliğini sonraki sorgulama adımında kullanacaksınız.&lt;/p&gt;




&lt;h2&gt;
  
  
  Asenkron Görev Modeli: Gönder, Sorgula, İndir
&lt;/h2&gt;

&lt;p&gt;Seedance çıktısı anlık değildir. 5 saniyelik 1080p video genellikle 60–120 saniyede tamamlanır. İş akışı:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;queued -&amp;gt; running -&amp;gt; succeeded
                -&amp;gt; failed
                -&amp;gt; expired
                -&amp;gt; cancelled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Durum &lt;code&gt;queued&lt;/code&gt; veya &lt;code&gt;running&lt;/code&gt; ise döngüyle sorgulama yapmanız gerekir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tam Python Sorgulama Döngüsü
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;volcenginesdkarkruntime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Ark&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Ark&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ARK_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# Adım 1: Görev gönder
&lt;/span&gt;&lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content_generation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;doubao-seedance-2-0-260128&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Aerial shot of a mountain lake at sunrise, slow dolly forward&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;resolution&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1080p&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;16:9&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;watermark&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;task_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Task submitted: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;task_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Adım 2: Üstel gecikme ile sorgula
&lt;/span&gt;&lt;span class="n"&gt;wait&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content_generation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;task_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Status: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;succeeded&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;video_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;video_url&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Video URL: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;video_url&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;expired&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cancelled&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Task ended with status: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;

    &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wait&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;wait&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wait&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Adım 3: Hemen indir
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;succeeded&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;video_url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;output.mp4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;wb&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;iter_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chunk_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8192&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Downloaded: output.mp4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Üstel geri çekilme, API limitlerini aşmamayı sağlar. 60 saniyede sınır, pratik sorgulama sıklığı için uygundur.&lt;/p&gt;




&lt;h2&gt;
  
  
  Görselden Videoya (I2V): Durağan Bir Görseli Canlandırma
&lt;/h2&gt;

&lt;p&gt;Bir görseli canlandırmak için, metin isteminizle birlikte &lt;code&gt;content&lt;/code&gt; dizisine bir &lt;code&gt;image_url&lt;/code&gt; ekleyin. Görsel, videonun ilk karesi olur.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content_generation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;doubao-seedance-2-0-260128&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The woman slowly turns her head and smiles at the camera&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com/portrait.jpg&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;adaptive&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;watermark&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;ratio&lt;/code&gt; değerini &lt;code&gt;"adaptive"&lt;/code&gt; seçmek, giriş görselinin doğal oranını korur. Her görsel 30MB'ın altında olmalı; bir istekte 9 adede kadar görsel ekleyebilirsiniz.&lt;/p&gt;




&lt;h2&gt;
  
  
  İlk ve Son Kare: Başlangıç ve Bitiş Noktalarını Kontrol Etme
&lt;/h2&gt;

&lt;p&gt;Başlangıç ve bitiş karesi kontrolü için iki görsel ve bir metin istemi gönderin. Model, aradaki hareketi otomatik oluşturur.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content_generation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;doubao-seedance-2-0-260128&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The flower blooms from bud to full open, macro lens, soft light&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com/flower-bud.jpg&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com/flower-open.jpg&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;adaptive&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;watermark&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Görseller sıralı olmalı: önce ilk kare, sonra son kare. &lt;code&gt;return_last_frame: true&lt;/code&gt; ile son kareyi çıktı olarak alabilir, zincirleme kliplerde kullanabilirsiniz.&lt;/p&gt;




&lt;h2&gt;
  
  
  Çok Modlu Referans: Görsel, Video ve Sesi Birleştirme
&lt;/h2&gt;

&lt;p&gt;Seedance 2.0, görsel, video ve sesi aynı istekte referans olarak kullanmanıza olanak tanır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kabul edilen içerik türleri:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;{"type": "text", "text": "..."}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{"type": "image_url", "image_url": {"url": "..."}}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{"type": "video_url", "video_url": {"url": "..."}}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{"type": "audio_url", "audio_url": {"url": "..."}}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sınırlar:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Max 9 görsel (her biri ≤30MB)&lt;/li&gt;
&lt;li&gt;Max 3 video (her biri 2–15sn, ≤50MB)&lt;/li&gt;
&lt;li&gt;Max 3 ses dosyası (MP3, ≤15MB)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Birleşik referans örneği:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content_generation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;doubao-seedance-2-0-260128&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Match the visual style of the reference clip and add the provided background audio&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com/style-reference.jpg&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;video_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;video_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com/motion-reference.mp4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;audio_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;audio_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com/background-music.mp3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;16:9&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;watermark&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Video referansı eklerseniz faturalandırma V2V oranına düşer (bkz. fiyatlandırma bölümü).&lt;/p&gt;




&lt;h2&gt;
  
  
  Yerel Ses Üretimi
&lt;/h2&gt;

&lt;p&gt;Videoyla senkronize ses üretmek için &lt;code&gt;generate_audio: true&lt;/code&gt; parametresini kullanın.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content_generation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;doubao-seedance-2-0-260128&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A street musician plays guitar outside a cafe in Paris, crowds passing by, city sounds&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;resolution&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1080p&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;16:9&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;generate_audio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;watermark&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ses ile video ortak üretimi, token tüketimini hafifçe artırır. Dudak senkronizasyonu ve çok dilli destek mevcuttur.&lt;/p&gt;




&lt;h2&gt;
  
  
  Çözünürlük, En Boy Oranı ve Süreyi Kontrol Etme
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Çözünürlük:&lt;/strong&gt; &lt;code&gt;"480p"&lt;/code&gt;, &lt;code&gt;"720p"&lt;/code&gt;, &lt;code&gt;"1080p"&lt;/code&gt;, &lt;code&gt;"2K"&lt;/code&gt; (varsayılan: &lt;code&gt;"1080p"&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;En boy oranı:&lt;/strong&gt; &lt;code&gt;"16:9"&lt;/code&gt;, &lt;code&gt;"9:16"&lt;/code&gt;, &lt;code&gt;"4:3"&lt;/code&gt;, &lt;code&gt;"3:4"&lt;/code&gt;, &lt;code&gt;"21:9"&lt;/code&gt;, &lt;code&gt;"1:1"&lt;/code&gt;, &lt;code&gt;"adaptive"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Süre:&lt;/strong&gt; 4–15 saniye (varsayılan: 5)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hızlı model (&lt;code&gt;doubao-seedance-2-0-fast-260128&lt;/code&gt;), düşük kalite ve hızlı üretim için; standart model ise final çıktı için önerilir.&lt;/p&gt;




&lt;h2&gt;
  
  
  Yanıttan Maliyeti Okuma
&lt;/h2&gt;

&lt;p&gt;Başarılı bir görevde yanıt şöyle döner:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"usage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"completion_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;246840&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"total_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;246840&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5 saniyelik 1080p video ≈ 102.960 token, 15 saniyelik 1080p ≈ 308.880 token.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;T2V/I2V:&lt;/strong&gt; Milyon token başına 46 yuan (~6,40 $)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;V2V:&lt;/strong&gt; Milyon token başına 28 yuan (~3,90 $)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Her yanıtta &lt;code&gt;completion_tokens&lt;/code&gt;'ı oranlarla çarparak maliyetinizi hesaplayın.&lt;/p&gt;




&lt;h2&gt;
  
  
  Önemli: Videoyu 24 Saat İçinde İndirin
&lt;/h2&gt;

&lt;p&gt;Yanıttaki &lt;code&gt;video_url&lt;/code&gt;, 24 saat sonra geçerliliğini kaybeder ve 403 hatası verir. Dosyayı hemen indirin. &lt;code&gt;execution_expires_after&lt;/code&gt; alanı 48 saatlik görev kaydı penceresini gösterir, ancak video dosyası 24 saat sonra silinir. Görev geçmişi 7 gün tutulur.&lt;/p&gt;




&lt;h2&gt;
  
  
  Apidog ile Seedance API’sini Test Etme
&lt;/h2&gt;

&lt;p&gt;Asenkron modelde iki bağlı API çağrısı gerekir; klasik testler yetersizdir. Apidog Test Senaryoları ile zincirli akış kurabilirsiniz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7qpzpmtge0bkzzppks6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7qpzpmtge0bkzzppks6.png" alt="Apidog Test"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım adım:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test Senaryosu Oluşturun:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Testler modülünde “Seedance 2.0 video üretimi” senaryosu açın. &lt;code&gt;{{ARK_API_KEY}}&lt;/code&gt; ortam değişkenini ayarlayın.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gönderme isteğini ekleyin:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Özel POST isteği adımı ile anahtarınızı authorization başlığına ekleyin. Yanıt gövdesinden &lt;code&gt;$.id&lt;/code&gt; ile &lt;code&gt;TASK_ID&lt;/code&gt; çıkarın.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bekleme işlemi ekleyin:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
30 saniyelik gecikme ile ilk sorgulama öncesi işlem süresi verin.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sorgu adımını For döngüsüne alın:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Max 20 iterasyon, her GET isteği sonrası 10 saniye bekleme. Döngü çıkış koşulları: &lt;code&gt;$.status == "succeeded"&lt;/code&gt; veya &lt;code&gt;$.status == "failed"&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Doğrulama ekleyin:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Döngü sonunda &lt;code&gt;"succeeded"&lt;/code&gt; durumu ve boş olmayan &lt;code&gt;video_url&lt;/code&gt; kontrolü ekleyin.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Senaryoyu çalıştırdığınızda, adım adım tüm süreci ve hata noktalarını raporlayabilirsiniz. Ayrıca cURL komutlarını doğrudan test senaryosuna aktarabilirsiniz.&lt;/p&gt;




&lt;h2&gt;
  
  
  Fiyatlandırma Dökümü: 10 Saniyelik Bir Videonun Maliyeti
&lt;/h2&gt;

&lt;p&gt;Seedance API, kullandıkça öde (pay-as-you-go) ile çalışır. Aylık sabit ücret yoktur.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Görev Türü&lt;/th&gt;
&lt;th&gt;Oran (1M token başına)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1080p'de T2V / I2V&lt;/td&gt;
&lt;td&gt;46 yuan (~6,40 $)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V2V (video referanslı)&lt;/td&gt;
&lt;td&gt;28 yuan (~3,90 $)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Süre&lt;/th&gt;
&lt;th&gt;Yaklaşık token&lt;/th&gt;
&lt;th&gt;Maliyet (T2V/I2V)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5 saniye&lt;/td&gt;
&lt;td&gt;~103.000&lt;/td&gt;
&lt;td&gt;~0,66 yuan / ~0,93 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10 saniye&lt;/td&gt;
&lt;td&gt;~206.000&lt;/td&gt;
&lt;td&gt;~9,48 yuan / ~1,32 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15 saniye&lt;/td&gt;
&lt;td&gt;~309.000&lt;/td&gt;
&lt;td&gt;~14,21 yuan / ~1,97 $&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Yeni hesaplar ücretsiz deneme kredisi içerir (yaklaşık 8 adet 15 saniyelik deneme). Geliştirmede düşük çözünürlük (örn. 720p) ile başlayıp, üretimde çözünürlüğü yükseltin.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sık Karşılaşılan Hatalar ve Çözümleri
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;429 Çok Fazla İstek:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Eşzamanlı görev limitine ulaştınız. Üstel geri çekilme uygulayın (bekleme aralığını artırarak yeniden deneyin).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;durum: "failed":&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Model videoyu üretemedi. Nedeni: istemde uygunsuz içerik, bozuk/büyük giriş dosyaları veya geçersiz parametre kombinasyonu. Girdileri düzeltip tekrar deneyin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;durum: "expired":&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Görev, uzun süre kuyrukta kaldı ve sona erdi. Yeniden başlatmanız gerekir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;video_url üzerinde 403 hatası:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
24 saatlik indirme süresi geçti. Aynı parametrelerle yeni görev başlatın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tohum tekrarlanabilirliği:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Bir görevden &lt;code&gt;seed&lt;/code&gt; değerini kaydedip sonraki istekte kullanırsanız, aynı çıktıyı elde etmeye çalışırsınız (model versiyonu değişmediyse).&lt;/p&gt;




&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Seedance 2.0 API, gelişmiş video üretim iş akışlarına kodla erişim sunar. Asenkron görev modeliyle, otomatik ve modüler süreçler kurabilirsiniz. Çok modlu girişler, yerel ses üretimi ve başlangıç/bitiş karesi kontrolüyle, API üzerinden web konsolunun ötesine geçin.&lt;/p&gt;

&lt;p&gt;Üretim öncesi Apidog ile test zinciri kurarak, tüm akışınızı güvence altına alın. Test Senaryoları ile zincirleme, hata noktalarını ve sona erme sorunlarını erken tespit edin.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sıkça Sorulan Sorular
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;S: doubao-seedance-2-0-260128 ile doubao-seedance-2-0-fast-260128 arasındaki fark nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Standart model daha yüksek kalite sunar ve üretim için uygundur. Hızlı model ise düşük kaliteyle daha kısa sürede sonuç verir; deneme ve iterasyon için hızlı modeli, final için standart modeli kullanın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: Seedance 2.0'ı Çin dışında kullanabilir miyim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: API Pekin’de barındırılır. Çin dışından kullanılabilir, ancak gecikme artabilir. Bölgesel kısıtlamalar için Volcengine koşullarını kontrol edin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: Birden fazla klibi birleştirmek mümkün mü?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Her üretimde &lt;code&gt;return_last_frame: true&lt;/code&gt; kullanın. Yanıttaki son kareyi bir sonraki isteğin ilk karesi olarak aktarın. Tüm klipleri elde ettikten sonra birleştirin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: Yerel ses üretimi daha maliyetli mi?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Evet, &lt;code&gt;generate_audio: true&lt;/code&gt; ile isteklerde token tüketimi hafifçe artar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: Sorgulama yerine webhook kullanabilir miyim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Evet, &lt;code&gt;callback_url&lt;/code&gt; parametresi ile durum değişiminde sonuç otomatik POST edilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: 9 görsel sınırını aşarsam ne olur?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: API 400 doğrulama hatası döndürür. 9 görsel veya daha az ile tekrar deneyin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: Tohum parametresi tam tekrarlanabilirlik sağlar mı?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Yüksek tekrarlanabilirlik sunar, ancak model versiyonu değişirse tam garanti yoktur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: Birden fazla görevde harcamayı nasıl takip ederim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Her yanıttaki &lt;code&gt;completion_tokens&lt;/code&gt; ile kendi maliyet takibinizi oluşturun. API'da entegre panel yoktur; veritabanınızda saklayın.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Grok Metinden Videoya API Kullanımı (Kapsamlı Rehber)</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Fri, 03 Apr 2026 08:52:21 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/grok-metinden-videoya-api-kullanimi-kapsamli-rehber-1glf</link>
      <guid>https://dev.to/tobiass_hoffmann/grok-metinden-videoya-api-kullanimi-kapsamli-rehber-1glf</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Grok metinden videoya API'si ile bir metin isteminden video oluşturabilirsiniz. &lt;code&gt;POST /v1/videos/generations&lt;/code&gt; çağrısı ile hemen bir &lt;code&gt;request_id&lt;/code&gt; alırsınız, ardından durum &lt;code&gt;"done"&lt;/code&gt; olana kadar &lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt; ile sorgulama yaparsınız. Model adı &lt;code&gt;grok-imagine-video&lt;/code&gt;'dur. Fiyatlandırma, 480p çözünürlükte saniye başına 0,05 dolar olarak başlar. xAI Python SDK'sı bu sorgulamayı otomatik olarak yönetir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u hemen deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Giriş
&lt;/h2&gt;

&lt;p&gt;xAI, Ocak 2026'da yalnızca bir ayda 1,2 milyar video üretti. Bu, Grok metinden videoya API'sinin 28 Ocak 2026'daki lansmanından sonraki ilk aydı. Model, Artificial Analysis metinden videoya liderlik tablosunda da aynı ay birinci oldu. Bu rakamlar, altyapının büyük ölçekte çalıştığını gösteriyor.&lt;/p&gt;

&lt;p&gt;Bu rehberde, ilk API isteğinizden başlayarak sorgulama, parametre ayarlama, etkili istemler yazma, referans görseller kullanımı, mevcut videoları uzatma/düzenleme ve hangi kullanımda metinden videoya tercih edilmesi gerektiğine kadar tüm adımları pratik olarak bulacaksınız.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;API eş zamansızdır.&lt;/strong&gt; Yani, video hazır olmadan ön uçta render bekleyemezsiniz. Video oluşturma UI'si geliştiriyorsanız, gerçek kredi harcamadan sorgulama akışınızı test etmeniz gerekir. &lt;a href="https://apidog.com/api-mocking/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog'un Akıllı Sahte (Smart Mock) özelliği&lt;/a&gt; ile oluşturma ve sorgulama uç noktalarını taklit edebilirsiniz. Böylece arka uç geliştirilirken ön uç ekibiniz video oynatıcı UI'sini rahatça geliştirebilir. Test bölümünde Apidog'un nasıl kullanılacağını bulacaksınız.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Grok Metinden Videoya API'si Nedir?
&lt;/h2&gt;

&lt;p&gt;Grok metinden videoya API'si, xAI'nin &lt;code&gt;https://api.x.ai&lt;/code&gt; adresindeki medya oluşturma paketindedir. Bir metin istemi göndererek &lt;code&gt;grok-imagine-video&lt;/code&gt; modeliyle sıfırdan kısa video klipler üretebilirsiniz. Kaynak görsel gerekmez.&lt;/p&gt;

&lt;p&gt;API, ayrıca görselden görsele (&lt;code&gt;POST /v1/images/generations&lt;/code&gt;, model: &lt;code&gt;grok-imagine-image&lt;/code&gt;), videoları uzatma ve düzenleme uç noktalarını içerir.&lt;/p&gt;

&lt;p&gt;Metinden videoya ile görselden videoya arasındaki ana fark: metinden videoda yalnızca kelimeler verirsiniz, sahne ve görsellik tamamen açıklamanıza göre oluşur. Kaynak görselle başlamak için &lt;a href="http://apidog.com/blog/grok-image-to-video-api/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Grok görselden videoya API rehberine&lt;/a&gt; bakın.&lt;/p&gt;

&lt;h2&gt;
  
  
  Metinden Videoya Oluşturma Nasıl Çalışır? (Eş Zamansız Desen)
&lt;/h2&gt;

&lt;p&gt;Video oluşturma API'sinde eş zamansız bir akış vardır çünkü video üretimi birkaç saniye ila dakika sürebilir. Akış şu şekildedir:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;POST&lt;/code&gt; ile isteminizi gönderin.&lt;/li&gt;
&lt;li&gt;Yanıt olarak anında bir &lt;code&gt;request_id&lt;/code&gt; alın.&lt;/li&gt;
&lt;li&gt;Video arka planda oluşturulmaya başlar.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt; ile durumu sorgulayın.&lt;/li&gt;
&lt;li&gt;Durum &lt;code&gt;"done"&lt;/code&gt; olduğunda, yanıt video URL'sini içerir.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bu desen, API bağlantılarınızı kısa tutar ve ön ucunuzun yükleme durumu yönetmesini gerektirir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ön Koşullar
&lt;/h2&gt;

&lt;p&gt;Başlamadan önce:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;xAI hesabı&lt;/strong&gt;: &lt;a href="https://console.x.ai" rel="noopener noreferrer"&gt;console.x.ai&lt;/a&gt; adresinden oluşturun. Faturalandırma bilgisi eklenmeli.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Anahtarı&lt;/strong&gt;: xAI konsolunda API Anahtarları'ndan oluşturup güvenli bir yere kaydedin. Bearer token olarak kullanacaksınız.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;API anahtarını ortam değişkenine atayın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your_api_key_here"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;İsteğe bağlı: xAI Python SDK'sını kurmak için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;xai-sdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvi4f1gdevs2pth1c3l0f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvi4f1gdevs2pth1c3l0f.png" alt="API Anahtarı Oluşturma Ekran Görüntüsü"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  İlk Metinden Videoya İsteğiniz
&lt;/h2&gt;

&lt;p&gt;Uç nokta: &lt;code&gt;POST https://api.x.ai/v1/videos/generations&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Gerekli alanlar: &lt;code&gt;model&lt;/code&gt;, &lt;code&gt;prompt&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Curl ile
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.x.ai/v1/videos/generations &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$XAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "grok-imagine-video",
    "prompt": "A golden retriever running through autumn leaves in slow motion, cinematic lighting"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yanıt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"request_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"d97415a1-5796-b7ec-379f-4e6819e08fdf"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Python requests ile
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;API_KEY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;BASE_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.x.ai&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;API_KEY&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Content-Type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-imagine-video&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A golden retriever running through autumn leaves in slow motion, cinematic lighting&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;BASE_URL&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/v1/videos/generations&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;request_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;request_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Generation started. Request ID: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;request_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Video Sonucu için Sorgulama
&lt;/h2&gt;

&lt;p&gt;Bir &lt;code&gt;request_id&lt;/code&gt; aldıktan sonra, video tamamlanana kadar döngüde sorgulama yapmalısınız.&lt;/p&gt;

&lt;p&gt;Durum değerleri:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;"processing"&lt;/code&gt;: hala oluşturuluyor&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"done"&lt;/code&gt;: tamamlandı, video URL'si mevcut&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"failed"&lt;/code&gt;: hata oluştu&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eksiksiz Python sorgulama döngüsü:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;API_KEY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;BASE_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.x.ai&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;API_KEY&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;poll_video&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_attempts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;BASE_URL&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/v1/videos/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;request_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;attempt&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_attempts&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

        &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;progress&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;progress&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Attempt &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;attempt&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: status=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;, progress=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;progress&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;%&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;done&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;RuntimeError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Video generation failed: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;TimeoutError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Video not ready after &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;max_attempts&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; attempts&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_video&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;BASE_URL&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/v1/videos/generations&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Content-Type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-imagine-video&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;request_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;request_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Request ID: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;request_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;poll_video&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;video_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;video&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Video ready: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;video_url&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;video_url&lt;/span&gt;


&lt;span class="n"&gt;video_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;generate_video&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A timelapse of a city skyline at sunset transitioning to night, aerial view&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Örnek tamamlanmış yanıt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"done"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"video"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://vidgen.x.ai/....mp4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"duration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"respect_moderation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"progress"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"usage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"cost_in_usd_ticks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500000000&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  xAI Python SDK ile Otomatik Sorgulama
&lt;/h2&gt;

&lt;p&gt;xAI Python SDK ile sorgulama işlemini elle yazmadan çözebilirsiniz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;xai_sdk&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Client&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-imagine-video&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A golden retriever running through autumn leaves in slow motion&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;resolution&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;720p&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;aspect_ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;16:9&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Video URL: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Süre: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;s&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SDK ile hızlıca üretim alabilirsiniz. Daha fazla kontrol için ham isteklerle kendi sorgulama döngünüzü yazın.&lt;/p&gt;

&lt;h2&gt;
  
  
  Video Üretimi için Etkili İstemler Yazmak
&lt;/h2&gt;

&lt;p&gt;Başarılı video üretimi için isteminizi şu şekilde yapılandırın:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sahne açıklaması&lt;/strong&gt;: Konu ve ortamı birlikte tanımlayın. Detaylı açıklama gerçekçi sahneler üretir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hareket&lt;/strong&gt;: Ne hareket edecek, nasıl ve hangi yönde belirtin. Örn: "Kamera kupanın etrafında döner; buhar yukarı yükselir."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kamera stili&lt;/strong&gt;: "Yakın çekim", "havadan drone çekimi" gibi terimler kullanın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aydınlatma ve ruh hali&lt;/strong&gt;: "Altın saat", "sisli sabah, melankolik atmosfer" gibi ifadeler kullanın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stil referansları&lt;/strong&gt;: "Sinematik", "anime", "stop-motion". Birden fazla stili birleştirmek ilginç sonuçlar verebilir.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Örnek istem yapısı:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A lone astronaut floats past the International Space Station,
tether drifting behind them. The camera tracks slowly
alongside, showing Earth below. Cinematic, IMAX quality,
warm sunrise light reflecting off the visor.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Çözünürlük, Süre, En Boy Oranı Parametreleri
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Süre
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"duration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;1-15 saniye arasında, varsayılan 6 saniye.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Çözünürlük
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"resolution"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"720p"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;"480p"&lt;/code&gt; (varsayılan), &lt;code&gt;"720p"&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  En Boy Oranı
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"aspect_ratio"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"9:16"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mevcut oranlar:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Oran&lt;/th&gt;
&lt;th&gt;En uygun&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;16:9&lt;/td&gt;
&lt;td&gt;Masaüstü, YouTube&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9:16&lt;/td&gt;
&lt;td&gt;TikTok, Reels, mobil&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1:1&lt;/td&gt;
&lt;td&gt;Instagram akışı&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4:3&lt;/td&gt;
&lt;td&gt;Klasik video&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3:4&lt;/td&gt;
&lt;td&gt;Dikey mobil içerik&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3:2&lt;/td&gt;
&lt;td&gt;Standart foto oranı&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2:3&lt;/td&gt;
&lt;td&gt;Dikey fotoğrafçılık&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Tüm Parametrelerle Örnek
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.x.ai/v1/videos/generations &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$XAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "grok-imagine-video",
    "prompt": "A coastal town at dawn, waves breaking gently on a rocky shore",
    "duration": 10,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Referans Görseller ile Stil Yönlendirme
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;reference_images&lt;/code&gt; parametresi ile en fazla 7 adet görsel URL'si gönderebilirsiniz. Bunlar, videonun görsel stilini yönlendirir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"grok-imagine-video"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"A coastal town at dawn, waves breaking gently on a rocky shore"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reference_images"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://example.com/my-style-reference.jpg"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://example.com/color-palette-reference.jpg"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tutarlı stil için benzer estetikte görseller kullanın. Referans görselde sahne isteminiz yönlendirir; görselden videoda ise kaynak görsel ilk kare olur.&lt;/p&gt;

&lt;h2&gt;
  
  
  Oluşturulan Videoları Uzatma ve Düzenleme
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Bir Videoyu Uzatmak
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;POST /v1/videos/extensions&lt;/code&gt; ile mevcut bir videoya yeni çekimler ekleyebilirsiniz. Orijinal &lt;code&gt;request_id&lt;/code&gt; ve yeni bir istem ile çağırın. 15 saniye sınırını aşmak için kullanılır.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bir Videoyu Düzenlemek
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;POST /v1/videos/edits&lt;/code&gt; ile bir videoyu metin talimatına göre düzenleyebilirsiniz. Stil, sahne veya efektleri değiştirmek için kullanılır.&lt;/p&gt;

&lt;p&gt;Her iki uç nokta da eş zamansızdır ve sonucu &lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt; ile sorgulayabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  API Yanıtından Maliyeti Okuma
&lt;/h2&gt;

&lt;p&gt;Tamamlanan yanıtın &lt;code&gt;usage&lt;/code&gt; nesnesinde tick cinsinden maliyet bulunur:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"usage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"cost_in_usd_ticks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500000000&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dolar karşılığı: &lt;code&gt;cost_in_usd_ticks / 10_000_000&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;cost_in_usd&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;usage&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cost_in_usd_ticks&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;10_000_000&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Cost: $&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;cost_in_usd&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Fiyatlandırma Tablosu
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Çözünürlük&lt;/th&gt;
&lt;th&gt;Saniye başı&lt;/th&gt;
&lt;th&gt;10 sn klip&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;480p&lt;/td&gt;
&lt;td&gt;$0.05&lt;/td&gt;
&lt;td&gt;$0.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;720p&lt;/td&gt;
&lt;td&gt;$0.07&lt;/td&gt;
&lt;td&gt;$0.70&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Her yanıttan tick değerini kaydederek kullanım panosu oluşturabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grok Video API'nizi Apidog ile Test Etme
&lt;/h2&gt;

&lt;p&gt;Eş zamansız sorgulama deseni nedeniyle, ön uç kodunuzun yükleme, başarı ve hata durumlarını test etmesi gerekir. Gerçek API ile test maliyetli olacağı için &lt;a href="https://apidog.com/api-mocking/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog'un Akıllı Sahte (Smart Mock) özelliğini&lt;/a&gt; kullanarak uç noktaları taklit edin.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmit5bu2s8zqtmpzxfpbs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmit5bu2s8zqtmpzxfpbs.png" alt="Apidog'da Akıllı Sahte Ayarları Ekran Görüntüsü"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Kullanım Durumu 1: Ön Uç Geliştirme için Smart Mock
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;POST /v1/videos/generations&lt;/code&gt; uç noktasını oluşturun, yanıt şeması olarak tek bir &lt;code&gt;request_id&lt;/code&gt; dize alanı tanımlayın.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt; için, &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;video.url&lt;/code&gt;, &lt;code&gt;progress&lt;/code&gt; ve &lt;code&gt;usage.cost_in_usd_ticks&lt;/code&gt; alanlarını içeren yanıt şeması tanımlayın. Sahte yanıtla &lt;code&gt;"status": "done"&lt;/code&gt; ve örnek bir MP4 URL'si döndürün.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Artık ön uç ekibi, yükleme, başarı ve hata durumlarını gerçek API kredisi harcamadan test edebilir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kullanım Durumu 2: Sorgulama Döngüsü için Test Senaryoları
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Test senaryonuza &lt;code&gt;POST /v1/videos/generations&lt;/code&gt; adımını ekleyin. Yanıttan &lt;code&gt;request_id&lt;/code&gt;'yi çıkarıp değişkende saklayın.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /v1/videos/{{videoRequestId}}&lt;/code&gt; adımını ekleyin, döngüye alıp &lt;code&gt;status == "done"&lt;/code&gt; olana kadar kontrol edin. 5 sn bekleme ekleyin.&lt;/li&gt;
&lt;li&gt;Döngüden sonra, &lt;code&gt;$.video.url&lt;/code&gt;'nin boş olmadığını doğrulayan bir kontrol ekleyin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bu şekilde, sorgulama mantığınız CI ortamında otomatik olarak test edilebilir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Metinden Videoya mı, Görselden Videoya mı?
&lt;/h2&gt;

&lt;p&gt;Aynı model kullanılsa da farklı kullanımlar için uygundur:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Metinden videoya tercih edin:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sıfırdan içerik üretecekseniz&lt;/li&gt;
&lt;li&gt;Modelin kompozisyonu özgürce oluşturmasını istiyorsanız&lt;/li&gt;
&lt;li&gt;Kullanıcıların istem yazdığı bir uygulama geliştiriyorsanız&lt;/li&gt;
&lt;li&gt;Kaynak görseliniz yoksa&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Görselden videoya tercih edin:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Belirli bir görseli canlandırmak istiyorsanız&lt;/li&gt;
&lt;li&gt;Mevcut görseldeki detayları korumak istiyorsanız&lt;/li&gt;
&lt;li&gt;Tutarlı animasyonlar üretmek için&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Daha fazla detay için &lt;a href="https://apidog.com/api-mocking/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Grok görselden videoya API rehberine&lt;/a&gt; bakabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sık Karşılaşılan Hatalar ve Çözümleri
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;401 Yetkisiz:&lt;/strong&gt; API anahtarı eksik/hatalı. Bearer token'ı doğru biçimde gönderin, anahtar aktif mi kontrol edin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;429 Çok Fazla İstek:&lt;/strong&gt; Hız sınırı. Dakikada 60, saniyede 1 istek hakkınız var. Sorgulamalar arası gecikme ekleyin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Durum "failed":&lt;/strong&gt; İçerik denetiminden geçmedi. İstemi revize edin, hassas ifadeleri çıkarın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video URL'si 404:&lt;/strong&gt; Video URL'si geçicidir. Hemen indirin, uzun süre saklamayın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boş veya donmuş video:&lt;/strong&gt; Belirsiz veya hareketsiz istemlerde olabilir. Açık hareket talimatları ekleyin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yavaş sorgulama süreleri:&lt;/strong&gt; 720p ve uzun klipler daha uzun sürer. Geliştirme için kısa ve düşük çözünürlük kullanın.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Grok metinden videoya API'si ile metin isteminden hızlıca video üretebilir, sorgulama döngüsü ile sonucu çekebilir ve çıktınızın parametrelerini (süre, çözünürlük, oran, stil) kolayca yönetebilirsiniz. Maliyet takibi için &lt;code&gt;cost_in_usd_ticks&lt;/code&gt; değerini kullanın. Geliştirme ve test süreçlerinde &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; ile uç noktaları taklit edin, Test Senaryoları ile entegrasyonunuzu sürekli doğrulayın.&lt;/p&gt;

&lt;p&gt;Grok video API'si için sahte sunucunuzu ve test senaryolarınızı Apidog ile hızlıca kurabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sıkça Sorulan Sorular (SSS)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Metinden videoya oluşturma için hangi model adını kullanmalıyım?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;grok-imagine-video&lt;/code&gt; kullanın. Bu, &lt;code&gt;/v1/videos/generations&lt;/code&gt; POST isteğinde &lt;code&gt;model&lt;/code&gt; alanıdır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video oluşturma ne kadar sürer?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Çözünürlük ve süreye göre değişir. 480p kısa klipler 30 saniyeden kısa sürebilir, 720p ve uzun klipler birkaç dakika alabilir. Her 5-10 saniyede bir sorgulama yapın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15 saniyeden uzun video üretebilir miyim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Tek seferde mümkün değil, maksimum &lt;code&gt;duration&lt;/code&gt; 15 saniye. Daha uzun klipler için &lt;code&gt;POST /v1/videos/extensions&lt;/code&gt; ile uzatma yapın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oluşturulan videoyu nasıl indiririm?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Sorgulama yanıtındaki &lt;code&gt;result.video.url&lt;/code&gt; ile MP4 dosyasını hemen indirin. URL geçicidir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;İstemim içerik denetimini ihlal ederse ne olur?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;status&lt;/code&gt; &lt;code&gt;"failed"&lt;/code&gt; olur. Yanıtta &lt;code&gt;respect_moderation&lt;/code&gt; alanı denetimin uygulandığını gösterir. İstemi değiştirip tekrar deneyin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video API'si için ücretsiz katman var mı?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
xAI, çıktı saniyesi başına ücret alır. Ücretsiz katman yoktur. Kredi kampanyalarını &lt;a href="https://console.x.ai" rel="noopener noreferrer"&gt;console.x.ai&lt;/a&gt; üzerinden kontrol edin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;reference_images&lt;/code&gt; ile kaynak görsel arasında fark nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Referans görseller, metinden videoya çalışmasında stil rehberliği sunar. Görselden videoda ise kaynak görsel ilk kare olur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kredi harcamadan sorgulama döngüsü nasıl test edilir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://apidog.com/api-mocking/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog'un Smart Mock&lt;/a&gt; özelliği ile her iki uç noktayı taklit edin. &lt;code&gt;"processing"&lt;/code&gt; ve &lt;code&gt;"done"&lt;/code&gt; durumları için sahte yanıtlar ayarlayın, kodunuz gerçek API'ye dokunmadan çalışır.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Grok Resimden Video API Kullanımı (Adım Adım Kılavuz)</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Fri, 03 Apr 2026 08:46:44 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/grok-resimden-video-api-kullanimi-adim-adim-kilavuz-383e</link>
      <guid>https://dev.to/tobiass_hoffmann/grok-resimden-video-api-kullanimi-adim-adim-kilavuz-383e</guid>
      <description>&lt;h2&gt;
  
  
  Kısaca
&lt;/h2&gt;

&lt;p&gt;Grok resimden videoya API'si, statik bir görüntüyü video klibe dönüştürmek için &lt;code&gt;grok-imagine-video&lt;/code&gt; modelini kullanır. Görüntü URL'nizi, bir istemi ve isteğe bağlı ayarları &lt;code&gt;https://api.x.ai/v1/videos/generations&lt;/code&gt; adresine POST edersiniz. API hemen bir &lt;code&gt;request_id&lt;/code&gt; döndürür. Daha sonra &lt;code&gt;status&lt;/code&gt; "done" olana kadar &lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt; adresini yoklarsınız (poll). Süre 1 ila 15 saniye arasında değişir. 480p çıktı için fiyatlandırma saniye başına 0,05 dolardan başlar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u bugün deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Giriş
&lt;/h2&gt;

&lt;p&gt;28 Ocak 2026'da xAI, genel API erişimi için &lt;code&gt;grok-imagine-video&lt;/code&gt; modelini piyasaya sürdü. İlk ay içinde model 1,2 milyar video üretti ve Yapay Analiz metinden videoya liderlik tablosunda bir numara oldu. Resimden videoya dönüştürme, amiral gemisi özelliklerden biri: API'ye bir fotoğraf ve açıklayıcı bir istem verirsiniz, o da fotoğrafı MP4 olarak indirilebilecek kısa bir video klibe dönüştürür.&lt;/p&gt;

&lt;p&gt;Bir görevi gönderdiğiniz ve tamamlanmasını beklediğiniz bu eşzamansız akış, birçok geliştiricinin atladığı bir test zorluğu getirir. İlk POST 200 döndürdüğünde entegrasyonunuz bitmiş olmaz. Entegrasyonunuz, yoklama döngüsünün "processing", "done" ve "failed" durumlarını gerçek ağ koşulları altında doğru şekilde ele aldığını onayladığınızda tamamlanır.&lt;/p&gt;

&lt;p&gt;Apidog'un Test Senaryoları bu sorunu doğrudan çözer. Zincirleme bir dizi oluşturabilirsiniz: &lt;code&gt;/v1/videos/generations&lt;/code&gt; adresine POST yapın, &lt;code&gt;request_id&lt;/code&gt;'yi çıkarın, &lt;code&gt;status == "done"&lt;/code&gt; olana kadar yoklama isteğini döngüye alın, ardından video URL'sinin mevcut olduğunu onaylayın. Bu kılavuzun ilerleyen kısımlarındaki test anlatımını takip etmek için Apidog'u ücretsiz indirin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grok Resimden Videoya API'si Nedir?
&lt;/h2&gt;

&lt;p&gt;Grok resimden videoya API'si, xAI'nin video üretim ürününün bir parçasıdır. &lt;code&gt;grok-imagine-video&lt;/code&gt; modeli altında çalışır ve çıktı videonun başlangıç karesi olarak bir resim kabul eder. Model, resim içeriğini ve metin istemini inceler, ardından sahneyi canlandırmak için doğal hareketler üretir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API uç noktası:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;POST https://api.x.ai/v1/videos/generations
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kimlik doğrulama için standart Bearer token kullanılır:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;Authorization: Bearer YOUR_XAI_API_KEY
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anahtarınızı &lt;a href="https://console.x.ai" rel="noopener noreferrer"&gt;xAI konsolundan&lt;/a&gt; alabilirsiniz. Aynı API ayrıca metinden videoya dönüştürmeyi (&lt;code&gt;image&lt;/code&gt; parametresi olmadan), video uzantılarını ve video düzenlemelerini de destekler.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resimden Videoya İşlemi Nasıl Çalışır?
&lt;/h2&gt;

&lt;p&gt;İstek gövdesindeki &lt;code&gt;image&lt;/code&gt; parametresi, çıktı videonun &lt;strong&gt;ilk karesini&lt;/strong&gt; belirtir. Model resmi değiştirmez, doğrudan o kareden başlar. İlk karedeki her piksel, kaynak resminizden gelir. Model daha sonra isteminize göre o sahnenin zaman içinde nasıl ilerleyeceğini tahmin eder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek:&lt;/strong&gt; Bir göl fotoğrafı verin, isteminiz "sabah sisi sürüklenirken su yüzeyinde hafif dalgalar yayılıyor" olsun. Çıktının ilk karesi sizin fotoğrafınızdır; sonraki kareler, su ve sisin canlanmış halini gösterir.&lt;/p&gt;

&lt;p&gt;Metinden videoya dönüştürmeden farkı: Model, ilk kareyi kendi başına oluşturmaz, gönderdiğiniz resimden başlar. Böylece başlangıç sahnesi üzerinde tam kontrol sağlanır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resimden videoya&lt;/strong&gt; tercih edin:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ürün fotoğraflarınızı veya marka görsellerinizi hareketlendirmek istiyorsanız.&lt;/li&gt;
&lt;li&gt;İlk karede tutarlı bir görsel kimlik gereksiniminiz varsa.&lt;/li&gt;
&lt;li&gt;Hareketin belirli bir sahneye dayalı olmasını istiyorsanız.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Metinden videoya&lt;/strong&gt; tercih edin:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Referans bir görüntünüz yoksa.&lt;/li&gt;
&lt;li&gt;Modelin sahne kompozisyonunu kendi başına oluşturmasını istiyorsanız.&lt;/li&gt;
&lt;li&gt;İlk kare hassasiyeti önemli değilse.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ön Koşullar
&lt;/h2&gt;

&lt;p&gt;Başlamadan önce:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://console.x.ai" rel="noopener noreferrer"&gt;console.x.ai&lt;/a&gt; adresinden &lt;strong&gt;xAI hesabı&lt;/strong&gt; alın.&lt;/li&gt;
&lt;li&gt;xAI konsolundan &lt;strong&gt;API anahtarınızı&lt;/strong&gt; alın ve bir ortam değişkeninde saklayın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.8+&lt;/strong&gt; veya &lt;strong&gt;Node.js 18+&lt;/strong&gt; kurulu olmalı.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Herkese açık bir resim URL'si&lt;/strong&gt; veya base64 kodlu bir resim dosyanız olmalı.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fozcnsdoclf1obpc6q6w3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fozcnsdoclf1obpc6q6w3.png" alt="Örnek Görsel"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anahtarınızı ortam değişkeni olarak ayarlayın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your_key_here"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Daha üst düzey istemci için xAI Python SDK'sı:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;xai-sdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ham HTTP çağrıları için ek paket gerekmez (&lt;code&gt;requests&lt;/code&gt;/&lt;code&gt;fetch&lt;/code&gt; yeterli).&lt;/p&gt;

&lt;h2&gt;
  
  
  İlk Resimden Videoya İsteğinizi Yapma
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Curl Kullanarak
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.x.ai/v1/videos/generations &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$XAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "grok-imagine-video",
    "prompt": "Gentle waves move across the surface, morning mist rises slowly",
    "image": {
      "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/24701-nature-natural-beauty.jpg/1280px-24701-nature-natural-beauty.jpg"
    },
    "duration": 6,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yanıt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"request_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"d97415a1-5796-b7ec-379f-4e6819e08fdf"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Video hazır değil; yoklama gereklidir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python Kullanarak (Ham İstekler)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-imagine-video&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Gentle waves move across the surface, morning mist rises slowly&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/24701-nature-natural-beauty.jpg/1280px-24701-nature-natural-beauty.jpg&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;duration&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;resolution&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;720p&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;aspect_ratio&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;16:9&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Content-Type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.x.ai/v1/videos/generations&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;request_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;request_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Job started: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;request_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Base64 Resim Kullanarak
&lt;/h3&gt;

&lt;p&gt;Yerel/özel bir dosya için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;base64&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my_image.jpg&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rb&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;encoded&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;base64&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;b64encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;utf-8&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;data:image/jpeg;base64,&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;encoded&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Sonuç İçin Yoklama
&lt;/h2&gt;

&lt;p&gt;Video oluşturma eşzamansızdır. &lt;code&gt;request_id&lt;/code&gt; ile durum uç noktasını yoklayın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET https://api.x.ai/v1/videos/{request_id}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Durumlar:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Durum&lt;/th&gt;
&lt;th&gt;Anlamı&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"processing"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Video işleniyor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"done"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Video hazır, URL yanıtta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"failed"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bir hata oluştu&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Tamamlanmış örnek yanıt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"done"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"video"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://vidgen.x.ai/....mp4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"duration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"progress"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tam Python Yoklama Döngüsü
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;poll_video&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.x.ai/v1/videos/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;request_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Status: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; | Progress: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;progress&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;%&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;done&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;video&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;failed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;RuntimeError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Video generation failed for &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;request_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Kullanım
&lt;/span&gt;&lt;span class="n"&gt;video&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;poll_video&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Video URL: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Süre: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;duration&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;s&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yoklama aralığını 5 saniye ve üzeri tutun. API'nin dakikada 60 istek limiti vardır.&lt;/p&gt;

&lt;h2&gt;
  
  
  xAI Python SDK'sını Kullanma
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;xai-sdk&lt;/code&gt; ile eşzamansız desen otomatik olarak yönetilir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;xai_sdk&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Client&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="n"&gt;video&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-imagine-video&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Gentle waves move across the surface, morning mist rises slowly&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com/landscape.jpg&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;resolution&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;720p&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;aspect_ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;16:9&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Video URL: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Süre: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;s&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SDK, yoklama, hata yönetimi ve durum kontrollerini sizin için yapar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Çözünürlük, Süre ve En Boy Oranını Kontrol Etme
&lt;/h2&gt;

&lt;p&gt;Grok video API'si çıktı üzerinde tam kontrol sunar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Süre
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;duration&lt;/code&gt; parametresi 1–15 saniye arası değer alır (varsayılan: 6).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"duration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Daha uzun videolar daha pahalıdır.&lt;/p&gt;

&lt;h3&gt;
  
  
  Çözünürlük
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Değer&lt;/th&gt;
&lt;th&gt;Açıklama&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"480p"&lt;/td&gt;
&lt;td&gt;Varsayılan. Daha ucuz, hızlı üretim.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"720p"&lt;/td&gt;
&lt;td&gt;Yüksek kalite, daha pahalı.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"resolution"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"720p"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  En Boy Oranı
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Değer&lt;/th&gt;
&lt;th&gt;Kullanım Durumu&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"16:9"&lt;/td&gt;
&lt;td&gt;Geniş ekran, manzara&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"9:16"&lt;/td&gt;
&lt;td&gt;Dikey, mobil/sosyal medya&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"1:1"&lt;/td&gt;
&lt;td&gt;Kare, küçük resimler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"4:3"&lt;/td&gt;
&lt;td&gt;Klasik fotoğraf/sunum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"3:4"&lt;/td&gt;
&lt;td&gt;Portre&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"3:2"&lt;/td&gt;
&lt;td&gt;Standart fotoğraf&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"2:3"&lt;/td&gt;
&lt;td&gt;Uzun portre&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Bir &lt;code&gt;image&lt;/code&gt; verdiğinizde, varsayılan olarak kaynak boyutunu kullanır. Farklı bir oran için açıkça belirtin.&lt;/p&gt;




&lt;h2&gt;
  
  
  Stil Rehberliği için Referans Resimler Kullanma
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;image&lt;/code&gt;&lt;/strong&gt;: Videonun &lt;strong&gt;ilk karesi&lt;/strong&gt; olan kaynak fotoğraf.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;reference_images&lt;/code&gt;&lt;/strong&gt;: Videonun stilini, içeriğini veya görsel bağlamını yönlendiren maksimum 7 resim. Bunlar kare olarak kullanılmaz.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Örnek:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"grok-imagine-video"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Temiz beyaz bir yüzeyde yavaşça dönen bir ürün"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"image"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://example.com/product-shot.jpg"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reference_images"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://example.com/brand-style-reference-1.jpg"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://example.com/lighting-reference.jpg"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"duration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"resolution"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"720p"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;İlk kare &lt;code&gt;product-shot.jpg&lt;/code&gt; olur, referans resimler ise stil ve aydınlatmayı yönlendirir.&lt;/p&gt;

&lt;p&gt;İlk kare olmadan sadece referanslarla da metinden videoya çıkışı alabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Videoları Genişletme ve Düzenleme
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Bir Videoyu Genişletme
&lt;/h3&gt;

&lt;p&gt;Mevcut bir videoyu uzatmak için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.x.ai/v1/videos/extensions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$XAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "grok-imagine-video",
    "video_id": "your_original_request_id",
    "prompt": "Güneş ışığı içeri girerken sis yükselmeye devam ediyor",
    "duration": 5
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yine eşzamansız — yoklama ile ilerleyin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bir Videoyu Düzenleme
&lt;/h3&gt;

&lt;p&gt;Mevcut bir videoda düzenleme yapmak için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.x.ai/v1/videos/edits &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$XAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "grok-imagine-video",
    "video_id": "your_original_request_id",
    "prompt": "Gökyüzünü derin turuncu tonlarla dramatik bir gün batımına dönüştür"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Genişletme ve düzenleme işlemleri de yoklama gerektirir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fiyatlandırma Detayları: 10 Saniyelik Bir Video Ne Kadar Tutar?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bileşen&lt;/th&gt;
&lt;th&gt;Maliyet&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Giriş görüntüsü&lt;/td&gt;
&lt;td&gt;Resim başına 0,002 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;480p çıktı&lt;/td&gt;
&lt;td&gt;Saniye başına 0,05 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;720p çıktı&lt;/td&gt;
&lt;td&gt;Saniye başına 0,07 $&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Örnek: 720p'de 10 saniyelik video&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Giriş: 0,002 $&lt;/li&gt;
&lt;li&gt;Çıktı: 10 × 0,07 $ = 0,70 $&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Toplam: 0,702 $&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Örnek: 480p'de 6 saniyelik video&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Giriş: 0,002 $&lt;/li&gt;
&lt;li&gt;Çıktı: 6 × 0,05 $ = 0,30 $&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Toplam: 0,302 $&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aynı görüntü URL'sini tekrar kullansanız bile, her istek için giriş ücreti alınır.&lt;/p&gt;

&lt;p&gt;Metinden videoya (&lt;code&gt;image&lt;/code&gt; yok) 0,002 $ giriş ücreti alınmaz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grok Video API Entegrasyonunuzu Apidog ile Nasıl Test Edersiniz?
&lt;/h2&gt;

&lt;p&gt;Eşzamansız desen, klasik tek seferlik istek testlerinin ötesinde bir otomasyon gerektirir. Doğrulanması gerekenler:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Oluşturma isteği bir &lt;code&gt;request_id&lt;/code&gt; döndürür.&lt;/li&gt;
&lt;li&gt;Yoklama isteği "processing" durumunu doğru yönetir.&lt;/li&gt;
&lt;li&gt;Nihai yanıtta &lt;code&gt;status == "done"&lt;/code&gt; ve boş olmayan bir video URL'si vardır.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Apidog'un Test Senaryoları ile bu akışı otomatikleştirin:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım 1: Yeni Test Senaryosu Oluşturun&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apidog Testler modülünden yeni bir senaryo oluşturun. Örn: "Grok resimden videoya eşzamansız akış".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Adım 2: Oluşturma İsteğini Ekleyin&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;POST isteği ekleyin:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;URL: &lt;code&gt;https://api.x.ai/v1/videos/generations&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Header: &lt;code&gt;Authorization: Bearer {{xai_api_key}}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Body:
&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"grok-imagine-video"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Işık ağaçların arasından süzülürken sudan hafif sis yükseliyor"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"image"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://example.com/your-test-image.jpg"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"duration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"resolution"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"480p"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Adım 3: request_id'yi Çıkarın&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Değişken Çıkarıcı ekleyin:

&lt;ul&gt;
&lt;li&gt;Ad: &lt;code&gt;video_request_id&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;JSONPath: &lt;code&gt;$.request_id&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Adım 4: Yoklama Döngüsü Oluşturun&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For döngüsü oluşturun, içinde:

&lt;ul&gt;
&lt;li&gt;GET isteği: &lt;code&gt;https://api.x.ai/v1/videos/{{video_request_id}}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Authorization Header: &lt;code&gt;Bearer {{xai_api_key}}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Değişken Çıkarıcı: &lt;code&gt;video_status&lt;/code&gt; (&lt;code&gt;$.status&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Wait: 5000ms&lt;/li&gt;
&lt;li&gt;Break If: &lt;code&gt;{{video_status}} == "done"&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Adım 5: Video URL'sini Doğrulayın&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Son bir GET adımı ekleyin.&lt;/li&gt;
&lt;li&gt;Assertion: &lt;code&gt;$.video.url&lt;/code&gt; boş değil.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Senaryoyu çalıştırın; Apidog tüm akışı otomatikleştirir. CLI ile CI/CD entegrasyonuna da uygundur:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog run &lt;span class="nt"&gt;--scenario&lt;/span&gt; grok-video-async-flow &lt;span class="nt"&gt;--env&lt;/span&gt; production
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Yaygın Hatalar ve Düzeltmeler
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;401 Yetkilendirilmemiş&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API anahtarınızı ve Authorization başlığını kontrol edin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;422 İşlenemeyen Varlık&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gövdeyi ve zorunlu alanları doğrulayın. Görüntü URL'sinin erişilebilir olduğundan emin olun.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Resim URL'si erişilemiyor&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Genel bir CDN veya base64 veri URI'si kullanın.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Durum hep "processing"&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uzun sürede de tamamlanabilir; 10 dakikadan uzun sürerse yeni istek gönderin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;429 Hız limiti hatası&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dakikada 60, saniyede 1 istek limitine uyun. Yoklama aralığını artırın.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Base64 yüklemesi reddedildi&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Doğru MIME önekini (&lt;code&gt;data:image/jpeg;base64,&lt;/code&gt;) ekleyin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;En boy oranı uyumsuzluğu&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kaynak görsel oranını ve &lt;code&gt;aspect_ratio&lt;/code&gt;'yu uyumlu seçin.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Grok resimden videoya API'si, statik bir fotoğraftan kısa, animasyonlu bir klibe doğrudan yol sunar. Fotoğraf ve istemi POST edersiniz, bir &lt;code&gt;request_id&lt;/code&gt; alırsınız, bitene kadar yoklarsınız, ardından MP4'ü indirirsiniz. &lt;code&gt;grok-imagine-video&lt;/code&gt; modeli Ocak 2026'da liderliğe ulaştı ve ilk ayında 1 milyardan fazla video üretildi.&lt;/p&gt;

&lt;p&gt;Eşzamansız yoklama modeli, entegrasyonlarda en çok hata yapılan noktadır. Apidog'un Test Senaryoları ile Değişken Çıkarıcı, kesme koşullu yoklama döngüsü ve son doğrulama adımlarını otomatikleştirerek entegrasyon hatalarını erkenden yakalayabilirsiniz.&lt;/p&gt;

&lt;p&gt;Apidog'u ücretsiz kullanarak entegrasyonunuzu oluşturmaya başlayın. Kredi kartı gerekmez.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sıkça Sorulan Sorular
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Grok resimden videoya API'si için hangi model adını kullanmalıyım?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model adı &lt;code&gt;grok-imagine-video&lt;/code&gt;'dur. Gövdede &lt;code&gt;model&lt;/code&gt; alanı olarak iletin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;image&lt;/code&gt; ve &lt;code&gt;reference_images&lt;/code&gt; parametreleri arasındaki fark nedir?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;image&lt;/code&gt;: Videonun ilk karesini belirler. &lt;code&gt;reference_images&lt;/code&gt;: Stil ve içerik rehberliği sağlar, kare olarak kullanılmaz.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Video oluşturma ne kadar sürer?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;6 saniyelik 480p video genellikle 1–3 dakika, 15 saniyelik 720p video 4–8 dakika sürebilir. Her 5 saniyede bir yoklama önerilir.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Kaynak resim olarak yerel dosya kullanabilir miyim?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Evet, base64 veri URI'si olarak gönderin: &lt;code&gt;data:image/jpeg;base64,{encoded_bytes}&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;aspect_ratio&lt;/code&gt; belirtmezsem ne olur?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;image&lt;/code&gt; varsa, oran otomatik olarak görselin doğal oranı olur. Görüntüsüz metinden videoda varsayılan &lt;code&gt;16:9&lt;/code&gt;'dur.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;10 saniyelik 720p bir video ne kadar?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Giriş: 0,002 $, çıktı: 10 × 0,07 $ = 0,70 $, toplam: 0,702 $.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hız limitleri nelerdir?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dakikada 60 ve saniyede 1 istek limiti vardır; POST ve GET toplamı için geçerli.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bir videoyu 15 saniyenin ötesine uzatabilir miyim?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Evet, &lt;code&gt;POST /v1/videos/extensions&lt;/code&gt; ile ek oluşturma geçişleriyle uzatabilirsiniz. Her uzatma ayrı yoklama gerektirir.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>2026'da Bird SMS API Ücretleri Ne Kadar?</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Fri, 03 Apr 2026 07:14:41 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/2026da-bird-sms-api-ucretleri-ne-kadar-dkj</link>
      <guid>https://dev.to/tobiass_hoffmann/2026da-bird-sms-api-ucretleri-ne-kadar-dkj</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Bird SMS API, &lt;strong&gt;ABD çıkışlı mesaj başına 0,00331 Dolar&lt;/strong&gt; ve &lt;strong&gt;ABD gelişli mesaj başına 0,003 Dolar&lt;/strong&gt;'dan başlayan fiyatlara sahip. Bu, onu büyük SMS API sağlayıcıları arasında en uygun başlangıç fiyatlarından biri yapıyor. Günde 5 SMS içeren ücretsiz bir plan ile, denemeden taahhüt vermeniz gerekmez. Pro planı (ayda 49 Dolar), 1.000 SMS kredisi içerir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u hemen deneyin&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Giriş
&lt;/h2&gt;

&lt;p&gt;MessageBird, 2023 yılında Bird olarak yeniden markalaştı. Yeni markayla birlikte SMS, WhatsApp, e-posta ve ses iletişimi tek bir platformda; fiyatlandırma ise şeffaf, kullandıkça öde modeline geçti. Artık Bird'ün temel SMS maliyeti, Twilio, Vonage ve benzeri büyük oyuncuların çoğunun altında.&lt;/p&gt;

&lt;p&gt;💡 Bir SMS entegrasyonu oluşturuyorsanız, iki şeye ihtiyacınız var: güncel fiyatlandırma ve API çağrılarınızı prod ortama almadan test edebilmek. &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; ile Bird API isteklerinizi kod yazmadan tasarlayın, test edin ve yanıtları doğrulayın. Dakikalar içinde entegrasyonunuzu test edin.&lt;/p&gt;

&lt;p&gt;Bu makalede, Bird SMS'in 2025 ve 2026 maliyetleri, gizli ücretler ve Bird'ün alternatiflerle teknik olarak karşılaştırılması detaylıca anlatılıyor.&lt;/p&gt;




&lt;h2&gt;
  
  
  Bird SMS Fiyatlandırmasına Genel Bakış
&lt;/h2&gt;

&lt;p&gt;Bird, SMS için iki ana ücret tipi uygular:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Platform plan ücreti&lt;/strong&gt; (aylık abonelik)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mesaj başına ücret&lt;/strong&gt; (plan dahilini aşınca ek ödeme)&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Aylık maliyet&lt;/th&gt;
&lt;th&gt;Dahil olan SMS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ücretsiz&lt;/td&gt;
&lt;td&gt;0 Dolar&lt;/td&gt;
&lt;td&gt;Günde 5 SMS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;49 Dolar&lt;/td&gt;
&lt;td&gt;Ayda 1.000 SMS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kurumsal&lt;/td&gt;
&lt;td&gt;Özel&lt;/td&gt;
&lt;td&gt;Özel hacim&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Planınızın sınırını aştığınızda ABD numaraları için güncel mesaj başı fiyatlar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Giden SMS:&lt;/strong&gt; 0,00331 Dolar/mesaj&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gelen SMS:&lt;/strong&gt; 0,003 Dolar/mesaj&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fiyatlar ve taşıyıcı ücretleri değişebileceğinden, &lt;a href="https://bird.com/en/pricing/sms" rel="noopener noreferrer"&gt;güncel listeyi buradan&lt;/a&gt; kontrol edin.&lt;/p&gt;




&lt;h2&gt;
  
  
  Fiyatlandırma Dökümü: SMS, MMS, WhatsApp ve E-posta
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SMS
&lt;/h3&gt;

&lt;p&gt;ABD çıkışlı SMS’in mesaj başına taban fiyatı: 0,00331 Dolar. Diğer ülkeler için örnek fiyatlar:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Ülke&lt;/th&gt;
&lt;th&gt;Giden oran (yaklaşık)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ABD&lt;/td&gt;
&lt;td&gt;~0,00331 Dolar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Birleşik Krallık&lt;/td&gt;
&lt;td&gt;~0,036 €&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Avustralya&lt;/td&gt;
&lt;td&gt;~0,009 €&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Almanya&lt;/td&gt;
&lt;td&gt;~0,056 €&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hindistan&lt;/td&gt;
&lt;td&gt;rotaya göre değişir&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Brezilya&lt;/td&gt;
&lt;td&gt;~0,047 €&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Not:&lt;/strong&gt; ABD ve Kanada mesajları için operatör ücretleri ayrıca eklenir. (Bkz: gizli maliyetler bölümü.)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  MMS
&lt;/h3&gt;

&lt;p&gt;MMS ücretleri SMS’ten 3-5 kat daha fazladır. Fiyatlar ülkeye ve planda alınan hacme göre değişir. Güncel MMS oranları için &lt;a href="https://bird.com/en/pricing/sms" rel="noopener noreferrer"&gt;fiyat listesine&lt;/a&gt; bakın.&lt;/p&gt;

&lt;h3&gt;
  
  
  WhatsApp
&lt;/h3&gt;

&lt;p&gt;Bird’ün WhatsApp fiyatlandırması iki bileşen içerir:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Bird işlem ücreti (1.000 mesaj başına):&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Hacim&lt;/th&gt;
&lt;th&gt;1.000 mesaj başına ücret&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1-1.000&lt;/td&gt;
&lt;td&gt;0,001 Dolar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.001-100.000&lt;/td&gt;
&lt;td&gt;0,005 Dolar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100.001-500.000&lt;/td&gt;
&lt;td&gt;0,0045 Dolar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;500.001+&lt;/td&gt;
&lt;td&gt;0,004 Dolar&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Meta geçiş ücreti&lt;/strong&gt; (ABD için):&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Pazarlama konuşmaları: 0,0250 Dolar&lt;/li&gt;
&lt;li&gt;Hizmet konuşmaları: 0,0034 Dolar&lt;/li&gt;
&lt;li&gt;Kimlik doğrulama: 0,0034 Dolar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bird bu ücretleri doğrudan yansıtır, ek marj eklemez.&lt;/p&gt;

&lt;h3&gt;
  
  
  E-posta
&lt;/h3&gt;

&lt;p&gt;API üzerinden e-posta mesajı başına minimum 0,001 Dolar’dan başlar. Pro planı ayda 10.000 e-posta içerir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ses
&lt;/h3&gt;

&lt;p&gt;Kullanıma göre faturalandırılır. ABD çıkışlı aramalar genellikle dakika başına 0,013-0,015 Dolar’dır.&lt;/p&gt;




&lt;h2&gt;
  
  
  Bird Faturanızı Etkileyen Teknik Faktörler
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Ülke ve Operatör Yönlendirmesi
&lt;/h3&gt;

&lt;p&gt;ABD SMS fiyatı cazip olsa da, Almanya (~0,056 €) gibi ülkelerde maliyet ABD’nin 10-20 katına çıkabilir. Uluslararası dağıtım yapmadan önce &lt;a href="https://bird.com/en/pricing/sms" rel="noopener noreferrer"&gt;ülke fiyatlarını&lt;/a&gt; kontrol edin.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Numara Türü
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Uzun kodlar (10DLC):&lt;/strong&gt; Standart ABD numarası, marka/kampanya kaydı gerekir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kısa kodlar:&lt;/strong&gt; Daha yüksek hacim, daha yüksek aylık kira (500-1.000 Dolar/ay).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ücretsiz numaralar:&lt;/strong&gt; Orta hacim, orta aylık ücret.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Numara kiralama ücreti, mesaj başı fiyata eklenir.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Mesaj Uzunluğu ve Kodlama
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;160 karakter (GSM-7) = 1 segment&lt;/li&gt;
&lt;li&gt;Unicode/emoji kullanılırsa: 70 karakter = 1 segment&lt;/li&gt;
&lt;li&gt;Her segment ayrı ücretlenir.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Kanal Karışımı
&lt;/h3&gt;

&lt;p&gt;Bird ile SMS başarısız olursa WhatsApp’a yönlendirme yapabiliyorsunuz; bu, ek WhatsApp ücretleri doğurur.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Hacim
&lt;/h3&gt;

&lt;p&gt;Bird, kamuya açık hacim indirimi sunmaz. Büyük hacimler için Kurumsal plan ile özel fiyat görüşün.&lt;/p&gt;




&lt;h2&gt;
  
  
  Gizli Maliyetler ve Ek Ücretler
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ABD Operatör Ücretleri (10DLC)
&lt;/h3&gt;

&lt;p&gt;ABD’de A2P SMS için marka ve kampanya kaydı zorunlu. Ek ücretler:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Marka kaydı:&lt;/strong&gt; Tek seferlik (~4-44 Dolar)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kampanya kaydı:&lt;/strong&gt; Kampanya başı aylık (~10 Dolar/ay)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mesaj başına operatör ek ücreti:&lt;/strong&gt; Temel fiyatın üstüne sent bazlı ekleme&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Telefon Numarası Kiralama
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;ABD uzun kod: Ayda 1-2 Dolar&lt;/li&gt;
&lt;li&gt;Ücretsiz numara: Ayda 2-3 Dolar&lt;/li&gt;
&lt;li&gt;Kısa kod: Ayda 500-1.000 Dolar&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Gelen Webhook’lar ve İşleme
&lt;/h3&gt;

&lt;p&gt;Gelen SMS almak (ör. anahtar kelimeyle yanıt), ABD için mesaj başına 0,003 Dolar olarak faturalandırılır.&lt;/p&gt;

&lt;h3&gt;
  
  
  Platform Aboneliği
&lt;/h3&gt;

&lt;p&gt;Pro plan (49 Dolar/ay), düşük hacim için maliyetli olabilir; yüksek hacimde ise 1.000 SMS’in üstü için ek ödeme gerekir.&lt;/p&gt;




&lt;h2&gt;
  
  
  Bird Alternatiflerle Karşılaştırma
&lt;/h2&gt;

&lt;p&gt;ABD çıkışlı SMS oranları:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sağlayıcı&lt;/th&gt;
&lt;th&gt;ABD çıkışlı SMS&lt;/th&gt;
&lt;th&gt;ABD gelişli SMS&lt;/th&gt;
&lt;th&gt;Notlar&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bird&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0,00331 Dolar&lt;/td&gt;
&lt;td&gt;0,003 Dolar&lt;/td&gt;
&lt;td&gt;En düşük oran; çok kanallı platform&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twilio&lt;/td&gt;
&lt;td&gt;0,0079 Dolar&lt;/td&gt;
&lt;td&gt;0,0079 Dolar&lt;/td&gt;
&lt;td&gt;Daha yüksek oran; büyük ekosistem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Telnyx&lt;/td&gt;
&lt;td&gt;~0,004 Dolar&lt;/td&gt;
&lt;td&gt;~0,001 Dolar&lt;/td&gt;
&lt;td&gt;Rekabetçi; operatör-doğrudan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plivo&lt;/td&gt;
&lt;td&gt;0,0055 Dolar&lt;/td&gt;
&lt;td&gt;0,0005 Dolar&lt;/td&gt;
&lt;td&gt;Basit platform, düşük gelen ücreti&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Bird, SMS’i CRM ve otomasyona entegre eder. Sadece sade SMS API isterseniz, Telnyx/Plivo daha uygun olabilir. Çok kanallı (SMS, WhatsApp, e-posta) otomasyon istiyorsanız, Bird avantajlıdır.&lt;/p&gt;




&lt;h2&gt;
  
  
  Bird ile Entegrasyona Hızlı Başlangıç
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://bird.com/" rel="noopener noreferrer"&gt;bird.com&lt;/a&gt; üzerinden ücretsiz hesap açın. Günde 5 SMS gönderebilirsiniz, kredi kartı gerekmez.&lt;/li&gt;
&lt;li&gt;ABD 10DLC için marka/kampanya kaydınızı Bird panelinden başlatın (1-3 iş günü sürer).&lt;/li&gt;
&lt;li&gt;Bir numara edinin: Bird Numaralar API veya panel üzerinden ABD uzun kod numarası alın.&lt;/li&gt;
&lt;li&gt;İlk API çağrınızı yapın. Bird REST API, JSON formatı kullanır. Örnek istek:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://api.bird.com/messages"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: AccessKey [API_ANAHTARINIZ]"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "originator": "+1XXXXXXXXXX",
    "recipients": ["+1YYYYYYYYYY"],
    "body": "Merhaba, test mesajıdır!"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Daha fazla teknik detay ve diğer SDK dilleri için &lt;a href="https://docs.bird.com/" rel="noopener noreferrer"&gt;Bird dokümantasyonunu&lt;/a&gt; inceleyin.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Bird SMS API, ABD çıkışlı mesaj başına 0,00331 Dolar ile büyük sağlayıcılar arasında en düşük oranı sunar. Ücretsiz plan ile API’yi kredi kartı olmadan test edebilirsiniz. Pro plan, yeni başlayan ekipler için uygundur.&lt;/p&gt;

&lt;p&gt;Gizli maliyetlere (10DLC, numara kiralama, yüksek uluslararası oranlar) dikkat edin ve entegrasyonunuzu canlıya almadan önce Apidog ile uçtan uca test edin.&lt;/p&gt;







&lt;h2&gt;
  
  
  SSS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ABD'de Bird SMS API'nin mesaj başına fiyatı nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
ABD çıkışlı SMS: 0,00331 Dolar, ABD gelişli SMS: 0,003 Dolar. Üzerine operatör (10DLC) ücretleri eklenir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bird, MessageBird ile aynı mı?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet. MessageBird, 2023’te Bird olarak yeniden markalaştı. API uç noktaları ve bazı dokümanlarda eski ad hâlâ geçebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bird gelen SMS için ücret alıyor mu?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet. ABD gelişli her SMS için 0,003 Dolar. Abonelikten çıkma ve yardım yanıtları da buna dahildir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bird'ün ücretsiz planı nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Günde 5 SMS, 10 e-posta ve 15 AI ajan mesajı içerir. Kredi kartı gerekmez.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bird SMS fiyatlandırması Twilio ile nasıl karşılaştırılır?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Bird (0,00331 $) Twilio’dan (0,0079 $) daha ucuz. 100.000 SMS’te Bird: 331 $, Twilio: 790 $ (temel oran).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bird SMS'te gizli ücretler var mı?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet: 10DLC marka/kampanya kaydı, mesaj başına operatör ek ücretleri, numara kiralama ve yüksek uluslararası oranlar eklenir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gerçek mesaj göndermeden Bird SMS API'yi nasıl test edebilirim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog'un Akıllı Sahte (Smart Mock) özelliğini&lt;/a&gt; kullanarak Bird API yanıtlarını simüle edin. Ayrıca Bird’ün sandbox araçlarını ve Apidog’un test zincirleme özelliklerini kullanabilirsiniz.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Twilio SMS API Ücreti: 2026 Fiyatlandırma Detaylı Analizi</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Fri, 03 Apr 2026 04:03:22 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/twilio-sms-api-ucreti-2026-fiyatlandirma-detayli-analizi-41mk</link>
      <guid>https://dev.to/tobiass_hoffmann/twilio-sms-api-ucreti-2026-fiyatlandirma-detayli-analizi-41mk</guid>
      <description>&lt;h2&gt;
  
  
  Kısaca
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;ABD uzun kodlu SMS (giden ve gelen): &lt;strong&gt;mesaj başına 0,0083 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;MMS giden: &lt;strong&gt;mesaj başına 0,022 $&lt;/strong&gt;; MMS gelen: &lt;strong&gt;mesaj başına 0,0165 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Ücretsiz hat SMS: &lt;strong&gt;mesaj başına 0,0083 $&lt;/strong&gt; artı operatör ek ücretleri&lt;/li&gt;
&lt;li&gt;Kısa kod kiralama: rastgele bir kod için &lt;strong&gt;aylık 1.000 $&lt;/strong&gt;; özel bir kod için &lt;strong&gt;aylık 1.500 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;10DLC marka kaydı: &lt;strong&gt;4,50 $ tek seferlik ücret&lt;/strong&gt; (Ağustos 2025'te güncellendi); kampanyalar &lt;strong&gt;aylık 1,50 $ ile 10 $&lt;/strong&gt; arasında&lt;/li&gt;
&lt;li&gt;Telefon numarası (uzun kod): &lt;strong&gt;aylık 1,15 $&lt;/strong&gt;; ücretsiz hat: &lt;strong&gt;aylık 2,15 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Operatör ücretleri tüm temel fiyatların üzerine eklenir&lt;/li&gt;
&lt;li&gt;Aylık 150.000 mesajda otomatik olarak toplu indirimler başlar&lt;/li&gt;
&lt;li&gt;Ücretsiz deneme sürümü mevcut; başlamak için kredi kartı gerekmez&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u bugün deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Giriş
&lt;/h2&gt;

&lt;p&gt;Twilio, çoğu geliştirici ekibi için varsayılan SMS API'sidir. Dokümantasyonu ayrıntılıdır, çalışma süresi güvenilirdir ve REST API'si iyi tasarlanmıştır. Ancak bir yan projeden üretim uygulamasına geçtiğinizde fatura hızla büyür. Mesaj başına tek bir fiyat ödemezsiniz. Twilio'nun temel oranını, bir operatör ücretini, bir telefon numarası ücretini ve muhtemelen ek olarak 10DLC kayıt maliyetlerini ödersiniz.&lt;/p&gt;

&lt;p&gt;💡SMS entegrasyonunuzu oluşturmadan önce, tüm iş akışınızı doğru şekilde test edin. Apidog, Twilio webhook yanıtlarınızı OpenAPI spesifikasyonunuza göre otomatik olarak doğrulayan test senaryoları oluşturur. HTTP durum kodlarını onaylayın, yanıt gövdesi şemalarını kontrol edin ve CI/CD sürecinizde sözleşme testleri çalıştırın. SMS iş akışlarınızı üretime almadan Apidog ile test edin.&lt;/p&gt;

&lt;p&gt;Bu makalede, Twilio'nun fiyatlandırmasının tüm kalemlerini net ve uygulanabilir şekilde bulacaksınız. Faturanızı etkileyen her bileşeni, gizli maliyetleri ve alternatiflerle yan yana karşılaştırmayı adım adım görebilirsiniz.&lt;/p&gt;




&lt;h2&gt;
  
  
  Twilio SMS Fiyatlandırmasına Genel Bakış
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.twilio.com/en-us/pricing/messaging" rel="noopener noreferrer"&gt;Twilio kullandıkça öde fiyatlandırması kullanır&lt;/a&gt;. Segment başına mesaj, aylık telefon numarası ve isteğe bağlı özellikler ile ödeme yaparsınız. Kurumsal hacimler için taahhütlü anlaşmalar hariç, minimum harcama veya sözleşme yoktur.&lt;/p&gt;

&lt;p&gt;ABD'de uzun kodlu SMS için temel oran, hem gelen hem de giden mesajlar için &lt;strong&gt;segment başına 0,0083 $&lt;/strong&gt;'tır. Ancak gerçek maliyet, operatör ücretleri, numara kiralama ve uyumluluk kayıtları ile artar.&lt;/p&gt;

&lt;p&gt;150.000 mesaj/ay üzerindeki hacimlerde toplu indirimler otomatik olarak uygulanır.&lt;/p&gt;




&lt;h2&gt;
  
  
  Fiyatlandırma Detayları: SMS, MMS, Ücretsiz Hat ve Kısa Kodlar
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Uzun Kod SMS (10 Haneli Numaralar)
&lt;/h3&gt;

&lt;p&gt;ABD'de yaygın olarak kullanılan 10 haneli numaralar için fiyatlar:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mesaj türü&lt;/th&gt;
&lt;th&gt;Segment başına fiyat&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Giden SMS&lt;/td&gt;
&lt;td&gt;0,0083 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gelen SMS&lt;/td&gt;
&lt;td&gt;0,0083 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Giden MMS&lt;/td&gt;
&lt;td&gt;0,022 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gelen MMS&lt;/td&gt;
&lt;td&gt;0,0165 $&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Not:&lt;/strong&gt; Twilio, mesaj başına değil, &lt;strong&gt;mesaj segmenti&lt;/strong&gt; başına ücret alır. GSM-7 metinde 160 karakter=1 segment; Unicode (emoji, aksan) kullanırsanız 70 karakter=1 segment. 200 karakterlik düz metin örneği: 2 segment faturalandırılır.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Ücretsiz Hat Numaraları
&lt;/h3&gt;

&lt;p&gt;Ücretsiz hatlar, uzun kodlarla aynı SMS temel oranlarını sunar (segment başına 0,0083 $), ancak giden MMS 0,022 $ ve gelen MMS 0,02 $'dır. 10DLC kaydı gerektirmezler, fakat yüksek verim için doğrulama şarttır.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kısa Kodlar (5-6 Haneli Numaralar)
&lt;/h3&gt;

&lt;p&gt;Kısa kodlar, yüksek hacimli kampanyalar için uygundur. SMS oranı değişmez, ancak numara kiralama maliyeti yüksektir:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kısa kod türü&lt;/th&gt;
&lt;th&gt;Aylık maliyet&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rastgele kısa kod&lt;/td&gt;
&lt;td&gt;Aylık 1.000 $ (3 ayda bir)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Özel kısa kod&lt;/td&gt;
&lt;td&gt;Aylık 1.500 $ (3 ayda bir)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kendi özel kodunuzu getirin&lt;/td&gt;
&lt;td&gt;Aylık 500 $ (3 ayda bir)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Tüm kısa kodlarda, MMS etkinleştirildiğinde 500 $ kurulum ücreti bulunur.&lt;/p&gt;

&lt;h3&gt;
  
  
  Toplu İndirimler
&lt;/h3&gt;

&lt;p&gt;Twilio, otomatik kademeli indirimlerle yüksek hacimlerde maliyeti düşürür:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aylık mesaj sayısı&lt;/th&gt;
&lt;th&gt;Segment başına fiyat&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 - 150.000&lt;/td&gt;
&lt;td&gt;0,0083 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;150.001 - 300.000&lt;/td&gt;
&lt;td&gt;0,0081 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;300.001 - 500.000&lt;/td&gt;
&lt;td&gt;0,0079 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;500.001 - 750.000&lt;/td&gt;
&lt;td&gt;0,0077 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;750.001 - 1.000.000&lt;/td&gt;
&lt;td&gt;0,0075 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.000.001+&lt;/td&gt;
&lt;td&gt;0,0073 $&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Numara türleri ayrı ayrı değerlendirilir; örneğin uzun kod ve ücretsiz hat mesajları birleştirilemez.&lt;/p&gt;




&lt;h2&gt;
  
  
  Twilio Faturanızı Etkileyen Faktörler
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Telefon Numarası Türü
&lt;/h3&gt;

&lt;p&gt;Fiyat, mesaj gönderdiğiniz numara türüne göre belirlenir. Hacim indirimleri yalnızca tek numara türü için geçerlidir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mesaj Segmentleri
&lt;/h3&gt;

&lt;p&gt;Her mesaj segmentler halinde faturalandırılır. Uzun metin veya Unicode karakterler, maliyetinizi artırır.&lt;/p&gt;

&lt;h3&gt;
  
  
  Operatör Ücretleri
&lt;/h3&gt;

&lt;p&gt;Twilio'nun temel oranına ek olarak, ABD operatörleri her mesaj başına ekstra ücret alır:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operatör&lt;/th&gt;
&lt;th&gt;Giden ücret&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AT&amp;amp;T&lt;/td&gt;
&lt;td&gt;0,0035 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T-Mobile&lt;/td&gt;
&lt;td&gt;0,0045 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verizon&lt;/td&gt;
&lt;td&gt;0,004 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;US Cellular&lt;/td&gt;
&lt;td&gt;0,005 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Diğerleri&lt;/td&gt;
&lt;td&gt;0,004 $&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;MMS ücretleri daha yüksektir (ör. AT&amp;amp;T MMS başına 0,009 $).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek:&lt;/strong&gt; AT&amp;amp;T abonesine giden tek SMS: 0,0083 $ (Twilio) + 0,0035 $ (operatör) = &lt;strong&gt;0,0118 $/segment&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hedef Ülke
&lt;/h3&gt;

&lt;p&gt;Uluslararası gönderimler için fiyatlar değişkendir. Örneğin, Birleşik Krallık 0,04 $, Hindistan 0,0029 $, Brezilya 0,075 $/mesaj.&lt;/p&gt;

&lt;h3&gt;
  
  
  10DLC Kaydı
&lt;/h3&gt;

&lt;p&gt;ABD'de uzun kod üzerinden A2P SMS gönderenler için marka ve kampanya kaydı zorunludur. Kayıtsız trafik, operatörler tarafından filtrelenir.&lt;/p&gt;




&lt;h2&gt;
  
  
  Gizli Maliyetler ve Ekstra Ücretler
&lt;/h2&gt;

&lt;h3&gt;
  
  
  10DLC Kayıt Ücretleri
&lt;/h3&gt;

&lt;p&gt;2025 güncellemeleriyle birlikte:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Marka kaydı:&lt;/strong&gt; Tek sahip/düşük hacimli standart: 4,50 $ (tek seferlik); Standart marka: 46 $ (tek seferlik)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kampanya kaydı:&lt;/strong&gt; Bir sefere mahsus inceleme: 15 $; aylık ücret: 1,50 $ - 10 $&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kampanya türü&lt;/th&gt;
&lt;th&gt;Aylık ücret&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tek Sahip&lt;/td&gt;
&lt;td&gt;2 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Düşük hacimli karma&lt;/td&gt;
&lt;td&gt;1,50 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Standart&lt;/td&gt;
&lt;td&gt;10 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hayır Kurumu/501(c)(3)&lt;/td&gt;
&lt;td&gt;3 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Acil durum hizmetleri&lt;/td&gt;
&lt;td&gt;5 $&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Ek olarak, inceleme itirazı veya tekrar denemeleri için de ücret çıkar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Telefon Numarası Ücretleri
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Uzun kod: aylık 1,15 $&lt;/li&gt;
&lt;li&gt;Ücretsiz hat: aylık 2,15 $&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Çoklu numara kullanıyorsanız toplam maliyet hızla artar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Başarısız Mesaj İşleme Ücreti
&lt;/h3&gt;

&lt;p&gt;Başarısız SMS için &lt;strong&gt;mesaj başına 0,001 $&lt;/strong&gt; ücret alınır.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ek Özellikler
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Engagement Suite: İlk 1.000 mesaj ücretsiz, sonrası giden mesaj başına 0,015 $&lt;/li&gt;
&lt;li&gt;Compliance Toolkit: Giden mesaj başına 0,015 $&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Destek Planları
&lt;/h3&gt;

&lt;p&gt;Ücretsiz destek sınırlıdır. Ücretli destek, "Geliştirici" seviyesi için aylık 250 $'dan başlar.&lt;/p&gt;




&lt;h2&gt;
  
  
  Twilio Alternatifleriyle Karşılaştırma
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sağlayıcı&lt;/th&gt;
&lt;th&gt;ABD Giden SMS&lt;/th&gt;
&lt;th&gt;ABD Gelen SMS&lt;/th&gt;
&lt;th&gt;Telefon numarası&lt;/th&gt;
&lt;th&gt;10DLC gerekli&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Twilio&lt;/td&gt;
&lt;td&gt;0,0083 $ + operatör ücretleri&lt;/td&gt;
&lt;td&gt;0,0083 $ + operatör ücretleri&lt;/td&gt;
&lt;td&gt;Aylık 1,15 $&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plivo&lt;/td&gt;
&lt;td&gt;0,005 $&lt;/td&gt;
&lt;td&gt;0,00035 $&lt;/td&gt;
&lt;td&gt;Aylık 0,80 $&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Telnyx&lt;/td&gt;
&lt;td&gt;0,004 $&lt;/td&gt;
&lt;td&gt;0,004 $&lt;/td&gt;
&lt;td&gt;Aylık 1,00 $&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bird&lt;/td&gt;
&lt;td&gt;~0,007 $&lt;/td&gt;
&lt;td&gt;~0,007 $&lt;/td&gt;
&lt;td&gt;Değişir&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Plivo ve Telnyx, özellikle yüksek hacimli ve düşük maliyetli kullanım için tercih edilebilir. Twilio ise geliştirici dostu API, dokümantasyon ve ekosistem avantajı sunar.&lt;/p&gt;




&lt;h2&gt;
  
  
  Twilio'yu Ücretsiz Olarak Nasıl Test Edersiniz?
&lt;/h2&gt;

&lt;p&gt;Twilio'nun kredi kartı gerektirmeyen ücretsiz bir deneme hesabı vardır. Küçük bir kredi bakiyesi ile başlarsınız.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Test telefon numarası alabilirsiniz.&lt;/li&gt;
&lt;li&gt;API ile SMS gönderme/alma işlemlerini gerçekleştirebilirsiniz.&lt;/li&gt;
&lt;li&gt;Gelen mesajlar için webhook teslimatını test edebilirsiniz.&lt;/li&gt;
&lt;li&gt;Twilio Konsolu ve kullanım günlüklerini inceleyebilirsiniz.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Deneme sürecinde, doğrulanmamış numaralara giden mesajlara "Twilio deneme hesabınızdan gönderildi" öneki eklenir. Ücretli hesaba geçtiğinizde bu önek kalkar. Kullandıkça öde modelinde aylık minimum harcama yoktur.&lt;/p&gt;




&lt;h2&gt;
  
  
  Apidog ile Twilio SMS Entegrasyonunuzu Nasıl Test Edersiniz?
&lt;/h2&gt;

&lt;p&gt;Twilio kimlik bilgilerinizi ve webhook'larınızı ayarladıktan sonra, entegrasyonunuzu otomatik ve sürekli olarak test etmeniz gerekir. Manuel testler ölçeklenmez ve şema uyumsuzluklarını kaçırabilirsiniz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcuec6nm1uksjpraul5p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcuec6nm1uksjpraul5p.png" alt="Apidog Test Senaryoları, Twilio SMS entegrasyonunu test etmek için bir iş akışı gösteriyor" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apidog'un Test Senaryoları&lt;/strong&gt; ile pratik olarak şunları yapabilirsiniz:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Twilio webhook uç nokta OpenAPI spesifikasyonunu doğrudan test senaryosuna aktarın&lt;/li&gt;
&lt;li&gt;Mesaj akışınızı adımlara bölün: SMS gönder, teslimat geri aramasını al, gelen yanıtı işle&lt;/li&gt;
&lt;li&gt;Orkestrasyon modunu kullanarak adımları sıralı çalıştırın&lt;/li&gt;
&lt;li&gt;Adımlar arasında veri aktarımı için &lt;code&gt;{{$.stepId.response.body.field}}&lt;/code&gt; sözdizimini kullanın&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Örnek iş akışı:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"steps"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sendSms"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"POST"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"body"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"To"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{telefon_numarası}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"From"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{twilio_numarası}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"Body"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Test mesajı"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"getWebhook"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"WAIT_FOR_WEBHOOK"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"webhookSchema"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Webhook Spesifikasyonu"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Sözleşme Testi&lt;/strong&gt; ile, Apidog'un Yanıt Doğrulama özelliği gerçek API yanıtlarını OpenAPI spesifikasyonuna göre otomatik kontrol eder:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP durum kodları beklenenle eşleşiyor mu?&lt;/li&gt;
&lt;li&gt;Webhook gövdesindeki tüm zorunlu alanlar mevcut mu?&lt;/li&gt;
&lt;li&gt;Alan türleri doğru mu? (Örneğin mesaj SID'si dize, timestamp doğru formatta)&lt;/li&gt;
&lt;li&gt;Ek alanlar spesifikasyona uygun mu?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Her alan için manuel kod yazmadan, tam kapsamlı otomasyon sağlar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Başlamak için:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog'u ücretsiz indirin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Twilio API spesifikasyonunuzu içe aktarın veya webhook şemanızı tanımlayın&lt;/li&gt;
&lt;li&gt;SMS gönderme ve alma akışınızı yansıtan bir test senaryosu oluşturun&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Twilio SMS API fiyatlandırması, ABD uzun kodları için segment başına 0,0083 $'dan başlar. Ancak gerçek maliyet; operatör ücretleri, numara kirası ve 10DLC kayıt giderleriyle yükselir. Örneğin, AT&amp;amp;T'ye giden bir SMS için toplam segment başı maliyet yaklaşık 0,0118 $ olur. 10DLC kampanya başına aylık 10 $ ücret eklenir.&lt;/p&gt;

&lt;p&gt;Fiyatlandırmayı modelleyip toplam maliyeti netleştirdikten sonra, entegrasyonunuzu oluşturun ve otomatik testlerle doğrulayın. Apidog'un Test Senaryosu ve Sözleşme Testi özellikleri, Twilio webhook akışlarınızı ve API yanıtlarınızı spesifikasyonunuza göre doğrulamanıza olanak tanır.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sıkça Sorulan Sorular
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;S: Twilio'da ABD'ye giden bir SMS'in temel fiyatı nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: ABD uzun kodlu giden SMS için temel oran segment başına 0,0083 $'dır. Operatör ücretleri eklenir (ör. AT&amp;amp;T için toplam 0,0118 $).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: Twilio gelen SMS'ler için ücret alıyor mu?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Evet. Uzun kodlu ve ücretsiz hat numaralarındaki gelen SMS'ler için segment başına 0,0083 $ alınır. Kaynak operatöre göre ek ücret olabilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: 10DLC nedir ve bunun için ödeme yapmam gerekiyor mu?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: 10DLC, ABD A2P (uygulamadan kişiye) SMS için kayıt sistemidir. Uzun koddan mesaj gönderiyorsanız kayıt zorunludur. Marka kaydı 4,50 $ (tek seferlik), kampanya ücretleri türüne göre aylık 1,50 $ - 10 $ arasıdır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: Bir Twilio kısa kodunun maliyeti ne kadar?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Rastgele kısa kod aylık 1.000 $ (3 ayda bir faturalandırılır), özel kısa kod 1.500 $, MMS etkinleştirme ücreti 500 $'dır. Mesaj başına oran değişmez.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: Twilio toplu indirimler sunuyor mu?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Evet. Numara türü başına ilk 150.000 mesaj 0,0083 $'dır. Sonraki kademelerde oran daha da düşer (ayda 1 milyon+ mesajda 0,0073 $). Kurumsal indirimler için satış ekibiyle görüşülebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: Twilio için ücretsiz deneme sürümü var mı?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Evet. Kredi kartı gerektirmeyen, kredili ücretsiz deneme hesabı sunar. Deneme mesajlarına önek eklenir, yükseltince kalkar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S: SMS için en ucuz Twilio alternatifi nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
C: Plivo ve Telnyx, Twilio'ya göre daha düşük oranlar sunar. Plivo: giden 0,005 $, gelen 0,00035 $; Telnyx: 0,004 $. Her ikisi de ABD A2P için 10DLC kaydı ister. Twilio, özellik kapsamı ve dokümantasyon avantajı ile öne çıkar.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Vonage SMS API Fiyatları 2026: Ne Kadar Tutar?</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Fri, 03 Apr 2026 03:57:02 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/vonage-sms-api-fiyatlari-2026-ne-kadar-tutar-41hk</link>
      <guid>https://dev.to/tobiass_hoffmann/vonage-sms-api-fiyatlari-2026-ne-kadar-tutar-41hk</guid>
      <description>&lt;h2&gt;
  
  
  Özet
&lt;/h2&gt;

&lt;p&gt;Vonage SMS API fiyatlandırması ABD'de &lt;strong&gt;giden mesaj başına 0,00809 ABD Doları&lt;/strong&gt; ve &lt;strong&gt;gelen mesaj başına 0,00649 ABD Doları&lt;/strong&gt;'ndan başlar. Aylık minimum ücret yoktur; yalnızca gönderdiğiniz ve aldığınız mesajlar için ödeme yaparsınız. Uluslararası fiyatlar ülkeye göre değişir ve bazı bölgelerde mesaj başına 1,00 ABD Doları'nı aşabilir. Vonage SMS entegrasyonu geliştiriyorsanız, Apidog kodunuz canlıya alınmadan önce test istekleri göndermenizi, yanıtları doğrulamanızı ve hataları yakalamanızı kolaylaştırır.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u bugün deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Giriş
&lt;/h2&gt;

&lt;p&gt;Nexmo'yu duyduysanız, Vonage'ı zaten biliyorsunuzdur. 2016 yılında Vonage, geliştirici odaklı SMS ve iletişim API platformu Nexmo'yu satın aldı. Nexmo markası bir süre daha kullanıldı ve teknik merkez olarak hâlâ &lt;code&gt;developer.vonage.com&lt;/code&gt; (eski adıyla nexmo.com/developers) kullanılmakta. 2022'de Ericsson, Vonage'ın satın alımını tamamladı ve API işini Vonage markasıyla sürdürdü.&lt;/p&gt;

&lt;p&gt;Vonage bugün 100.000'den fazla işletmeye hizmet veriyor ve API'leri üzerinde çalışan 1,6 milyon kayıtlı geliştiriciye sahip. Ücretli taahhüt olmadan, 190'dan fazla ülkeye kapsama sunan, olgun bir platformdur.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Apidog&lt;/strong&gt; ile Vonage SMS entegrasyonunuza başlamadan önce API test süreçlerinizi otomatikleştirin. Test senaryoları oluşturun, yanıtları şemalara göre doğrulayın, birden fazla API çağrısını iş akışlarında birleştirin. Ücretsiz deneyin, kredi kartı gerekmez.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vonage SMS fiyatlandırmasına genel bakış
&lt;/h2&gt;

&lt;p&gt;Vonage, SMS API'si için kullandıkça öde modeli uygular. Platform ücreti veya aylık abonelik ödemezsiniz; mesaj başına ücretlendirilirsiniz. Ücretler hedef ülke ve numara türüne göre değişir.&lt;/p&gt;

&lt;p&gt;ABD için temel fiyatlandırma:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mesaj Türü&lt;/th&gt;
&lt;th&gt;Mesaj Başına Fiyat&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Giden SMS (ABD LVN)&lt;/td&gt;
&lt;td&gt;$0.00809&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gelen SMS (ABD LVN)&lt;/td&gt;
&lt;td&gt;$0.00649&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Giden SMS (ABD Ücretsiz Numara)&lt;/td&gt;
&lt;td&gt;Satış ekibiyle iletişime geçin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gelen SMS (ABD Ücretsiz Numara)&lt;/td&gt;
&lt;td&gt;Ücretsiz&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;LVN, Vonage'ın standart 10 haneli uzun kod (10DLC) için kullandığı Yerel Sanal Numara anlamına gelir. Ücretler ülkeye göre belirlenir ve platform faturanızı gerçek zamanlı olarak hesaplar.&lt;/p&gt;

&lt;p&gt;Küresel fiyatlandırma tablosunu Vonage kontrol panelinden Excel formatında indirebilir, uluslararası kampanyalar için maliyetleri planlayabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fiyatlandırma dökümü: Giden, Gelen, MMS ve WhatsApp
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Giden SMS
&lt;/h3&gt;

&lt;p&gt;Giden mesajlar, uygulamanızdan son kullanıcılara gönderdiğiniz mesajlardır. ABD'de yerel sanal numaradan gönderim için &lt;strong&gt;mesaj başına 0,00809 ABD Doları&lt;/strong&gt; ödersiniz. Güncel oranlar için resmi kontrol panelini kullanın.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gelen SMS
&lt;/h3&gt;

&lt;p&gt;Gelen mesajlar, kiraladığınız bir Vonage numarasına gelen SMS'lerdir. ABD'de &lt;strong&gt;gelen mesaj başına 0,00649 ABD Doları&lt;/strong&gt; ödersiniz. Ücretsiz numaralar gelen mesajları ücretsiz alabilir; hesabınızda doğrulayın.&lt;/p&gt;

&lt;h3&gt;
  
  
  MMS fiyatlandırması
&lt;/h3&gt;

&lt;p&gt;Vonage, Mesajlar API'siyle MMS'i destekler fakat sabit MMS fiyatı yayımlamaz. MMS fiyatlandırması için satış ekibiyle iletişime geçilmesi gerekir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vonage ile WhatsApp
&lt;/h3&gt;

&lt;p&gt;Vonage Mesajlar API'si ile WhatsApp mesajlarını destekler. İki ücret söz konusu:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;WhatsApp ücreti&lt;/strong&gt;: Meta, teslim edilen mesaj başına ücret alır. Fiyatlar konuşma kategorisine göre değişir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vonage platform ücreti&lt;/strong&gt;: Vonage, mesaj başına kendi ücretini ekler. Bu, mesaj başına $0.00015'ten başlar.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Güncel WhatsApp fiyatları için Meta'nın resmi sayfasını kontrol edin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Facebook Messenger
&lt;/h3&gt;

&lt;p&gt;Vonage, Mesajlar API'siyle Facebook Messenger mesajlarını &lt;strong&gt;mesaj başına $0.0011&lt;/strong&gt; ücretle destekler.&lt;/p&gt;

&lt;h3&gt;
  
  
  RCS (Zengin İletişim Hizmetleri)
&lt;/h3&gt;

&lt;p&gt;Vonage, ABD'de operatöre özel ücretlerle RCS mesajlaşmasını destekler:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operatör&lt;/th&gt;
&lt;th&gt;RCS Zengin (Metin)&lt;/th&gt;
&lt;th&gt;RCS Zengin Medya&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T-Mobile&lt;/td&gt;
&lt;td&gt;$0.00620&lt;/td&gt;
&lt;td&gt;$0.01250&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verizon&lt;/td&gt;
&lt;td&gt;$0.00400&lt;/td&gt;
&lt;td&gt;$0.00600&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AT&amp;amp;T&lt;/td&gt;
&lt;td&gt;$0.00450&lt;/td&gt;
&lt;td&gt;$0.01000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;US Cellular&lt;/td&gt;
&lt;td&gt;$0.00620&lt;/td&gt;
&lt;td&gt;$0.01350&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;RCS için ülke başına bir defalık &lt;strong&gt;$600&lt;/strong&gt; kurulum ücreti vardır.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vonage faturanızı etkileyen faktörler
&lt;/h2&gt;

&lt;p&gt;Aylık maliyetleri doğrudan etkileyen başlıca değişkenler:&lt;/p&gt;

&lt;h3&gt;
  
  
  Hedef ülke
&lt;/h3&gt;

&lt;p&gt;En büyük maliyet faktörüdür. ABD'ye mesaj göndermek ucuzken, Afrika veya Güneydoğu Asya gibi pazarlarda SMS başına $0.50 veya fazlası olabilir. Her zaman fiyatlandırma tablosunu kontrol edin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Numara türü
&lt;/h3&gt;

&lt;p&gt;ABD'de üç numara türü:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Uzun kod (10DLC):&lt;/strong&gt; Standart yerel numaralar, en uygun fiyatlı.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ücretsiz numaralar:&lt;/strong&gt; Yüksek hacimli A2P kampanyaları için, gelen mesajlar genellikle ücretsizdir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kısa kodlar:&lt;/strong&gt; Yüksek hacim, pazarlama amaçlı; kiralama ve onay gerektirir.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Her türün mesaj başına farklı ücreti vardır. Kısa kodlar kiralama açısından en pahalı, ancak yüksek hacim destekler.&lt;/p&gt;

&lt;h3&gt;
  
  
  Numara kiralama ücretleri
&lt;/h3&gt;

&lt;p&gt;Vonage sanal numarası kiralamak ek ücrete tabidir. ABD yerel numaraları aylık birkaç dolardan başlar. Ücretsiz numaralar ve kısa kodlar daha pahalıdır ve mesaj başına maliyetinize eklenir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mesaj kodlaması
&lt;/h3&gt;

&lt;p&gt;Standart SMS (GSM-7) 160 karakterdir. Unicode karakterler (emoji, özel harfler) ile gönderim yaparsanız, SMS başına 70 karakter olur ve 200 karakterlik Unicode bir mesaj 3 SMS olarak ücretlendirilir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Operatör ek ücretleri
&lt;/h3&gt;

&lt;p&gt;ABD operatörleri, özellikle 10DLC ile A2P mesajlaşmada ekstra ücretler ekler. Vonage, bu ücretleri faturada yansıtır.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dikkat edilmesi gereken gizli maliyetler
&lt;/h2&gt;

&lt;p&gt;Vonage mesaj başına fiyatlandırması şeffaftır, ancak aşağıdaki ek maliyetler de olabilir:&lt;/p&gt;

&lt;h3&gt;
  
  
  Destek katmanları
&lt;/h3&gt;

&lt;p&gt;Ücretsiz katman, topluluk ve belgelerle sınırlı. Premium destek (7/24 telefon, özel yönetici) &lt;strong&gt;aylık $3.300&lt;/strong&gt;'dür. Zaman kritik işler için bütçelendirilmelidir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Eklenti API'leri
&lt;/h3&gt;

&lt;p&gt;Bazı API'ler ek aylık ücretlidir:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Eklenti&lt;/th&gt;
&lt;th&gt;Aylık Maliyet&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Denetim API'si&lt;/td&gt;
&lt;td&gt;$550&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Otomatik gizleme (PII)&lt;/td&gt;
&lt;td&gt;$1,100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Raporlar API'si&lt;/td&gt;
&lt;td&gt;$495 veya kullandıkça öde $0.00049/CDR&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Doğrulama API maliyetleri
&lt;/h3&gt;

&lt;p&gt;İki faktörlü kimlik doğrulama için &lt;strong&gt;başarılı doğrulama başına $0.0572&lt;/strong&gt; ödersiniz (deneme mesaj ve ses ücretleri hariç). Başarısız doğrulamalar da maliyet oluşturur.&lt;/p&gt;

&lt;h3&gt;
  
  
  Numara kaydı (ABD 10DLC)
&lt;/h3&gt;

&lt;p&gt;Uzun kod ile A2P SMS göndermek için kampanyanızı The Campaign Registry (TCR) ile kaydetmelisiniz. Marka kaydı için tek seferlik, kampanya için aylık ücret alınır. Kayıt yapılmazsa mesajlar filtrelenir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vonage, Alternatiflere Karşı
&lt;/h2&gt;

&lt;p&gt;ABD giden SMS fiyatları için başlıca rakipler:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sağlayıcı&lt;/th&gt;
&lt;th&gt;ABD Giden SMS&lt;/th&gt;
&lt;th&gt;ABD Gelen SMS&lt;/th&gt;
&lt;th&gt;Ücretsiz Deneme&lt;/th&gt;
&lt;th&gt;Destek&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Vonage&lt;/td&gt;
&lt;td&gt;$0.00809&lt;/td&gt;
&lt;td&gt;$0.00649&lt;/td&gt;
&lt;td&gt;Evet (doğrulanmış numara)&lt;/td&gt;
&lt;td&gt;Ücretli, 7/24 için $3.300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twilio&lt;/td&gt;
&lt;td&gt;$0.0079&lt;/td&gt;
&lt;td&gt;$0.0075&lt;/td&gt;
&lt;td&gt;Evet ($15 kredi)&lt;/td&gt;
&lt;td&gt;$250'dan başlayan ücretli&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plivo&lt;/td&gt;
&lt;td&gt;$0.0055&lt;/td&gt;
&lt;td&gt;$0.0005&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;td&gt;Ücretsiz/ücretli katmanlar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Telnyx&lt;/td&gt;
&lt;td&gt;$0.004&lt;/td&gt;
&lt;td&gt;$0.002&lt;/td&gt;
&lt;td&gt;Evet ($5 kredi)&lt;/td&gt;
&lt;td&gt;7/24 e-posta, ücretli telefon&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Telnyx, ABD için en ucuzudur; ancak daha yeni ve küçük bir platformdur.&lt;/li&gt;
&lt;li&gt;Plivo, rekabetçi gelen mesaj fiyatları ve sağlam geliştirici desteği sunar.&lt;/li&gt;
&lt;li&gt;Twilio, en geniş ekosistem ve entegrasyonlara sahip; fiyatı daha yüksektir.&lt;/li&gt;
&lt;li&gt;Vonage, fiyat açısından ortada yer alır ve operatör ilişkileriyle küresel erişim sunar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fiyat tek kriter değildir; teslimat oranı, uyumluluk, geliştirici araçları ve destek de önemlidir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vonage'ı ücretsiz nasıl deneyebilirsiniz?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.vonage.com/communications-apis/pricing/" rel="noopener noreferrer"&gt;Vonage ücretsiz deneme hesabı sunar.&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ne elde edersiniz
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Test mesajları göndermek/almak için Vonage sanal numarası&lt;/li&gt;
&lt;li&gt;API kimlik bilgileri (API anahtarı ve sırrı)&lt;/li&gt;
&lt;li&gt;Geliştirici belgeleri ve SDK erişimi&lt;/li&gt;
&lt;li&gt;Test kredisi ile sınırlı mesaj gönderimi&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Kısıtlamalar
&lt;/h3&gt;

&lt;p&gt;Deneme süresince sadece doğruladığınız telefon numaralarına mesaj gönderebilirsiniz. Ücretli hesaba yükseltmeden rastgele numaralara mesaj gönderemezsiniz.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hızlı Başlangıç
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://dashboard.nexmo.com" rel="noopener noreferrer"&gt;dashboard.nexmo.com&lt;/a&gt; veya &lt;a href="https://www.vonage.com/communications-apis/" rel="noopener noreferrer"&gt;vonage.com/communications-apis&lt;/a&gt; adresine gidin&lt;/li&gt;
&lt;li&gt;E-posta ile ücretsiz hesap oluşturun&lt;/li&gt;
&lt;li&gt;Telefon numaranızı doğrulayın&lt;/li&gt;
&lt;li&gt;Kontrol panelinden API anahtarını ve sırrını alın&lt;/li&gt;
&lt;li&gt;REST API veya resmi SDK'lar ile ilk API çağrınızı yapın&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-63.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-63.png" alt="" width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vonage SDK'ları: Node.js, Python, PHP, Ruby, Java, .NET, Go. Alternatif olarak doğrudan HTTP istemcisiyle REST API'yi kullanabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apidog ile Vonage SMS entegrasyonunu nasıl test edersiniz?
&lt;/h2&gt;

&lt;p&gt;API anahtarınızı ve sırrınızı aldıktan sonra, entegrasyonunuzu canlıya almadan önce Apidog ile güvenli şekilde test edin.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-62.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-62.png" alt="" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Test Senaryosu Kurulumu
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Apidog'da &lt;strong&gt;Testler&lt;/strong&gt; modülüne girin, yeni bir test senaryosu başlatın.&lt;/li&gt;
&lt;li&gt;Adımları şu şekilde ekleyin:

&lt;ul&gt;
&lt;li&gt;API spesifikasyonundan (OpenAPI) içe aktarın&lt;/li&gt;
&lt;li&gt;Vonage REST API uç noktasına özel istek oluşturun&lt;/li&gt;
&lt;li&gt;Vonage belgelerinden kopyalanan bir cURL komutunu içe aktarın&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Temel SMS Gönderme Testi
&lt;/h4&gt;

&lt;p&gt;Aşağıdaki gibi bir POST isteği oluşturun:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;POST https://rest.nexmo.com/sms/json
Content-Type: application/x-www-form-urlencoded

api_key=YOUR_API_KEY
api_secret=YOUR_API_SECRET
to=ALICI_NUMARA
from=GONDEREN_NUMARA
text=Merhaba, bu bir test mesajıdır.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Yanıtı Doğrulama
&lt;/h3&gt;

&lt;p&gt;Başarılı bir Vonage yanıtı, JSON formatında &lt;code&gt;messages&lt;/code&gt; dizisi döndürür. Her öğede &lt;code&gt;status&lt;/code&gt; alanı bulunur (&lt;code&gt;0&lt;/code&gt; başarı).&lt;/p&gt;

&lt;p&gt;Apidog'da doğrulama adımı ekleyin:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP durum kodu 200 olmalı&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;messages[0].status&lt;/code&gt; değeri &lt;code&gt;"0"&lt;/code&gt; olmalı&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;messages[0].message-id&lt;/code&gt; boş olmamalı&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hata durumunda Apidog, test adımını kırmızıya boyar ve tam yanıtı gösterir.&lt;/p&gt;

&lt;h3&gt;
  
  
  İstekler Arasında Veri Aktarımı
&lt;/h3&gt;

&lt;p&gt;Birden fazla API adımı arasında veri taşımak için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{$.stepId.response.body.field}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Örneğin, SMS gönderdikten sonra &lt;code&gt;message-id&lt;/code&gt;'yi bir sonraki API çağrısında kullanabilirsiniz.&lt;/p&gt;

&lt;h3&gt;
  
  
  CI/CD'de Testleri Otomatikleştirme
&lt;/h3&gt;

&lt;p&gt;Apidog, GitHub Actions, GitLab CI, Jenkins ile entegre olur. Test senaryosunu dışa aktarın ve Apidog CLI ile CI/CD sürecine ekleyin. Böylece entegrasyon hataları üretime ulaşmadan tespit edilir.&lt;/p&gt;

&lt;p&gt;Ücretsiz deneyin: &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;apidog.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Vonage SMS API fiyatlandırması, minimum aylık ücret olmadan kullandıkça öde modelindedir. ABD çıkışlı SMS için mesaj başına $0.00809, gelen için $0.00649 ödersiniz. Maliyetler hedef ülke, numara tipi ve mesaj kodlamasına göre değişir. Denetim API'si, otomatik gizleme ve 7/24 destek gibi eklentiler ekstra maliyet getirir.&lt;/p&gt;

&lt;p&gt;Alternatifler arasında Telnyx ve Plivo daha uygun fiyatlı, Twilio ise ekosistem büyüklüğüyle öne çıkar. Vonage, operatör seviyesinde güvenilirlik ve Ericsson altyapısıyla güçlü bir seçenektir.&lt;/p&gt;

&lt;p&gt;Canlıya geçmeden önce, Vonage entegrasyonunuz için Apidog'da kapsamlı test senaryoları oluşturun. Tüm mesaj akışlarını test edin, yanıtları doğrulayın ve hataları geliştirirken yakalayın.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sıkça Sorulan Sorular
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Vonage Nexmo ile aynı mı?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet. Vonage, Nexmo'yu 2016'da satın aldı. Geliştirici platformu hala &lt;code&gt;developer.vonage.com&lt;/code&gt; üzerinden erişilebilir ve API uç noktası olarak sıkça &lt;code&gt;rest.nexmo.com&lt;/code&gt; kullanılır. İki marka artık aynı ürünü ifade eder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vonage SMS için aylık ücret alıyor mu?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
SMS API'si için platform ücreti yok. Yalnızca gönderilen/alınan mesaj başına ve sanal numara kiralama için ödeme yaparsınız. Denetim API'si ve Otomatik gizleme gibi eklentiler aylık ücretlidir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bir Vonage telefon numarası ne kadar?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
ABD uzun kod numaraları ayda birkaç dolardan başlar. Ücretsiz numara ve kısa kodlar daha pahalıdır. Güncel fiyatlar için Vonage kontrol panelini inceleyin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vonage SMS hangi ülkeleri destekliyor?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Vonage, 190'dan fazla ülkede SMS desteği sunar. Ücretler büyük ölçüde değişir. Kısıtlı ülkelerde mesaj başına $0.50 veya fazlası olabilir. Detaylı fiyat tablosunu kontrol panelinizden indirin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vonage toplu indirimler sunuyor mu?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet. Yüksek hacimli göndericilere özel fiyat verilebilir. Müzakere için satış ekibiyle iletişime geçin. Varsayılan oranlar, özel anlaşma yapılana kadar geçerlidir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gelen SMS'leri ücretsiz alabilir miyim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
ABD ücretsiz numaraları genellikle gelen SMS’leri ücretsiz alır. Uzun kodlar için ABD'de mesaj başına $0.00649 ücret alınır. Fiyatlar ülkeye göre farklılık gösterir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vonage SMS, Twilio ile nasıl karşılaştırılır?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Vonage'ın ABD giden SMS ücreti ($0.00809), Twilio'nunkinden ($0.0079) biraz daha yüksektir. Twilio daha geniş ekosistem ve entegrasyon sağlar. Vonage ise operatör ilişkileriyle uluslararası pazarlarda avantajlı olabilir. ABD pazarı için fiyat farkı düşüktür; geliştirici deneyimi ve destek kalitesi kararınızı belirleyebilir.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Cursor 3'ün API Geliştiricileri İçin Anlamı</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Fri, 03 Apr 2026 03:53:13 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/cursor-3un-api-gelistiricileri-icin-anlami-19og</link>
      <guid>https://dev.to/tobiass_hoffmann/cursor-3un-api-gelistiricileri-icin-anlami-19og</guid>
      <description>&lt;p&gt;&lt;strong&gt;Özet:&lt;/strong&gt; Cursor 3, 2 Nisan 2026'da piyasaya sürüldü ve IDE öncelikli arayüzünü aracı öncelikli bir çalışma alanıyla değiştirdi. API geliştiricileri için en büyük değişiklikler paralel aracı yürütme, daha zengin MCP araç çıktıları ve iş akışlarınızı kesintisiz çalıştıran buluttan yerel ortama aktarım oldu. Cursor 3'ü Apidog'un MCP Sunucusu ile eşleştirirseniz, yapay zeka aracınız canlı API spesifikasyonlarınızı okuyabilir ve kopyala-yapıştır yapmadan doğru, şema tabanlı kod üretebilir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u bugün deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;h2 id="muhtemelen-yakla%C5%9Ft%C4%B1%C4%9F%C4%B1n%C4%B1-hissetti%C4%9Finiz-de%C4%9Fi%C5%9Fim"&gt;Muhtemelen yaklaştığını hissettiğiniz değişim&lt;/h2&gt;

&lt;p&gt;Yapay zeka kod düzenleyiciler son iki yılda hızla gelişti, fakat Cursor 3 bir artımlı güncelleme değil. Bu sürüm, yapay zeka geliştirme ortamının temel tasarımını yeniden ele alıyor.&lt;/p&gt;

&lt;p&gt;Daha önce, klasik bir IDE'de olduğu gibi dosya açar, aracıdan yardım ister ve değişiklikleri incelerdiniz. Aracılar çoğunlukla asistan rolündeydi.&lt;/p&gt;

&lt;p&gt;Cursor 3 ile artık aracılar birincil iş birimi. Onları tarayıcı sekmeleri gibi başlatabilir, paralel yürütebilir, çıktıları inceleyip en iyi çözümleri yükseltebilirsiniz.&lt;/p&gt;

&lt;p&gt;API geliştiricileri için bu değişiklik daha da önemli. API projeleri paralel iş akışları ve yüksek koordinasyon gerektirir. Uç noktaları yazmak, sözleşmeleri test etmek ve dokümantasyon güncellemek genellikle aynı anda yürütülür. Cursor 3 ile araçlarınız bu gerçekliğe ayak uydurabiliyor.&lt;/p&gt;

&lt;p&gt;💡Cursor 3 kendi başına API spesifikasyonunuzu tanımaz. Burada Apidog MCP Sunucusu devreye girer. Bağlantı kurduğunuzda, Cursor’ın aracıları OpenAPI şema ve uç nokta tanımlarınızı, test senaryolarınızı doğrudan Apidog’dan çeker. Doğru alan adları ve şemayla, ilk denemede spesifikasyon uyumlu kod üretilir.&lt;/p&gt;

&lt;p&gt;Bu rehberde, Cursor 3'teki yenilikleri, API geliştirme iş akışınıza pratik yansımalarını ve Cursor 3'ü Apidog'un MCP Sunucusu ile nasıl entegre edebileceğinizi adım adım bulacaksınız.&lt;/p&gt;

&lt;h2 id="cursor-3te-yenilikler"&gt;Cursor 3'te Yenilikler&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cursor.com/blog/cursor-3" rel="noopener noreferrer"&gt;Cursor 3&lt;/a&gt;, 2 Nisan 2026'da yayınlandı. En önemli yeniliği, Agents Window (Aracılar Penceresi) adlı yeni arayüz. Özellikle API çalışanları için öne çıkan başlıklar:&lt;/p&gt;

&lt;h3 id="arac%C4%B1lar-penceresi"&gt;Aracılar Penceresi&lt;/h3&gt;

&lt;p&gt;Artık aracıları birden fazla depoda, yerelde, cloud veya SSH makinesinde paralel olarak çalıştırabilirsiniz. Kısayol: &lt;code&gt;Cmd+Shift+P → Agents Window&lt;/code&gt;. IDE ile birlikte veya ayrı kullanabilirsiniz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-59.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-59.png" alt="Cursor 3 Aracılar Penceresi arayüzü" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Örneğin; bir depoda yeni API uç noktası oluştururken, başka bir aracı ile ortak kütüphanede hata giderebilirsiniz. Paralel iş akışı ve hızlı müdahale imkanı sağlar.&lt;/p&gt;

&lt;h3 id="tasar%C4%B1m-modu"&gt;Tasarım Modu&lt;/h3&gt;

&lt;p&gt;Agents Window içinde, Tasarım Modu ile aracıya görsel olarak bağlam ekleyebilirsiniz. Öğeleri seçin, alanları vurgulayın, doğrudan sohbete ekleyin.&lt;/p&gt;

&lt;p&gt;Kısayollar:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Tasarım Modu: &lt;code&gt;Cmd+Shift+D&lt;/code&gt;
&lt;/li&gt;
  &lt;li&gt;Alan seçimi: &lt;code&gt;Shift+sürükle&lt;/code&gt;
&lt;/li&gt;
  &lt;li&gt;Öğe ekleme: &lt;code&gt;Cmd+L&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-60.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-60.png" alt="Cursor 3 Tasarım Modu arayüzü" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id="mcp-uygulamalar%C4%B1-yap%C4%B1land%C4%B1r%C4%B1lm%C4%B1%C5%9F-i%C3%A7erik-%C3%A7%C4%B1kt%C4%B1s%C4%B1"&gt;MCP Uygulamaları: yapılandırılmış içerik çıktısı&lt;/h3&gt;

&lt;p&gt;Cursor 3'te MCP uygulamaları artık düz metin yerine yapılandırılmış veri döndürebiliyor. Apidog MCP Sunucusu ile, uç nokta tanımları ve test sonuçları gibi yanıtlar aracılar tarafından kolayca ayrıştırılır.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-61.png" alt="Cursor 3'te Apidog MCP Sunucusundan yapılandırılmış çıktı" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id="%C3%A7al%C4%B1%C5%9Fma-a%C4%9Fa%C3%A7lar%C4%B1-worktrees-en-iyi-n-best-of-n-ve-izolasyon"&gt;Çalışma Ağaçları, &lt;code&gt;/best-of-n&lt;/code&gt; ve izolasyon&lt;/h3&gt;

&lt;p&gt;
&lt;code&gt;/worktree&lt;/code&gt; izole bir git çalışma ağacı açar. Riskli değişiklikleri ana dalı etkilemeden deneyebilirsiniz.&lt;br&gt;
&lt;code&gt;/best-of-n&lt;/code&gt; ile aynı görevi farklı modellerde paralel çalıştırıp sonuçları karşılaştırabilirsiniz. Örneğin: Claude, GPT-4o ve Gemini ile aynı uç noktayı farklı yaklaşımlarla kodlatıp aralarından en iyi sonucu seçin.
&lt;/p&gt;

&lt;h3 id="buluttan-yerel-ortama-aktar%C4%B1m"&gt;Buluttan yerel ortama aktarım&lt;/h3&gt;

&lt;p&gt;Aracılar arasında cloud ve local geçiş mümkün. Uzun süreli görevi bulutta başlatıp, yerelde test edebilir ya da oturumunuzu buluta taşıyıp kesintisiz devam ettirebilirsiniz.&lt;/p&gt;

&lt;h2 id="api-geli%C5%9Ftirme-i%C3%A7in-ne-anlama-geliyor"&gt;API geliştirme için anlamı&lt;/h2&gt;

&lt;p&gt;API geliştirme çoğu zaman birden fazla bağlam arasında geçiş gerektirir. Cursor 3, sürekli ve paralel aracı desteği ile bu karmaşıklığı azaltır. Esas sıçrama ise MCP entegrasyonuyla gelir.&lt;/p&gt;

&lt;h3 id="paralel-u%C3%A7-nokta-geli%C5%9Ftirme"&gt;Paralel uç nokta geliştirme&lt;/h3&gt;

&lt;p&gt;REST API'de onlarca uç noktayı sıralı değil, paralel geliştirin. Her uç nokta için ayrı bir aracı başlatın, çıktılarını gözden geçirip uygun olanları birleştirin.&lt;/p&gt;

&lt;h3 id="%C5%9Fema-tabanl%C4%B1-kod-%C3%BCretimi"&gt;Şema tabanlı kod üretimi&lt;/h3&gt;

&lt;p&gt;OpenAPI spesifikasyonunuz doğrudan Cursor aracılarına aktarılırsa, aracı kodu şemanıza tam uyumlu oluşturur. Örneğin, &lt;code&gt;POST /orders&lt;/code&gt; için gerekli tüm alanlar ve tipler eksiksiz gelir, manuel düzeltme ihtiyacı azalır.&lt;/p&gt;

&lt;h3 id="d%C3%BCzenleyici-i%C3%A7inde-s%C3%B6zle%C5%9Fme-testi"&gt;Düzenleyici içinde sözleşme testi&lt;/h3&gt;

&lt;p&gt;Cursor aracıları, Apidog CLI ile entegre olarak, oluşturulan kodu doğrudan test senaryolarına karşı çalıştırabilir. Test başarısız olursa aracı kodu günceller. Gerçek bir "test yazan ve çalıştıran AI eşli programcı" deneyimi.&lt;/p&gt;

&lt;h3 id="g%C3%BCncel-kalan-dok%C3%BCmantasyon"&gt;Güncel kalan dokümantasyon&lt;/h3&gt;

&lt;p&gt;Aracılar, MCP üzerinden Apidog belgelerinizi okur ve kod-spesifikasyon tutarsızlıklarını inceleme döngüsünde işaretleyebilir. Otomatik değil ama pratik olarak entegre edilebilir.&lt;/p&gt;

&lt;h3 id="neler-de%C4%9Fi%C5%9Fmedi"&gt;Neler değişmedi&lt;/h3&gt;

&lt;p&gt;Cursor 3, API'lerinizi otomatik test etmez veya kimlik doğrulama/limit kontrollerini garanti etmez. MCP'deki yapılandırılmış çıktı, kullandığınız MCP sunucusunun desteğine bağlıdır. Apidog MCP Sunucusu bu desteği sunar.&lt;/p&gt;

&lt;h2 id="cursor-3-apidog-mcp-sunucusu-belirli-bir-i%C5%9F-ak%C4%B1%C5%9F%C4%B1"&gt;Cursor 3 + Apidog MCP Sunucusu: Uygulamalı iş akışı&lt;/h2&gt;

&lt;p&gt;Aşağıdaki adımlar, Cursor 3 ve Apidog MCP Sunucusu ile gerçek bir API geliştirme iş akışını gösterir.&lt;/p&gt;

&lt;h3 id="kurulum"&gt;Kurulum&lt;/h3&gt;

&lt;p&gt;Apidog MCP Sunucusunu Cursor'a ekleyin. MCP ayarınıza aşağıdaki gibi ekleyin:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"apidog"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@apidog/mcp-server@latest"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"APIDOG_ACCESS_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_access_token"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Erişim belirteci Apidog Hesap Ayarları &amp;gt; API Erişim Belirteci'nden alınır. Bağlantı sonrası, aracı &lt;code&gt;get_endpoint_detail&lt;/code&gt;, &lt;code&gt;list_endpoints&lt;/code&gt; ve &lt;code&gt;get_schema&lt;/code&gt; gibi komutlar çalıştırabilir.&lt;/p&gt;

&lt;h3 id="i%CC%87%C5%9F-ak%C4%B1%C5%9F%C4%B1-spesifikasyondan-yeni-bir-u%C3%A7-nokta-olu%C5%9Fturma"&gt;İş akışı: spesifikasyondan yeni uç nokta oluşturma&lt;/h3&gt;

&lt;p&gt;Örneğin, Apidog spesifikasyonunuza &lt;code&gt;POST /invoices&lt;/code&gt; eklediniz. İstek gövdesi, yanıt şeması ve test senaryosu hazır. Şimdi kodu oluşturmak için:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Aracılar Penceresi'nde yeni oturum açın ve görevi yazın: &lt;blockquote&gt;"Apidog projesindeki POST /invoices uç noktasını bulun. İstek ve yanıt şemalarını okuyun. Spesifikasyona uyan bir Node.js/Express işleyici oluşturun. Ardından doğrulamak için test senaryosunu çalıştırın."&lt;/blockquote&gt;
&lt;/li&gt;
  &lt;li&gt;Aracı, MCP üzerinden &lt;code&gt;get_endpoint_detail&lt;/code&gt; komutunu çağırır.&lt;/li&gt;
  &lt;li&gt;İşleyici kodunu gerçek şemaya göre üretir.&lt;/li&gt;
  &lt;li&gt;Terminalde &lt;code&gt;apidog run --scenario invoice-creation-test --env staging&lt;/code&gt; komutunu çalıştırır.&lt;/li&gt;
  &lt;li&gt;Test çıktısına göre kodu tekrar günceller.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Çıktı spesifikasyon ile uyumlu olur, çünkü aracı doğrudan spesifikasyonu okur.&lt;/p&gt;

&lt;h3 id="karma%C5%9F%C4%B1k-u%C3%A7-noktalar-i%C3%A7in-best-of-n-avantaj%C4%B1"&gt;Karmaşık uç noktalar için &lt;code&gt;/best-of-n&lt;/code&gt; avantajı&lt;/h3&gt;

&lt;p&gt;Birden fazla modelin aynı şemayla kod üretmesini sağlayın, çıktıları Cursor'da karşılaştırın. En iyi hata yönetimi veya kod organizasyonunu seçin.&lt;/p&gt;

&lt;h3 id="belgeleri-senkronize-tutma"&gt;Belgeleri senkronize tutma&lt;/h3&gt;

&lt;p&gt;Gönderim sonrası yeni bir aracıya şu görevi verin:&lt;/p&gt;

&lt;blockquote&gt;"POST /invoices için Apidog belgelerini kontrol edin. Bunu invoices.js dosyasındaki kodla karşılaştırın. Herhangi bir tutarsızlığı işaretleyin. Koddaki yanıt şekli spesifikasyondan farklıysa, Apidog spesifikasyonunu eşleşecek şekilde güncelleyin."&lt;/blockquote&gt;

&lt;p&gt;Aracı, MCP aracılığıyla hem kodu hem belgeyi okur, karşılaştırıp öneri sunar. Onayladığınızda dokümantasyon güncellenmiş olur.&lt;/p&gt;

&lt;p&gt;Daha fazla bilgi için Apidog'un [internal: apidog mcp server overview] ve [internal: apidog cli getting started] dökümantasyonuna bakabilirsiniz.&lt;/p&gt;

&lt;h2 id="pratik-kurulum-ba%C5%9Flang%C4%B1%C3%A7"&gt;Pratik kurulum: Başlangıç adımları&lt;/h2&gt;

&lt;p&gt;Cursor 3 ile Apidog MCP Sunucusunu entegre etmek için aşağıdaki adımları uygulayın:&lt;/p&gt;

&lt;h3 id="ad%C4%B1m-1-cursor%C4%B1-y%C3%BCkseltin"&gt;Adım 1: Cursor'ı yükseltin&lt;/h3&gt;

&lt;p&gt;En yeni sürümü &lt;a href="https://cursor.com" rel="noopener noreferrer"&gt;cursor.com&lt;/a&gt;'dan indirin. &lt;code&gt;Cmd+Shift+P&lt;/code&gt; ile komut paletinde "Agents Window" açılıyor mu kontrol edin.&lt;/p&gt;

&lt;h3 id="ad%C4%B1m-2-bir-apidog-eri%C5%9Fim-belirteci-olu%C5%9Fturun"&gt;Adım 2: Apidog erişim belirteci oluşturun&lt;/h3&gt;

&lt;p&gt;Apidog'a giriş yapıp Hesap Ayarları &amp;gt; API Erişim Belirteci'nden yeni bir belirteç alın.&lt;/p&gt;

&lt;h3 id="ad%C4%B1m-3-apidog-mcp-sunucusunu-cursora-ekleyin"&gt;Adım 3: Apidog MCP Sunucusunu Cursor'a ekleyin&lt;/h3&gt;

&lt;p&gt;Cursor Ayarları &amp;gt; MCP kısmına şu yapılandırmayı girin:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"apidog"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@apidog/mcp-server@latest"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"APIDOG_ACCESS_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_token_here"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"APIDOG_PROJECT_ID"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_project_id"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Proje kimliğiniz Apidog URL'sinde yer alır. Kaydedin ve Cursor'ı yeniden başlatın.&lt;/p&gt;

&lt;h3 id="ad%C4%B1m-4-ba%C4%9Flant%C4%B1y%C4%B1-do%C4%9Frulay%C4%B1n"&gt;Adım 4: Bağlantıyı doğrulayın&lt;/h3&gt;

&lt;p&gt;Agents Window açın ve "Apidog projemdeki uç noktaları listele" komutunu verin. Uç noktalar listeleniyorsa bağlantı hazır.&lt;/p&gt;

&lt;h3 id="ad%C4%B1m-5-apidog-cliyi-kurun-ve-yap%C4%B1land%C4%B1r%C4%B1n"&gt;Adım 5: Apidog CLI'yi kurun ve yapılandırın&lt;/h3&gt;

&lt;p&gt;Terminalde:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; apidog-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;apidog -v&lt;/code&gt; ile kurulum kontrolü yapın. Apidog arayüzünde test senaryosu açıp CI/CD sekmesinden gerekli CLI komutunu alın ve Cursor'ın terminalinde çalıştırın.&lt;/p&gt;

&lt;h3 id="ad%C4%B1m-6-i%CC%87lk-mcp-destekli-arac%C4%B1-g%C3%B6revinizi-%C3%A7al%C4%B1%C5%9Ft%C4%B1r%C4%B1n"&gt;Adım 6: İlk MCP destekli aracı görevinizi çalıştırın&lt;/h3&gt;

&lt;p&gt;Agents Window'da şu şekilde bir görev verin:&lt;br&gt;
&lt;em&gt;"Apidog'daki Kullanıcı nesnesinin şemasını bulun. Tamamen eşleşen bir TypeScript arayüzü oluşturun."&lt;/em&gt;&lt;br&gt;
Çıktıyı şemanızla karşılaştırın. Doğruysa entegrasyon hazır.&lt;/p&gt;

&lt;p&gt;Bundan sonra, spesifikasyon okuma, kod üretimi ve test yürütme adımlarını tek aracı oturumunda birleştiren iş akışları tasarlayabilirsiniz.&lt;/p&gt;

&lt;h2 id="sonu%C3%A7"&gt;Sonuç&lt;/h2&gt;

&lt;p&gt;Cursor 3, API geliştirme süreçlerinde araç odaklı bir paradigmaya geçişle ciddi bir verimlilik artışı sağlıyor. Paralel aracı desteği ve MCP ile entegrasyon, tekrarlayan manuel işleri azaltıyor.&lt;/p&gt;

&lt;p&gt;Apidog'un MCP Sunucusu ve CLI entegrasyonu ile, yapay zeka aracı spesifikasyonunuzu okur, uygun kodu üretir ve testlerinizi çalıştırır. Bu döngü, günlük iş akışınıza doğrudan uygulanabilir.&lt;/p&gt;

&lt;h2 id="s%C4%B1k%C3%A7a-sorulan-sorular"&gt;Sıkça sorulan sorular&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cursor 3 mevcut IDE arayüzünü değiştiriyor mu?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hayır. Cursor 3, Agents Window'u yeni bir arayüz olarak ekler. İstediğiniz zaman IDE'ye geri dönebilir veya ikisini aynı anda açık tutabilirsiniz. Önceki sürümden hiçbir şey kaldırılmaz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor 3 ile Cursor'ın önceki sürümü arasındaki fark nedir?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Temel fark mimariseldir. Önceki sürümler, yan çubuk özelliği olarak aracılarla düzenleyiciye odaklanmıştı. Cursor 3, belirli dosyalara inmeniz gerektiğinde düzenleyiciyi kullanıma sunarak aracılara odaklanır. Yeni Agents Window ayrıca paralel yürütme, buluttan yerel ortama aktarım, Tasarım Modu ve &lt;code&gt;/worktree&lt;/code&gt; ve &lt;code&gt;/best-of-n&lt;/code&gt; komutlarını da ekler.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apidog MCP Sunucusu Cursor 3'e nasıl bağlanır?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apidog MCP Sunucusunu Cursor Ayarları'nda bir MCP yapılandırması olarak eklersiniz. Sunucu, Apidog projenizin API verilerini çağrılabilir araçlar olarak sunar. Cursor'ın aracıları, uç nokta spesifikasyonlarını, şemaları ve test senaryolarını herhangi bir içeriği manuel olarak kopyalamanıza gerek kalmadan okumak için bu araçları kullanır. Cursor 3'teki yapılandırılmış içerik desteği, aracıların bu verileri düz metin yerine türlenmiş bir formatta alması anlamına gelir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor 3 aracıları Apidog test senaryolarını otomatik olarak çalıştırabilir mi?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Evet, Apidog CLI aracılığıyla. Aracılar, iş akışlarının bir parçası olarak terminal komutlarını çalıştırabilir. CLI'yi yapılandırır ve doğru senaryo komutunu sağlarsanız, aracılar test senaryolarınızı çalıştırabilir, çıktıyı okuyabilir ve hatalara göre kodlarını ayarlayabilir. Bu, kod üretimi ile API sözleşmesi doğrulaması arasında sıkı bir geri bildirim döngüsü oluşturur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents Window'u kullanmak için ücretli bir Cursor planına ihtiyacım var mı?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agents Window, Cursor 3'te tüm planlarda mevcuttur, ancak bulut aracı yürütme (çevrimdışıyken aracıların çalışmaya devam etmesini sağlayan özellik) ücretli abonelik gerektirir. Yerel aracı yürütme ücretsiz katmanda çalışır. Güncel plan ayrıntıları için &lt;a href="https://cursor.com/pricing" rel="noopener noreferrer"&gt;cursor.com/pricing&lt;/a&gt; adresini kontrol edin.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Gemma 4'ü Ollama ile Yerel Olarak Çalıştırma: Eksiksiz Rehber</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Fri, 03 Apr 2026 02:55:49 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/gemma-4u-ollama-ile-yerel-olarak-calistirma-eksiksiz-rehber-391p</link>
      <guid>https://dev.to/tobiass_hoffmann/gemma-4u-ollama-ile-yerel-olarak-calistirma-eksiksiz-rehber-391p</guid>
      <description>&lt;h2&gt;
  
  
  Kısaca
&lt;/h2&gt;

&lt;p&gt;Gemma 4, 3 Nisan 2026'da yayınlandı ve Ollama v0.20.0 aynı gün desteği ekledi. Varsayılan &lt;code&gt;gemma4:e4b&lt;/code&gt; modelini iki komutla çekebilir ve çalıştırabilirsiniz. Bu kılavuzda, kurulumu, model seçimini, API kullanımını ve yerel Gemma 4 uç noktalarınızı Apidog ile nasıl test edeceğinizi adım adım bulacaksınız.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u hemen deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Giriş
&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://apidog.com/blog/gemma-4-api/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Google, Gemma 4'ü&lt;/a&gt; 2 Nisan 2026'da yayınladı. 24 saat içinde Ollama, dört model varyantının tamamında tam destekle v0.20.0'ı gönderdi.&lt;/p&gt;

&lt;p&gt;Geliştiriciler için bu büyük bir güncellemedir. Gemma 4, Gemma 3'e göre ciddi bir sıçrama yaşattı: AIME 2026'da %89,2 puan (Gemma 3: %20,8), Codeforces'ta 110 ELO'dan 2150'ye tırmanan kodlama yeteneği, yerel işlev çağırma, düşünme modları ve büyük varyantlarda 256K bağlam penceresi ile geliyor. Tüm bunları kendi donanımınızda çalıştırabilirsiniz.&lt;/p&gt;

&lt;p&gt;API destekli uygulamalar geliştiriyorsanız, yerel kurulum size test, hızlı prototipleme ve veri gizliliği için düşük gecikmeli, özelleştirilebilir bir yapay zeka katmanı sunar.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;İpucu:&lt;/strong&gt; Gemma 4 yerel olarak çalışırken, Apidog'un Akıllı Mock özelliği ile şemanıza uygun gerçekçi API yanıtlarını doğrudan yapay zeka ile oluşturabilirsiniz. API'nizin veri yapısını bir kez tanımlayın, Apidog test verilerini sizin için yönetsin.&lt;/p&gt;

&lt;p&gt;Bu kılavuzda, kurulumdan ilk yerel API çağrınızı yapmaya kadar tüm teknik adımları bulabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemma 4'teki Yenilikler
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://blog.google/innovation-and-ai/technology/developers-tools/gemma-4/" rel="noopener noreferrer"&gt;Gemma 4&lt;/a&gt;, dört farklı model varyantı ile geliyor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsos2mixfbxq6ww8ghoy8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsos2mixfbxq6ww8ghoy8.png" alt="Gemma 4 model varyantları ve özelliklerini gösteren bir tablo."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gemma 3'e göre başlıca farklar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mantık yürütme ve kodlama:&lt;/strong&gt; 31B modeli, LiveCodeBench v6'da %80 puan alıyor. Gemma 3 27B ise %29,1'de kalmıştı.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uzmanlar Karışımı (MoE) mimarisi:&lt;/strong&gt; 26B varyantı, çıkarımda sadece 4 milyar aktif parametre ile neredeyse amiral gemisi kalitesinde.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daha uzun bağlam:&lt;/strong&gt; E2B ve E4B modelleri 128K; 26B ve 31B ise 256K token destekliyor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yerel işlev çağırma:&lt;/strong&gt; Tüm modellerde, fonksiyon şeması tanımlayarak geçerli JSON döndürme desteği var.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ses ve görüntü girişi:&lt;/strong&gt; E2B ve E4B, metin dışında ses/görsel giriş de alabiliyor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Düşünme modları:&lt;/strong&gt; Her istek için düşünce zincirini açıp kapatabiliyorsunuz.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Gemma 4 Model Varyantları Açıklandı
&lt;/h2&gt;

&lt;p&gt;Donanımınıza uygun modeli seçin:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Diskteki Boyut&lt;/th&gt;
&lt;th&gt;Bağlam&lt;/th&gt;
&lt;th&gt;Mimari&lt;/th&gt;
&lt;th&gt;En İyisi&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gemma4:e2b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;7.2 GB&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;Yoğun&lt;/td&gt;
&lt;td&gt;Dizüstü, uç cihaz, ses/görüntü&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gemma4:e4b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;9.6 GB&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;Yoğun&lt;/td&gt;
&lt;td&gt;Çoğu geliştirici&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gemma4:26b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;18 GB&lt;/td&gt;
&lt;td&gt;256K&lt;/td&gt;
&lt;td&gt;MoE (4B)&lt;/td&gt;
&lt;td&gt;GB başına en iyi kalite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gemma4:31b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;20 GB&lt;/td&gt;
&lt;td&gt;256K&lt;/td&gt;
&lt;td&gt;Yoğun&lt;/td&gt;
&lt;td&gt;Maksimum kalite&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;ollama run gemma4&lt;/code&gt; komutu, varsayılan olarak &lt;code&gt;e4b&lt;/code&gt; modelini çalıştırır. 10+ GB VRAM veya Apple Silicon ile uyumlu ve hızlıdır.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;26b&lt;/code&gt; MoE varyantı, 20+ GB RAM varsa kalite/hız dengesi açısından öne çıkar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Önkoşullar
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ollama v0.20.0 veya üzeri&lt;/strong&gt; gereklidir.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sürüm kontrolü:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Güncelleme:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS&lt;/span&gt;
brew upgrade ollama

&lt;span class="c"&gt;# Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://ollama.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Windows için son yükleyiciye &lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;ollama.com&lt;/a&gt; adresinden ulaşabilirsiniz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Donanım gereksinimleri:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;e2b&lt;/code&gt;: Min 8 GB RAM (16 GB önerilir)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;e4b&lt;/code&gt;: 10 GB VRAM veya 16 GB unified memory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;26b&lt;/code&gt;: 20+ GB RAM&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;31b&lt;/code&gt;: 24 GB VRAM veya 32 GB unified memory&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Gemma 4'ü Yükleme ve Çalıştırma
&lt;/h2&gt;

&lt;p&gt;Varsayılan e4b modelini indirin ve başlatın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run gemma4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8678q5cv6x7szg7u7lfq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8678q5cv6x7szg7u7lfq.png" alt="Ollama terminalinde Gemma 4'ü çalıştıran bir ekran görüntüsü. Metin, 'Ollama ile gemma4 çalıştırmak' şeklinde devam ediyor."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;İlk çalıştırmada yaklaşık 9,6 GB indirilecektir. Komut satırında etkileşimli olarak test edebilirsiniz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; İstemci hataları için HTTP durum kodları nelerdir?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Belirli varyantı çalıştırmak için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run gemma4:e2b          &lt;span class="c"&gt;# Küçük, uç model&lt;/span&gt;
ollama run gemma4:26b          &lt;span class="c"&gt;# MoE, kalite-boyut dengesi&lt;/span&gt;
ollama run gemma4:31b          &lt;span class="c"&gt;# Amiral gemisi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Önceden indirmek için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull gemma4
ollama pull gemma4:26b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mevcut modelleri listelemek için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Gemma 4 API'sini Yerel Olarak Kullanma
&lt;/h2&gt;

&lt;p&gt;Ollama, &lt;code&gt;http://localhost:11434&lt;/code&gt; adresinde REST API sunar. Model indirildikten sonra, HTTP istemcisiyle erişim mümkündür.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bir Tamamlama Oluşturun
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://localhost:11434/api/generate &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "gemma4",
    "prompt": "Bir kullanıcı profil API uç noktası için JSON yanıtı yaz",
    "stream": false
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Sohbet Tamamlama (OpenAI Uyumlu)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://localhost:11434/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "gemma4",
    "messages": [
      {
        "role": "user",
        "content": "Bir e-ticaret sipariş API yanıtı için gerçekçi bir JSON mock oluştur"
      }
    ]
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Python İstemcisi
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ask_gemma4&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:11434/api/generate&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;stream&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;raise_for_status&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;response&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ask_gemma4&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bir ödeme API yanıtının içermesi gereken alanları listele&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  OpenAI Python SDK'sı ile Kullanım
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:11434/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ollama&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;  &lt;span class="c1"&gt;# Sadece SDK için gerekli
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Gerçekçi API yanıt verilerini JSON formatında oluşturursunuz.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bir GET /users/{id} uç noktası için örnek bir yanıt oluştur&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Gemma 4 ile Fonksiyon Çağırma Kullanma
&lt;/h2&gt;

&lt;p&gt;Fonksiyon çağırma ile, doğal dilden fonksiyon parametrelerini otomatik çıkarabilirsiniz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:11434/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ollama&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get_user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;API&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;den bir kullanıcıyı ID&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ye göre getir&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;integer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Benzersiz kullanıcı ID&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;si&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                    &lt;span class="p"&gt;},&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;include_orders&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;boolean&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Sipariş geçmişinin dahil edilip edilmeyeceği&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;42 numaralı kullanıcıyı sipariş geçmişiyle birlikte getir&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tool_choice&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;auto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;tool_call&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;       &lt;span class="c1"&gt;# get_user
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# {"user_id": 42, "include_orders": true}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktı, şemanıza uygun ve doğrudan kullanılabilir JSON olacak.&lt;/p&gt;

&lt;h2&gt;
  
  
  Düşünme Modunu Etkinleştirme
&lt;/h2&gt;

&lt;p&gt;Karmaşık görevlerde düşünme zincirini açabilirsiniz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Uç durumlarla birlikte bir ödeme işleme API&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;si için eksiksiz bir test senaryosu tasarla&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;think&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Basit işlemlerde &lt;code&gt;"think": True&lt;/code&gt; eklemeyin; gereksiz gecikme yaratır.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apidog ile Gemma 4 API Yanıtlarını Test Etme
&lt;/h2&gt;

&lt;p&gt;Gemma 4'ü başlattıktan sonra, API uç noktalarınızı sistematik şekilde test edebilirsiniz. Apidog ile bunu kolayca otomatikleştirin.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fci3hhb0u9dmnzb9i72vs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fci3hhb0u9dmnzb9i72vs.png" alt="Apidog arayüzünde Gemma 4 API yanıtlarının nasıl test edileceğini gösteren bir ekran görüntüsü."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Uygulama adımları:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Ollama API belirtimini içe aktarın:&lt;/strong&gt; Yeni bir Apidog projesi oluşturun, temel URL olarak &lt;code&gt;http://localhost:11434&lt;/code&gt; ekleyin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uç noktalarınızı tanımlayın:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;POST /api/generate&lt;/code&gt; (tek seferlik tamamlama)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST /v1/chat/completions&lt;/code&gt; (sohbet)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/tags&lt;/code&gt; (mevcut modeller)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test Senaryosu oluşturun:&lt;/strong&gt; 

&lt;ul&gt;
&lt;li&gt;1. Adım: &lt;code&gt;GET /api/tags&lt;/code&gt; ile &lt;code&gt;gemma4&lt;/code&gt; modelinin listede olduğunu doğrulayın.&lt;/li&gt;
&lt;li&gt;2. Adım: &lt;code&gt;POST /api/generate&lt;/code&gt; ile bir istem gönderin, &lt;code&gt;response&lt;/code&gt; alanının boş olmadığını kontrol edin.&lt;/li&gt;
&lt;li&gt;3. Adım: &lt;code&gt;POST /v1/chat/completions&lt;/code&gt; ile sohbet mesajı gönderin ve yanıtın beklenen şemaya uyduğunu doğrulayın.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yanıt şemalarını doğrulayın:&lt;/strong&gt; Apidog'un Sözleşme Testi (Contract Testing) ile, API yanıtlarının OpenAPI belirtiminize uygunluğunu test edin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Akıllı Mock ile paralel geliştirme:&lt;/strong&gt; Yanıt şemanızı tanımlayın, Apidog gerçekçi verileri otomatik oluşturur; böylece ön uç ekipleri yerel modeli beklemeden geliştirme yapabilir.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Gemma 4 ile Çok Modlu Giriş
&lt;/h2&gt;

&lt;p&gt;E2B ve E4B modellerinde görsel giriş mümkündür. Görseli base64 olarak iletebilirsiniz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;base64&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;api_diagram.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rb&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;image_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;base64&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;b64encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma4:e4b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;data:image/png;base64,&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;image_data&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bu diyagramda gösterilen API akışını tanımlayın ve olası hata yollarını belirleyin&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu, API diyagramlarını analiz etmek veya görüntüden veri çıkarmak için kullanılabilir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sık Karşılaşılan Sorunlar ve Çözümler
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model bulunamıyor:&lt;/strong&gt; &lt;code&gt;ollama pull gemma4&lt;/code&gt; ile çekin veya &lt;code&gt;ollama list&lt;/code&gt; ile kontrol edin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CPU'da yavaşlık:&lt;/strong&gt; Gemma 4 GPU için optimize edilmiştir. Yalnızca CPU'da &lt;code&gt;e2b&lt;/code&gt; modelini kullanın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bellek hataları:&lt;/strong&gt; VRAM/unified memory kontrol edin. Gerekirse daha küçük model seçin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apple Silicon'da yüklenmiyor:&lt;/strong&gt; Ollama 0.20.0 ve üzerini kullanın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Port kullanımda:&lt;/strong&gt; Başka port ile başlatın: &lt;code&gt;OLLAMA_HOST=0.0.0.0:11435 ollama serve&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yanıtlar kesiliyor:&lt;/strong&gt; JSON'a &lt;code&gt;"options": {"num_ctx": 8192}&lt;/code&gt; ekleyin.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Gemma 4 Diğer Yerel Modellere Karşı
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;En iyi boyut&lt;/th&gt;
&lt;th&gt;Bağlam&lt;/th&gt;
&lt;th&gt;Fonksiyon çağırma&lt;/th&gt;
&lt;th&gt;Kodlama kıyaslama&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 4&lt;/td&gt;
&lt;td&gt;e4b (9.6 GB)&lt;/td&gt;
&lt;td&gt;128K-256K&lt;/td&gt;
&lt;td&gt;Yerel&lt;/td&gt;
&lt;td&gt;%80 LiveCodeBench&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.3&lt;/td&gt;
&lt;td&gt;70B-Q4 (40 GB)&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;Yerel&lt;/td&gt;
&lt;td&gt;~%60 LiveCodeBench&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qwen3.6-Plus&lt;/td&gt;
&lt;td&gt;72B-Q4 (44 GB)&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;Yerel&lt;/td&gt;
&lt;td&gt;Güçlü&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral Small&lt;/td&gt;
&lt;td&gt;24B (14 GB)&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;Yerel&lt;/td&gt;
&lt;td&gt;Orta&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;26B MoE varyantı, düşük maliyetle yüksek kalite sunar. Kodlama için 31B, kompakt kurulumlar için &lt;code&gt;e2b&lt;/code&gt; önerilir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Ollama ile Gemma 4, en yetenekli yerel modellerden biri. Kurulum iki komutla tamamlanır, çoğu geliştirici makinesinde çalışır ve Gemma 3'e göre mantık/kodlama kalitesinde ciddi bir artış sunar.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ollama run gemma4&lt;/code&gt; ile başlayın, API uç noktalarınızı Apidog ile test edin ve iş yükünüz için doğru varyantı seçin. Yerel çıkarımı Apidog'un Akıllı Mock ve Test Senaryoları ile birleştirerek, eksiksiz ve bağımsız bir geliştirme ortamı oluşturabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  SSS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Yeni bir sürüm çıktığında Ollama'daki Gemma 4'ü nasıl güncellerim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;ollama pull gemma4&lt;/code&gt; komutunu tekrar çalıştırın. Ollama güncel sürümü otomatik indirir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4'ü GPU'suz bir makinede çalıştırabilir miyim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet, ancak yavaştır. CPU'da saniyede 1-3 token hızı bekleyin. &lt;code&gt;e2b&lt;/code&gt; modeli CPU için en uygunudur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;gemma4:e2b ve gemma4:e4b arasındaki fark nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Her ikisi de kompakt, uç modellerdir. E4B daha fazla parametreyle karmaşık görevlerde daha iyidir. E2B daha küçüktür, ses desteği sunar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4, LangChain ve LlamaIndex ile çalışıyor mu?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet. Ollama sağlayıcısını &lt;code&gt;http://localhost:11434&lt;/code&gt; adresine yönlendirin, model adı olarak &lt;code&gt;gemma4&lt;/code&gt; kullanın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Yerel Gemma 4 API'si, OpenAI API'si ile uyumlu mu?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Büyük oranda evet. &lt;code&gt;/v1/chat/completions&lt;/code&gt; uç noktası OpenAI formatını takip eder. &lt;code&gt;base_url&lt;/code&gt; ve &lt;code&gt;api_key&lt;/code&gt; ayarlarını güncelleyin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4'ün düşünme modunu nasıl kullanırım?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
OpenAI SDK'sında &lt;code&gt;extra_body&lt;/code&gt; parametresinde &lt;code&gt;"think": true&lt;/code&gt; ekleyin veya doğrudan API çağrısında kullanın. Basit görevlerde devre dışı bırakın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4'ü ağdaki diğer makinelere sunabilir miyim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet. Ollama'yı &lt;code&gt;OLLAMA_HOST=0.0.0.0:11434 ollama serve&lt;/code&gt; ile başlatın. Diğer makineler aynı porttan erişebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API geliştirme için en iyi Gemma 4 modeli hangisi?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Test ve sahte veri için &lt;code&gt;e4b&lt;/code&gt; en uygun seçimdir. Karmaşık analiz için &lt;code&gt;26b&lt;/code&gt; MoE modeli kalite/fiyat avantajı sunar.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Gemma 4'ü API Arka Ucu Olarak Nasıl Çalıştırırsınız?</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Fri, 03 Apr 2026 02:45:29 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/gemma-4u-api-arka-ucu-olarak-nasil-calistirirsiniz-4lgc</link>
      <guid>https://dev.to/tobiass_hoffmann/gemma-4u-api-arka-ucu-olarak-nasil-calistirirsiniz-4lgc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Özetle:&lt;/strong&gt; Google, Nisan 2026'da Gemma 4'ü piyasaya sürdü. Bu, Apache 2.0 lisansı altında yayımlanan dört açık modelden oluşan bir aile olup, standart karşılaştırmalarda kendi boyutlarının 20 katı büyüklüğündeki modelleri geride bırakıyor. Gemma 4 API'sini Google AI Studio, Vertex AI aracılığıyla çağırabilir veya Ollama ve vLLM ile yerel olarak çalıştırabilirsiniz. Tek bir taklit kuralı yazmadan, OpenAPI şemalarınızdan gerçekçi API yanıtlarını otomatik olarak oluşturmak için onu Apidog'un Smart Mock'u ile eşleştirin.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u bugün deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Giriş
&lt;/h2&gt;

&lt;p&gt;Çoğu açık kaynaklı yapay zeka modeli sizi bir seçim yapmaya zorlar: ham yetenek veya dağıtılabilirlik. Ya dizüstü bilgisayarınızda çalıştıramayacağınız kadar büyük bir model, ya da çok adımlı akıl yürütmeyi başaramayan küçük bir model elde edersiniz. Gemma 4 bu dengeyi bozuyor.&lt;/p&gt;

&lt;p&gt;Gemma 4, Google DeepMind'ın bugüne kadarki en yetenekli açık model ailesidir. 31B Dense modeli, Arena AI'ın liderlik tablosunda tüm açık modeller arasında 3. sırada yer alıyor ve kendi boyutunun 20 katı rakipleri geride bırakıyor. 26B Uzmanlar Karışımı (MoE) 6. sırada yer alıyor. Her ikisi de tek bir 80 GB GPU üzerinde çalışır. Hafif E2B ve E4B modelleri, telefonlarda ve uç cihazlarda tamamen çevrimdışı çalışır.&lt;/p&gt;

&lt;p&gt;API geliştiricileri için bu, göründüğünden daha önemlidir. Gemma 4, yerel olarak fonksiyon çağırmayı, yapılandırılmış JSON çıktısını ve 256K bağlam pencerelerini destekler. Bu da onu, test verisi oluşturmaktan taklitler yazmaya ve API yanıtlarını analiz etmeye kadar yapay zeka destekli API araçları oluşturmak için pratik bir seçenek haline getirir.&lt;/p&gt;

&lt;p&gt;💡Eğer Gemma 4 ile geliştirme yapıyorsanız ve bu yapay zeka tarafından oluşturulan yanıtları OpenAPI belirtiminize göre doğrulamak istiyorsanız, Apidog'un Smart Mock motoru, API tanımınızdan şemaya uygun taklit yanıtları otomatik olarak oluşturabilir. Tek tek taklit kuralları yazmanıza gerek yok; Smart Mock şemanızı okur ve anında bağlama uygun veriler üretir. Apidog'u ücretsiz indirin ve Gemma 4 API iş akışınıza bağlayın.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemma 4 Nedir ve Yenilikler Nelerdir?
&lt;/h2&gt;

&lt;p&gt;Gemma 4, Google DeepMind'ın dördüncü nesil açık dil modelleridir. "Gemma" adı, Latince değerli taş anlamına gelen kelimeden gelmektedir. Seri 2024'ün başlarında başladı ve piyasaya sürülmesinden bu yana geliştiriciler Gemma modellerini 400 milyondan fazla kez indirdi. Topluluk 100.000'den fazla varyant oluşturarak Google'ın "Gemmaverse" adını verdiği bir ekosistem kurdu.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-52.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-52.png" alt="" width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gemma 4, özel bir kullanım politikası kullanan önceki nesillere kıyasla önemli bir değişiklik olan bir &lt;a href="https://goo.gle/gemma-4-apache-2" rel="noopener noreferrer"&gt;Apache 2.0 lisansı&lt;/a&gt; altında piyasaya sürülüyor. Bu, Gemma 4'ü ticari olarak kısıtlama olmaksızın kullanabileceğiniz, değiştirebileceğiniz ve dağıtabileceğiniz anlamına geliyor. Bu, yapay zeka altyapıları üzerinde tam kontrol ihtiyacı duyan işletmeler ve girişimler için anlamlı bir değişikliktir.&lt;/p&gt;

&lt;p&gt;Gemma 4'teki manşet iyileşme, Google'ın "parametre başına zeka" olarak adlandırdığı şeydir. 31B Dense modeli, GPT-4 veya Claude 3 Sonnet gibi modellerin hesaplama maliyetinin çok altında, sınır düzeyinde yetenekler sunar. Arena AI metin liderlik tablosunda (Nisan 2026 itibarıyla), Gemma 4 31B, 600 milyardan fazla parametreye sahip modelleri geride bırakıyor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-51.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-51.png" alt="" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gemma 3'e kıyasla öne çıkan yenilikler:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Yerel çok modlu giriş:&lt;/strong&gt; Dört Gemma 4 modelinin tamamı görüntü ve videoyu yerel olarak işler. E2B ve E4B uç modelleri, konuşma tanıma için yerel ses girişi ekler.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daha uzun bağlam pencereleri:&lt;/strong&gt; E2B ve E4B modelleri 128K belirteci, 26B ve 31B modelleri ise 256K belirtece kadar destekler.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aracı iş akışı desteği:&lt;/strong&gt; Yerel fonksiyon çağırma, yapılandırılmış JSON çıktı modu ve sistem talimatları ile API entegrasyonlarında pratik kullanım sağlar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gelişmiş akıl yürütme:&lt;/strong&gt; 31B modeli, matematik ve çok adımlı talimat takibinde önemli iyileştirmeler sunar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;140'tan fazla dil desteği:&lt;/strong&gt; Gemma 4, 140'tan fazla dili yerel olarak destekler.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apache 2.0 lisansı:&lt;/strong&gt; Ticari kullanım için yasal belirsizliği ortadan kaldırır.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Gemma 4 Model Varyantları ve Yetenekleri
&lt;/h2&gt;

&lt;p&gt;Google, her biri farklı donanım için optimize edilmiş dört Gemma 4 varyantı sunar:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Parametreler&lt;/th&gt;
&lt;th&gt;Aktif parametreler (çıkarım)&lt;/th&gt;
&lt;th&gt;Bağlam&lt;/th&gt;
&lt;th&gt;En iyi olduğu alan&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;E2B&lt;/td&gt;
&lt;td&gt;Etkili 2B&lt;/td&gt;
&lt;td&gt;~2B&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;Mobil, IoT, çevrimdışı uç&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E4B&lt;/td&gt;
&lt;td&gt;Etkili 4B&lt;/td&gt;
&lt;td&gt;~4B&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;Telefonlar, Raspberry Pi, Jetson Orin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;26B MoE&lt;/td&gt;
&lt;td&gt;Toplam 26B&lt;/td&gt;
&lt;td&gt;~3.8B aktif&lt;/td&gt;
&lt;td&gt;256K&lt;/td&gt;
&lt;td&gt;Gecikmeye duyarlı sunucu görevleri&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;31B Dense&lt;/td&gt;
&lt;td&gt;31B&lt;/td&gt;
&lt;td&gt;31B&lt;/td&gt;
&lt;td&gt;256K&lt;/td&gt;
&lt;td&gt;En yüksek kalite, araştırma, ince ayar&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;E2B/E4B: Mixture of Experts mimarisi ile düşük güç tüketimi ve RAM kullanımı sağlar. Tamamen çevrimdışı mobil/IoT uygulamaları için idealdir.&lt;/li&gt;
&lt;li&gt;26B MoE: Sunucu tarafı için düşük gecikmeli, hızlı çıkarım. Sadece 3.8B aktif parametre kullanımı ile maliyet/verim dengesi sunar.&lt;/li&gt;
&lt;li&gt;31B Dense: Kalite ve çok adımlı testler için en iyi seçim. Tüm parametreler aktif.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;API geliştiricileri için: 26B MoE, hız/kalite dengesi; 31B Dense, karmaşık JSON ve çok adımlı mantık gerektiren durumlar için uygun.&lt;/p&gt;

&lt;p&gt;Tüm modellerde fonksiyon çağırma ve JSON çıktı desteği standarttır.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemma 4 API Kurulumu: Adım Adım
&lt;/h2&gt;

&lt;p&gt;Aşağıda, Gemma 4 API'sini çağırmak için üç ana yolun nasıl kurulacağını bulabilirsiniz.&lt;/p&gt;

&lt;h3&gt;
  
  
  Seçenek 1: Google AI Studio (Hızlı Prototipleme)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://aistudio.google.com" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt;'ya kaydolun ve bir API anahtarı alın.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Python SDK'yı yükleyin:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;google-genai
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Temel API çağrısı:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;google.generativeai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;

&lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GenerativeModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma-4-31b-it&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Generate a JSON object for a user account with id, email, and created_at fields.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JSON çıktısı almak için:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;google.generativeai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GenerativeModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma-4-31b-it&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;generation_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;response_mime_type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Bir e-ticaret API&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;si için 3 örnek kullanıcı nesnesi oluşturun. 
Her kullanıcının şunları içermesi gerekir: id (tam sayı), email (dize), username (dize), 
created_at (ISO 8601 zaman damgası) ve subscription_tier (free|pro|enterprise).
Bir JSON dizisi olarak döndürün.
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;indent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Seçenek 2: Ollama ile Yerel Dağıtım
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; aracını kurun.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Modeli indirin:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull gemma4
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sunucuyu başlatın:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;OpenAI uyumlu API ile çağrı yapın:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:11434/api/chat&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bir REST API /products uç noktası için geçerli bir JSON yanıtı oluşturun. id, name, price ve stock alanlarını dahil edin.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;stream&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Seçenek 3: Fonksiyon Çağırma ile API Orkestrasyonu
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Kullanılacak fonksiyonları tanımlayın.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Modeli fonksiyon desteği ile başlatın:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;google.generativeai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;

&lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function_declarations&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get_api_schema&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Belirli bir uç nokta yolu için OpenAPI şemasını alır&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;endpoint_path&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;API uç nokta yolu, örn. /users/{id}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                        &lt;span class="p"&gt;},&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;method&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enum&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;GET&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;POST&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;PUT&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DELETE&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;PATCH&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                        &lt;span class="p"&gt;}&lt;/span&gt;
                    &lt;span class="p"&gt;},&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;endpoint_path&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;method&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GenerativeModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma-4-31b-it&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;GET /users/{id} uç noktasını test etmem gerekiyor. Yanıt hangi şemayı takip etmeli?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Fonksiyon çağrısı kontrolü
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;candidates&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;function_call&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;fc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;candidates&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;function_call&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Model şu fonksiyonu çağırdı: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;fc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Şu argümanlarla: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bu şekilde, Gemma 4 ile fonksiyon çağırma tabanlı API test ve orkestrasyonunu kolayca kurabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemma 4 ile Yapay Zeka Destekli API Taklitleri Oluşturma
&lt;/h2&gt;

&lt;p&gt;API geliştiricileri için Gemma 4'ün öne çıkan pratik kullanım alanı, gerçekçi taklit veri üretimidir. Aşağıda, OpenAPI şemasından taklit veri üretmek için örnek bir akış yer alıyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;google.generativeai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GenerativeModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma-4-31b-it&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;generation_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;response_mime_type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# OpenAPI şeması
&lt;/span&gt;&lt;span class="n"&gt;schema&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;integer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;order_number&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pattern&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;^ORD-[0-9]{6}$&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enum&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pending&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;shipped&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;delivered&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cancelled&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]},&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;total&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;number&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;minimum&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;items&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;array&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;items&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;product_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;integer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;quantity&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;integer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;minimum&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;unit_price&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;number&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;created_at&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;format&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;date-time&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Bir sipariş yönetimi API&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;si için 5 gerçekçi taklit yanıt oluşturun.
Her yanıt şu JSON Şemasına tam olarak uymalıdır:
&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;indent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;

Verileri gerçekçi yapın: gerçekçi fiyatlar, ürün kimlikleri ve çeşitli durumlar kullanın.
5 sipariş nesnesinden oluşan bir JSON dizisi olarak döndürün.
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;mock_orders&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mock_orders&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;indent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu yöntemle, Gemma 4'ün şema kısıtlamalarına uygun, gerçekçi ve API sözleşmesiyle uyumlu taklit yanıtlar elde edersiniz. Benzer şekilde, OpenAPI belirtiminizdeki her uç nokta için şemayı modele vererek genişletilmiş taklit veri kümeleri üretebilirsiniz.&lt;/p&gt;

&lt;p&gt;Daha karmaşık akışlarda, koşullu mantık veya çoklu uç nokta desteği için istemi ve şemanızı zenginleştirerek Gemma 4'ten daha kapsamlı test setleri alabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemma 4 API Yanıtlarını Apidog ile Test Etme
&lt;/h2&gt;

&lt;p&gt;Gemma 4 çıktılarının API şemanızla uyumunu otomatik olarak test etmek için Apidog'un Test Senaryoları özelliğini kullanın.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-53.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-53.png" alt="" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;İş Akışı:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Gemma 4 API uç noktanızı Apidog'a aktarın:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Projenizde yeni bir uç nokta oluşturun, Gemma 4 API'nize bağlayın ve beklenen yanıt şemasını tanımlayın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Smart Mock ile prototip yanıtları üretin:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Canlı testten önce Apidog Smart Mock ile şemanızdan gerçekçi prototip yanıtlar oluşturun. Alan adlarından ve türlerden otomatik veri üretimi sağlar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-54.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-54.png" alt="" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Test Senaryosu oluşturun:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Testler modülünde yeni bir senaryo oluşturun, Gemma 4 API çağrınızı ekleyin ve doğrulama adımlarını zincirleyin.&lt;/p&gt;

&lt;p&gt;Örnek adımlar:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kimlik doğrulama uç noktasından token alın&lt;/li&gt;
&lt;li&gt;Gemma 4 API'ye istek gönderin&lt;/li&gt;
&lt;li&gt;Yanıttan JSON çıkarın&lt;/li&gt;
&lt;li&gt;JSON'u şema doğrulamasıyla kontrol edin&lt;/li&gt;
&lt;li&gt;Sonuç verisini başka bir uç noktaya iletin&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;4. Doğrulama kurallarını ekleyin:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
HTTP durum kodu, başlık ve JSON alanlarının varlığını ve türünü kontrol edin. Apidog'un Değişken Ayıklayıcı işlemcisi ile Gemma 4 çıktısını sonraki adımlarda kullanabilirsiniz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Veri odaklı testleri çalıştırın:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CSV/JSON dosyalarından farklı istem varyasyonlarını yükleyin, toplu testleri tek tıklamayla başlatın ve API'nizin çeşitli girişlere karşı dayanıklılığını ölçün.&lt;/p&gt;

&lt;p&gt;Bu süreci otomatikleştirerek, şema tanımından canlı test sonucuna kadar tüm akışı 15 dakikada kurabilir ve CI/CD'de sürekli çalıştırabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gerçek Dünya Kullanım Durumları
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API test verisi oluşturma:&lt;/strong&gt; JSON çıktı moduyla, OpenAPI şemanıza uygun yüzlerce gerçekçi test kaydını otomatik üretin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Akıllı API taklit etme:&lt;/strong&gt; Taklit sunucunuzu Gemma 4 ile bağlama göre dinamik yanıt döndürecek şekilde güçlendirin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API dokümantasyonu oluşturma:&lt;/strong&gt; 256K bağlam penceresi ile tüm kod tabanınızı isteme ekleyin ve otomatik OpenAPI belgeleri alın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yanıt şeması doğrulama:&lt;/strong&gt; API yanıtlarınızı şema ihlalleri için analiz edin, alan eksikliklerini ve tür hatalarını tespit edin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Otomatik regresyon testi yazma:&lt;/strong&gt; Hata raporlarından ve şemadan test senaryoları ürettirin, ilişkili alanlar ve durum geçişleri için kontroller ekleyin.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  API Kullanımı İçin Gemma 4 ile Diğer Açık Modellerin Karşılaştırılması
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Parametreler&lt;/th&gt;
&lt;th&gt;Bağlam&lt;/th&gt;
&lt;th&gt;JSON çıktısı&lt;/th&gt;
&lt;th&gt;Fonksiyon çağırma&lt;/th&gt;
&lt;th&gt;Lisans&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 4 31B&lt;/td&gt;
&lt;td&gt;31B&lt;/td&gt;
&lt;td&gt;256K&lt;/td&gt;
&lt;td&gt;Yerel&lt;/td&gt;
&lt;td&gt;Yerel&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 4 26B MoE&lt;/td&gt;
&lt;td&gt;26B (3.8B aktif)&lt;/td&gt;
&lt;td&gt;256K&lt;/td&gt;
&lt;td&gt;Yerel&lt;/td&gt;
&lt;td&gt;Yerel&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.3 70B&lt;/td&gt;
&lt;td&gt;70B&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;İstem aracılığıyla&lt;/td&gt;
&lt;td&gt;İstem aracılığıyla&lt;/td&gt;
&lt;td&gt;Llama Topluluğu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral 7B&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;32K&lt;/td&gt;
&lt;td&gt;İstem aracılığıyla&lt;/td&gt;
&lt;td&gt;Sınırlı&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qwen 2.5 72B&lt;/td&gt;
&lt;td&gt;72B&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;Yerel&lt;/td&gt;
&lt;td&gt;Yerel&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 4&lt;/strong&gt;: Yerel JSON çıktısı, fonksiyon çağırma ve uzun bağlam desteği ile API araçları için idealdir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Llama 3.3 70B&lt;/strong&gt;: Güçlü ancak iki kat donanım gerektirir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mistral 7B&lt;/strong&gt;: Hafif ve hızlı, fakat bağlam ve yapılandırılmış çıktı desteği sınırlı.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qwen 2.5 72B&lt;/strong&gt;: Çok dilli güçlü alternatif, fakat donanım gereksinimi yüksek.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apache 2.0 lisansı ile Gemma 4, ticari ve açık geliştirme için net avantaj sunar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Gemma 4, geliştiricilere API araçları oluşturmak için tescilli yapay zeka API'lerine karşı güvenilir ve açık bir alternatif sunar. Apache 2.0 lisansı, önceki açık modelleri ticari olarak göndermeyi karmaşık hale getiren yasal sürtünmeyi ortadan kaldırır. Yerel fonksiyon çağırma ve JSON çıktı modu, kapsamlı istem mühendisliğine gerek kalmadan API iş akışlarına entegre etmeyi pratik hale getirir.&lt;/p&gt;

&lt;p&gt;Dört model boyutu, telefonlardan iş istasyonlarına kadar her donanım katmanını kapsar. 26B MoE modeli, çoğu API geliştirme kullanım durumu için öne çıkan seçenektir: çıkarım maliyetinin çok altında, sınıra yakın kalite sunar.&lt;/p&gt;

&lt;p&gt;Yapay zeka tarafından oluşturulan veriler ile API doğrulama arasındaki döngüyü kapatmak için Gemma 4'ü &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog'un Smart Mock'u&lt;/a&gt; ile eşleştirin. Test verileri ve taklit yanıtlar oluşturmak için Gemma 4'ü kullanın. Şemaları prototiplemek için Apidog'un Smart Mock'unu ve yapay zeka çıktısının API sözleşmenizi karşıladığını doğrulamak için Test Senaryolarını kullanın. Birlikte, yapay zeka destekli API'ler oluşturmak ve test etmek için pratik bir iş akışı kurabilirsiniz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sıkça Sorulan Sorular
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4 nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Gemma 4, Google DeepMind'ın Nisan 2026'da piyasaya sürülen en yeni açık dil modelleri ailesidir. Dört boyutta (E2B, E4B, 26B MoE, 31B Dense) gelir ve Apache 2.0 lisansı altındadır. 31B modeli, Arena AI'ın metin liderlik tablosundaki tüm açık modeller arasında şu anda 3. sırada yer almaktadır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4'ü kullanmak ücretsiz mi?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Model ağırlıkları Apache 2.0 lisansı altında ücretsiz olarak indirilebilir ve kullanılabilir. Kendiniz çalıştırdığınızda hesaplama için ödeme yaparsınız. Google AI Studio'yu kullanırsanız, hız limitleri olan ücretsiz bir katman bulunur. Vertex AI, standart Google Cloud hesaplama ücretlerini alır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4 yapılandırılmış JSON çıktısı verebilir mi?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet. Gemma 4, Google Üretken Yapay Zeka SDK'sı aracılığıyla yerel bir &lt;code&gt;response_mime_type: "application/json"&lt;/code&gt; parametresini destekler. Bu, modelin her zaman geçerli JSON döndürmesini sağlar, bu da çıktıyı programlı olarak ayrıştırdığınız API entegrasyonları için çok önemlidir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4, API geliştirme için GPT-4o ile nasıl karşılaştırılır?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
GPT-4o, yerel dağıtım seçeneği olmayan ve daha yüksek API maliyetleri olan tescilli bir modeldir. Gemma 4 31B yerel olarak dağıtmak ücretsizdir ve karşılaştırma puanları akıl yürütme görevlerinde GPT-4o ile rekabetçidir. Veri gizliliği veya maliyet kontrolüne ihtiyaç duyan ekipler için Gemma 4 ciddiye alınmaya değerdir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kendi API verilerimde Gemma 4'ü ince ayar yapabilir miyim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet. Google, Gemma 4'ü Google AI Studio, Vertex AI ve Hugging Face TRL gibi üçüncü taraf araçlar aracılığıyla ince ayar yapmayı destekler. Alan tabanlı API şemaları ve yanıt desenleri üzerinde ince ayar yapmak, özel kullanım durumları için çıktı kalitesini önemli ölçüde artırabilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4'ü yerel olarak çalıştırmak için hangi donanıma ihtiyacım var?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
31B ve 26B modelleri, bfloat16'da tek bir 80GB NVIDIA H100'e sığar. Kuantize edilmiş sürümler, 16-24GB VRAM'e sahip tüketici GPU'larında çalışır. E4B ve E2B modelleri, Raspberry Pi ve NVIDIA Jetson dahil olmak üzere telefonlarda ve uç cihazlarda çalışır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4 fonksiyon çağırmayı destekliyor mu?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet, tüm Gemma 4 modelleri yerel fonksiyon çağırmayı destekler. Araçları bir ad, açıklama ve parametre şemasına sahip JSON nesneleri olarak tanımlarsınız. Model bir aracı ne zaman çağıracağına karar verir ve kodda üzerinde işlem yapabileceğiniz yapılandırılmış argümanları iletir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4 API yanıtlarını otomatik olarak nasıl test ederim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Zincirleme bir test iş akışı oluşturmak için Apidog'un Test Senaryolarını kullanın. Gemma 4 API uç noktanızı içe aktarın, istek adımlarını ayarlayın ve yanıt yapısını doğrulamak için iddialar ekleyin. Senaryoyu yerel olarak, CLI aracılığıyla veya her kod gönderiminde CI/CD işlem hattınızda otomatik olarak çalıştırabilirsiniz.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Qwen3.6-Plus API: Terminalde Claude'u Geçti</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Thu, 02 Apr 2026 09:38:48 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/qwen36-plus-api-terminalde-claudeu-gecti-1f6b</link>
      <guid>https://dev.to/tobiass_hoffmann/qwen36-plus-api-terminalde-claudeu-gecti-1f6b</guid>
      <description>&lt;h2&gt;
  
  
  Özetle
&lt;/h2&gt;

&lt;p&gt;Qwen3.6-Plus resmi olarak piyasada. SWE-bench Verified'da %78,8 ve Terminal-Bench 2.0'da %61,6 puanla Claude Opus 4.5'i geçti. 1 milyon token bağlam penceresi, ajan döngüleri için yeni bir &lt;code&gt;preserve_thinking&lt;/code&gt; parametresi ve OpenAI uyumlu API ile doğrudan Claude Code, OpenClaw ve Qwen Code ile çalışabiliyor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u hemen deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Önizlemeden tam sürüme
&lt;/h2&gt;

&lt;p&gt;OpenRouter'daki &lt;a href="http://apidog.com/blog/qwen-3-6-free-openrouter/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Qwen 3.6 Plus Önizleme rehberimizi&lt;/a&gt; okuduysanız, modelin neler sunabildiğini görmüşsünüzdür. Önizleme 30 Mart'ta bekleme listesi olmadan ve OpenRouter üzerinden ücretsiz olarak yayınlandı. İlk iki günde, yaklaşık 400.000 istekte 400 milyondan fazla tamamlama tokenı işlendi.&lt;/p&gt;

&lt;p&gt;Resmi sürüm, kararlı API, SLA destekli çalışma süresi ve çok adımlı ajan görevleri için yeni API parametresiyle birlikte geliyor. Artık sadece önizleme değil, doğrudan üretimde kullanılabilir bir model.&lt;/p&gt;

&lt;p&gt;Bu rehberde, değişiklikleri, API'nin en iyi şekilde nasıl çağrılacağını ve dağıtımdan önce Apidog ile entegrasyonun nasıl test edileceğini bulacaksınız.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qwen3.6-Plus Nedir?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://qwen.ai/blog?id=qwen3.6" rel="noopener noreferrer"&gt;Qwen3.6-Plus&lt;/a&gt;, Alibaba'nın Qwen ekibinden barındırılan bir MoE (Mixture of Experts) modelidir. Qwen3.5 serisi gibi seyrek aktivasyon kullanır, yani token başına parametrelerin yalnızca bir kısmı çalışır. Bu da benzer güce sahip yoğun modellere göre daha düşük hesaplama maliyeti sunar.&lt;/p&gt;

&lt;p&gt;Başlıca özellikleri:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 milyon token bağlam penceresi&lt;/li&gt;
&lt;li&gt;Zorunlu düşünce zinciri muhakemesi&lt;/li&gt;
&lt;li&gt;Ajan görevleri için yeni &lt;code&gt;preserve_thinking&lt;/code&gt; parametresi&lt;/li&gt;
&lt;li&gt;Yerel çok modlu destek (görü, video, belge anlama)&lt;/li&gt;
&lt;li&gt;OpenAI, Anthropic ve OpenAI Yanıtları API uyumluluğu&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Açık kaynaklı daha küçük varyantlar kısa sürede geliyor. Kendi başınıza barındırmak için ağırlıklar yakında erişilebilir olacak.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kıyaslama Sonuçları
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Kodlama ajanları
&lt;/h3&gt;

&lt;p&gt;Qwen3.6-Plus, SWE-bench görevlerinde Claude Opus 4.5'in az farkla arkasında kalsa da terminal operasyonlarında tüm rakiplerini geride bırakıyor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56nehdw7rei6u9ghff6v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56nehdw7rei6u9ghff6v.png" alt="Terminal-Bench 2.0 Karşılaştırması" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Terminal-Bench 2.0, gerçek kabuk komutlarını, dosya yönetimini, süreç kontrolünü ve çok adımlı iş akışlarını test eder. %61,6 puan ile Claude Opus 4.5'in %59,3'üne kıyasla geliştirici dostu bir fark yaratıyor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Genel ajanlar ve araç kullanımı
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kıyaslama&lt;/th&gt;
&lt;th&gt;Claude Opus 4.5&lt;/th&gt;
&lt;th&gt;Qwen3.6-Plus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;TAU3-Bench&lt;/td&gt;
&lt;td&gt;70.2%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;70.7%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepPlanning&lt;/td&gt;
&lt;td&gt;33.9%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;41.5%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCPMark&lt;/td&gt;
&lt;td&gt;42.3%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;48.2%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP-Atlas&lt;/td&gt;
&lt;td&gt;71.8%&lt;/td&gt;
&lt;td&gt;74.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WideSearch&lt;/td&gt;
&lt;td&gt;76.4%&lt;/td&gt;
&lt;td&gt;74.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;MCPMark, GitHub MCP v0.30.3 araç çağrılarını test eder. Qwen3.6-Plus'ın %48,2 ile liderliği, MCP tabanlı araçlar geliştirenler için avantaj sağlar. DeepPlanning'de de uzun vadeli planlama görevlerinde ciddi bir üstünlük var.&lt;/p&gt;

&lt;h3&gt;
  
  
  Muhakeme ve bilgi
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kıyaslama&lt;/th&gt;
&lt;th&gt;Claude Opus 4.5&lt;/th&gt;
&lt;th&gt;Qwen3.6-Plus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPQA&lt;/td&gt;
&lt;td&gt;87.0%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;90.4%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LiveCodeBench v6&lt;/td&gt;
&lt;td&gt;84.8%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;87.1%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IFEval strict&lt;/td&gt;
&lt;td&gt;90.9%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;94.3%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MMLU-Pro&lt;/td&gt;
&lt;td&gt;89.5%&lt;/td&gt;
&lt;td&gt;88.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Qwen3.6-Plus, GPQA ve IFEval strict gibi karmaşık muhakeme ve biçimlendirme görevlerinde önde. Bu, yapılandırılmış çıktı gerektiren ajan görevlerinde avantaj sağlar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Çok Modlu
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kıyaslama&lt;/th&gt;
&lt;th&gt;Qwen3.6-Plus&lt;/th&gt;
&lt;th&gt;Notlar&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OmniDocBench 1.5&lt;/td&gt;
&lt;td&gt;91.2%&lt;/td&gt;
&lt;td&gt;Tablo lideri&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RefCOCO ort&lt;/td&gt;
&lt;td&gt;93.5%&lt;/td&gt;
&lt;td&gt;Tablo lideri&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;We-Math&lt;/td&gt;
&lt;td&gt;89.0%&lt;/td&gt;
&lt;td&gt;Tablo lideri&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CountBench&lt;/td&gt;
&lt;td&gt;97.6%&lt;/td&gt;
&lt;td&gt;Tablo lideri&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OSWorld-Verified&lt;/td&gt;
&lt;td&gt;62.5%&lt;/td&gt;
&lt;td&gt;Claude %66,3 ile önde&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Belge anlama ve mekansal temellendirme görevlerinde Qwen3.6-Plus önde. OSWorld-Verified'da ise Claude önde.&lt;/p&gt;

&lt;h2&gt;
  
  
  API Nasıl Çağrılır?
&lt;/h2&gt;

&lt;p&gt;Qwen3.6-Plus, Alibaba Cloud Model Studio'da barındırılıyor. API anahtarınızı &lt;a href="https://modelstudio.alibabacloud.com" rel="noopener noreferrer"&gt;modelstudio.alibabacloud.com&lt;/a&gt; adresinden alın.&lt;/p&gt;

&lt;p&gt;Bölgesel temel URL'ler:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Singapur: &lt;code&gt;https://dashscope-intl.aliyuncs.com/compatible-mode/v1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Pekin: &lt;code&gt;https://dashscope.aliyuncs.com/compatible-mode/v1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;ABD Virginia: &lt;code&gt;https://dashscope-us.aliyuncs.com/compatible-mode/v1&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Akışlı Temel Çağrı
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DASHSCOPE_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://dashscope-intl.aliyuncs.com/compatible-mode/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;completion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;qwen3.6-plus&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Review this Python function and find bugs.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
    &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enable_thinking&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;reasoning&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;
&lt;span class="n"&gt;answer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;
&lt;span class="n"&gt;is_answering&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;completion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;continue&lt;/span&gt;
    &lt;span class="n"&gt;delta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;hasattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reasoning_content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reasoning_content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;is_answering&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;reasoning&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reasoning_content&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;is_answering&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;is_answering&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
        &lt;span class="n"&gt;answer&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;flush&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;preserve_thinking&lt;/code&gt; Parametresi
&lt;/h3&gt;

&lt;p&gt;Resmi sürümde gelen &lt;code&gt;preserve_thinking&lt;/code&gt; parametresiyle, model konuşmadaki tüm önceki adımlardan muhakemeyi korur. Özellikle çok adımlı ajan görevlerinde kullanılmalı.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;completion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;qwen3.6-plus&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;conversation_history&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enable_thinking&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;preserve_thinking&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# tüm adımlarda muhakemeyi sakla
&lt;/span&gt;    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Qwen3.6-Plus'ı Claude Code ile Kullanmak
&lt;/h3&gt;

&lt;p&gt;Qwen API'si Anthropic protokolünü destekler. Sadece ortam değişkenlerini ayarlayarak Claude Code'u Qwen3.6-Plus'a yönlendirebilirsiniz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @anthropic-ai/claude-code

&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"qwen3.6-plus"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_SMALL_FAST_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"qwen3.6-plus"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;https://dashscope-intl.aliyuncs.com/apps/anthropic
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;your_dashscope_api_key

claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Qwen3.6-Plus'ı OpenClaw ile Kullanmak
&lt;/h3&gt;

&lt;p&gt;OpenClaw (eski adıyla Moltbot / Clawdbot), açık kaynak kodlama ajanıdır. Kurulum ve yapılandırma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Kurulum (Node.js 22+)&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://molt.bot/install.sh | bash

&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;DASHSCOPE_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;your_key
openclaw dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;~/.openclaw/openclaw.json&lt;/code&gt; dosyasına aşağıdakileri ekleyin (mevcut dosyanın üzerine yazmayın):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"models"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"providers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"alibaba-coding-plan"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"baseUrl"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://coding-intl.dashscope.aliyuncs.com/v1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"apiKey"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"${DASHSCOPE_API_KEY}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"models"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"qwen3.6-plus"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"reasoning"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"agents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"defaults"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"models"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"qwen3.6-plus"&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Qwen3.6-Plus'ı Qwen Code ile Kullanmak
&lt;/h3&gt;

&lt;p&gt;Qwen Code, Qwen serisi için Alibaba'nın geliştirdiği açık kaynak terminal ajanıdır. Günde 1.000 ücretsiz API çağrısı sunar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @qwen-code/qwen-code@latest
qwen
&lt;span class="c"&gt;# Giriş yapmak ve ücretsiz katmanı etkinleştirmek için /auth yazın&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;code&gt;preserve_thinking&lt;/code&gt; Ajanın Davranışını Nasıl Değiştirir?
&lt;/h2&gt;

&lt;p&gt;Çoğu LLM API'si her adımı bağımsız işler. Model bir yanıt üretir, muhakeme atılır ve bir sonraki adım sıfırdan başlar. Basit Soru-Cevap için bu sorun değildir. Ancak çok adımlı ajan görevlerinde, model önceki kararlarını göremediğinden sapmalar olur.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;preserve_thinking&lt;/code&gt; parametresi aktifleştirildiğinde, model tüm önceki adımlardan gelen düşünce zincirini görür. Böylece, ajan 8. adımda çalışırken 2, 4 ve 6. adımlardaki kendi analizini inceleyebilir. Bu, daha tutarlı ve verimli kararlar alınmasını sağlar, gereksiz muhakemeyi azaltır ve token kullanımını optimize eder.&lt;/p&gt;

&lt;p&gt;Çok adımlı ajanlar için bu örnek kod yapısını kullanın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;conversation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;agent_step&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;preserve&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;user_message&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;qwen3.6-plus&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enable_thinking&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;preserve_thinking&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;preserve&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;
    &lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;assistant&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;

&lt;span class="c1"&gt;# Örnek: çok adımlı kod inceleme ajanı
&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;agent_step&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Analyze the auth module for security issues.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;agent_step&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Now suggest fixes for the top 3 issues you found.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;agent_step&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Write tests that validate each fix.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;preserve_thinking&lt;/code&gt; olmadan, 3. adımda model 1. adımda hangi sorunları bulduğunu bilmez. Bu parametre ile muhakeme zinciri bozulmadan korunur.&lt;/p&gt;

&lt;h2&gt;
  
  
  En İyi Olduğu Alanlar
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Depo düzeyinde hata düzeltme:&lt;/strong&gt; SWE-bench Verified'da %78,8 ve SWE-bench Pro'da %56,6. Otomatik kod onarımı veya inceleme süreçleri için ciddi bir rakip.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terminal otomasyonu:&lt;/strong&gt; Terminal-Bench 2.0'daki liderliğiyle kabuk yoğun iş akışlarında öne çıkıyor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP araç çağrısı:&lt;/strong&gt; MCPMark'ta %48,2 ile MCP tabanlı entegrasyonlar için en iyi seçenek.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uzun bağlamlı belge analizi:&lt;/strong&gt; 1 milyon token pencere ile büyük kod tabanı ve belge analizleri tek çağrıda.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ön uç kod üretimi:&lt;/strong&gt; QwenWebBench'te Claude ile başa baş.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Çok dilli:&lt;/strong&gt; WMT24++'da %84,3; 23 dilde MAXIFE'de %88,2. İngilizce dışı kullanımda güçlü.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Apidog ile Qwen3.6-Plus API Çağrılarını Test Etme
&lt;/h2&gt;

&lt;p&gt;OpenAI uyumlu uç nokta sayesinde Qwen3.6-Plus'ı doğrudan Apidog'a aktararak diğer API'ler gibi test edebilirsiniz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3lln60azqwzlva81kvps.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3lln60azqwzlva81kvps.png" alt="Apidog ile Qwen3.6-Plus API Testi" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions&lt;/code&gt; adresine POST isteği gönderin. API anahtarınızı ortam değişkeni olarak ekleyin: &lt;code&gt;Authorization: Bearer {{DASHSCOPE_API_KEY}}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Yanıtları doğrulamak için aşağıdaki testleri uygulayın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Yanıt seçenekler içeriyor&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;have&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;property&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;choices&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;be&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;a&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;and&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;not&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Düşünme etkinleştirildiğinde boş muhakeme yok&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;choice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;reasoning_content&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;reasoning_content&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;not&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;be&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Geliştirme sırasında test yanıtları üretmek için Apidog'un Akıllı Sahte (Smart Mock) özelliğini kullanın. Böylece ajan orkestrasyon kodunuzu gerçek API'ye istek atmadan test edebilir, token maliyetini düşürürsünüz.&lt;/p&gt;

&lt;p&gt;Çok adımlı ajan geliştiriyorsanız, Apidog'da bir Test Senaryosu oluşturarak birden fazla isteği zincirleyin. Her adımda yanıt yapısını kontrol ederek &lt;code&gt;preserve_thinking&lt;/code&gt; parametresinin işleyişini doğrulayın.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog'u ücretsiz indirin&lt;/a&gt; ve API entegrasyon testlerinizi hemen başlatın.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sırada Ne Var?
&lt;/h2&gt;

&lt;p&gt;Qwen ekibi, daha küçük açık kaynak varyantları birkaç gün içinde yayımlayacağını duyurdu. Bunlar Qwen3.5 modelini takip edecek ve Apache 2.0 lisanslı, seyrek MoE tabanlı olacak.&lt;/p&gt;

&lt;p&gt;Yol haritasında:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Daha uzun vadeli, çok dosyalı sorun çözme odaklı depo görevleri&lt;/li&gt;
&lt;li&gt;GUI ajanları ve görsel kodlamanın birinci sınıf yetenek olarak geliştirilmesi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Qwen3.5 açık kaynak varyantları, piyasaya çıktıktan kısa süre sonra en çok dağıtılan self-host modellerden olmuştu. Qwen3.6 varyantları da muhtemelen kısa sürede kodlama ajanlarında varsayılan haline gelecek.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Qwen3.6-Plus, kodlama görevlerinde Claude Opus 4.5 ile aradaki farkı kapatıyor ve terminal operasyonları, MCP araç çağrısı, uzun vadeli planlama gibi alanlarda öne çıkıyor. 1 milyon token bağlam, Anthropic protokol uyumluluğu ve ajan döngüleri için &lt;code&gt;preserve_thinking&lt;/code&gt; özelliğiyle, üretim ajan sistemleri için son derece pratik bir seçenek.&lt;/p&gt;

&lt;p&gt;OpenRouter'daki ücretsiz önizleme değerlendirme için iyi bir fırsattı. Artık resmi API ile istikrar, SLA kapsamı ve çok adımlı iş akışlarını güvenilirleştiren yeni ajan parametrelerini kullanabilirsiniz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; ile testlerinizi yönetin: OpenAI uyumlu uç noktayı ekleyin, yanıt onaylamaları yazın, geliştirirken sahte verilerle hızlı test yapın ve model veya API sürümü değiştikçe regresyon kontrollerinizi eksiksiz uygulayın.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sıkça Sorulan Sorular
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Qwen3.6-Plus ile önizleme arasındaki fark nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Önizleme (qwen/qwen3.6-plus-preview) 30 Mart 2026'da OpenRouter'da yayınlandı. Resmi sürüm &lt;code&gt;preserve_thinking&lt;/code&gt; parametresi, SLA destekli çalışma süresi ve tam Model Studio desteği getiriyor. Daha küçük açık kaynak varyantlar da yolda.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;preserve_thinking&lt;/code&gt; nedir ve ne zaman kullanmalıyım?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Varsayılan olarak yalnızca mevcut adımdaki muhakeme tutulur. &lt;code&gt;preserve_thinking: true&lt;/code&gt; ayarlandığında, model tüm önceki konuşmadaki muhakeme zincirini korur. Çok adımlı ajan döngülerinde kullanın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qwen3.6-Plus, Claude Opus 4.5 ile nasıl karşılaştırılır?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Claude Opus 4.5, SWE-bench Verified (%80,9 vs %78,8) ve OSWorld-Verified (%66,3 vs %62,5) kıyaslamalarında önde. Qwen3.6-Plus ise Terminal-Bench 2.0 (%61,6 vs %59,3), MCPMark (%48,2 vs %42,3), DeepPlanning (%41,5 vs %33,9) ve GPQA (%90,4 vs %87,0) gibi alanlarda lider.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qwen3.6-Plus'ı Claude Code ile kullanabilir miyim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet. &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt;'i Dashscope Anthropic uyumlu uç noktaya, &lt;code&gt;ANTHROPIC_MODEL&lt;/code&gt;'i &lt;code&gt;qwen3.6-plus&lt;/code&gt;'a ve &lt;code&gt;ANTHROPIC_AUTH_TOKEN&lt;/code&gt;'ı Dashscope API anahtarınıza ayarlayın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qwen3.6-Plus açık kaynak mı?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Barındırılan API modeli açık ağırlıklı değil. Halka açık ağırlıklara sahip daha küçük varyantlar ise birkaç gün içinde yayınlanacak.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ücretsiz erişimi nasıl edinebilirim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Qwen Code'u kurun (&lt;code&gt;npm install -g @qwen-code/qwen-code@latest&lt;/code&gt;), &lt;code&gt;qwen&lt;/code&gt; komutunu çalıştırın ve &lt;code&gt;/auth&lt;/code&gt; yazın. Günde 1.000 ücretsiz API çağrısı için Qwen Code OAuth ile giriş yapın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hangi bağlam penceresini destekler?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Varsayılan olarak 1 milyon token. Bazı kıyaslamalar karşılaştırma için 256K ile sınırlı, fakat API'da varsayılan 1M.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dağıtımdan önce API entegrasyonunu nasıl test ederim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Uç noktayı Apidog'a aktarın, API anahtarınızı ortam değişkeni olarak ekleyin, yanıt onaylamaları yazın ve geliştirme sırasında Akıllı Sahte (Smart Mock) özelliğini kullanın. Çok adımlı ajan davranışını uçtan uca test etmek için istekleri Test Senaryosu'nda zincirleyin.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Holo3: En İyi Bilgisayar Kullanım Modeli Mi?</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Thu, 02 Apr 2026 08:58:54 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/holo3-en-iyi-bilgisayar-kullanim-modeli-mi-42ik</link>
      <guid>https://dev.to/tobiass_hoffmann/holo3-en-iyi-bilgisayar-kullanim-modeli-mi-42ik</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;H Şirketi, 31 Mart 2026'da OSWorld-Verified karşılaştırma testinde %78,85 puan alan ve GPT-5.4 ile Opus 4.6'yı düşük maliyetle geride bırakan Holo3 adlı bilgisayar kullanım modeli ailesini tanıttı. API an itibariyle yayında, 35B varyantı ise Apache 2.0 ile HuggingFace’te açık ağırlıklı olarak yer alıyor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u bugün deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Çoğu geliştiricinin çözemediği bilgisayar kullanım boşluğu
&lt;/h2&gt;

&lt;p&gt;API'larınızı otomatikleştirdiniz, CI/CD hattınız sorunsuz. Ama hâlâ otomasyonu bozan bir iş türü var: API’si olmayan eski kurumsal yazılımlar, REST öncesi masaüstü uygulamaları, çok adımlı kullanıcı arayüzleriyle dolu iş akışları.&lt;/p&gt;

&lt;p&gt;Geleneksel RPA araçları (UiPath, Automation Anywhere) kırılgan ekran koordinatı betikleriyle bu işleri yapar; UI değiştiğinde otomasyon bozulur. Alternatif çoğu zaman manuel çalışmadır.&lt;/p&gt;

&lt;p&gt;Bilgisayar kullanımında yapay zeka bu denklemi değiştiriyor: Ekran görüntülerini analiz edip tıklama, yazma ve kaydırma gibi işlemleri API olmadan, doğrudan GUI üzerinde yapan modeller artık mümkün. H Şirketi'nin 31 Mart 2026’da duyurduğu Holo3, bu tür görevler için şu an kamuya açık en güçlü model.&lt;/p&gt;

&lt;p&gt;💡 Masaüstü yazılımlarına dokunan otomasyon iş akışları veya test hatları geliştiriyorsanız, Holo3 API’sini anlamak kritiktir. API’larınızı tasarlamak ve test etmek için Apidog kullanıyorsanız, aşağıda Holo3 çağrılarını iş akışınıza nasıl entegre edeceğinizi adım adım bulacaksınız.&lt;/p&gt;

&lt;h2&gt;
  
  
  Holo3 Nedir?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hcompany.ai/holo3" rel="noopener noreferrer"&gt;Holo3&lt;/a&gt; bir bilgisayar kullanım modeli: Bir masaüstü ya da tarayıcı ekran görüntüsü verirsiniz, görev tanımı girersiniz, model ise o ekranda hangi eylemlerin (tıklama, yazma, kaydırma) yapılacağını JSON olarak döndürür. Her adımda ekran görüntüsü ve çıktı güncellenir, döngü görev bitene kadar devam eder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3aoh5dvl0jtpi764v8qu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3aoh5dvl0jtpi764v8qu.png" alt="Holo3 çalışma prensibi" width="800" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;İki varyant mevcut:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Holo3-122B-A10B&lt;/strong&gt; — 122B parametre, 10B aktif (MoE). Sadece &lt;a href="https://hcompany.ai/holo-models-api" rel="noopener noreferrer"&gt;hcompany.ai/holo-models-api&lt;/a&gt; üzerinden API ile erişilebilir. Karşılaştırma testlerinde lider.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Holo3-35B-A3B&lt;/strong&gt; — 35B parametre, 3B aktif. Apache 2.0 ile &lt;a href="https://huggingface.co/Hcompany/Holo3-35B-A3B" rel="noopener noreferrer"&gt;HuggingFace’te&lt;/a&gt; açık ağırlıklı. H Şirketi'nin API’sinde ücretsiz katman var, lokal çalıştırmaya uygun.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MoE (uzmanlar karışımı) mimarisi sayesinde, parametrelerin sadece bir kısmı aktif olur; bu da çalışma maliyetini ciddi şekilde düşürür. Holo3-122B-A10B, görev başına GPT-5.4 ve Opus 4.6’dan daha az maliyetli.&lt;/p&gt;

&lt;h2&gt;
  
  
  OSWorld-Verified: Karşılaştırma Testinin Gerçek Ölçütü
&lt;/h2&gt;

&lt;p&gt;OSWorld-Verified, bilgisayar kullanımı için tasarlanmış bir karşılaştırma testidir. Sadece çıktı metniyle değil, gerçek bir bilgisayarda gerçek görevlerin tamamlanmasıyla ölçüm yapar ve sonuçlar sistemin gerçek durumuyla doğrulanır.&lt;/p&gt;

&lt;p&gt;Görevler örnekleri:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tek uygulama:&lt;/strong&gt; Dosya açma, form doldurma&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uygulamalar arası:&lt;/strong&gt; PDF’den veri çekip tabloya aktarma, e-posta gönderme&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Çok uygulamalı diziler:&lt;/strong&gt; Birden fazla sistemde, bağlamı kaybetmeden işlem yapmak&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Holo3-122B-A10B bu testte &lt;strong&gt;%78,85&lt;/strong&gt; puan alıyor. Önceki lider modeller %60-65 bandındaydı; Holo3 bu barajı açık ara geçti.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F15te4auw5vh59u6lsyf9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F15te4auw5vh59u6lsyf9.png" alt="Holo3 kıyas grafiği" width="800" height="631"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;H Kurumsal Karşılaştırma Testleri'nde (çok uygulamalı, e-ticaret, iş yazılımları, işbirliği) Holo3 özellikle uygulamalar arası görevlerde öne çıkıyor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Holo3 Nasıl Eğitildi: Ajan Öğrenme Çarkı
&lt;/h2&gt;

&lt;p&gt;Holo3’ün başarısının anahtarı, sürekli döngüsel bir eğitim yaklaşımı:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Sentetik Navigasyon Verileri:&lt;/strong&gt; İnsan ve üretici talimatlarla senaryoya özel örnekler üretildi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alan Dışı Zenginleştirme:&lt;/strong&gt; Senaryolar, beklenmedik UI durumları ve uç vakaları da içerecek şekilde genişletildi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Küratörlü Takviyeli Öğrenme:&lt;/strong&gt; Her örnek filtrelendi ve RL hattında görev tamamlama oranı maksimize edildi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Eğitim verileri, sıfırdan kurumsal web uygulamalarını oluşturan Sentetik Ortam Fabrikası’ndan sağlandı; her ortam, uçtan uca doğrulanabilir görevler içeriyor.&lt;/p&gt;

&lt;p&gt;Sonuç: Holo3, daha fazla parametreye sahip temel modelleri geride bırakıyor. Farkı mimari değil, eğitim yöntemi yaratıyor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Holo3 API’si Nasıl Çağrılır?
&lt;/h2&gt;

&lt;p&gt;Aşağıdaki adımlarla Holo3 API’sini doğrudan iş akışınıza entegre edebilirsiniz.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Kimlik Doğrulamayı Ayarlayın
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# H Company Çıkarım API temel URL'si&lt;/span&gt;
https://api.hcompany.ai/v1

&lt;span class="c"&gt;# Başlıklar&lt;/span&gt;
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;API anahtarınızı &lt;a href="https://hcompany.ai/holo-models-api" rel="noopener noreferrer"&gt;hcompany.ai/holo-models-api&lt;/a&gt; üzerinden alın. Ücretsiz katman Holo3-35B-A3B’yi kapsar.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Ekran Görüntüsünü Gönderin
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;base64&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;httpx&lt;/span&gt;

&lt;span class="c1"&gt;# Ekran görüntüsü alma (örnek: pyautogui)
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pyautogui&lt;/span&gt;
&lt;span class="n"&gt;screenshot&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pyautogui&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;screenshot&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;screenshot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/tmp/screen.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/tmp/screen.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rb&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;image_b64&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;base64&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;b64encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;httpx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.hcompany.ai/v1/computer-use&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;holo3-122b-a10b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;task&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Fatura klasörünü açın ve en son PDF&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;i bulun&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;screenshot&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;image_b64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;screen_width&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1920&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;screen_height&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1080&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Eylemi Ayrıştırıp Yürütün
&lt;/h3&gt;

&lt;p&gt;API şu formatta yapılandırılmış bir eylem döndürür:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"action_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"click"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"coordinate"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;245&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;380&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reasoning"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Fatura klasörü simgesi bu konumda görünür."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dönüş türleri: &lt;code&gt;click&lt;/code&gt;, &lt;code&gt;double_click&lt;/code&gt;, &lt;code&gt;right_click&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;key&lt;/code&gt;, &lt;code&gt;scroll&lt;/code&gt;, &lt;code&gt;screenshot_request&lt;/code&gt;, &lt;code&gt;task_complete&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Tamamlanana Kadar Döngüye Alın
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run_computer_use_task&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_steps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;step&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_steps&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;screenshot&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;capture_screen&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;call_holo3_api&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;screenshot&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;action&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;action_type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;task_complete&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Görev &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; adımda tamamlandı&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;result&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

        &lt;span class="nf"&gt;execute_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;TimeoutError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Görev adım limitinde tamamlanamadı&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Holo3 API Çağrılarını Apidog ile Test Etme
&lt;/h2&gt;

&lt;p&gt;API entegrasyonunuzu güvenilir kılmak için &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; kullanabilirsiniz.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Uç nokta ekleyin:&lt;/strong&gt; Apidog’da &lt;code&gt;https://api.hcompany.ai/v1/computer-use&lt;/code&gt; için yeni HTTP isteği oluşturun. Authorization başlığını ortam değişkeni olarak ekleyin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yanıt doğrulama ayarlayın:&lt;/strong&gt; Apidog’un test iddiaları ile yanıt yapısını otomatik kontrol edin:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Apidog yanıt sonrası betik&lt;/span&gt;
&lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Eylem türü geçerli&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;validActions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;scroll&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;task_complete&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;screenshot_request&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;validActions&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;include&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;action_type&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Koordinatlar ekran sınırları içinde&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;action&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;coordinate&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;coordinate&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;be&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;within&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1920&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;action&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;coordinate&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;be&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;within&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1080&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Geliştirme sırasında sahte yanıtlar:&lt;/strong&gt; Apidog’un Smart Mock özelliği ile canlı API’yi tüketmeden gerçekçi Holo3 yanıtları üretin, entegrasyon testi ve ön uç geliştirme için kullanın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test senaryosu zincirleme:&lt;/strong&gt; Birden fazla Holo3 API çağrısını Apidog Test Senaryosu’nda zincirleyip, çok adımlı görev döngüsünü simüle edin.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Holo3 vs Claude Bilgisayar Kullanımı vs OpenAI Operatörü
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Holo3-122B&lt;/th&gt;
&lt;th&gt;Holo3-35B&lt;/th&gt;
&lt;th&gt;Claude Bilgisayar Kullanımı&lt;/th&gt;
&lt;th&gt;OpenAI Operatörü&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OSWorld-Verified&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;%78,85&lt;/td&gt;
&lt;td&gt;~%55&lt;/td&gt;
&lt;td&gt;~%65&lt;/td&gt;
&lt;td&gt;~%62&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;API erişimi&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Açık ağırlıklar&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hayır&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;td&gt;Hayır&lt;/td&gt;
&lt;td&gt;Hayır&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kendi barındırma&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hayır&lt;/td&gt;
&lt;td&gt;Evet&lt;/td&gt;
&lt;td&gt;Hayır&lt;/td&gt;
&lt;td&gt;Hayır&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GPT-5.4’e göre maliyet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Daha düşük&lt;/td&gt;
&lt;td&gt;Çok daha düşük&lt;/td&gt;
&lt;td&gt;Karşılaştırılabilir&lt;/td&gt;
&lt;td&gt;GPT-5.4 fiyatı&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;En uygun&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Üretim&lt;/td&gt;
&lt;td&gt;Test/Geliştirme&lt;/td&gt;
&lt;td&gt;Anthropic ekosistemi&lt;/td&gt;
&lt;td&gt;OpenAI ekosistemi&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Pratik seçim yığınınıza bağlı:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Karmaşık, çok uygulamalı iş akışlarında en yüksek doğruluk ve güvenilirlik için &lt;strong&gt;Holo3-122B&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Geliştirme, test, açık kaynak ve kendi barındırma için &lt;strong&gt;Holo3-35B&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Anthropic ekosisteminde derin entegrasyon için &lt;strong&gt;Claude Bilgisayar Kullanımı&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;OpenAI ile tek satıcı ilişkisi için &lt;strong&gt;OpenAI Operatörü&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Kurumsal Kullanım Senaryoları
&lt;/h2&gt;

&lt;p&gt;Holo3 ile API’si olmayan iş akışlarını otomatikleştirin:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Eski sistem veri girişi:&lt;/strong&gt; REST API’si olmayan ERP/CRM’lerde GUI üstünden veri girip çekin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Platformlar arası mutabakat:&lt;/strong&gt; PDF’den değer alıp tabloya yazıp pano güncelleyin – tüm akışı otonom yönetin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web uygulamaları regresyon testi:&lt;/strong&gt; Kırılgan Selenium yerine sade dilde görev tanımıyla Holo3’e test yaptırın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rekabetçi istihbarat:&lt;/strong&gt; Standart kazımayı engelleyen sitelerden düzenli veri çıkarın.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Holo3, çok uygulamalı iş akışlarında özellikle rakiplerinden daha iyi performans gösteriyor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sırada Ne Var: Uyarlanabilir Ajans
&lt;/h2&gt;

&lt;p&gt;H Şirketi’nin odaklandığı bir sonraki adım: &lt;strong&gt;Uyarlanabilir Ajans&lt;/strong&gt; — Model, daha önce hiç görmediği kurumsal yazılımlarda gerçek zamanlı olarak nasıl gezileceğini öğrenebilecek. Böylece, tamamen özel araçlarda bile eğitim verisine ihtiyaç olmadan görevler yapılabilecek.&lt;/p&gt;

&lt;p&gt;Bu başarıldığında, bilgisayar kullanımı yapay zekasının kurumsal dağıtımda kalan ana sınırlaması kalkacak.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;Holo3, masaüstü bilgisayar kullanımında yeni bir standart getiriyor. OSWorld-Verified’da %78,85 ile çok adımlı görevlerde rakiplerini geride bırakıyor. Holo3-35B-A3B’nin ücretsiz ve açık ağırlıklı sürümü, maliyetsiz test olanağı sunuyor.&lt;/p&gt;

&lt;p&gt;Entegrasyon modeli basit: Ekran görüntüsü al, API’ye POST et, dönen eylemi uygula, tekrarla. Apidog ile yanıt yapıları doğrulanır, geliştirme sırasında sahte yanıtlarla test edilir, canlıya geçmeden önce tüm senaryolar zincirlenir.&lt;/p&gt;

&lt;p&gt;Masaüstü GUI otomasyonu, test, ya da veri çıkarmada Apidog'u ücretsiz deneyin ve Holo3 entegrasyonunuzu canlıya almadan güvenle test edin.&lt;/p&gt;

&lt;h2&gt;
  
  
  SSS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Holo3 nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Holo3, H Şirketi'nin bir bilgisayar kullanım yapay zeka modelidir; ekran görüntüsü alır ve masaüstünde/tarayıcıda görevleri tamamlamak için eylem dizisi üretir. OSWorld-Verified testinde %78,85 ile en yüksek puanı almıştır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Holo3 açık kaynak mı?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Holo3-35B-A3B varyantı Apache 2.0 ile açık ağırlık ve HuggingFace’te indirilebilir. 122B modeli sadece API ile kullanılabilir. İki model de H Şirketi API’si üzerinden erişilebilir; 35B için ücretsiz katman var.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OSWorld karşılaştırma testi nasıl çalışır?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
OSWorld, yapay zeka ajanlarını gerçek bilgisayar görevlerinde test eder. Başarı, çıktı değerlendirmesiyle değil, ajanın işlemleri sonrası sistem durumunun kontrolüyle ölçülür. Görevler tek uygulamadan çok uygulamalı dizilere kadar çeşitlidir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Holo3, Claude Bilgisayar Kullanımı ile nasıl karşılaştırılır?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Holo3-122B daha yüksek skor alır (%78,85 vs. Claude ~%65) ve görev başına daha ucuzdur. Claude Bilgisayar Kullanımı ise Anthropic API’sini zaten kullanan ekipler için uygundur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Holo3’ü yerel olarak çalıştırabilir miyim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Evet, Holo3-35B-A3B ile mümkün. Ağırlıklar Apache 2.0 ile HuggingFace’te mevcut. 122B modeli sadece API’dır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bilgisayar kullanımı API’lerinin ana kullanım alanları nelerdir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Eski sistem otomasyonu, uygulamalar arası veri akışı, kırılgan seçiciler olmadan web test otomasyonu, rekabetçi istihbarat kazıma ve manuel insan etkileşimi gerektiren masaüstü iş akışları.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Holo3 API entegrasyonumu nasıl test ederim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Uç noktayı içe aktarın, yanıt doğrulama iddialarını kurun, geliştirme sırasında API’yi taklit edin ve istekleri Apidog test senaryolarında zincirleyin. Böylece canlı makinelerde çalıştırmadan önce entegrasyon hatalarını yakalarsınız.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Holo3’ün yol haritasındaki “Uyarlanabilir Ajans” nedir?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
H Şirketi, önceden eğitim verisine ihtiyaç duymadan daha önce hiç görmediği kurumsal yazılımlarda gezinebilen, UI yapısını gerçek zamanlı öğrenen modeller geliştirmektedir. Bu, tamamen özel kurumsal dağıtımlar için kalan sınırlamayı ortadan kaldıracaktır.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>axios@1.14.1 Tedarik Zinciri Saldırısı: Şimdi Ne Yapmalı</title>
      <dc:creator>Tobias Hoffmann</dc:creator>
      <pubDate>Thu, 02 Apr 2026 08:52:39 +0000</pubDate>
      <link>https://dev.to/tobiass_hoffmann/axios1141-tedarik-zinciri-saldirisi-simdi-ne-yapmali-193a</link>
      <guid>https://dev.to/tobiass_hoffmann/axios1141-tedarik-zinciri-saldirisi-simdi-ne-yapmali-193a</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR (Çok Uzun, Okumadım)
&lt;/h2&gt;

&lt;p&gt;30-31 Mart 2026 tarihlerinde, axios'un 1.14.1 ve 0.30.4 sürümleri, npm üzerinde enfekte makinelerde uzaktan erişim truva atı (RAT) bırakan kötü amaçlı bir bağımlılıkla ele geçirildi. Her iki sürüm de yayından kaldırıldı. Güvenli sürüm 1.14.0'dır. Eğer &lt;a href="mailto:axios@1.14.1"&gt;axios@1.14.1&lt;/a&gt; veya 0.30.4'ü yüklediyseniz, makineyi ele geçirilmiş kabul edin ve tüm kimlik bilgilerini derhal değiştirin.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog'u bugün deneyin&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Axios Nedir ve Neden Önemlidir?
&lt;/h2&gt;

&lt;p&gt;Axios, npm üzerinde haftalık 100 milyon indirmeye sahip, hem frontend çerçevelerde hem de Node.js tabanlı backend servislerde yaygın olarak kullanılan bir HTTP istemcisidir. Temel bir paketin ele geçirilmesi, çok sayıda projeyi ve makineyi riske atar. 30-31 Mart'ta kısa bir zaman aralığında &lt;code&gt;npm install&lt;/code&gt; komutunu çalıştıran geliştiriciler, farkında olmadan makinelerine kötü amaçlı yazılım indirmiş oldu.&lt;/p&gt;

&lt;p&gt;Bu, gerçek bir tedarik zinciri saldırısıdır: rastgele komut çalıştırabilen, sistem verilerini sızdırabilen ve kalıcı olabilen çok aşamalı bir uzaktan erişim truva atı (RAT) içerir.&lt;/p&gt;

&lt;p&gt;Ekibiniz axios kullanıyorsa ve HTTP istemci entegrasyonlarınızı tasarlamak ve test etmek için Apidog kullanıyorsanız, bir sonraki dağıtımınızdan önce bu rehberi uygulayın.&lt;/p&gt;

&lt;h2&gt;
  
  
  Saldırının Zaman Çizelgesi
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;30 Mart 2026 — 23:59:12 UTC:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;nrwise@proton.me&lt;/code&gt; hesabı, npm'e &lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt; adlı kötü amaçlı paketi yayınladı. Öncesinde &lt;code&gt;4.2.0&lt;/code&gt; sürümü, meşru &lt;code&gt;crypto-js&lt;/code&gt;'in yazım hatası gibi görünecek şekilde eklenmişti.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31 Mart 2026 — 00:05:41 UTC:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Socket otomatik tespiti, paketi 6 dakika içinde kötü amaçlı olarak işaretledi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31 Mart 2026 — gece yarısından kısa süre sonra:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;axios@1.14.1&lt;/code&gt;, kötü amaçlı &lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt;'i bağımlılık olarak çekerek npm'e yüklendi. GitHub etiketlerinde bu sürüm görünmüyor; en son meşru sürüm &lt;code&gt;v1.14.0&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31 Mart 2026 — sabah:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;axios@1.14.1&lt;/code&gt; ve &lt;code&gt;axios@0.30.4&lt;/code&gt;'ün ele geçirildiği #10604 numaralı GitHub sorusu açıldı. Saldırgan, npm üzerinde bakımcılardan daha yüksek yetkilere sahipti.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31 Mart 2026:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Her iki kötü amaçlı sürüm npm'den kaldırıldı. Axios ekibi, belirteçleri iptal etti, yayın kontrollerini sıkılaştırdı, ve erişim sızıntısını inceledi.&lt;/p&gt;
&lt;h2&gt;
  
  
  Saldırı Nasıl Gerçekleşti?
&lt;/h2&gt;

&lt;p&gt;Saldırı, axios'un yayın iş akışındaki uzun ömürlü npm belirteçlerini kullandı. Saldırgan, bir bakımcının kimlik bilgilerini ele geçirerek, yeni bir sürüm yayınladı ve bu sürümde kötü amaçlı &lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt; bağımlı olarak eklendi.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt; içinde üç aşamalı bir yük vardı:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Çalıştırma:&lt;/strong&gt; Yükleme sırasında kod çalıştırılarak ikincil bir yük bırakıldı.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAT Dağıtımı:&lt;/strong&gt; Kalıcı bir arka kapı (RAT) kuruldu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sızdırma:&lt;/strong&gt; RAT, C2 sunucusundan komut aldı, ortam değişkenlerini ve sırları sızdırdı, sistem verilerini dışarı gönderdi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bu RAT, makinede kalıcı kalır; npm paketini kaldırmak yeterli değildir.&lt;/p&gt;
&lt;h2&gt;
  
  
  Etkilendim mi?
&lt;/h2&gt;

&lt;p&gt;Aşağıdaki durumlarda etkilenmiş olabilirsiniz:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;30 Mart 23:59 UTC ile 31 Mart 2026 öğlen UTC&lt;/strong&gt; arasında &lt;code&gt;npm install axios&lt;/code&gt; veya projenizde axios bulunan bir &lt;code&gt;npm install&lt;/code&gt; çalıştırdınız.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;node_modules/axios/package.json&lt;/code&gt; dosyanızda sürüm olarak &lt;strong&gt;1.14.1&lt;/strong&gt; veya &lt;strong&gt;0.30.4&lt;/strong&gt; görünüyor.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;package-lock.json&lt;/code&gt; veya &lt;code&gt;yarn.lock&lt;/code&gt; dosyanızda axios çözümü &lt;strong&gt;1.14.1&lt;/strong&gt; veya &lt;strong&gt;0.30.4&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Hızlı Kontrol İçin:
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Yüklü sürümü kontrol edin&lt;/span&gt;
npm list axios

&lt;span class="c"&gt;# Kilit dosyasını kontrol edin&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s1"&gt;'"axios"'&lt;/span&gt; package-lock.json | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-5&lt;/span&gt;

&lt;span class="c"&gt;# plain-crypto-js varlığını kontrol edin&lt;/span&gt;
npm list plain-crypto-js
&lt;span class="nb"&gt;ls &lt;/span&gt;node_modules/plain-crypto-js 2&amp;gt;/dev/null &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"INFECTED"&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Bulunamadı"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;plain-crypto-js&lt;/code&gt; node_modules içinde varsa, kötü amaçlı sürümü çalıştırmışsınız demektir.&lt;/p&gt;
&lt;h2&gt;
  
  
  Şu Anda Ne Yapmalı?
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Axios'u Hemen Güncelleyin
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;axios@1.14.0
&lt;span class="c"&gt;# veya en son güvenli sürüme sabitleyin&lt;/span&gt;
npm &lt;span class="nb"&gt;install &lt;/span&gt;axios@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Doğrulama için:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm list axios
&lt;span class="c"&gt;# 1.14.0 veya daha yüksek olmalı (temiz bir 1.14.x yayınlandığında)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Eğer Ele Geçirilmiş Sürümü Kurduysanız
&lt;/h3&gt;

&lt;p&gt;Bu bir bağımlılık güncellemesi değildir; makineyi ele geçirilmiş kabul edin:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O makineden erişilebilen &lt;strong&gt;tüm sırları değiştirin&lt;/strong&gt; (API anahtarları, DB şifreleri, SSH anahtarları, bulut belirteçleri, &lt;code&gt;.env&lt;/code&gt; değişkenleri).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ortam değişkenlerinizi kontrol edin&lt;/strong&gt; — RAT özellikle burada sır arar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giden ağ bağlantılarını&lt;/strong&gt; denetleyin — şüpheli IP'leri arayın.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kalıcılık için tarama yapın&lt;/strong&gt; — yeni cron işleri, başlangıç komut dosyaları, systemd servisleri vb.&lt;/li&gt;
&lt;li&gt;Eğer CI runner veya prod makinesi ise &lt;strong&gt;yeniden imajlayın&lt;/strong&gt;. Geliştirici makinesinde ise tüm kimlik bilgilerinizi değiştirin.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. CI/CD Boru Hatlarınızı Denetleyin
&lt;/h3&gt;

&lt;p&gt;Derleme pipeline'ınız bu dönemde &lt;code&gt;npm install&lt;/code&gt; çalıştırdıysa, CI ortamınız da enfekte olabilir.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Etkilenen zaman dilimi için build loglarını kontrol edin&lt;/span&gt;
&lt;span class="c"&gt;# Yükleme çıktılarında axios@1.14.1 var mı bakın&lt;/span&gt;

&lt;span class="c"&gt;# CI node_modules'lerinin temizliğini kontrol edin&lt;/span&gt;
npm list axios plain-crypto-js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CI ortamında erişilebilen &lt;strong&gt;tüm sırları değiştirin&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Kilit Dosyanızı Doğrulayın
&lt;/h3&gt;

&lt;p&gt;Kilit dosyaları (package-lock.json, yarn.lock) tam sürümleri gösterir. Eğer kilit dosyanızda &lt;code&gt;1.14.1&lt;/code&gt; varsa, yeniden oluşturun:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;rm &lt;/span&gt;package-lock.json
npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yeni kilit dosyasının güvenli sürüme çözümlendiğinden emin olun.&lt;/p&gt;

&lt;h2&gt;
  
  
  Axios API Çağrılarınızı Denetlemek İçin Apidog Kullanımı
&lt;/h2&gt;

&lt;p&gt;Axios ile API çağrıları yapıyorsanız, Apidog ile bağımlılık güncellemesinden sonra entegrasyonunuzu hızlıca doğrulayabilirsiniz.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;axios@1.14.0&lt;/code&gt;'a güncelledikten sonra mevcut API uç noktalarınızı Apidog'a aktarın.&lt;/li&gt;
&lt;li&gt;Hızlı regresyon testiyle istek/yanıt davranışında değişiklik olup olmadığını kontrol edin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Özellikle kötü amaçlı sürümün istek/yanıtları manipüle etmiş olma ihtimaline karşı, Apidog ile yanıt alanlarını ve başlıklarını doğrulayabilirsiniz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Apidog yanıt sonrası onayı&lt;/span&gt;
&lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Yanıt temiz — enjekte edilmiş alan yok&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;not&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;have&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;property&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;__injected&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;X-Injected-Header&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;be&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Apidog'da güncellenmiş axios ile tam test paketi koşturmak, üretime geçmeden önce temiz bir temel oluşturur.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog'u ücretsiz deneyin&lt;/a&gt; HTTP istemci regresyon testlerinizi kurmak için.&lt;/p&gt;

&lt;h2&gt;
  
  
  npm'deki Tedarik Zinciri Saldırılarını Durdurmak Neden Zor?
&lt;/h2&gt;

&lt;p&gt;Axios saldırısı tekil bir olay değil; npm ekosisteminde bir kalıp:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;event-stream (2018):&lt;/strong&gt; Bitcoin cüzdanlarını hedefleyen yük. Haftalık 8M+ indirme.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ua-parser-js (2021):&lt;/strong&gt; Kripto madenci ve şifre hırsızı.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;node-ipc (2022):&lt;/strong&gt; Spesifik IP'leri hedefleyen yıkıcı kod.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;xz utils (2024):&lt;/strong&gt; İki yıl süren sosyal mühendislik sonucu arka kapı.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;axios (2026):&lt;/strong&gt; Ele geçirilen bakımcı hesabı üzerinden RAT yayılımı.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ortak nokta: &lt;strong&gt;yayıncı hesabına güven&lt;/strong&gt;. Bir bakımcının kimlik bilgisi ele geçirilirse, saldırgan tüm dağıtım zincirine sızabilir.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gerçekten Yardımcı Olan Önlemler
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Önlem&lt;/th&gt;
&lt;th&gt;Ne İşe Yarar&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kilit dosyaları (package-lock.json)&lt;/td&gt;
&lt;td&gt;Sürüm sabitler, sessiz yükseltmeleri önler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI’da &lt;code&gt;npm audit&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Dağıtımdan önce bilinen güvenlik açıklarını işaretler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Socket.dev / Snyk&lt;/td&gt;
&lt;td&gt;Davranışsal analiz — CVE’siz şüpheli paketleri tespit eder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;npm’de 2FA&lt;/td&gt;
&lt;td&gt;Kimlik bilgilerinin ele geçirilmesini zorlaştırır&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kısa ömürlü belirteçlerle &lt;code&gt;npm publish&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Belirteç sızarsa maruz kalma süresini sınırlar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PR’lerde kilit dosyalarını okuyun&lt;/td&gt;
&lt;td&gt;Kod incelemede beklenmeyen bağımlılık değişikliklerini yakalar&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Axios ekibi uzun ömürlü npm belirteçlerinin riskini kabul etti ve yayın sürecini sıkılaştırdı. Ancak asıl çözüm ekosistem kaynaklı olmalı.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ele Geçirme Göstergeleri (IOC'ler)
&lt;/h2&gt;

&lt;p&gt;Socket analizi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kötü amaçlı paketler:&lt;/strong&gt; &lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt;, &lt;code&gt;axios@1.14.1&lt;/code&gt;, &lt;code&gt;axios@0.30.4&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yayıncı e-postası:&lt;/strong&gt; &lt;code&gt;nrwise@proton.me&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Davranış:&lt;/strong&gt; Yükleme sırasında ağ bağlantısı, RAT kalıcılığı, ortam değişkeni sızdırma&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Güvenli axios sürümleri:&lt;/strong&gt; 1.14.0 ve altı (0.30.4 hariç), 1.13.x, 1.12.x&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enfeksiyon şüpheniz varsa, &lt;a href="mailto:security@npmjs.com"&gt;security@npmjs.com&lt;/a&gt; adresine bildirin ve logları saklayın.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonuç
&lt;/h2&gt;

&lt;p&gt;axios 1.14.1'in ele geçirilmesi, bağımlılık güvenliğinin sürekli yönetilmesi gerektiğini gösteriyor. Sürümleri kilitleyin, CI'a Socket gibi analiz araçları ekleyin, terslikte kimlik bilgilerini değiştirin ve kod incelemesinde kilit dosyalarını mutlaka kontrol edin.&lt;/p&gt;

&lt;p&gt;Güncellenen axios sonrası API entegrasyonunuzu güvenceye almak için &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, HTTP istemci davranışınızı test etmek için senaryolar ve onaylar sunar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sıkça Sorulan Sorular
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Hangi axios sürümleri ele geçirildi?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;axios@1.14.1&lt;/code&gt; ve &lt;code&gt;axios@0.30.4&lt;/code&gt;. Güvenli sürüm &lt;code&gt;1.14.0&lt;/code&gt; veya 1.13.x/1.12.x serileridir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kötü amaçlı axios yükü ne yapıyor?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt;'i yüklüyor ve bu paket uzaktan erişim truva atı (RAT) içeren çok aşamalı bir yük bırakıyor. RAT, uzaktan komut çalıştırabilir, ortam değişkeni ve sırları sızdırabilir, kalıcı olabilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ele geçirilmiş sürümü kurup kurmadığımı nasıl anlarım?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;npm list axios&lt;/code&gt; — eğer 1.14.1 veya 0.30.4 ise etkilendiniz.&lt;br&gt;&lt;br&gt;
&lt;code&gt;npm list plain-crypto-js&lt;/code&gt; — mevcutsa, kötü amaçlı kod çalıştı demektir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sadece axios'u güncellemek yeterli mi?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Hayır. Güncelleme, kötü amaçlı bağımlılığı kaldırır ama RAT makinenize yerleşmişse, tüm sırları değiştirin ve kalıcılık açısından makineyi denetleyin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Saldırgan, bakımcı olmadan npm'e nasıl yayın yaptı?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Bakımcı kimlik bilgileri ele geçirildi; uzun ömürlü npm belirteciyle yayın yapıldı. Axios ekibi yayın kontrollerini sıkılaştırıyor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bu, normal bir güvenlik açığından ne farkı var?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Güvenlik açığı, meşru koddaki bir kusur. Tedarik zinciri saldırısı, doğrudan yayın kanalına kötü amaçlı kod ekler — kod, GitHub'da değil, npm yayınında vardı.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Projelerimi gelecekteki tedarik zinciri saldırılarından nasıl koruyabilirim?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Kilit dosyaları kullanın, CI'da &lt;code&gt;npm audit&lt;/code&gt; çalıştırın, Socket.dev gibi analiz araçları ekleyin, npm hesaplarında 2FA'yı etkinleştirin, kısa ömürlü belirteçler kullanın, kod incelemede kilit dosya farklarını denetleyin.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>news</category>
      <category>npm</category>
      <category>security</category>
    </item>
  </channel>
</rss>
