<?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: Emre Demir</title>
    <description>The latest articles on DEV Community by Emre Demir (@emree_demir).</description>
    <link>https://dev.to/emree_demir</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%2F3821679%2F6e70a234-c701-4cfd-b54c-26469311e90f.png</url>
      <title>DEV Community: Emre Demir</title>
      <link>https://dev.to/emree_demir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emree_demir"/>
    <language>en</language>
    <item>
      <title>Seedance 2.0 API 2026: Anleitung zur Nutzung</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Sat, 04 Apr 2026 13:06:10 +0000</pubDate>
      <link>https://dev.to/emree_demir/seedance-20-api-2026-anleitung-zur-nutzung-aff</link>
      <guid>https://dev.to/emree_demir/seedance-20-api-2026-anleitung-zur-nutzung-aff</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Die Seedance 2.0 API wurde am 2. April 2026 über Volcengine Ark gestartet. Sie übermitteln eine Videoerstellungsaufgabe mit einer POST-Anfrage und fragen dann einen GET-Endpunkt ab, bis der Status "succeeded" erreicht ist. Die API unterstützt Text-zu-Video, Bild-zu-Video, Steuerung des ersten und letzten Frames, multimodale Referenzen und native Audioerzeugung. Ein 5-sekündiges 1080p-Video kostet etwa 0,93 $. Laden Sie das Video innerhalb von 24 Stunden herunter. Die URL läuft danach ab.&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 Plattform"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hypereal.cloud/" rel="noopener noreferrer"&gt;Hypereal AI ausprobieren&lt;/a&gt;&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;Teste Apidog heute&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Einleitung
&lt;/h2&gt;

&lt;p&gt;Am 2. April 2026 veröffentlichte ByteDance's Volcengine Ark Plattform die offizielle Seedance 2.0 API. Vorher war Seedance 2.0 nur über die Webkonsole nutzbar. Tutorials mit UI zeigen die alte Methode – dieser Artikel zeigt, wie man die API automatisiert und programmatisch ansteuert.&lt;/p&gt;

&lt;p&gt;💡&lt;br&gt;
Die API ist asynchron: Sie erstellen eine Aufgabe per POST, erhalten eine Aufgaben-ID und fragen dann zyklisch einen GET-Endpunkt ab, bis der Auftrag abgeschlossen ist. Apidog hilft, diesen Ablauf zu testen: POST-Übermittlung, Aufgaben-ID extrahieren, GET-Abfrage wiederholen, Ergebnis prüfen. Folgen Sie dem Apidog-Abschnitt, um die Testschritte praktisch auszuführen.&lt;/p&gt;

&lt;p&gt;Der Artikel behandelt alle Eingabetypen, Token-basierte Kosten und typische Fehlerfälle.&lt;/p&gt;
&lt;h2&gt;
  
  
  Was ist Seedance 2.0?
&lt;/h2&gt;

&lt;p&gt;Seedance 2.0 ist ByteDances modernes Videogenerierungsmodell auf Volcengine Ark mit den Modell-IDs &lt;code&gt;doubao-seedance-2-0-260128&lt;/code&gt; (Standard) und &lt;code&gt;doubao-seedance-2-0-fast-260128&lt;/code&gt; (schneller, geringere Qualität).&lt;/p&gt;

&lt;p&gt;Neuerungen gegenüber 1.5:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Steuerung von erstem/letztem Frame (Sie geben beide Bilder an)&lt;/li&gt;
&lt;li&gt;Multimodale Eingaben: Text, Bild(er), Video, Audio gemischt&lt;/li&gt;
&lt;li&gt;Native Audioerzeugung: Sprache, Effekte, Musik, Umgebungsgeräusche&lt;/li&gt;
&lt;li&gt;Lippensynchron in 8+ Sprachen&lt;/li&gt;
&lt;li&gt;Kamerasteuerung per Prompt (z.B. Dolly, Tracking)&lt;/li&gt;
&lt;li&gt;Bis zu 15 Sekunden Länge, maximal 2K Auflösung&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ausgabe: 24 fps, Seitenverhältnisse von 1:1 bis 21:9, frei wählbar.&lt;/p&gt;
&lt;h2&gt;
  
  
  Was sich geändert hat: Leitfaden vs. offizielle API
&lt;/h2&gt;

&lt;p&gt;Frühere Anleitungen wie &lt;a href="http://apidog.com/blog/how-to-use-seedance-2-0/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;dieser Leitfaden vom Februar 2026&lt;/a&gt; bezogen sich auf die Webkonsole. Mit der neuen API können Sie Seedance von jedem System, jeder Sprache und in automatisierten Pipelines nutzen – nicht mehr nur manuell per Web.&lt;/p&gt;
&lt;h2&gt;
  
  
  Voraussetzungen
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Volcengine-Konto unter &lt;a href="https://www.volcengine.com/" rel="noopener noreferrer"&gt;volcengine.com&lt;/a&gt; anlegen.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In der Ark-Konsole API-Schlüssel generieren:&lt;br&gt;
&lt;/p&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;/li&gt;

&lt;li&gt;

&lt;p&gt;API-Key als Umgebungsvariable speichern:&lt;br&gt;
&lt;/p&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;/li&gt;

&lt;li&gt;

&lt;p&gt;Jeder API-Request benötigt:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Authorization: Bearer YOUR_ARK_API_KEY
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;Neue Konten erhalten kostenloses Testguthaben – reicht für ca. 8x 15s-Generierungen in 1080p.&lt;/p&gt;

&lt;h2&gt;
  
  
  Text-zu-Video: Ihre erste Anfrage
&lt;/h2&gt;

&lt;p&gt;Basis-URL:&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;p&gt;POST für T2V-Aufgabe an &lt;code&gt;/v1/contents/generations/tasks&lt;/code&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  cURL-Beispiel
&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;Antwort:&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-Beispiel (offizielles SDK)
&lt;/h3&gt;

&lt;p&gt;SDK installieren:&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;Aufgabe senden:&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;Speichern Sie die Aufgaben-ID für das Polling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Das asynchrone Aufgabenmuster: Senden, Abfragen, Herunterladen
&lt;/h2&gt;

&lt;p&gt;Die Generierung dauert (bei 5s/1080p ca. 60–120 Sekunden). Status-Workflow:&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;Abfragen, bis Status ≠ &lt;code&gt;queued&lt;/code&gt;/&lt;code&gt;running&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python-Abfrageschleife
&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;# Schritt 1: Aufgabe senden
&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;# Schritt 2: Abfragen mit exponentiellem Backoff
&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;# maximal 60 Sekunden
&lt;/span&gt;
&lt;span class="c1"&gt;# Schritt 3: Video herunterladen
&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;Heruntergeladen: 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;Exponentieller Backoff verhindert Überlastung, 60s als Maximum ist praxistauglich.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bild-zu-Video (I2V): Animiertes Standbild
&lt;/h2&gt;

&lt;p&gt;Fügen Sie ein &lt;code&gt;image_url&lt;/code&gt;-Objekt zu &lt;code&gt;content&lt;/code&gt; hinzu. Das Bild wird erster Frame.&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;Mit &lt;code&gt;ratio: "adaptive"&lt;/code&gt; übernimmt das Modell das Bildseitenverhältnis.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Max. 30 MB pro Bild&lt;/li&gt;
&lt;li&gt;Bis zu 9 Bilder pro Anfrage&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Erster und letzter Frame: Start- und Endpunkte steuern
&lt;/h2&gt;

&lt;p&gt;Zwei Bilder plus Text = Animation von Bild A zu Bild B.&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;Reihenfolge: 1. Startbild, 2. Endbild. Optional &lt;code&gt;return_last_frame: true&lt;/code&gt; setzen, um das letzte Bild für Folgeanfragen zu erhalten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multimodale Referenzen: Bilder, Video, Audio kombinieren
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;content&lt;/code&gt; kann enthalten:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{"type": "text", ...}&lt;/code&gt; (Prompt)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{"type": "image_url", ...}&lt;/code&gt; (Bild)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{"type": "video_url", ...}&lt;/code&gt; (Video)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{"type": "audio_url", ...}&lt;/code&gt; (Audio)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Grenzwerte:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bis 9 Bilder (&amp;lt;30 MB/Bild)&lt;/li&gt;
&lt;li&gt;Bis 3 Videos (2–15s, &amp;lt;50 MB/Clip)&lt;/li&gt;
&lt;li&gt;Bis 3 Audios (MP3, &amp;lt;15 MB/Datei)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beispiel-Request:&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;Mit Videoreferenz sinkt der Abrechnungssatz auf die V2V-Stufe (~3,90 $/Mio Token).&lt;/p&gt;

&lt;h2&gt;
  
  
  Native Audioerzeugung
&lt;/h2&gt;

&lt;p&gt;Aktivieren Sie &lt;code&gt;generate_audio: true&lt;/code&gt;, um Audio und Video gemeinsam zu generieren (inkl. Dialog, Musik, Effekte, Umgebungsgeräusche, Lippensynchronisation).&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;Audio erhöht die Token-Anzahl geringfügig.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auflösung, Seitenverhältnis und Dauer steuern
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;resolution:&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; (Standard: &lt;code&gt;"1080p"&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ratio:&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;duration:&lt;/strong&gt; 4–15 Sekunden (Standard: 5)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Das schnelle Modell (&lt;code&gt;doubao-seedance-2-0-fast-260128&lt;/code&gt;) ist für Prototyping, das Standardmodell für finale Produktionen.&lt;/p&gt;

&lt;p&gt;Seedance 2.0 ist optimal, wenn Sie native Audio/Video-Co-Generierung, Frame-Kontrolle oder multimodale Referenzen benötigen. Für einfaches T2V und geringe Kosten: das schnelle Modell bei 480p verwenden.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kosten aus der Antwort ablesen
&lt;/h2&gt;

&lt;p&gt;Nach erfolgreicher Aufgabe enthält die Antwort ein &lt;code&gt;usage&lt;/code&gt;-Feld:&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;ul&gt;
&lt;li&gt;15s/1080p ≈ 308.880 Token&lt;/li&gt;
&lt;li&gt;5s/1080p ≈ 102.960 Token&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Preise (T2V/I2V 1080p): 46 Yuan/Mio Token (~6,40 $/Mio Token).&lt;/p&gt;

&lt;p&gt;Schnellübersicht:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5s 1080p: ~102.960 Token ≈ 0,93 $&lt;/li&gt;
&lt;li&gt;10s 1080p: ~205.920 Token ≈ 1,97 $&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mit Videoreferenz (V2V): 28 Yuan/Mio Token (~3,90 $/Mio Token).&lt;/p&gt;

&lt;p&gt;Die genaue Token-Anzahl finden Sie in der Antwort – multiplizieren Sie mit Ihrem Stufensatz, um die Kosten zu berechnen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wichtig: Video innerhalb von 24 Stunden herunterladen
&lt;/h2&gt;

&lt;p&gt;Die &lt;code&gt;video_url&lt;/code&gt; läuft 24h nach erfolgreicher Aufgabe ab (danach 403-Fehler). Laden Sie die Datei sofort nach Status &lt;code&gt;succeeded&lt;/code&gt; herunter. Das Feld &lt;code&gt;execution_expires_after&lt;/code&gt; gibt das Aufgabenzeitfenster an (z.B. 172800 Sekunden = 48h), die Video-URL ist trotzdem nur 24h gültig. Aufgabenhistorie: 7 Tage.&lt;/p&gt;

&lt;h2&gt;
  
  
  So testen Sie die Seedance API mit Apidog
&lt;/h2&gt;

&lt;p&gt;Seedance benötigt einen mehrstufigen Testablauf. Mit Apidog können Sie das exakt abbilden.&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="Ein Screenshot, der ein Apidog-Test-Szenario zeigt."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Schritt-für-Schritt:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Test-Szenario anlegen&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In Apidog im Testmodul ein neues Szenario „Seedance 2.0 Video-Generierung“ erstellen.&lt;/li&gt;
&lt;li&gt;Umgebungsvariable &lt;code&gt;ARK_API_KEY&lt;/code&gt; setzen.&lt;/li&gt;
&lt;li&gt;In Requests &lt;code&gt;{{ARK_API_KEY}}&lt;/code&gt; verwenden.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Übermittlungsanfrage&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;POST an &lt;code&gt;https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Authorization: &lt;code&gt;Bearer {{ARK_API_KEY}}&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;JSON-Body nach Bedarf.&lt;/li&gt;
&lt;li&gt;Nach dem Schritt: Aufgaben-ID per JSONPath (&lt;code&gt;$.id&lt;/code&gt;) extrahieren und als &lt;code&gt;TASK_ID&lt;/code&gt; speichern.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Warte-Prozessor&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nach Extraktion: 30 Sekunden warten.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Abfrage in For-Schleife&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For-Block, max. 20 Iterationen.

&lt;ol&gt;
&lt;li&gt;GET an &lt;code&gt;https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks/{{TASK_ID}}&lt;/code&gt; mit Auth.&lt;/li&gt;
&lt;li&gt;Nach GET: 10s warten.&lt;/li&gt;
&lt;li&gt;Schleife abbrechen bei &lt;code&gt;$.status == "succeeded"&lt;/code&gt; oder &lt;code&gt;"failed"&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Assertions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nach Schleife prüfen:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;$.status&lt;/code&gt; == &lt;code&gt;"succeeded"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$.content.video_url&lt;/code&gt; nicht leer&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Apidog generiert einen vollständigen Testbericht. Sie können cURL-Befehle direkt importieren, um Requests anzulegen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preisaufschlüsselung: Was ein 10-sekündiges Video kostet
&lt;/h2&gt;

&lt;p&gt;Seedance nutzt Pay-as-you-go, keine monatlichen Lizenzen. Testguthaben für erste Experimente.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aufgabentyp&lt;/th&gt;
&lt;th&gt;Rate (pro 1 Mio. Token)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T2V / I2V bei 1080p&lt;/td&gt;
&lt;td&gt;46 Yuan (~$6.40)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V2V (Video-Referenz)&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;p&gt;Ungefähre Kosten bei 1080p:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dauer&lt;/th&gt;
&lt;th&gt;Ungefähre Token&lt;/th&gt;
&lt;th&gt;Kosten (T2V/I2V)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5 Sekunden&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 Sekunden&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 Sekunden&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;Reduzieren Sie die Auflösung für niedrigere Kosten (480p ist am günstigsten). Beginnen Sie mit 720p für Entwicklung, erhöhen Sie bei Bedarf.&lt;/p&gt;

&lt;h2&gt;
  
  
  Häufige Fehler und Lösungen
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;429 Too Many Requests&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Zu viele parallele Aufgaben. Exponentiellen Backoff verwenden (Start: 10s, dann verdoppeln bis 60s).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;status: "failed"&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Meist wegen Sicherheitsfiltern, beschädigten/zu großen Bildern oder ungültigen Parametern. Eingaben prüfen und erneut versuchen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;status: "expired"&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Aufgabe zu lange in Warteschlange. Bei Lastspitzen erneut senden.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;403 bei video_url&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Video-URL abgelaufen (nach 24h). Nur Lösung: neu generieren (ggf. mit gespeichertem Seed).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Seed-Reproduzierbarkeit&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Seed aus Antwort speichern und bei identischen Parametern erneut übergeben, um gleiche Ausgabe zu reproduzieren.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Die Seedance 2.0 API bietet Ihnen direkten Zugang zu fortschrittlicher Videogenerierung. Das Aufgabenmuster: POST → abfragen → sofort herunterladen. Multimodale Eingaben, native Audiogen und Frame-Steuerung ermöglichen Automatisierungen, die per Weboberfläche unmöglich wären.&lt;/p&gt;

&lt;p&gt;Richten Sie Ihre Testflows in Apidog ein, bevor Sie in Produktion gehen – so vermeiden Sie typische Fehler bei Abfragen, Extraktion und URL-Ablauf.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;F: Was ist der Unterschied zwischen doubao-seedance-2-0-260128 und doubao-seedance-2-0-fast-260128?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Standardmodell = höchste Qualität, für Produktion. Fast-Modell = schneller, aber geringere Qualität. Für schnelle Prompt-Iterationen Fast-Modell, für finale Videos Standard verwenden.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Kann ich Seedance 2.0 außerhalb Chinas nutzen?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Ja, API läuft in Peking – höhere Latenz außerhalb Chinas möglich. Volcengine-Nutzungsbedingungen beachten.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Wie verketten ich mehrere Clips zu einem längeren Video?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Bei jeder Generierung &lt;code&gt;return_last_frame: true&lt;/code&gt; setzen. Das Endbild als ersten Frame für den nächsten Clip nutzen. Finales Video mit einer Videobibliothek zusammenfügen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Kostet die native Audioerzeugung mehr?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Ja, der Tokenverbrauch steigt moderat durch gemeinsame Audio-Video-Erzeugung.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Kann ich einen Webhook statt Polling nutzen?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Ja, mit Parameter &lt;code&gt;callback_url&lt;/code&gt; in der POST-Anfrage. Die API ruft Ihre URL bei Statusänderung auf.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Was passiert, wenn ich das Limit von 9 Bildern überschreite?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Die API gibt einen 400-Fehler zurück. Maximal 9 Bilder pro Anfrage zulässig.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Garantiert der Seed-Parameter die exakte Reproduktion?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: Erhöht Reproduzierbarkeit, garantiert aber keine 100% identische Ausgabe, falls Parameter/Modell sich ändern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Wie verfolge ich die Ausgaben über mehrere Aufgaben hinweg?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A: &lt;code&gt;completion_tokens&lt;/code&gt; aus jeder Antwort auslesen, mit aktuellem Tokenpreis multiplizieren und loggen. Ein zentrales Dashboard gibt es nicht, eigene Kostenüberwachung implementieren.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Grok Text zu Video API nutzen: Vollständige Anleitung</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 03 Apr 2026 08:48:54 +0000</pubDate>
      <link>https://dev.to/emree_demir/grok-text-zu-video-api-nutzen-vollstandige-anleitung-49pf</link>
      <guid>https://dev.to/emree_demir/grok-text-zu-video-api-nutzen-vollstandige-anleitung-49pf</guid>
      <description>&lt;h2&gt;
  
  
  Kurz gesagt
&lt;/h2&gt;

&lt;p&gt;Die Grok Text-zu-Video API generiert Videos aus einer Textaufforderung. Sie rufen &lt;code&gt;POST /v1/videos/generations&lt;/code&gt; auf, erhalten sofort eine &lt;code&gt;request_id&lt;/code&gt; zurück und fragen dann &lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt; ab, bis der Status &lt;code&gt;"done"&lt;/code&gt; ist. Das Modell ist &lt;code&gt;grok-imagine-video&lt;/code&gt;, die Preise beginnen bei 0,05 $ pro Sekunde bei 480p. Das xAI Python SDK übernimmt das Polling automatisch.&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;Teste Apidog jetzt&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Einleitung
&lt;/h2&gt;

&lt;p&gt;xAI generierte allein im Januar 2026 1,2 Milliarden Videos. Dies war der erste Monat nach der Einführung der Grok Text-zu-Video API am 28. Januar 2026. Das Modell belegte im selben Monat den ersten Platz in der Text-zu-Video-Bestenliste von Artificial Analysis. Diese Zahlen zeigen, dass die Infrastruktur im großen Maßstab erprobt ist.&lt;/p&gt;

&lt;p&gt;In diesem Leitfaden lernst du Schritt für Schritt: Erste Anfrage stellen, Ergebnis abfragen, Parameter anpassen, bessere Prompts schreiben. Du erfährst außerdem, wie du Referenzbilder verwendest, bestehende Videos erweiterst oder bearbeitest und wann Text-zu-Video die richtige Wahl ist.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tipp:&lt;/strong&gt; Die API ist asynchron. Das Frontend kann nicht warten, bis das Video fertig ist, um etwas zu rendern. Entwickle deine Video-UI mit einem Polling-Workflow – ohne jedes Mal Credits auszugeben. Mit Apidogs Smart Mock kannst du beide Endpunkte simulieren. So entwickelt das Team die UI parallel zum Backend. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Was ist die Grok Text-zu-Video API?
&lt;/h2&gt;

&lt;p&gt;Die Grok Text-zu-Video API ist Teil der Mediengenerierungs-Suite von xAI unter &lt;code&gt;https://api.x.ai&lt;/code&gt;. Du sendest einen Textprompt, das Modell &lt;code&gt;grok-imagine-video&lt;/code&gt; generiert daraus einen neuen Videoclip. Kein Quellbild nötig.&lt;/p&gt;

&lt;p&gt;Neben dem Text-zu-Video-Endpunkt gibt es einen synchronen Bildgenerator (&lt;code&gt;POST /v1/images/generations&lt;/code&gt;, Modell &lt;code&gt;grok-imagine-image&lt;/code&gt;, 0,02 $ pro Bild) sowie Endpunkte zum Erweitern und Bearbeiten von Videos.&lt;/p&gt;

&lt;p&gt;Anders als beim Bild-zu-Video-Modus lieferst du beim Text-zu-Video nur Worte. Szene, Bewegung und Stil entstehen komplett durch die Beschreibung. Den Bild-zu-Video-Leitfaden findest du &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;hier&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie die Text-zu-Video-Generierung funktioniert (das asynchrone Muster)
&lt;/h2&gt;

&lt;p&gt;Die API setzt auf ein asynchrones Muster:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;POST&lt;/code&gt;-Anfrage mit Prompt senden.&lt;/li&gt;
&lt;li&gt;Sofortige Antwort mit &lt;code&gt;request_id&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Video wird im Hintergrund generiert.&lt;/li&gt;
&lt;li&gt;Wiederholt &lt;code&gt;GET&lt;/code&gt;-Anfrage mit &lt;code&gt;request_id&lt;/code&gt; senden.&lt;/li&gt;
&lt;li&gt;Sobald &lt;code&gt;status&lt;/code&gt; auf &lt;code&gt;"done"&lt;/code&gt; steht, enthält die Antwort die Video-URL.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Das Frontend muss den Ladezustand anzeigen, bis das Video bereit ist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Voraussetzungen
&lt;/h2&gt;

&lt;p&gt;Vor dem Start:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;xAI-Konto:&lt;/strong&gt; Anlegen unter &lt;a href="https://console.x.ai" rel="noopener noreferrer"&gt;console.x.ai&lt;/a&gt;. Abrechnung aktivieren.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API-Schlüssel:&lt;/strong&gt; In der xAI-Konsole unter "API Keys" erstellen und sicher speichern. Als Bearer-Token im Header jeder Anfrage nutzen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;API-Key als Umgebungsvariable setzen:&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;Optional: xAI Python SDK installieren:&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;h2&gt;
  
  
  Erste Text-zu-Video-Anfrage
&lt;/h2&gt;

&lt;p&gt;Der Endpunkt: &lt;code&gt;POST https://api.x.ai/v1/videos/generations&lt;/code&gt;&lt;br&gt;&lt;br&gt;
Pflichtfelder: &lt;code&gt;model&lt;/code&gt;, &lt;code&gt;prompt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mit curl:&lt;/strong&gt;&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/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;Antwort:&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;&lt;strong&gt;Mit Python (requests):&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="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 gestartet. 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;
  
  
  Videoergebnis abfragen
&lt;/h2&gt;

&lt;p&gt;Mit der erhaltenen &lt;code&gt;request_id&lt;/code&gt; wiederholt &lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt; abfragen, bis &lt;code&gt;status&lt;/code&gt; &lt;code&gt;"done"&lt;/code&gt; ist.&lt;/p&gt;

&lt;p&gt;Mögliche Statuswerte:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;"processing"&lt;/code&gt;: Wird noch generiert&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"done"&lt;/code&gt;: Abgeschlossen, Video-URL verfügbar&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"failed"&lt;/code&gt;: Fehler aufgetreten&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Komplette Python-Polling-Schleife:&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="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 nicht bereit nach &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; Versuchen&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 bereit: &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;Typische finale Antwort:&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 verwenden
&lt;/h2&gt;

&lt;p&gt;Das SDK übernimmt das Polling. Beispiel:&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;Dauer: &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;Für maximale Kontrolle über Wiederholungen, Fortschritt und Intervall: Roh-Requests verwenden. Für produktiven Schnellstart: SDK.&lt;/p&gt;

&lt;h2&gt;
  
  
  Effektive Prompts für die Videogenerierung
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Szenenbeschreibung:&lt;/strong&gt; Motiv und Umgebung klar beschreiben.
&lt;em&gt;Beispiel&lt;/em&gt;: „Weiße Keramiktasse auf Holztisch neben regennassem Fenster“&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bewegung:&lt;/strong&gt; Was bewegt sich wie?
&lt;em&gt;Beispiel&lt;/em&gt;: „Kamera umkreist langsam die Tasse, Dampf steigt auf“&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kamerastil:&lt;/strong&gt; Begriffe wie „Nahaufnahme“, „Drohnenaufnahme“, „Handkamera“&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Beleuchtung/Stimmung:&lt;/strong&gt; „Goldene Stunde“, „Studio-Dreipunktbeleuchtung“, „neblig, melancholisch“&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stilreferenzen:&lt;/strong&gt; „kinematisch“, „Anime“, „Stop-Motion“&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Empfohlene Prompt-Struktur:&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;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;
  
  
  Auflösung, Dauer und Seitenverhältnis steuern
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dauer:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&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;10&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(1–15 Sekunden, Default: 6)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Auflösung:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;"480p"&lt;/code&gt; (Default) oder &lt;code&gt;"720p"&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Seitenverhältnis:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&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;| Verhältnis | Am besten für              |&lt;br&gt;
  |------------|---------------------------|&lt;br&gt;
  | 16:9       | Desktop, YouTube, Präsentationen |&lt;br&gt;
  | 9:16       | TikTok, Instagram Reels, Mobil |&lt;br&gt;
  | 1:1        | Instagram Feed, Social Cards    |&lt;br&gt;
  | 4:3        | Klassisches Video, Präsentationen|&lt;br&gt;
  | 3:4        | Hochformat-Apps            |&lt;br&gt;
  | 3:2        | Standard-Fotoformat        |&lt;br&gt;
  | 2:3        | Porträtfotografie          |&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Komplettes Beispiel:&lt;/strong&gt;&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/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;
  
  
  Referenzbilder zur Steuerung des Videostils
&lt;/h2&gt;

&lt;p&gt;Bis zu 7 Bild-URLs im Parameter &lt;code&gt;reference_images&lt;/code&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;"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;Wähle stilistisch konsistente Bilder für eine klare Führung. Unterschied zu Bild-zu-Video: Bei Referenzbildern bleibt die Szene prompt-gesteuert, Bilder steuern nur Look &amp;amp; Feel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generierte Videos erweitern und bearbeiten
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Video erweitern:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;POST /v1/videos/extensions&lt;/code&gt;&lt;br&gt;&lt;br&gt;
Übergebe die &lt;code&gt;request_id&lt;/code&gt; des Originalvideos + neuen Prompt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Video bearbeiten:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;POST /v1/videos/edits&lt;/code&gt;&lt;br&gt;&lt;br&gt;
Passe Stil oder Inhalt per Textanweisung an.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beide Endpunkte sind asynchron (&lt;code&gt;request_id&lt;/code&gt; → polling mit &lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Kosten aus der API-Antwort auslesen
&lt;/h2&gt;

&lt;p&gt;Im Antwort-Objekt:&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;Umrechnung:&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;Kosten: $&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;span class="c1"&gt;# Output: Kosten: $0.0500
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Referenztabelle:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Auflösung&lt;/th&gt;
&lt;th&gt;Preis pro Sekunde&lt;/th&gt;
&lt;th&gt;10-Sekunden-Clip&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;Verfolge &lt;code&gt;cost_in_usd_ticks&lt;/code&gt; zur Kostenkontrolle ohne separate Abrechnungs-API.&lt;/p&gt;

&lt;h2&gt;
  
  
  So testest du die Grok Video-API mit Apidog
&lt;/h2&gt;

&lt;p&gt;Das asynchrone Muster verlangt, dass du Lade-, Erfolgs- und Fehlerzustände im Frontend testest – ohne echte Credits zu verbrauchen. Mit &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;Apidogs Smart Mock&lt;/a&gt; simulierst du beide Endpunkte.&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-70.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-70.png" alt="" width="1584" height="1014"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Case 1: Smart Mock für Frontend-Entwicklung
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generierungs-Endpunkt simulieren:&lt;/strong&gt;
In Apidog &lt;code&gt;POST /v1/videos/generations&lt;/code&gt; anlegen, Antwortschema mit &lt;code&gt;request_id&lt;/code&gt; definieren. Smart Mock erzeugt automatisch eine passende UUID.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beispielantwort:&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="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;"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;ul&gt;
&lt;li&gt;
&lt;strong&gt;Abfrage-Endpunkt simulieren:&lt;/strong&gt;
&lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt; mit vollständigem Schema (Status, Video-URL etc.) anlegen. Mock-Antwort für &lt;code&gt;"status": "done"&lt;/code&gt; festlegen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beispielantwort:&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="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;"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/mock-video-12345.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;400000000&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;Frontendentwickler können die UI gegen diese Mock-Server testen – inkl. Lade-, Erfolgs- und Fehlerzustand (z.B. &lt;code&gt;"status": "failed"&lt;/code&gt; mocken). Keine echten API-Credits nötig.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Case 2: Testszenarien für die Abfrageschleife
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;1. Schritt:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;POST /v1/videos/generations&lt;/code&gt; als ersten Testschritt. &lt;code&gt;request_id&lt;/code&gt; mit JSONPath &lt;code&gt;$.request_id&lt;/code&gt; als Variable extrahieren.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;2. Schritt:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;GET /v1/videos/{{videoRequestId}}&lt;/code&gt; als zweiten Testschritt, in einer For-Schleife mit Abbruchbedingung &lt;code&gt;response.body.status == "done"&lt;/code&gt;. Wartezeit (z.B. 5s) zwischen den Polls einbauen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;3. Schritt:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nach Schleifenende Assertion, dass &lt;code&gt;$.video.url&lt;/code&gt; nicht leer ist.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dieses Testszenario lässt sich automatisiert in CI laufen – für stabile Integrationen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Text-zu-Video vs. Bild-zu-Video: Wann welchen Modus?
&lt;/h2&gt;

&lt;p&gt;Beide nutzen das Modell &lt;code&gt;grok-imagine-video&lt;/code&gt;, aber die Anwendung unterscheidet sich:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text-zu-Video, wenn:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Originelle Inhalte aus Konzept/Skript generiert werden sollen&lt;/li&gt;
&lt;li&gt;Das Modell volle kreative Kontrolle haben soll&lt;/li&gt;
&lt;li&gt;User Prompts eingeben&lt;/li&gt;
&lt;li&gt;Kein Quellbild vorhanden ist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bild-zu-Video, wenn:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Produktfotos, Illustrationen, Assets animieren&lt;/li&gt;
&lt;li&gt;Konkrete Bilddetails erhalten bleiben sollen&lt;/li&gt;
&lt;li&gt;Konsistente Animationen aus Bilderserien gebraucht werden&lt;/li&gt;
&lt;li&gt;Eigene Kunstwerke/Fotos animiert werden sollen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Text-zu-Video = Szene aus Prompt.&lt;br&gt;&lt;br&gt;
Bild-zu-Video = Bild wird animiert.&lt;br&gt;&lt;br&gt;
Vollständigen Bild-zu-Video-Leitfaden siehe &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;hier&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Häufige Fehler und Lösungen
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;401 Unauthorized:&lt;/strong&gt;
API-Schlüssel fehlt, abgelaufen oder falsch. Authorization-Header prüfen: &lt;code&gt;Bearer YOUR_XAI_API_KEY&lt;/code&gt; (ohne Leerzeichen am Ende), Schlüssel in der Konsole aktiv?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;429 Too Many Requests:&lt;/strong&gt;
Ratenlimit erreicht (60/min, 1/sec). Abfrageintervall erhöhen, mindestens 5s zwischen Polls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;status: "failed":&lt;/strong&gt;
Prompt von Inhaltsmoderation abgelehnt. Siehe Feld &lt;code&gt;respect_moderation&lt;/code&gt;. Prompt präzisieren, keine sensiblen Begriffe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video-URL 404:&lt;/strong&gt;
URLs sind temporär, Video direkt nach Erhalt herunterladen und selbst speichern.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leeres/eingefrorenes Video:&lt;/strong&gt;
Zu vage oder ohne Bewegungshinweise. Prompt um klare Bewegungsanweisungen ergänzen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lange Wartezeiten:&lt;/strong&gt;
720p und lange Clips dauern länger. Für Entwicklung 480p und kurze Clips nutzen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Die Grok Text-zu-Video API bietet einen klaren Weg von Prompt zu Video: Anfrage, &lt;code&gt;request_id&lt;/code&gt;, Polling, MP4-Download. Das asynchrone Abfragemuster ist der Kern. Wenn die Polling-Logik steht, kannst du Dauer, Auflösung, Seitenverhältnis und Referenzbilder gezielt optimieren.&lt;/p&gt;

&lt;p&gt;Für Produktionsbuilds: Kostenverfolgung via &lt;code&gt;cost_in_usd_ticks&lt;/code&gt; jeder Antwort. Simuliere die Endpunkte mit Apidog, damit das Frontend unabhängig vom Backend entwickelt werden kann. Automatisiere Testszenarien für stabile Integrationen.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Welchen Modellnamen verwende ich für die Text-zu-Video-Generierung?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;grok-imagine-video&lt;/code&gt; ist das erforderliche &lt;code&gt;model&lt;/code&gt;-Feld für &lt;code&gt;POST /v1/videos/generations&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie lange dauert die Videogenerierung?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Je nach Dauer/Auflösung. Kurze 480p-Clips: &amp;lt;30s, lange 720p-Clips: mehrere Minuten. Poll alle 5–10 Sekunden.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich Videos länger als 15 Sekunden generieren?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nicht in einer Anfrage. Maximal &lt;code&gt;duration: 15&lt;/code&gt;. Für längere Videos: Clip generieren, dann mit &lt;code&gt;POST /v1/videos/extensions&lt;/code&gt; erweitern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie lade ich das Video herunter?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nutze die URL aus &lt;code&gt;result.video.url&lt;/code&gt; der fertigen Antwort. MP4 direkt downloaden, URL ist temporär.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was passiert, wenn der Prompt moderiert wird?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Status bleibt &lt;code&gt;failed&lt;/code&gt;, Feld &lt;code&gt;respect_moderation&lt;/code&gt; zeigt Moderation an. Prompt anpassen und erneut versuchen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gibt es eine kostenlose Stufe?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
xAI berechnet pro generierter Sekunde. Keine Gratisstufe für Videos. Ggf. aktuelle Aktionen in &lt;a href="https://console.x.ai" rel="noopener noreferrer"&gt;console.x.ai&lt;/a&gt; prüfen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unterschied zwischen &lt;code&gt;reference_images&lt;/code&gt; und Quellbild?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;reference_images&lt;/code&gt; steuern Stil bei Text-zu-Video. Sie beeinflussen die Optik, werden aber kein direktes Motiv. Beim Bild-zu-Video wird das Bild der Startframe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie teste ich Polling ohne Credits?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Mit Apidogs Smart Mock beide Endpunkte simulieren. Schemata definieren, Mock-Antworten für &lt;code&gt;"processing"&lt;/code&gt; und &lt;code&gt;"done"&lt;/code&gt; anlegen – dein Polling-Code funktioniert dann ohne echte API.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Grok Image zu Video API nutzen: Schritt-für-Schritt Anleitung</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 03 Apr 2026 08:43:11 +0000</pubDate>
      <link>https://dev.to/emree_demir/grok-image-zu-video-api-nutzen-schritt-fur-schritt-anleitung-3jfa</link>
      <guid>https://dev.to/emree_demir/grok-image-zu-video-api-nutzen-schritt-fur-schritt-anleitung-3jfa</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Die Grok Bild-zu-Video API nutzt das Modell &lt;code&gt;grok-imagine-video&lt;/code&gt;, um ein statisches Bild in einen animierten Videoclip zu verwandeln. Sende per POST deine Bild-URL, einen Prompt und optionale Einstellungen an &lt;code&gt;https://api.x.ai/v1/videos/generations&lt;/code&gt;. Die API gibt sofort eine &lt;code&gt;request_id&lt;/code&gt; zurück. Anschließend mit &lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt; abfragen, bis &lt;code&gt;status&lt;/code&gt; auf &lt;code&gt;"done"&lt;/code&gt; steht. Die Dauer liegt zwischen 1 und 15 Sekunden. Preise starten ab 0,05 $ pro Sekunde für 480p-Ausgabe.&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;Probiere Apidog jetzt aus&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Einführung
&lt;/h2&gt;

&lt;p&gt;Am 28. Januar 2026 veröffentlichte xAI das Modell &lt;code&gt;grok-imagine-video&lt;/code&gt; für den öffentlichen API-Zugang. Im ersten Monat generierte das Modell 1,2 Milliarden Videos und führte das Artificial Analysis Text-zu-Video-Leaderboard an. Die Bild-zu-Video-Funktion erlaubt es, ein Foto und einen Prompt zu senden, woraufhin die API das Bild in einen animierten Videoclip (MP4) verwandelt.&lt;/p&gt;

&lt;p&gt;Für die Integration ist wichtig: Die API arbeitet asynchron. Ein erfolgreicher POST mit Status 200 reicht nicht – die Integration ist erst abgeschlossen, wenn deine Abfrageschleife die Zustände &lt;code&gt;"processing"&lt;/code&gt;, &lt;code&gt;"done"&lt;/code&gt; und &lt;code&gt;"failed"&lt;/code&gt; korrekt verarbeitet.&lt;/p&gt;

&lt;p&gt;Mit Apidog kannst du Test-Szenarien für diese asynchronen Workflows direkt umsetzen: Sende POST an &lt;code&gt;/v1/videos/generations&lt;/code&gt;, extrahiere die &lt;code&gt;request_id&lt;/code&gt;, wiederhole GET bis &lt;code&gt;status == "done"&lt;/code&gt;, und prüfe, ob die Video-URL vorhanden ist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was ist die Grok Bild-zu-Video API?
&lt;/h2&gt;

&lt;p&gt;Die Grok Bild-zu-Video API ist Teil des Videoerstellungsprodukts von xAI. Sie basiert auf dem Modell &lt;code&gt;grok-imagine-video&lt;/code&gt; und akzeptiert ein Bild als Startrahmen des Ausgabevideos. Das Modell analysiert Bildinhalt und Prompt und erzeugt natürliche Bewegung, um die Szene zu animieren.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API-Endpunkt:&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;&lt;strong&gt;Authentifizierung:&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;Authorization: Bearer YOUR_XAI_API_KEY
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Den Schlüssel erhältst du in der &lt;a href="https://console.x.ai" rel="noopener noreferrer"&gt;xAI-Konsole&lt;/a&gt;. Die API unterstützt auch Text-zu-Video (ohne &lt;code&gt;image&lt;/code&gt;), Videoerweiterungen und Bearbeitungen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie der Bild-zu-Video-Prozess funktioniert
&lt;/h2&gt;

&lt;p&gt;Der Parameter &lt;code&gt;image&lt;/code&gt; im Request bezeichnet den &lt;strong&gt;ersten Frame&lt;/strong&gt; des Videos. Das Modell ersetzt das Bild nicht, sondern startet damit. Jeder Pixel des ersten Frames stammt aus deinem Quellbild. Das Modell prognostiziert, wie sich die Szene gemäß Prompt entwickeln würde.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beispiel:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Bild: Bergsee bei Sonnenaufgang.&lt;br&gt;&lt;br&gt;
Prompt: "Sanfte Wellen breiten sich über das Wasser aus, während morgendlicher Nebel aufzieht."&lt;br&gt;&lt;br&gt;
Der erste Frame ist dein Foto. Die Folgebilder zeigen animiertes Wasser und Nebel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wann Bild-zu-Video verwenden?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Du hast ein bestehendes Foto, das animiert werden soll.&lt;/li&gt;
&lt;li&gt;Markenidentität fordert einen festen Startframe.&lt;/li&gt;
&lt;li&gt;Bewegung soll an eine reale Szene gebunden sein.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Wann Text-zu-Video verwenden?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keine Referenzbilder vorhanden.&lt;/li&gt;
&lt;li&gt;Komplette Szenengenerierung dem Modell überlassen.&lt;/li&gt;
&lt;li&gt;Schnelle Iteration wichtiger als Frame-Präzision.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Voraussetzungen
&lt;/h2&gt;

&lt;p&gt;Vor dem ersten API-Aufruf benötigst du:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;xAI-Konto:&lt;/strong&gt; &lt;a href="https://console.x.ai" rel="noopener noreferrer"&gt;console.x.ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API-Key&lt;/strong&gt; aus der xAI-Konsole (als Umgebungsvariable speichern)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.8+&lt;/strong&gt; oder &lt;strong&gt;Node.js 18+&lt;/strong&gt; (Beispiele für beide)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Öffentlich erreichbare Bild-URL&lt;/strong&gt; oder base64-kodiertes Bild (Data-URI)&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="xAI Console Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API-Key setzen:&lt;/strong&gt;&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;&lt;strong&gt;xAI Python SDK installieren (optional):&lt;/strong&gt;&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;Für reine HTTP-Aufrufe reichen &lt;code&gt;requests&lt;/code&gt; (Python) oder &lt;code&gt;fetch&lt;/code&gt; (Node.js).&lt;/p&gt;

&lt;h2&gt;
  
  
  Erste Bild-zu-Video-Anfrage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Mit curl
&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;Antwort:&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;Das Video wird jetzt asynchron generiert – abfragen nicht vergessen!&lt;/p&gt;

&lt;h3&gt;
  
  
  Mit Python (raw requests)
&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-Bild verwenden
&lt;/h3&gt;

&lt;p&gt;Wenn das Bild lokal ist, als Data-URI kodieren:&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;
  
  
  Abfragen des Ergebnisses
&lt;/h2&gt;

&lt;p&gt;Die Videoerstellung ist asynchron. Status abfragen mit:&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;&lt;strong&gt;Statuswerte:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Bedeutung&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 wird noch gerendert&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 fertig, URL in der Antwort&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;Fehler aufgetreten&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Abgeschlossene Antwort:&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;"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;
  
  
  Komplette Python-Abfrageschleife
&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;# Verwendung
&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;Duration: &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;&lt;strong&gt;Tipp:&lt;/strong&gt; Polling-Intervall auf 5 Sekunden oder länger setzen (Ratenlimit: 60 Anfragen/Minute).&lt;/p&gt;

&lt;h2&gt;
  
  
  xAI Python SDK verwenden
&lt;/h2&gt;

&lt;p&gt;Mit &lt;code&gt;xai-sdk&lt;/code&gt; übernimmt das SDK das asynchrone Polling automatisch:&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;Duration: &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;Das SDK kümmert sich um Polling, Statusprüfungen und Fehler. Für detailliertere Kontrolle empfiehlt sich der Raw-Requests-Ansatz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auflösung, Dauer und Seitenverhältnis steuern
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Dauer:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;duration&lt;/code&gt; akzeptiert Werte von 1 bis 15 Sekunden (Standard: 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;Längere Videos erhöhen die Kosten linear.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auflösung:&lt;/strong&gt;  &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Wert&lt;/th&gt;
&lt;th&gt;Beschreibung&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"480p"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Standard. Günstiger, schneller&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"720p"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Höhere Qualität, teurer&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;p&gt;&lt;strong&gt;Seitenverhältnis (aspect_ratio):&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Wert&lt;/th&gt;
&lt;th&gt;Anwendungsfall&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"16:9"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Standard, Landschaft&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"9:16"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Vertikal, Social Stories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"1:1"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quadrat, Instagram&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"4:3"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Klassisch, Präsentation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"3:4"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Portrait&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"3:2"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Foto-Zuschnitt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"2:3"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Hochformat Portrait&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Standardmäßig wird das Seitenverhältnis an das Quellbild angepasst. Zum Überschreiben explizit angeben.&lt;/p&gt;




&lt;h2&gt;
  
  
  Referenzbilder zur Stilführung nutzen
&lt;/h2&gt;

&lt;p&gt;Der Parameter &lt;code&gt;reference_images&lt;/code&gt; ergänzt das Hauptbild:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;image&lt;/code&gt;:&lt;/strong&gt; Startframe, wird animiert.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;reference_images&lt;/code&gt;:&lt;/strong&gt; Bis zu 7 Bilder zur Stil-/Inhaltsführung. Diese beeinflussen Look und Bewegung, erscheinen aber nicht direkt im Video.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Beispiel:&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;"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 product rotating slowly on a clean white surface"&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/product-shot.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;"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;Auch ohne &lt;code&gt;image&lt;/code&gt; kannst du Referenzbilder für Text-zu-Video nutzen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Videos erweitern und bearbeiten
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Video erweitern:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nutze &lt;code&gt;POST /v1/videos/extensions&lt;/code&gt;, um einen Clip zu verlängern (je Aufruf max. 15 Sekunden):&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": "The mist continues to lift as sunlight breaks through",
    "duration": 5
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ergebnis wie gewohnt mit &lt;code&gt;GET /v1/videos/{request_id}&lt;/code&gt; abfragen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video bearbeiten:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Mit &lt;code&gt;POST /v1/videos/edits&lt;/code&gt; gezielt Aspekte ändern:&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": "Change the sky to a dramatic sunset with deep orange tones"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Auch hier: asynchrones Abfragemuster nutzen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preisübersicht: Kosten eines 10-Sekunden-Videos
&lt;/h2&gt;

&lt;p&gt;xAI berechnet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Eingabebild:&lt;/strong&gt; 0,002 $ pro Bild&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ausgabe 480p:&lt;/strong&gt; 0,05 $/Sekunde&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ausgabe 720p:&lt;/strong&gt; 0,07 $/Sekunde&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Beispiel: 10 Sek. bei 720p&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Eingabebild: 0,002 $&lt;/li&gt;
&lt;li&gt;Ausgabe: 10 × 0,07 $ = 0,70 $&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gesamt:&lt;/strong&gt; 0,702 $&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Beispiel: 6 Sek. bei 480p&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Eingabebild: 0,002 $&lt;/li&gt;
&lt;li&gt;Ausgabe: 6 × 0,05 $ = 0,30 $&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gesamt:&lt;/strong&gt; 0,302 $&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die Bildgebühr fällt immer an, auch bei wiederverwendeter URL. Text-zu-Video (ohne &lt;code&gt;image&lt;/code&gt;) entfällt die Bildgebühr.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grok Video API Integration mit Apidog testen
&lt;/h2&gt;

&lt;p&gt;Asynchrone Workflows können mit Apidog automatisiert getestet werden:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Neues Test-Szenario:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Im Apidog "Tests"-Modul auf &lt;code&gt;+&lt;/code&gt; klicken, z.B. "Grok Bild-zu-Video asynchroner Workflow".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Generierungsanfrage:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
POST-Anforderung wie oben beschrieben anlegen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;request_id&lt;/code&gt; extrahieren:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Variablenextraktion (JSONPath &lt;code&gt;$.request_id&lt;/code&gt;) auf die Antwort.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Abfrageschleife:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
For-Schleifenprozessor mit GET auf &lt;code&gt;/v1/videos/{{video_request_id}}&lt;/code&gt;, Status extrahieren, nach jedem GET 5000 ms warten.&lt;br&gt;&lt;br&gt;
Schleife beenden, wenn &lt;code&gt;{{video_status}} == "done"&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Video-URL bestätigen:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nach der Schleife GET auf das Ergebnis, Assertion: &lt;code&gt;$.video.url&lt;/code&gt; ist nicht leer.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Szenario ausführen:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Auf "Ausführen" klicken. Apidog führt alle Schritte durch und zeigt die Ergebnisse an.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CI/CD-Integration:&lt;/strong&gt;&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;p&gt;Weitere Details zum Testen asynchroner APIs mit Apidog findest du im &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Leitfaden auf apidog.com&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Häufige Fehler und Behebungen
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;401 Unauthorized:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
API-Key prüfen, Syntax des Headers beachten, Key in Konsole aktivieren.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;422 Unprocessable Entity:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Felder wie &lt;code&gt;model&lt;/code&gt;, &lt;code&gt;prompt&lt;/code&gt; oder &lt;code&gt;image.url&lt;/code&gt; prüfen. Bild-URL vorher testen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bild-URL nicht zugänglich:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nur öffentliche URLs oder Data-URIs verwenden.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Status bleibt auf "processing":&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Warten (bis zu mehrere Minuten möglich). Nach 10 Minuten ggf. neuen Job starten.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ratenlimit (429):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Max. 60 Anfragen/Minute beachten. Polling mit Delay ausstatten.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Base64-Upload abgelehnt:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Korrektes MIME-Präfix verwenden, z.B. &lt;code&gt;data:image/jpeg;base64,&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Seitenverhältnis-Fehler:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Seitenverhältnis an das Quellbild anpassen, um Zuschnitt/Letterboxing zu vermeiden.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Mit der Grok Bild-zu-Video API bringst du Fotos schnell und automatisiert in Bewegung. Der Workflow: POST mit Bild und Prompt, &lt;code&gt;request_id&lt;/code&gt; abfragen, GET bis fertig, MP4-URL extrahieren. Das Modell &lt;code&gt;grok-imagine-video&lt;/code&gt; ist leistungsstark und skalierbar.&lt;/p&gt;

&lt;p&gt;Asynchrone Abläufe sind die häufigste Fehlerquelle – teste deshalb mit Apidogs Szenarien: Variablenextraktion, Polling mit Abbruch-Bedingung, finale Assertion. So verhinderst du Integrationsfehler vor dem Go-Live.&lt;/p&gt;

&lt;p&gt;Beginne kostenlos mit der Entwicklung deiner Integration mit Apidog. Keine Kreditkarte erforderlich.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Welcher Modellname für die Bild-zu-Video API?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;grok-imagine-video&lt;/code&gt; – im Feld &lt;code&gt;model&lt;/code&gt; angeben.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unterschied zwischen &lt;code&gt;image&lt;/code&gt; und &lt;code&gt;reference_images&lt;/code&gt;?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;image&lt;/code&gt; ist der Startframe, &lt;code&gt;reference_images&lt;/code&gt; steuern Stil und Kontext, erscheinen aber nicht als Frame. Beide kombinierbar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie lange dauert die Videoerstellung?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
6 Sek. 480p: meist 1–3 Minuten. 15 Sek. 720p: 4–8 Minuten. Alle 5 Sek. abfragen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lokale Datei als Bild?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja, als Data-URI kodieren: &lt;code&gt;data:image/jpeg;base64,{encoded_bytes}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kein &lt;code&gt;aspect_ratio&lt;/code&gt; gesetzt?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Mit &lt;code&gt;image&lt;/code&gt;: Seitenverhältnis entspricht Quellbild. Ohne: Standard ist &lt;code&gt;16:9&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kosten für 10 Sek. 720p-Video?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
0,002 $ (Bild) + 0,70 $ (Ausgabe) = 0,702 $.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ratenlimits?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
60 Anfragen/Minute, 1 Anfrage/Sekunde. POST und GET zusammen zählen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Videos &amp;gt;15 Sekunden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Mit &lt;code&gt;POST /v1/videos/extensions&lt;/code&gt; in mehreren Schritten verlängern; jeder Schritt asynchron.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Bird SMS API Kosten 2026: Preise und Übersicht</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 03 Apr 2026 07:12:13 +0000</pubDate>
      <link>https://dev.to/emree_demir/bird-sms-api-kosten-2026-preise-und-ubersicht-49na</link>
      <guid>https://dev.to/emree_demir/bird-sms-api-kosten-2026-preise-und-ubersicht-49na</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Die Bird SMS API startet bei &lt;strong&gt;0,00331 $ pro ausgehender US-Nachricht&lt;/strong&gt; und &lt;strong&gt;0,003 $ pro eingehender US-Nachricht&lt;/strong&gt;. Damit gehört Bird zu den günstigsten SMS-API-Anbietern am Markt. Ein kostenloser Plan mit 5 SMS/Tag ist für Tests verfügbar. Der Pro-Plan für 49 $/Monat beinhaltet 1.000 SMS-Guthaben.&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;Teste Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Einführung
&lt;/h2&gt;

&lt;p&gt;MessageBird wurde 2023 zu Bird. Mit dem Rebranding kam ein Fokus auf KI-gestützte Omnichannel-Kommunikation: SMS, WhatsApp, E-Mail und Sprache unter einer Plattform. Auch das Preismodell wurde auf transparente Pay-as-you-go-Tarife umgestellt, die SMS-Basiskosten unterhalb von Twilio, Vonage und anderen großen Anbietern ermöglichen.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Tipp:&lt;/strong&gt; Für SMS-Integrationen brauchst du exakte Preisdaten und einfache API-Testmöglichkeiten. &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; ermöglicht dir, Bird API-Requests zu designen, Testszenarien auszuführen und Antworten zu validieren – ohne zusätzliche Codezeile. Teste Apidog kostenlos und beschleunige deine Bird SMS-Integration.&lt;/p&gt;

&lt;p&gt;Dieser Artikel gibt dir eine detaillierte Übersicht zu den Bird SMS-Kosten (2025/2026), zeigt Kostenfallen auf und vergleicht Bird mit Alternativen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bird SMS Preisübersicht
&lt;/h2&gt;

&lt;p&gt;Bird nutzt eine zweiteilige Preisstruktur für SMS:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Plattform-Plan-Gebühr&lt;/strong&gt; (monatliches Abonnement)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gebühr pro Nachricht&lt;/strong&gt; (Pay-as-you-go, zusätzlich zum Plan)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Pläne im Überblick:&lt;/strong&gt;&lt;/p&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;Monatliche Kosten&lt;/th&gt;
&lt;th&gt;Inklusive SMS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kostenlos&lt;/td&gt;
&lt;td&gt;0 $&lt;/td&gt;
&lt;td&gt;5 SMS/Tag&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;49 $&lt;/td&gt;
&lt;td&gt;1.000 SMS/Monat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise&lt;/td&gt;
&lt;td&gt;Angepasst&lt;/td&gt;
&lt;td&gt;Angepasstes Volumen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Nach Verbrauch des Inklusivkontingents zahlst du pro SMS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ausgehende SMS (USA):&lt;/strong&gt; 0,00331 $/Nachricht&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Eingehende SMS (USA):&lt;/strong&gt; 0,003 $/Nachricht&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beachte, dass CRM-/Marketing-Tarife in EUR erscheinen, die genannten USD-Preise gelten für die Entwickler-API. Prüfe aktuelle Preise unter &lt;a href="https://bird.com/en/pricing/sms" rel="noopener noreferrer"&gt;bird.com/en/pricing/sms&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preisaufschlüsselung: SMS, MMS, WhatsApp und E-Mail
&lt;/h2&gt;

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

&lt;p&gt;Ausgehende US-SMS: &lt;strong&gt;0,00331 $/Nachricht&lt;/strong&gt;. Die Tarife variieren international stark:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Land&lt;/th&gt;
&lt;th&gt;Ausgehender Tarif (ca.)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Vereinigte Staaten&lt;/td&gt;
&lt;td&gt;~0,00331 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vereinigtes Königreich&lt;/td&gt;
&lt;td&gt;~0,036 €&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Australien&lt;/td&gt;
&lt;td&gt;~0,009 €&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deutschland&lt;/td&gt;
&lt;td&gt;~0,056 €&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Indien&lt;/td&gt;
&lt;td&gt;variiert je nach Route&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Brasilien&lt;/td&gt;
&lt;td&gt;~0,047 €&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Hinweis: Für US/Kanada fallen zusätzlich zu den Basistarifen 10DLC- und gebührenfreie Carrier-Gebühren an. Siehe Abschnitt "Versteckte Kosten".&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;MMS (Bildnachrichten) sind teurer. Bird unterstützt MMS für US- und kanadische Nummern. Die Kosten liegen ca. beim 3- bis 5-fachen einer SMS. Aktuelle MMS-Tarife findest du unter &lt;a href="https://bird.com/en/pricing/sms" rel="noopener noreferrer"&gt;bird.com/en/pricing/sms&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;Bird berechnet für WhatsApp:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Bearbeitungsgebühr&lt;/strong&gt; (pro 1.000 Nachrichten):&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;| Volumen           | Gebühr pro 1.000 Nachrichten |&lt;br&gt;
   |-------------------|-----------------------------|&lt;br&gt;
   | 1–1.000           | 0,001 $                     |&lt;br&gt;
   | 1.001–100.000     | 0,005 $                     |&lt;br&gt;
   | 100.001–500.000   | 0,0045 $                    |&lt;br&gt;
   | 500.001+          | 0,004 $                     |&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Meta Durchleitungsgebühr&lt;/strong&gt; (konversationsabhängig, variiert):&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Marketing-Konversationen: 0,0250 $ (USA)&lt;/li&gt;
&lt;li&gt;Utility-Konversationen: 0,0034 $ (USA)&lt;/li&gt;
&lt;li&gt;Authentifizierung: 0,0034 $ (USA)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bird gibt die Meta-Gebühren ohne Aufschlag weiter.&lt;/p&gt;

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

&lt;p&gt;E-Mail via Bird API: ab 0,001 $/Mail bei niedrigen Volumen, mit sinkenden Preisen bei höherem Volumen. Pro-Plan enthält 10.000 E-Mails/Monat.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sprache
&lt;/h3&gt;

&lt;p&gt;Bird Voice API ist nutzungsbasiert. Ausgehende US-Anrufe: ca. 0,013–0,015 $/Minute. Eingehende Anrufe sind günstiger. Für Großkunden empfiehlt sich ein Gespräch mit dem Vertrieb.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was Ihre Bird-Rechnung beeinflusst
&lt;/h2&gt;

&lt;p&gt;Mehrere Faktoren können die Gesamtkosten erhöhen:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Land und Carrier-Routing
&lt;/h3&gt;

&lt;p&gt;US-SMS sind günstig (0,00331 $), aber Nachrichten nach Deutschland (~0,056 €), Bangladesch (~0,208 €) oder Burundi (~0,269 €) sind deutlich teurer. Prüfe stets das länderspezifische Preisblatt.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Nummerntyp
&lt;/h3&gt;

&lt;p&gt;Der gewählte Nummerntyp beeinflusst die Kosten:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Long Codes (10DLC):&lt;/strong&gt; Standard-US-Nummern, erfordern Registrierung über The Campaign Registry (TCR).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Short Codes:&lt;/strong&gt; 5–6-stellig, hoher Durchsatz, hohe Mietkosten (500–1.000 $/Monat).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gebührenfreie Nummern:&lt;/strong&gt; Mittlere Kosten, moderater Durchsatz.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nummerngebühren kommen zu den SMS-Tarifen hinzu.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Nachrichtenlänge und Kodierung
&lt;/h3&gt;

&lt;p&gt;Standard-SMS: 160 Zeichen (GSM-7). Überschreitest du das Limit, wird aufgeteilt und jede Nachricht einzeln abgerechnet. Unicode (z.B. Emojis) reduziert das Limit auf 70 Zeichen pro Segment.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Kanalmix
&lt;/h3&gt;

&lt;p&gt;Bird bietet Workflows mit Fallback auf andere Kanäle (z.B. WhatsApp, E-Mail). Jede Weiterleitung kann zusätzliche Gebühren verursachen. Modellieren die deinen Kanalmix vorab.&lt;/p&gt;

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

&lt;p&gt;Bird veröffentlicht keine öffentlichen Volumenrabatte. Der Enterprise-Plan bietet individuelle Konditionen ab hohen Volumina (Millionen/Monat).&lt;/p&gt;

&lt;h2&gt;
  
  
  Versteckte Kosten und Gebühren
&lt;/h2&gt;

&lt;p&gt;Trotz transparenter Preisdarstellung gibt es Posten, die überraschen können:&lt;/p&gt;

&lt;h3&gt;
  
  
  US-Carrier-Gebühren (10DLC)
&lt;/h3&gt;

&lt;p&gt;Für US-Long Codes fallen folgende Gebühren an:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Markenregistrierung:&lt;/strong&gt; Einmalig (ca. 4–44 $)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kampagnenregistrierung:&lt;/strong&gt; Monatlich (~10 $/Kampagne)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carrier-Zuschlag pro Nachricht:&lt;/strong&gt; z.T. mehrere Cent zusätzlich&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Diese Gebühren werden 1:1 weitergegeben.&lt;/p&gt;

&lt;h3&gt;
  
  
  Telefonnummernmiete
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;US-Long Codes: 1–2 $/Monat&lt;/li&gt;
&lt;li&gt;Gebührenfrei: 2–3 $/Monat&lt;/li&gt;
&lt;li&gt;Short Codes: 500–1.000 $/Monat&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Eingehende Webhooks und Verarbeitung
&lt;/h3&gt;

&lt;p&gt;Eingehende SMS (z.B. Opt-out, Hilfe): 0,003 $/Nachricht (USA). Diese Kosten können sich bei automatisierten Flows summieren.&lt;/p&gt;

&lt;h3&gt;
  
  
  Plattform-Abonnement
&lt;/h3&gt;

&lt;p&gt;Der Pro-Plan (49 $/Monat) ist fixer Overhead. Für kleine Volumen lohnt sich der kostenlose Tarif, für große Volumen zählt der Nachrichtentarif.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie Bird im Vergleich zu Alternativen abschneidet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Anbieter&lt;/th&gt;
&lt;th&gt;Ausgehende US-SMS&lt;/th&gt;
&lt;th&gt;Eingehende US-SMS&lt;/th&gt;
&lt;th&gt;Hinweise&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 $&lt;/td&gt;
&lt;td&gt;0,003 $&lt;/td&gt;
&lt;td&gt;Günstigster Basistarif, Omnichannel&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,0079 $&lt;/td&gt;
&lt;td&gt;Höherer Tarif, großes Ökosystem&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,001 $&lt;/td&gt;
&lt;td&gt;Wettbewerbsfähig, Carrier-Direktmodell&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;Einfache Plattform, günstige Eingänge&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Bird ist beim US-SMS-Basistarif führend. Twilio ist teurer, bietet aber Volumenrabatte. Telnyx/Plivo sind Alternativen mit einfachen Preisstrukturen. Bird eignet sich vor allem, wenn du mehrere Kanäle (WhatsApp, E-Mail) zentral steuern möchtest.&lt;/p&gt;

&lt;h2&gt;
  
  
  So startest du mit Bird
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Konto erstellen:&lt;/strong&gt; Registriere dich kostenfrei auf &lt;a href="https://bird.com" rel="noopener noreferrer"&gt;bird.com&lt;/a&gt;. 5 SMS/Tag sind ohne Kreditkarte testbar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Marke &amp;amp; Kampagne registrieren:&lt;/strong&gt; US 10DLC-Konformität via Dashboard (1–3 Werktage Bearbeitungszeit).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telefonnummer besorgen:&lt;/strong&gt; US-Long-Code-Nummer via Numbers API oder Dashboard anlegen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ersten API-Aufruf ausführen:&lt;/strong&gt; Bird nutzt eine REST-API mit JSON. Beispiel:
&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 https://api.bird.com/messages &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: AccessKey &amp;lt;dein_access_key&amp;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;'{
    "originator": "+1234567890",
    "recipients": ["+1098765432"],
    "body": "Testnachricht von Bird API"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Weitere Infos: &lt;a href="https://docs.bird.com" rel="noopener noreferrer"&gt;docs.bird.com&lt;/a&gt; – inkl. SDKs für Node.js, Python, PHP, Go, Java, Ruby und Webhook-Setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Die Bird SMS API bietet mit 0,00331 $/ausgehender US-Nachricht einen der niedrigsten Einstiegspreise. Der kostenlose Plan eignet sich zum risikolosen Testen. Der Pro-Plan (49 $/Monat) ist für Teams mit 1.000 SMS/Monat ausgelegt.&lt;/p&gt;

&lt;p&gt;Beachte zusätzliche Kosten: US 10DLC Carrier-Gebühren, Mietgebühren für Telefonnummern und internationale Tarife. Kalkuliere diese frühzeitig ein.&lt;/p&gt;

&lt;p&gt;Nutze &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;, um deine Bird-Integration End-to-End zu testen – inklusive Anfragenerstellung, Umgebungsvariablen, Testketten und Delivery Checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Wie hoch ist der Preis pro Nachricht der Bird SMS API in den USA?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
0,00331 $ pro ausgehender US-SMS, 0,003 $ pro eingehender US-SMS (API-Basistarife). Zusätzlich fallen Carrier-Gebühren (10DLC) an.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ist Bird dasselbe wie MessageBird?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja, MessageBird wurde 2023 zu Bird. Das Unternehmen wurde 2011 gegründet, betreut u.a. Heineken, Booking.com, Uber und eBay. Einige Dokumentationen referenzieren noch MessageBird.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Berechnet Bird Gebühren für eingehende SMS?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja, 0,003 $/eingehender US-Nachricht. Auch Opt-out- und Hilfe-Antworten zählen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was ist der kostenlose Bird-Plan?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
5 SMS/Tag, 10 E-Mails/Tag und 15 KI-Agent-Nachrichten/Tag inklusive, API-Zugang ohne Kreditkarte. Ideal zum Testen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie vergleicht sich die Bird SMS-Preisgestaltung mit Twilio?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Bird (0,00331 $/SMS) ist günstiger als Twilio (0,0079 $/SMS). 100.000 SMS kosten bei Bird ca. 331 $, bei Twilio 790 $. Twilio bietet Volumenrabatte.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gibt es versteckte Gebühren bei Bird SMS?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja, z.B. 10DLC-Markenregistrierung, Kampagnengebühren (~10 $/Monat), Carrier-Zuschläge und Telefonnummernmieten (1–2 $/Monat für Long Codes). Internationale SMS sind deutlich teurer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie teste ich die Bird SMS API, ohne echte Nachrichten zu senden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nutze Apidogs Smart Mock-Funktion, um API-Antworten zu simulieren. Alternativ: Sandbox-Tools von Bird für Testnachrichten an eigene Nummer. Apidog erlaubt Testszenarien und Prüfungen ohne Produktivsystem.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Weiterführende Links:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://bird.com/en/pricing/sms" rel="noopener noreferrer"&gt;Bird SMS Pricing&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.bird.com" rel="noopener noreferrer"&gt;Bird API Docs&lt;/a&gt;
&lt;/li&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&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Twilio SMS API Kosten: Vollständige Preisübersicht für 2026</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 03 Apr 2026 04:00:42 +0000</pubDate>
      <link>https://dev.to/emree_demir/twilio-sms-api-kosten-vollstandige-preisubersicht-fur-2026-5d4o</link>
      <guid>https://dev.to/emree_demir/twilio-sms-api-kosten-vollstandige-preisubersicht-fur-2026-5d4o</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;US Long-Code SMS (ausgehend und eingehend): &lt;strong&gt;$0.0083 pro Nachricht&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;MMS ausgehend: &lt;strong&gt;$0.022 pro Nachricht&lt;/strong&gt;; MMS eingehend: &lt;strong&gt;$0.0165 pro Nachricht&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Gebührenfreie SMS: &lt;strong&gt;$0.0083 pro Nachricht&lt;/strong&gt; zuzüglich Anbieteraufschläge&lt;/li&gt;
&lt;li&gt;Miete für Short Code: &lt;strong&gt;$1.000/Monat&lt;/strong&gt; für einen zufälligen Code; &lt;strong&gt;$1.500/Monat&lt;/strong&gt; für einen Wunsch-Code&lt;/li&gt;
&lt;li&gt;10DLC Markenregistrierung: &lt;strong&gt;$4.50 einmalige Gebühr&lt;/strong&gt; (aktualisiert August 2025); Kampagnen von &lt;strong&gt;$1.50 bis $10/Monat&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Telefonnummer (Long Code): &lt;strong&gt;$1.15/Monat&lt;/strong&gt;; gebührenfrei: &lt;strong&gt;$2.15/Monat&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Anbietergebühren fallen zusätzlich zu allen Grundpreisen an&lt;/li&gt;
&lt;li&gt;Mengenrabatte treten automatisch ab 150.000 Nachrichten pro Monat in Kraft&lt;/li&gt;
&lt;li&gt;Kostenlose Testphase verfügbar; keine Kreditkarte zum Start erforderlich&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Einleitung
&lt;/h2&gt;

&lt;p&gt;Twilio ist die Standard-SMS-API für die meisten Entwicklerteams. Die Dokumentation ist gründlich, die Verfügbarkeit zuverlässig und die REST-API gut gestaltet. Doch sobald Sie von einem Nebenprojekt zu einer Produktions-App wechseln, wächst die Rechnung schnell. Sie zahlen nicht einen Preis pro Nachricht. Sie zahlen Twilios Grundgebühr, eine Anbietergebühr, eine Telefonnummerngebühr und möglicherweise zusätzlich 10DLC-Registrierungskosten.&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;Teste Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tipp:&lt;/strong&gt; Bevor Sie Ihre SMS-Integration entwickeln, testen Sie sie ordnungsgemäß. Apidog ermöglicht es Ihnen, automatisierte Testszenarien zu erstellen, die Ihre Twilio-Webhook-Antworten anhand Ihrer OpenAPI-Spezifikation validieren. Sie können Statuscodes bestätigen, Antwort-Body-Schemas überprüfen und Vertragstests in CI/CD ausführen. Testen Sie Apidog kostenlos, um Ihre SMS-Workflows zu validieren, bevor sie in Produktion gehen.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dieser Artikel schlüsselt jeden Posten in der Preisgestaltung von Twilio auf. Sie erfahren, was Ihre Rechnung beeinflusst, was leicht übersehen wird und wie sich Twilio im Vergleich zu Alternativen schlägt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Übersicht der Twilio SMS-Preisgestaltung
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.twilio.com/en-us/pricing/messaging" rel="noopener noreferrer"&gt;Twilio verwendet Pay-as-you-go-Preise&lt;/a&gt;. Sie zahlen pro Nachrichtensegment, pro Telefonnummer pro Monat und für alle optionalen Funktionen oder Registrierungen. Es gibt keine Verträge oder Mindestausgaben, es sei denn, Sie verhandeln einen Rabatt für feste Abnahmen bei Enterprise-Volumen.&lt;/p&gt;

&lt;p&gt;Der Grundtarif für US-SMS auf einem Long Code beträgt &lt;strong&gt;$0.0083 pro Nachrichtensegment&lt;/strong&gt; sowohl für eingehende als auch für ausgehende Nachrichten. Anbietergebühren, Nummernmiete und Compliance-Registrierung kommen jeden Monat zu diesem Grundtarif hinzu.&lt;/p&gt;

&lt;p&gt;Twilio bietet automatische Mengenrabatte an, die ab 150.000 Nachrichten pro Monat und Nummerntyp automatisch greifen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preisübersicht: SMS, MMS, gebührenfreie Nummern und Short Codes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Long Code SMS (10-stellige Nummern)
&lt;/h3&gt;

&lt;p&gt;Long Codes sind die standardmäßigen 10-stelligen Nummern für die meisten A2P (Application-to-Person) Nachrichten in den USA.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nachrichtentyp&lt;/th&gt;
&lt;th&gt;Preis pro Segment&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SMS ausgehend&lt;/td&gt;
&lt;td&gt;$0.0083&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SMS eingehend&lt;/td&gt;
&lt;td&gt;$0.0083&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MMS ausgehend&lt;/td&gt;
&lt;td&gt;$0.022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MMS eingehend&lt;/td&gt;
&lt;td&gt;$0.0165&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Praxis-Tipp&lt;/strong&gt;: Twilio berechnet pro &lt;strong&gt;Nachrichtensegment&lt;/strong&gt;, nicht pro Nachricht. Ein SMS-Segment umfasst 160 Zeichen (GSM-7). Bei Unicode (z. B. Emojis) sind es 70 Zeichen pro Segment. Beispiel: Eine Nachricht mit 200 Zeichen (ohne Unicode) kostet 2 Segmente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gebührenfreie Nummern
&lt;/h3&gt;

&lt;p&gt;Gebührenfreie Nummern nutzen dieselben SMS-Basistarife wie Long Codes: $0.0083 pro Segment für SMS, $0.022 für ausgehende MMS, $0.02 für eingehende MMS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vorteil:&lt;/strong&gt; Keine 10DLC-Registrierung notwendig, aber Verifizierung ist für vollen Durchsatz empfohlen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Short Codes (5-6-stellige Nummern)
&lt;/h3&gt;

&lt;p&gt;Short Codes sind für Kampagnen mit hohem Durchsatz gedacht. SMS-Preis pro Segment bleibt $0.0083, aber die Nummernmiete ist deutlich höher.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Short Code Typ&lt;/th&gt;
&lt;th&gt;Monatliche Kosten&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Zufälliger Short Code&lt;/td&gt;
&lt;td&gt;$1.000/Monat (vierteljährlich)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wunsch-Short Code&lt;/td&gt;
&lt;td&gt;$1.500/Monat (vierteljährlich)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eigenen Wunsch-Code mitbringen&lt;/td&gt;
&lt;td&gt;$500/Monat (vierteljährlich)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Für MMS auf Short Codes fällt eine Einrichtungsgebühr von $500 an.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mengenrabatte
&lt;/h3&gt;

&lt;p&gt;Twilio staffelt die Preise bei wachsendem Volumen (pro Nummerntyp):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Monatliche Nachrichten&lt;/th&gt;
&lt;th&gt;Preis pro Segment&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 bis 150.000&lt;/td&gt;
&lt;td&gt;$0.0083&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;150.001 bis 300.000&lt;/td&gt;
&lt;td&gt;$0.0081&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;300.001 bis 500.000&lt;/td&gt;
&lt;td&gt;$0.0079&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;500.001 bis 750.000&lt;/td&gt;
&lt;td&gt;$0.0077&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;750.001 bis 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;&lt;strong&gt;Hinweis:&lt;/strong&gt; Volumen werden pro Nummerntyp berechnet. Kombination von Long Code und gebührenfrei zählt nicht gemeinsam für Rabatte.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was Ihre Twilio-Rechnung beeinflusst
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Telefonnummerntyp
&lt;/h3&gt;

&lt;p&gt;Die gewählte Nummer (Long Code, gebührenfrei, Short Code) bestimmt, welche Preistabelle gilt. Aufteilung des Traffics auf verschiedene Nummerntypen kann das Erreichen von Rabattstufen erschweren.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nachrichtensegmente
&lt;/h3&gt;

&lt;p&gt;Lange Nachrichten oder Unicode erhöhen die Segmentanzahl und somit die Kosten. Prüfen Sie Ihre Nachrichtentexte auf Segmentlänge mit Tools wie &lt;a href="https://twiliodeved.github.io/message-segment-calculator/" rel="noopener noreferrer"&gt;Twilio's Segment Calculator&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Anbietergebühren
&lt;/h3&gt;

&lt;p&gt;Zusätzlich zum Grundpreis erhebt jeder große US-Anbieter einen eigenen Aufschlag pro Nachricht.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Anbieter&lt;/th&gt;
&lt;th&gt;Gebühr ausgehend&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;Andere&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;Für MMS sind die Gebühren höher (AT&amp;amp;T: $0.009, T-Mobile: $0.01). Beispiel: Ausgehende SMS an AT&amp;amp;T = $0.0083 + $0.0035 = &lt;strong&gt;$0.0118 pro Segment&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Zielland
&lt;/h3&gt;

&lt;p&gt;Internationale Preise variieren stark. Beispiel: UK $0.04, Indien $0.0029, Brasilien $0.075 pro SMS. Prüfen Sie die &lt;a href="https://www.twilio.com/en-us/pricing/messaging" rel="noopener noreferrer"&gt;Twilio Preis-CSV&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  10DLC-Registrierung
&lt;/h3&gt;

&lt;p&gt;Für US-Long Codes im A2P-Bereich ist die Registrierung von Marke und Kampagne Pflicht. Nicht registrierter Traffic wird gefiltert.&lt;/p&gt;

&lt;h2&gt;
  
  
  Versteckte Kosten und Gebühren
&lt;/h2&gt;

&lt;h3&gt;
  
  
  10DLC-Registrierungsgebühren
&lt;/h3&gt;

&lt;p&gt;Seit August 2025 gelten neue Gebühren:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Markenregistrierung:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Einzelunternehmer/Kleinvolumen: $4.50 einmalig
&lt;/li&gt;
&lt;li&gt;Standard: $46 einmalig&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Kampagnenregistrierung:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Überprüfung: $15 einmalig pro Kampagne
&lt;/li&gt;
&lt;li&gt;Monatliche Gebühr: $1.50 bis $10 je nach Typ&lt;/li&gt;
&lt;/ul&gt;


&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;Kampagnentyp&lt;/th&gt;
&lt;th&gt;Monatliche Gebühr&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Einzelunternehmer&lt;/td&gt;
&lt;td&gt;$2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Geringes Volumen gemischt&lt;/td&gt;
&lt;td&gt;$1.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Standard&lt;/td&gt;
&lt;td&gt;$10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wohltätigkeitsorganisation/501(c)(3)&lt;/td&gt;
&lt;td&gt;$3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notdienste&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;Standard-Überprüfung: $41.50. Einsprüche: $11. Erneute Authentifizierung: $12.50 pro Versuch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Telefonnummerngebühren
&lt;/h3&gt;

&lt;p&gt;Monatliche Miete: Long Codes $1.15, gebührenfrei $2.15. Viele Nummern für A/B-Tests oder lokale Präsenz erhöhen die Fixkosten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gebühr für fehlgeschlagene Nachrichten
&lt;/h3&gt;

&lt;p&gt;$0.001 pro fehlgeschlagener Nachricht (Status "failed") – beachten bei Debugging und Anbieter-Filtering.&lt;/p&gt;

&lt;h3&gt;
  
  
  Optionale Funktions-Add-ons
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Engagement Suite (Linkverkürzung, Klick-Tracking): $0.015/Nachricht nach 1.000 kostenlosen pro Monat&lt;/li&gt;
&lt;li&gt;Compliance Toolkit: $0.015/Nachricht&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Support-Pläne
&lt;/h3&gt;

&lt;p&gt;Kostenloser Support ist limitiert. Kostenpflichtige Pläne starten bei $250/Monat ("Developer"). Für produktive Anwendungen ist oft ein Vertrag notwendig.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie Twilio im Vergleich zu Alternativen abschneidet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Anbieter&lt;/th&gt;
&lt;th&gt;US SMS ausgehend&lt;/th&gt;
&lt;th&gt;US SMS eingehend&lt;/th&gt;
&lt;th&gt;Telefonnummer&lt;/th&gt;
&lt;th&gt;10DLC erforderlich&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 + Anbietergebühren&lt;/td&gt;
&lt;td&gt;$0.0083 + Anbietergebühren&lt;/td&gt;
&lt;td&gt;$1.15/Monat&lt;/td&gt;
&lt;td&gt;Ja&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;$0.80/Monat&lt;/td&gt;
&lt;td&gt;Ja&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;$1.00/Monat&lt;/td&gt;
&lt;td&gt;Ja&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;Variiert&lt;/td&gt;
&lt;td&gt;Ja&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Praxis:&lt;/strong&gt; Plivo und Telnyx sind günstiger. Twilio punktet bei DX, Dokumentation und Features wie Messaging Services, ist aber teurer. Für reines Volumen zu niedrigen Kosten sind Alternativen oft besser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie man Twilio kostenlos testet
&lt;/h2&gt;

&lt;p&gt;Twilio bietet ein kostenloses Testkonto ohne Kreditkarte. Sie erhalten ein Testguthaben und können:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Eine Test-Telefonnummer bereitstellen&lt;/li&gt;
&lt;li&gt;SMS über die API senden und empfangen&lt;/li&gt;
&lt;li&gt;Webhook-Zustellung testen&lt;/li&gt;
&lt;li&gt;Twilio-Konsole und Logs ausprobieren&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Testnachrichten an nicht verifizierte Nummern enthalten das Präfix "Sent from your Twilio trial account". Für produktiven Einsatz ist ein Upgrade nötig.&lt;/p&gt;

&lt;p&gt;Keine monatlichen Mindestausgaben im Pay-as-you-go-Tarif.&lt;/p&gt;

&lt;h2&gt;
  
  
  So testen Sie Ihre Twilio SMS-Integration mit Apidog
&lt;/h2&gt;

&lt;p&gt;Nach dem Einrichten Ihrer Twilio-Zugangsdaten und Webhooks sollten Sie Ihre Integration automatisiert testen. Manuelles Testen deckt keine Edge-Cases und keine Schemafehler ab.&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 Testworkflow" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mit &lt;strong&gt;Apidog Testszenarien&lt;/strong&gt; können Sie:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ihre Twilio-Webhook-Spezifikation direkt importieren&lt;/li&gt;
&lt;li&gt;Schritte für jeden Nachrichtenfluss anlegen: SMS senden, Callback empfangen, Antwort verarbeiten&lt;/li&gt;
&lt;li&gt;Den Orchestrierungsmodus nutzen, um Abläufe zu steuern&lt;/li&gt;
&lt;li&gt;Daten zwischen Schritten mit &lt;code&gt;{{$.stepId.response.body.field}}&lt;/code&gt; weitergeben (z. B. Nachrichten-SID)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Beispiel für ein automatisiertes Testszenario:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;SMS senden&lt;/span&gt;
    &lt;span class="na"&gt;request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;POST&lt;/span&gt;
      &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json&lt;/span&gt;
      &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;To&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;+49123456789"&lt;/span&gt;
        &lt;span class="na"&gt;From&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;+49111222333"&lt;/span&gt;
        &lt;span class="na"&gt;Body&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Testnachricht"&lt;/span&gt;
    &lt;span class="na"&gt;extract&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;messageSid&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$.response.body.sid&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Webhook-Callback empfangen&lt;/span&gt;
    &lt;span class="na"&gt;request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;POST&lt;/span&gt;
      &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://your-app.com/sms-webhook&lt;/span&gt;
      &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;MessageSid&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{$.SMS&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;senden.messageSid}}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Vertragstests:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Definieren Sie Ihr erwartetes Webhook-Payload-Schema in Ihrer OpenAPI-Spezifikation. Apidog prüft dann:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Statuscode wie dokumentiert&lt;/li&gt;
&lt;li&gt;Alle Pflichtfelder vorhanden&lt;/li&gt;
&lt;li&gt;Feldtypen stimmen&lt;/li&gt;
&lt;li&gt;Keine unerwarteten Felder (sofern nicht explizit erlaubt)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So erhalten Sie vollständige Testabdeckung ohne eigene Assertion-Skripte.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Schnellstart:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&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;Laden Sie Apidog kostenlos herunter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Importieren Sie Ihre Twilio-API-Spezifikation oder definieren Sie das Webhook-Schema&lt;/li&gt;
&lt;li&gt;Erstellen Sie Testszenarien für SMS-Versand und -Empfang&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Twilio SMS startet ab $0.0083 pro Segment, aber tatsächliche Kosten beinhalten Anbietergebühren, Nummernmiete und ggf. 10DLC-Registrierung. Eine ausgehende AT&amp;amp;T-SMS kostet realistisch $0.0118 pro Segment. Für Standard-10DLC-Kampagnen kommen $10/Monat pro Kampagne dazu.&lt;/p&gt;

&lt;p&gt;Preise sind transparent, Rabatte automatisch, aber Sie müssen alle Einzelposten berücksichtigen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Empfehlung:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Modellieren Sie Ihre Kosten, bauen Sie Ihre Integration, und testen Sie sie gründlich. Mit Apidogs Testszenarien und Vertragstests validieren Sie Twilio-Workflows automatisiert und ohne Custom-Testcode.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;F: Was ist der Grundpreis für eine ausgehende US-SMS über Twilio?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: $0.0083 pro Segment (Long Code). Anbieteraufschläge kommen hinzu. AT&amp;amp;T z. B. +$0.0035 = $0.0118/Segment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Berechnet Twilio Gebühren für eingehende SMS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Ja, $0.0083/Segment auf Long Code und gebührenfreien Nummern. Anbietergebühren können ebenfalls anfallen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Was ist 10DLC und muss ich dafür bezahlen?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: 10DLC ist das US-Registrierungssystem für A2P-SMS via Long Code. Registrierung ist Pflicht: Marke $4.50 einmalig, Kampagne $1.50–$10/Monat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Wie viel kostet ein Twilio Short Code?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Zufällig: $1.000/Monat, Wunsch: $1.500/Monat (jeweils vierteljährlich abgerechnet). MMS-Aktivierung: $500 einmalig.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Bietet Twilio Mengenrabatte an?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Ja. Ab 150.001 Nachrichten/Monat und Nummerntyp sinken die Preise stufenweise auf bis zu $0.0073/Segment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Gibt es eine kostenlose Testphase für Twilio?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Ja. Kostenloses Testkonto, kein Kreditkarte nötig, echtes Messaging möglich (mit Testpräfix).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;F: Was ist die günstigste Twilio-Alternative für SMS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Plivo ($0.005/ausgehend, $0.00035/eingehend) und Telnyx ($0.004 pro Nachricht) sind günstiger, erfordern aber ebenfalls 10DLC. Twilio bietet dafür mehr Features und besseren Support für komplexe Fälle.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Vonage SMS API Kosten: Preise 2026</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 03 Apr 2026 03:53:48 +0000</pubDate>
      <link>https://dev.to/emree_demir/vonage-sms-api-kosten-preise-2026-4g0m</link>
      <guid>https://dev.to/emree_demir/vonage-sms-api-kosten-preise-2026-4g0m</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Die Preise für die Vonage SMS API starten in den USA bei &lt;strong&gt;$0.00809 pro ausgehender Nachricht&lt;/strong&gt; und &lt;strong&gt;$0.00649 pro eingehender Nachricht&lt;/strong&gt;. Es gibt keine monatlichen Mindestgebühren – Sie zahlen nur, was Sie tatsächlich senden oder empfangen. Internationale Preise variieren stark, in manchen Ländern kostet eine SMS mehr als $1.00. Zur Entwicklung und zum Testen einer Vonage SMS-Integration empfiehlt sich Apidog: Testanfragen versenden, Antworten validieren und Fehler aufdecken, bevor Ihr Code live geht.&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;Testen Sie Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Einführung
&lt;/h2&gt;

&lt;p&gt;Wenn Sie bereits mit Nexmo gearbeitet haben, sind Sie mit Vonage vertraut. Vonage übernahm 2016 Nexmo, die Entwicklerplattform für SMS- und Kommunikations-APIs. Noch immer bleibt &lt;a href="https://developer.vonage.com" rel="noopener noreferrer"&gt;developer.vonage.com&lt;/a&gt; (ehemals nexmo.com/developers) der zentrale Anlaufpunkt für technische Ressourcen. Seit der Übernahme durch Ericsson 2022 ist Vonage ein globaler Telekommunikationsanbieter mit Fokus auf das API-Geschäft.&lt;/p&gt;

&lt;p&gt;Vonage zählt heute über 100.000 Unternehmenskunden und 1,6 Millionen registrierte Entwickler. Die Plattform bietet ein ausgereiftes Pay-as-you-go-Preismodell ohne Vertragsbindung und deckt über 190 Länder ab.&lt;/p&gt;

&lt;p&gt;💡Bevor Sie Ihre Integration weiter vorantreiben, benötigen Sie ein gutes API-Testwerkzeug. &lt;strong&gt;Apidog&lt;/strong&gt; ermöglicht es Ihnen, Testszenarien für Ihre Vonage SMS-Anfragen zu erstellen, Antworten anhand erwarteter Schemas zu validieren und mehrere API-Aufrufe in einem einzigen Workflow zu verketten. Probieren Sie Apidog kostenlos aus. Keine Kreditkarte erforderlich.&lt;/p&gt;

&lt;h2&gt;
  
  
  Übersicht der Vonage SMS-Preise
&lt;/h2&gt;

&lt;p&gt;Vonage verwendet für die SMS API ein Pay-as-you-go-Modell. Es gibt keine Plattform- oder Grundgebühr. Sie zahlen pro Nachricht, wobei die Preise vom Zielland und Nummerntyp abhängen.&lt;/p&gt;

&lt;p&gt;Kurzüberblick der US-Preise:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nachrichtentyp&lt;/th&gt;
&lt;th&gt;Preis pro Nachricht&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ausgehende SMS (US LVN)&lt;/td&gt;
&lt;td&gt;$0.00809&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eingehende SMS (US LVN)&lt;/td&gt;
&lt;td&gt;$0.00649&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ausgehende SMS (US Toll-Free)&lt;/td&gt;
&lt;td&gt;Vertrieb kontaktieren&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eingehende SMS (US Toll-Free)&lt;/td&gt;
&lt;td&gt;Kostenlos&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;LVN&lt;/strong&gt; steht für Local Virtual Number (10DLC, die Standard-US-Langnummer). Die Preise werden pro Land festgelegt und in Echtzeit nach Nutzung abgerechnet.&lt;/p&gt;

&lt;p&gt;Die vollständige globale Preisliste gibt es im Excel-Format auf Ihrem Nexmo/Vonage-Dashboard. Damit können Sie internationale Kampagnen exakt kalkulieren.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preisaufschlüsselung: Ausgehend, Eingehend, MMS und WhatsApp
&lt;/h2&gt;

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

&lt;p&gt;Ausgehende Nachrichten sind SMS, die Sie von Ihrer Anwendung an Endnutzer senden. US-Tarif: &lt;strong&gt;$0.00809 pro Nachricht&lt;/strong&gt; (über lokale virtuelle Nummer). Preise können sich ändern – das Vonage-Dashboard ist die Referenz.&lt;/p&gt;

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

&lt;p&gt;Eingehende Nachrichten sind SMS, die auf einer von Ihnen gemieteten Nummer empfangen werden. In den USA: &lt;strong&gt;$0.00649 pro eingehender Nachricht&lt;/strong&gt;. Gebührenfreie Nummern nehmen teils kostenlos SMS entgegen – prüfen Sie das in Ihrem Account.&lt;/p&gt;

&lt;h3&gt;
  
  
  MMS-Preise
&lt;/h3&gt;

&lt;p&gt;Vonage unterstützt MMS über die Messages API, veröffentlicht aber keine festen Preise dafür. Für MMS-Preise müssen Sie den Vertrieb kontaktieren, da diese je nach Carrier und Land variieren.&lt;/p&gt;

&lt;h3&gt;
  
  
  WhatsApp über Vonage
&lt;/h3&gt;

&lt;p&gt;WhatsApp-Nachrichten laufen über die Messages API. Es fallen zwei Gebühren an:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;WhatsApp-Gebühr:&lt;/strong&gt; Meta berechnet pro zugestellter Nachricht, abhängig von der Gesprächskategorie (Marketing, Utility, Authentifizierung, Service). &lt;a href="https://www.whatsapp.com/business/pricing" rel="noopener noreferrer"&gt;WhatsApp-Preise hier&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vonage-Plattformgebühr:&lt;/strong&gt; Startet ab $0.00015 pro Nachricht, abhängig von Kategorie und Volumen.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Unterstützt, abgerechnet mit &lt;strong&gt;$0.0011 pro zugestellter Nachricht&lt;/strong&gt; über die Messages API.&lt;/p&gt;

&lt;h3&gt;
  
  
  RCS (Rich Communication Services)
&lt;/h3&gt;

&lt;p&gt;Vonage unterstützt RCS-Nachrichten mit anbieterspezifischen US-Tarifen:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Anbieter&lt;/th&gt;
&lt;th&gt;RCS Rich (textbasiert)&lt;/th&gt;
&lt;th&gt;RCS Rich Media&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;Zusätzlich fällt eine einmalige Einrichtungsgebühr von &lt;strong&gt;$600 pro Land&lt;/strong&gt; für RCS an.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was Ihre Vonage-Rechnung beeinflusst
&lt;/h2&gt;

&lt;p&gt;Mehrere Faktoren bestimmen Ihre monatlichen Kosten:&lt;/p&gt;

&lt;h3&gt;
  
  
  Zielland
&lt;/h3&gt;

&lt;p&gt;Der wichtigste Kostenfaktor. SMS in die USA kosten nur Bruchteile eines Cents, Nachrichten in Länder mit schlechter Netzabdeckung können 0,50 $ oder mehr kosten. Prüfen Sie stets die globale Preisliste vor der Kampagne.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nummerntyp
&lt;/h3&gt;

&lt;p&gt;In den USA gibt es:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Langnummer (10DLC):&lt;/strong&gt; Standardnummer, günstig für P2P und App-to-Person.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gebührenfreie Nummer:&lt;/strong&gt; Höherer Durchsatz, eingehende SMS oft kostenlos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kurznummer:&lt;/strong&gt; Für Marketing und hohes Volumen, Vorabgenehmigung und Registrierung nötig.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Jeder Typ hat eigene Preise und Mietkosten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mietgebühren für Nummern
&lt;/h3&gt;

&lt;p&gt;Virtuelle Nummern kosten extra. US-Langnummern starten bei wenigen Dollar pro Monat, gebührenfreie Nummern und Kurznummern sind teurer. Mietkosten fallen zusätzlich zu den Nachrichtenkosten an.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nachrichtenkodierung
&lt;/h3&gt;

&lt;p&gt;Standard-SMS: 160 Zeichen (GSM-7). Unicode (z. B. Emojis) reduziert das Limit auf 70 Zeichen. Nachrichten, die das Limit überschreiten, werden in mehrere SMS aufgeteilt – das kann die Kosten schnell erhöhen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Carrier-Zuschläge
&lt;/h3&gt;

&lt;p&gt;US-Carrier berechnen eigene Zuschläge (vor allem für A2P-Nachrichten). Vonage reicht diese durch. Sie sind auf der Monatsabrechnung explizit aufgeführt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Versteckte Kosten, auf die Sie achten sollten
&lt;/h2&gt;

&lt;p&gt;Die pro-Nachricht-Preise sind transparent, aber es gibt Zusatzkosten:&lt;/p&gt;

&lt;h3&gt;
  
  
  Support-Stufen
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kostenlos:&lt;/strong&gt; Community-Forum, Doku.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business:&lt;/strong&gt; Kostenpflichtig.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Premium (24/7, dedizierter Account Manager):&lt;/strong&gt; &lt;strong&gt;$3.300/Monat&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für kritische, kundennahe Workflows sollten Sie Support-Kosten einplanen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Zusatz-APIs
&lt;/h3&gt;

&lt;p&gt;Einige Vonage-APIs kosten monatlich:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Add-on&lt;/th&gt;
&lt;th&gt;Monatliche Kosten&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Audit API&lt;/td&gt;
&lt;td&gt;$550/Monat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auto-redact (PII-Entfernung)&lt;/td&gt;
&lt;td&gt;$1.100/Monat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reports API&lt;/td&gt;
&lt;td&gt;$495/Monat (oder $0.00049/CDR Pay-as-you-go)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Audit API:&lt;/strong&gt; Für hohe Compliance-Anforderungen.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Auto-redact:&lt;/strong&gt; Entfernt automatisch PII aus Logs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kosten der Verify API
&lt;/h3&gt;

&lt;p&gt;Für Zwei-Faktor-Authentifizierung: &lt;strong&gt;$0.0572 pro erfolgreicher Verifizierung&lt;/strong&gt; (plus Gebühren für Nachrichten/Anrufversuche). Fehlversuche verursachen trotzdem SMS-Kosten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nummernregistrierung (US 10DLC)
&lt;/h3&gt;

&lt;p&gt;Für A2P-SMS mit Langnummern in den USA ist die Registrierung bei The Campaign Registry (TCR) Pflicht. Kosten:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Markenregistrierung: einmalig&lt;/li&gt;
&lt;li&gt;Kampagnenregistrierung: monatlich pro Kampagne&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fehlende Registrierung führt zu blockierten Nachrichten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vonage vs. Alternativen
&lt;/h2&gt;

&lt;p&gt;US-Preise im Vergleich:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Anbieter&lt;/th&gt;
&lt;th&gt;US ausgehende SMS&lt;/th&gt;
&lt;th&gt;US eingehende SMS&lt;/th&gt;
&lt;th&gt;Kostenlose Testversion&lt;/th&gt;
&lt;th&gt;Support&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;Ja (nur verifizierte Nummern)&lt;/td&gt;
&lt;td&gt;Kostenpflichtige Stufen; $3.300/Monat für 24/7&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;Ja ($15 Guthaben)&lt;/td&gt;
&lt;td&gt;Kostenpflichtiger Support ab $250/Monat&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;Ja&lt;/td&gt;
&lt;td&gt;Kostenloser Basis; kostenpflichtige Stufen&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;Ja ($5 Guthaben)&lt;/td&gt;
&lt;td&gt;24/7 E-Mail kostenlos; Telefon mit bezahlter Option&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Zu beachten:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Telnyx am günstigsten für US-SMS, aber neuer und kleiner.&lt;/li&gt;
&lt;li&gt;Plivo: Günstig für eingehende SMS, Entwickler-freundlich.&lt;/li&gt;
&lt;li&gt;Twilio: Größtes Ökosystem, beste Doku, aber teurer.&lt;/li&gt;
&lt;li&gt;Vonage: Preislich mittig, durch Ericsson starke Carrier-Beziehungen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neben dem Preis zählen: Zustellrate, Compliance, Qualität der Entwicklertools und Support.&lt;/p&gt;

&lt;h2&gt;
  
  
  So testen Sie Vonage kostenlos
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.vonage.com/communications-apis/pricing/" rel="noopener noreferrer"&gt;Vonage bietet ein kostenloses Testkonto an.&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Was Sie erhalten
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Virtuelle Testnummer für SMS-Senden und -Empfangen&lt;/li&gt;
&lt;li&gt;API-Schlüssel &amp;amp; Geheimnis&lt;/li&gt;
&lt;li&gt;Volle Entwicklerdokumentation und SDKs&lt;/li&gt;
&lt;li&gt;Testguthaben für begrenzte Anzahl Nachrichten&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Was ist eingeschränkt
&lt;/h3&gt;

&lt;p&gt;Im Testmodus können Sie nur an verifizierte Nummern senden. Upgrade auf ein kostenpflichtiges Konto ist erforderlich, um beliebige Nummern zu erreichen.&lt;/p&gt;

&lt;h3&gt;
  
  
  So beginnen Sie
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Gehen Sie zu &lt;a href="https://dashboard.nexmo.com" rel="noopener noreferrer"&gt;dashboard.nexmo.com&lt;/a&gt; oder &lt;a href="https://www.vonage.com/communications-apis/" rel="noopener noreferrer"&gt;vonage.com/communications-apis&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Kostenlos registrieren&lt;/li&gt;
&lt;li&gt;Telefonnummer bestätigen&lt;/li&gt;
&lt;li&gt;API-Schlüssel und Geheimnis aus dem Dashboard holen&lt;/li&gt;
&lt;li&gt;Ersten API-Aufruf per REST oder SDK absetzen&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 bietet Server-SDKs für Node.js, Python, PHP, Ruby, Java, .NET und Go. Alternativ nutzen Sie direkt die REST API mit jedem HTTP-Client.&lt;/p&gt;

&lt;h2&gt;
  
  
  So testen Sie Ihre Vonage SMS-Integration mit Apidog
&lt;/h2&gt;

&lt;p&gt;Mit Ihren Vonage API-Credentials können Sie Ihre Integration vor dem Go-Live effizient testen. Apidog ist für diese Aufgabe optimiert.&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;p&gt;Mit den „Test-Szenarien“ von Apidog lassen sich mehrere API-Aufrufe zu automatisierten Testflüssen verketten – genauso wie Ihr tatsächlicher Workflow: SMS senden, Status prüfen, Fehler abfangen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Einrichten eines Testszenarios
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Navigieren Sie in Apidog zum Modul &lt;strong&gt;Tests&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Erstellen Sie ein neues Testszenario.&lt;/li&gt;
&lt;li&gt;Fügen Sie Schritte hinzu, z.B.:

&lt;ul&gt;
&lt;li&gt;Import aus Ihrer API-Spezifikation (OpenAPI)&lt;/li&gt;
&lt;li&gt;Benutzerdefinierte Anfrage an Vonage-REST-API&lt;/li&gt;
&lt;li&gt;Import eines cURL-Befehls aus der Vonage-Doku&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Beispiel:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Für einen SMS-Sende-Test nutzen Sie eine POST-Anfrage an&lt;br&gt;&lt;br&gt;
&lt;code&gt;https://rest.nexmo.com/sms/json&lt;/code&gt;&lt;br&gt;&lt;br&gt;
mit API-Schlüssel, Geheimnis, Absender, Empfänger und Nachricht als Formularparameter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Validierung der Antwort
&lt;/h3&gt;

&lt;p&gt;Apidog prüft die Antwort gegen Ihr Schema. Für Vonage SMS API sollte die Response ein JSON-Objekt mit &lt;code&gt;messages&lt;/code&gt;-Array enthalten. Erfolgreich ist:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP-Statuscode ist 200&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;messages[0].status&lt;/code&gt; ist &lt;code&gt;"0"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;messages[0].message-id&lt;/code&gt; ist nicht leer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fügen Sie Assertions in Apidog hinzu, um genau das zu prüfen. Fehlerhafte Statuscodes markieren den Testrot und zeigen die Antwort zum Debuggen an.&lt;/p&gt;

&lt;h3&gt;
  
  
  Datenübergabe zwischen Anfragen
&lt;/h3&gt;

&lt;p&gt;Mit der Syntax &lt;code&gt;{{$.stepId.response.body.field}}&lt;/code&gt; übergeben Sie Daten zwischen Schritten. Beispiel: &lt;code&gt;message-id&lt;/code&gt; aus Schritt 1 automatisch in Schritt 2 (Statusabfrage) einfügen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ausführen von Tests in CI/CD
&lt;/h3&gt;

&lt;p&gt;Binden Sie Apidog in Ihre CI/CD-Pipeline ein (GitHub Actions, GitLab CI, Jenkins):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exportieren Sie Ihr Testszenario.&lt;/li&gt;
&lt;li&gt;Führen Sie es mit Apidog CLI bei jedem Pull Request aus.&lt;/li&gt;
&lt;li&gt;So erkennen Sie Integrations-Fehler, bevor sie in die Produktion gelangen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Testen Sie es kostenlos unter &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;. Keine Kreditkarte erforderlich.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Vonage SMS API ist Pay-as-you-go ohne Grundgebühr. US-SMS kosten $0.00809 (ausgehend) bzw. $0.00649 (eingehend). Die tatsächlichen Kosten hängen von Land, Nummerntyp und Nachrichtenkodierung ab. Premium-Features wie Audit API, Auto-redact und 24/7-Support verursachen zusätzliche monatliche Kosten.&lt;/p&gt;

&lt;p&gt;Vergleichen Sie Alternativen: Telnyx und Plivo sind günstiger, Twilio hat das größte Ökosystem. Vonage punktet mit globaler Reichweite und Carrier-Grade-Infrastruktur (Ericsson). &lt;/p&gt;

&lt;p&gt;Nutzen Sie Apidog, um Ihre Vonage-Integration vor dem Go-Live vollständig zu testen: Nachrichtenflüsse abbilden, Antworten prüfen, Fehler früh erkennen.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ist Vonage dasselbe wie Nexmo?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja. Vonage hat Nexmo 2016 übernommen. Die Entwicklerplattform läuft weiterhin über &lt;a href="https://developer.vonage.com" rel="noopener noreferrer"&gt;developer.vonage.com&lt;/a&gt;, ältere Integrationen nutzen noch &lt;code&gt;rest.nexmo.com&lt;/code&gt; als Endpoint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verlangt Vonage eine monatliche Gebühr für SMS?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nein. Sie zahlen pro Nachricht, plus eventuelle Mietgebühren für virtuelle Nummern. Zusatzfunktionen wie Audit API oder Auto-redact sind kostenpflichtige Add-ons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie viel kostet eine Vonage Telefonnummer?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
US-Langnummern starten bei wenigen Dollar pro Monat. Gebührenfreie Nummern und Kurznummern sind teurer. Prüfen Sie das Dashboard für aktuelle Preise in Ihrem Land.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welche Länder unterstützt Vonage SMS?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Über 190 Länder. Preise variieren stark – einige Märkte kosten 0,50 $ oder mehr pro Nachricht. Die globale Preisliste finden Sie im Vonage-Dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bietet Vonage Mengenrabatte?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja. Für hohes Volumen können Sie individuelle Konditionen verhandeln. Bis dahin gelten die Standardtarife.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich eingehende SMS kostenlos empfangen?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
US-Gebührenfreie Nummern empfangen oft kostenlos SMS. Langnummern kosten $0.00649 pro eingehender Nachricht. Preise variieren je nach Land.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie schneidet Vonage im Vergleich zu Twilio für SMS ab?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Der US-Preis von Vonage ($0.00809) ist leicht höher als Twilio ($0.0079). Twilio bietet mehr Integrationen und ein größeres Entwicklernetzwerk. Vonage punktet mit Carrier-Level-Partnerschaften (Ericsson) und attraktiven internationalen Preisen. Für reine US-SMS ist der Preisunterschied minimal – Entwicklererfahrung und Support sind oft entscheidend.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Cursor 3: Auswirkungen für API-Entwickler</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 03 Apr 2026 03:49:36 +0000</pubDate>
      <link>https://dev.to/emree_demir/cursor-3-auswirkungen-fur-api-entwickler-30ei</link>
      <guid>https://dev.to/emree_demir/cursor-3-auswirkungen-fur-api-entwickler-30ei</guid>
      <description>&lt;p&gt;&lt;strong&gt;Kurz gesagt:&lt;/strong&gt; Cursor 3 wurde am 2. April 2026 veröffentlicht und ersetzt die IDE-zentrierte Benutzeroberfläche durch einen Agenten-zentrierten Arbeitsbereich. Für API-Entwickler sind die größten Neuerungen die parallele Ausführung von Agenten, umfangreichere MCP-Tool-Ausgaben und eine Übergabe von der Cloud zum lokalen System, die Ihre Workflows ohne Unterbrechung am Laufen hält. Wenn Sie Cursor 3 mit dem MCP-Server von Apidog koppeln, können Ihre KI-Agenten Ihre Live-API-Spezifikationen lesen und präzisen, schema-bewussten Code generieren, ohne jegliches Kopieren und Einfügen.&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;Teste Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Die Veränderung, die Sie wahrscheinlich kommen sahen
&lt;/h2&gt;

&lt;p&gt;KI-Code-Editoren werden stetig leistungsfähiger, aber Cursor 3 ist mehr als ein simples Update – es verändert grundlegend, wie eine KI-Entwicklungsumgebung aufgebaut ist.&lt;/p&gt;

&lt;p&gt;Vor Cursor 3 arbeiteten Sie wie in einer klassischen IDE: Datei öffnen, Agenten um Hilfe bitten, Unterschiede prüfen, weiterarbeiten. Agenten waren lediglich Assistenten.&lt;/p&gt;

&lt;p&gt;Jetzt stehen Agenten im Mittelpunkt. Sie verwalten mehrere Agenten parallel, ähnlich wie Tabs im Browser, und beobachten die jeweiligen Ausgaben. Das ist besonders für API-Entwickler relevant, deren Arbeit ohnehin parallel und koordiniert abläuft – Endpunkte schreiben, Verträge testen, Dokumentation aktualisieren und Schemafehler beheben passieren in jedem Projekt nebeneinander.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Hinweis&lt;/strong&gt;: Cursor 3 kennt Ihre API-Spezifikation nicht automatisch. Verbinden Sie deshalb den Apidog MCP Server. Einmal eingerichtet, können Ihre Cursor-Agenten OpenAPI-Schemas, Endpunktdefinitionen und Testszenarien direkt von &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; abrufen. So stimmen Feldnamen, Strukturen und generierter Code mit Ihrer Spezifikation überein.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dieser Artikel zeigt die wichtigsten Änderungen in Cursor 3, erklärt ihre Bedeutung für die API-Entwicklung und gibt eine konkrete Schritt-für-Schritt-Anleitung für den Workflow mit dem Apidog MCP Server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was ist neu in Cursor 3
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cursor.com/blog/cursor-3" rel="noopener noreferrer"&gt;Cursor 3&lt;/a&gt; wurde am 2. April 2026 veröffentlicht. Das zentrale Feature ist das neue Agentenfenster, aber es gibt weitere, speziell für API-Entwickler relevante Änderungen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agentenfenster
&lt;/h3&gt;

&lt;p&gt;Das Agentenfenster stellt Agenten in den Mittelpunkt. Sie können mehrere Agenten gleichzeitig über verschiedene Repositories hinweg ausführen – lokal, in Git-Worktrees, der Cursor-Cloud oder via SSH auf Remote-Systemen.&lt;/p&gt;

&lt;p&gt;Zugriff: &lt;code&gt;Cmd+Shift+P&lt;/code&gt; → &lt;code&gt;Agents Window&lt;/code&gt;. Die klassische IDE bleibt verfügbar.&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%2F4oyy02bv4kn9xdm2zubf.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%2F4oyy02bv4kn9xdm2zubf.png" alt="Agentenfenster"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Praxisbeispiel&lt;/strong&gt;: Während ein Agent einen neuen API-Endpunkt erstellt, behebt ein anderer einen Fehler in einer Bibliothek. Sie beobachten, vergleichen und übernehmen die besten Änderungen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Designmodus
&lt;/h3&gt;

&lt;p&gt;Im Agentenfenster ermöglicht der Designmodus das direkte Annotieren von Browser-UIs. Markieren Sie Elemente und fügen Sie sie dem Agentenkontext hinzu – ganz ohne lange Beschreibungen. Besonders praktisch beim Frontend-Test von APIs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shortcuts:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Cmd+Shift+D&lt;/code&gt; – Designmodus umschalten
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Shift+Drag&lt;/code&gt; – Bereich auswählen
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd+L&lt;/code&gt; – Element zum Chat hinzufügen&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6pfv5dbgfl43dnkza119.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%2F6pfv5dbgfl43dnkza119.png" alt="Designmodus"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  MCP-Apps: Strukturierte Inhaltsausgabe
&lt;/h3&gt;

&lt;p&gt;MCP-Apps liefern jetzt strukturierte Inhalte statt reinem Text. Besonders mit dem Apidog MCP Server profitieren Sie: Endpunktdefinitionen, Schemadaten und Testergebnisse kommen als sauber strukturierte Daten zum Agenten – kein Text-Parsing mehr.&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%2F479ffyk6lfbdc6dsuua9.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%2F479ffyk6lfbdc6dsuua9.png" alt="MCP strukturierte Ausgabe"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Worktrees, /best-of-n und Isolation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/worktree&lt;/code&gt;: Erstellt einen isolierten Git-Worktree. Ideal für risikofreie Experimente und neue Module.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/best-of-n&lt;/code&gt;: Führt dieselbe Aufgabe parallel mit mehreren Modellen aus, jeweils in eigenem Worktree. Perfekt, wenn Sie unterschiedliche Implementierungen vergleichen wollen (z. B. Claude, GPT-4o, Gemini).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cloud-zu-Lokal-Übergabe
&lt;/h3&gt;

&lt;p&gt;Agenten können Aufgaben zwischen Cloud und lokalem System verschieben. Starten Sie eine Aufgabe in der Cloud, testen Sie sie lokal gegen echte Dienste oder lassen Sie sie in der Cloud weiterlaufen, wenn Ihr Laptop aus ist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was es für die API-Entwicklung bedeutet
&lt;/h2&gt;

&lt;p&gt;API-Arbeit ist geprägt von häufigem Kontextwechsel zwischen Spezifikation, Client (&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;), Code-Editor, Terminal und Dokumentation. Cursor 3 bringt hier praktische Verbesserungen – vor allem in Verbindung mit der MCP-Integration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Parallele Endpunktentwicklung
&lt;/h3&gt;

&lt;p&gt;Statt Endpunkte nacheinander zu bauen, können Sie jetzt für jeden Endpunkt einen Agenten parallel starten. Beschreiben Sie das Ziel, lassen Sie die Agenten arbeiten, prüfen Sie die Ausgaben und übernehmen Sie die besten Resultate. Das verkürzt die Zeit bis zu einem prüfbaren Entwurf erheblich.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schema-bewusste Codegenerierung
&lt;/h3&gt;

&lt;p&gt;Ohne Zugriff auf Ihre OpenAPI-Spezifikation rät ein Agent nur. Mit angebundener Apidog-MCP-Integration liest der Agent das echte Schema und generiert Code, der exakt Ihren Vorgaben entspricht (z. B. korrekte Felder für &lt;code&gt;POST /orders&lt;/code&gt;). Das reduziert Korrekturaufwand.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vertragstests im Editor
&lt;/h3&gt;

&lt;p&gt;Agenten können Terminalbefehle ausführen. Kombiniert mit der &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog CLI&lt;/a&gt; lassen sich Testszenarien direkt im Editor automatisiert validieren:&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; &amp;lt;test-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Der Agent sieht das Ergebnis, passt bei Fehlern den Code an und wiederholt den Test. Das ist eine enge Feedbackschleife zwischen Implementierung und Tests.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dokumentation aktuell halten
&lt;/h3&gt;

&lt;p&gt;Cursor-Agenten können die Apidog-Dokumentation via MCP lesen und prüfen, ob Code und Spezifikation übereinstimmen. Abweichungen werden angezeigt. Sie entscheiden, was angepasst wird – Dokumentationsdrift wird so zum festen Schritt im Workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Was sich nicht geändert hat
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cursor 3 testet Ihre APIs nicht automatisch und ersetzt kein QA-Tool.&lt;/li&gt;
&lt;li&gt;Für Authentifizierung, Ratenbegrenzung und Performance-Tests benötigen Sie weiterhin passende Werkzeuge.&lt;/li&gt;
&lt;li&gt;Strukturierte MCP-Ausgaben erfordern, dass Ihr MCP-Server dies unterstützt (Apidog tut es bereits).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cursor 3 + Apidog MCP Server: Ein spezifischer Workflow
&lt;/h2&gt;

&lt;p&gt;Nutzen Sie die vollen Möglichkeiten von Cursor 3 und &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog MCP Server&lt;/a&gt; mit folgendem Workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Die Einrichtung
&lt;/h3&gt;

&lt;p&gt;Fügen Sie den Apidog MCP Server in den Cursor-Einstellungen hinzu. Beispielkonfiguration:&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;"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;Ihr Zugriffstoken finden Sie in Apidog unter Konto-Einstellungen &amp;gt; API-Zugriffstoken. Nach der Verbindung stehen Ihnen Tools wie &lt;code&gt;get_endpoint_detail&lt;/code&gt;, &lt;code&gt;list_endpoints&lt;/code&gt;, &lt;code&gt;get_schema&lt;/code&gt; im Live-Projekt zur Verfügung.&lt;/p&gt;

&lt;h3&gt;
  
  
  Workflow: Einen neuen Endpunkt aus der Spezifikation erstellen
&lt;/h3&gt;

&lt;p&gt;Sie haben z. B. einen neuen Endpunkt &lt;code&gt;POST /invoices&lt;/code&gt; zur Apidog-Spezifikation hinzugefügt – inkl. Anforderungs- und Antwortschema sowie Testszenario.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vorgehen im Agentenfenster:&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;"Suchen Sie den POST /invoices Endpunkt im Apidog-Projekt. Lesen Sie seine Anfrage- und Antwortschemata. Generieren Sie einen Node.js/Express-Handler, der der Spezifikation entspricht. Führen Sie dann das Testszenario aus, um es zu überprüfen."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Der Agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ruft per MCP die Spezifikation ab (&lt;code&gt;get_endpoint_detail&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Generiert Code anhand der echten Schemadefinition&lt;/li&gt;
&lt;li&gt;Führt &lt;code&gt;apidog run --scenario invoice-creation-test --env staging&lt;/code&gt; im Terminal aus&lt;/li&gt;
&lt;li&gt;Korrigiert den Handler bei fehlgeschlagenen Tests&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sie überprüfen und übernehmen die Änderungen.&lt;/p&gt;

&lt;h3&gt;
  
  
  /best-of-n für komplexe Endpunkte
&lt;/h3&gt;

&lt;p&gt;Bei komplexer Logik nutzen Sie &lt;code&gt;/best-of-n&lt;/code&gt;, um mehrere Agenten unabhängig Implementierungen generieren zu lassen. Jeder Agent nutzt die gleiche Spezifikation. Anschließend vergleichen Sie die Lösungen im Worktree und wählen die beste aus.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dokumentation synchronisieren
&lt;/h3&gt;

&lt;p&gt;Nach Deployment können Sie mit einem weiteren Agentenlauf prüfen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Überprüfen Sie die Apidog-Dokumentation für POST /invoices. Vergleichen Sie sie mit dem Code in invoices.js. Kennzeichnen Sie alle Diskrepanzen. Wenn die Antwortstruktur im Code von der Spezifikation abweicht, aktualisieren Sie die Apidog-Spezifikation entsprechend."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Der Agent liest beide Quellen, schlägt ggf. Anpassungen an Spezifikation oder Code vor, und Sie entscheiden.&lt;/p&gt;

&lt;p&gt;Mehr zur MCP-Server-Integration: [Apidog MCP Server Übersicht]&lt;br&gt;&lt;br&gt;
Automatisierte Testausführungen: [Apidog CLI Erste Schritte]&lt;/p&gt;
&lt;h2&gt;
  
  
  Praktische Einrichtung: Erste Schritte
&lt;/h2&gt;

&lt;p&gt;So setzen Sie Cursor 3 mit dem Apidog MCP Server in der Praxis auf:&lt;/p&gt;
&lt;h3&gt;
  
  
  Schritt 1: Cursor aktualisieren
&lt;/h3&gt;

&lt;p&gt;Laden Sie die aktuelle Version von &lt;a href="https://cursor.com" rel="noopener noreferrer"&gt;cursor.com&lt;/a&gt; herunter. Nach der Installation öffnen Sie per &lt;code&gt;Cmd+Shift+P&lt;/code&gt; die Befehlspalette und wählen „Agents Window“, um Cursor 3 zu bestätigen.&lt;/p&gt;
&lt;h3&gt;
  
  
  Schritt 2: Apidog-Zugriffstoken generieren
&lt;/h3&gt;

&lt;p&gt;Melden Sie sich bei &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; an, gehen Sie zu Konto-Einstellungen &amp;gt; API-Zugriffstoken, erzeugen Sie ein neues Token und kopieren Sie es.&lt;/p&gt;
&lt;h3&gt;
  
  
  Schritt 3: Apidog MCP Server zu Cursor hinzufügen
&lt;/h3&gt;

&lt;p&gt;Öffnen Sie die Cursor-Einstellungen &amp;gt; MCP und fügen Sie die Serverkonfiguration ein:&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;"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;Die Projekt-ID finden Sie in der Apidog-URL, wenn Sie das Projekt öffnen. Speichern und Cursor neu starten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 4: Verbindung überprüfen
&lt;/h3&gt;

&lt;p&gt;Öffnen Sie das Agentenfenster, starten Sie eine neue Sitzung und geben Sie ein:&lt;br&gt;&lt;br&gt;
&lt;em&gt;„Listen Sie die Endpunkte in meinem Apidog-Projekt auf.“&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Wenn eine Liste der Endpunkte erscheint, funktioniert die Integration.&lt;/p&gt;
&lt;h3&gt;
  
  
  Schritt 5: Apidog CLI installieren und konfigurieren
&lt;/h3&gt;

&lt;p&gt;Installieren Sie die CLI global:&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; apidog-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mit &lt;code&gt;apidog -v&lt;/code&gt; prüfen Sie die Version. Im CI/CD-Tab eines Apidog-Testszenarios finden Sie den passenden CLI-Befehl mit Ihren Zugangsdaten und der Szenario-ID. Führen Sie diesen Befehl im Cursor-Terminal aus oder lassen Sie einen Agenten das übernehmen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 6: Erste MCP-gesteuerte Agentenaufgabe ausführen
&lt;/h3&gt;

&lt;p&gt;Beschreiben Sie im Agentenfenster eine task-bezogene Anweisung, z. B.:&lt;br&gt;
&lt;em&gt;„Suchen Sie das Schema für das Benutzerobjekt in Apidog. Generieren Sie eine TypeScript-Schnittstelle, die genau dazu passt.“&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Vergleichen Sie die Ausgabe mit der tatsächlichen Spezifikation, um die Integration zu prüfen.&lt;/p&gt;

&lt;p&gt;Von hier aus können Sie Workflows für Spezifikationszugriff, Codegenerierung und Testausführung kombinieren.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zusammenfassung
&lt;/h2&gt;

&lt;p&gt;Cursor 3 verändert die Arbeitsweise mit KI in Entwicklungsumgebungen grundlegend. Die Umstellung auf ein Agenten-zentriertes Paradigma entspricht modernen API-Workflows, in denen Sie mehrere Endpunkte und Umgebungen orchestrieren statt einzelne Funktionen zu schreiben.&lt;/p&gt;

&lt;p&gt;Die strukturierte MCP-Ausgabe ist ein unterschätztes, aber zentrales Feature für API-Entwickler: Agenten erhalten typisierte Daten und generieren damit Code, der direkt zur Spezifikation passt – mit weniger Nachbesserungen.&lt;/p&gt;

&lt;p&gt;In Kombination mit dem Apidog MCP Server und der CLI entsteht ein Workflow, bei dem der KI-Agent Ihre API wirklich kennt: Er liest die Spezifikation, generiert passenden Code und validiert die Implementierung direkt per Testszenario. Das ist keine Demo, sondern ein produktiver Loop für Ihre tägliche API-Arbeit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Häufig gestellte Fragen
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ersetzt Cursor 3 die bestehende IDE-Oberfläche?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nein. Cursor 3 ergänzt die IDE um das Agentenfenster. Sie können beide parallel oder abwechselnd nutzen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was ist der Unterschied zwischen Cursor 3 und der vorherigen Version von Cursor?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Der Hauptunterschied ist das Architektur-Paradigma: Cursor 3 setzt Agenten in den Fokus (mit paralleler Ausführung, Cloud-zu-Lokal-Übergabe, Designmodus, &lt;code&gt;/worktree&lt;/code&gt; und &lt;code&gt;/best-of-n&lt;/code&gt;). Der Editor bleibt verfügbar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie verbindet sich der Apidog MCP Server mit Cursor 3?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fügen Sie den Apidog MCP Server als MCP-Konfiguration in den Cursor-Einstellungen hinzu. Der Server stellt API-Daten Ihres Apidog-Projekts als aufrufbare Tools bereit. Agenten lesen so Endpunktspezifikationen, Schemata und Testszenarien direkt und strukturiert, nicht nur als Text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Können Cursor 3 Agenten Apidog Testszenarien automatisch ausführen?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ja, über die Apidog CLI. Agenten können Terminalbefehle im Workflow nutzen, Testszenarien ausführen, die Ergebnisse lesen und ihren Code daraufhin anpassen. Das ermöglicht eine schnelle Feedbackschleife zwischen Code und API-Tests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benötige ich einen kostenpflichtigen Cursor-Plan, um das Agentenfenster zu nutzen?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Das Agentenfenster ist in allen Plänen verfügbar. Die Cloud-Agenten-Ausführung erfordert allerdings ein kostenpflichtiges Abonnement; lokale Agenten laufen auch im Free-Plan. Details finden Sie unter &lt;a href="https://cursor.com/pricing" rel="noopener noreferrer"&gt;cursor.com/pricing&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Gemma 4 lokal mit Ollama ausführen: Eine vollständige Anleitung</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 03 Apr 2026 02:53:58 +0000</pubDate>
      <link>https://dev.to/emree_demir/gemma-4-lokal-mit-ollama-ausfuhren-eine-vollstandige-anleitung-1h8e</link>
      <guid>https://dev.to/emree_demir/gemma-4-lokal-mit-ollama-ausfuhren-eine-vollstandige-anleitung-1h8e</guid>
      <description>&lt;h2&gt;
  
  
  Kurz gesagt
&lt;/h2&gt;

&lt;p&gt;Gemma 4 wurde am 3. April 2026 veröffentlicht, und Ollama v0.20.0 fügte noch am selben Tag Unterstützung hinzu. Sie können das Standardmodell &lt;code&gt;gemma4:e4b&lt;/code&gt; in zwei Befehlen herunterladen und ausführen. Dieser Leitfaden führt Sie durch die Einrichtung, Modellauswahl, API-Nutzung und wie Sie Ihre lokalen Gemma 4 Endpunkte mit Apidog testen.&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;Testen Sie Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Einleitung
&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 veröffentlichte Gemma 4&lt;/a&gt; am 2. April 2026. Innerhalb von 24 Stunden lieferte Ollama v0.20.0 mit vollständiger Unterstützung für alle vier Modellvarianten aus.&lt;/p&gt;

&lt;p&gt;Für Entwickler ist das wichtig. Gemma 4 ist keine kleine Verbesserung. Es erreicht 89,2 % beim AIME 2026, verglichen mit 20,8 % bei Gemma 3. Die Bewertung im Coding-Benchmark stieg von 110 ELO auf 2150 bei Codeforces. Sie erhalten natives Funktions-Calling, konfigurierbare Denkmodi und ein 256K Kontextfenster bei den größeren Varianten. All dies läuft auf Ihrer eigenen Hardware.&lt;/p&gt;

&lt;p&gt;Wenn Sie API-gestützte Apps entwickeln, ermöglicht das lokale Setup eine schnelle, private KI-Schicht zum Generieren von Mock-Daten, Schreiben von Testszenarien und Validieren von API-Antworten, ohne Daten an einen Remote-Server zu senden.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Sobald Gemma 4 lokal läuft, kann Apidogs Smart Mock realistische API-Antwortdaten aus Ihrem Schema generieren, unter Verwendung derselben Art von KI-gestützter Inferenz. Sie definieren die Form Ihrer API einmal; Apidog übernimmt die Mock-Daten. Das passt gut zu lokalen Modell-Experimenten, bei denen Sie konsistente, schema-konforme Testdaten wünschen, ohne Fixtures manuell schreiben zu müssen.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dieser Leitfaden deckt alles ab, von der Installation bis zum ersten lokalen API-Aufruf.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was ist neu in Gemma 4
&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; wird mit vier Modellvarianten mit deutlich unterschiedlichen Fähigkeiten ausgeliefert.&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 Modelle"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Das unterscheidet es von Gemma 3:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Argumentation und Codierung.&lt;/strong&gt; Das 31B-Modell erreicht 80 % auf LiveCodeBench v6. Das frühere Gemma 3 27B erreichte 29,1 %. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mixture-of-Experts-Architektur (MoE).&lt;/strong&gt; Die 26B-Variante verwendet MoE mit nur 4 Milliarden aktiven Parametern während der Inferenz.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Längerer Kontext.&lt;/strong&gt; E2B und E4B unterstützen 128K Token; 26B/31B bieten 256K.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Natives Funktions-Calling.&lt;/strong&gt; Alle Modelle unterstützen strukturierte Tool-Nutzung out-of-the-box.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio- und Bildeingabe.&lt;/strong&gt; E2B/E4B akzeptieren Audio- und Bilddaten.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Denkmodi.&lt;/strong&gt; Chain-of-Thought kann pro Anfrage an- oder ausgeschaltet werden.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Gemma 4 Modellvarianten erklärt
&lt;/h2&gt;

&lt;p&gt;Vor dem Download: Wählen Sie das Modell passend zu Ihrer Hardware.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modell&lt;/th&gt;
&lt;th&gt;Größe auf Festplatte&lt;/th&gt;
&lt;th&gt;Kontext&lt;/th&gt;
&lt;th&gt;Architektur&lt;/th&gt;
&lt;th&gt;Am besten geeignet für&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;Dense&lt;/td&gt;
&lt;td&gt;Laptops, Edge, Audio/Bild&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;Dense&lt;/td&gt;
&lt;td&gt;Die meisten Entwickler&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 aktiv)&lt;/td&gt;
&lt;td&gt;Beste Qualität pro GB&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;Dense&lt;/td&gt;
&lt;td&gt;Maximale Qualität&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Das &lt;code&gt;e4b&lt;/code&gt;-Modell ist die Standardeinstellung bei &lt;code&gt;ollama run gemma4&lt;/code&gt;. Es läuft auf Consumer-GPUs ab 10+ GB VRAM und Apple Silicon.&lt;/p&gt;

&lt;p&gt;Die &lt;code&gt;26b&lt;/code&gt; MoE-Variante ist optimal für hohe Qualität bei geringeren Ressourcen (~20+ GB RAM).&lt;/p&gt;

&lt;h2&gt;
  
  
  Voraussetzungen
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ollama v0.20.0+ ist erforderlich.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Version prüfen:&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;Aktualisieren:&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;&lt;strong&gt;Windows:&lt;/strong&gt; &lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;Installer herunterladen&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hardware-Anforderungen:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;gemma4:e2b&lt;/code&gt;: min. 8 GB RAM (16 GB empfohlen)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gemma4:e4b&lt;/code&gt;: 10 GB VRAM oder 16 GB Unified Memory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gemma4:26b&lt;/code&gt;: 20+ GB RAM/Unified Memory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gemma4:31b&lt;/code&gt;: 24 GB VRAM oder 32 GB Unified Memory&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Gemma 4 installieren und ausführen
&lt;/h2&gt;

&lt;p&gt;Standardmodell herunterladen und ausführen:&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="Gemma 4 in Ollama laufen lassen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Beim ersten Start werden ~9,6 GB geladen. Testen Sie direkt:&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; Welche HTTP-Statuscodes gibt es für Clientfehler?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Spezifische Varianten:&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;# Edge-Modell&lt;/span&gt;
ollama run gemma4:e2b

&lt;span class="c"&gt;# MoE-Modell&lt;/span&gt;
ollama run gemma4:26b

&lt;span class="c"&gt;# Flaggschiff&lt;/span&gt;
ollama run gemma4:31b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vorab nur herunterladen:&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;Verfügbare Modelle listen:&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;
  
  
  Die lokale Gemma 4 API verwenden
&lt;/h2&gt;

&lt;p&gt;Ollama stellt unter &lt;code&gt;http://localhost:11434&lt;/code&gt; eine lokale REST-API bereit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vervollständigung generieren
&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": "Schreiben Sie eine JSON-Antwort für einen API-Endpunkt für Benutzerprofile",
    "stream": false
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Chat-Vervollständigung (OpenAI-kompatibel)
&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": "Generieren Sie einen realistischen JSON-Mock für eine E-Commerce-Bestellungs-API-Antwort"
      }
    ]
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Python-Client
&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="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;Listen Sie die Felder auf, die eine Zahlungs-API-Antwort enthalten sollte&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
&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="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;Sie generieren realistische API-Antwortdaten im JSON-Format.&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;Generieren Sie eine Beispielantwort für einen GET /users/{id} Endpunkt&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;
  
  
  Funktions-Calling mit Gemma 4 verwenden
&lt;/h2&gt;

&lt;p&gt;Gemma 4 unterstützt natives Funktions-Calling: Definieren Sie ein Tool-Schema und erhalten Sie strukturiertes JSON passend zu Ihrer Funktionssignatur.&lt;/p&gt;

&lt;p&gt;Beispiel:&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;Einen Benutzer anhand der ID von der API abrufen&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;Die eindeutige Benutzer-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;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;Ob die Bestellhistorie enthalten sein soll&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;Benutzer 42 mit seiner Bestellhistorie abrufen&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;Das Modell extrahiert automatisch die Parameter und liefert ein gültiges JSON-Objekt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Denkmodus aktivieren
&lt;/h2&gt;

&lt;p&gt;Für komplexe Aufgaben wie Testszenarien oder API-Spezifikationsanalyse aktivieren Sie die Chain-of-Thought-Argumentation:&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;Entwerfen Sie ein vollständiges Testszenario für eine Zahlungsabwicklungs-API mit Randfällen&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;Für einfache Prompts deaktivieren Sie den Denkmodus, um Latenz zu vermeiden.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemma 4 API-Antworten mit Apidog testen
&lt;/h2&gt;

&lt;p&gt;Sobald Ihre lokale Gemma 4 Instanz läuft, können Sie die API-Endpunkte systematisch mit &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; testen.&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="Gemma 4 API mit Apidog testen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Ollama API-Spezifikation importieren:&lt;/strong&gt; Erstellen Sie ein neues Projekt in Apidog und fügen Sie die Basis-URL &lt;code&gt;http://localhost:11434&lt;/code&gt; hinzu.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Endpunkte definieren:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;POST /api/generate&lt;/code&gt; für Single-Turn-Vervollständigungen&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST /v1/chat/completions&lt;/code&gt; für Multi-Turn-Chat&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/tags&lt;/code&gt; um verfügbare Modelle zu listen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Testszenario einrichten:&lt;/strong&gt; Verbinden Sie mehrere Anfragen mit Assertionen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;GET /api/tags&lt;/code&gt; – prüft, dass &lt;code&gt;gemma4&lt;/code&gt; gelistet ist&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST /api/generate&lt;/code&gt; – prüft, dass das &lt;code&gt;response&lt;/code&gt;-Feld nicht leer ist&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST /v1/chat/completions&lt;/code&gt; – validiert das Antwortformat&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nutzen Sie den Extract Variable Prozessor von Apidog, um Antworten zwischen Schritten weiterzugeben und Multi-Turn-Flows zu testen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Antwort-Schemas validieren:&lt;/strong&gt; Apidogs Contract Testing validiert API-Antworten gegen Ihre OpenAPI-Spezifikation. Definieren Sie das erwartete Antwortschema und testen Sie nach Modell-Updates auf breaking changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Smart Mock für parallele Entwicklung:&lt;/strong&gt; Mit Smart Mock generiert Apidog automatisch schema-konforme Antworten, sodass Frontend-Teams unabhängig vom Modellstand arbeiten können.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multimodale Eingabe mit Gemma 4
&lt;/h2&gt;

&lt;p&gt;E2B/E4B-Modelle akzeptieren Bilder als base64-kodierte Strings:&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;Beschreiben Sie den in diesem Diagramm gezeigten API-Flow und identifizieren Sie potenzielle Fehlerpfade&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;Ideal zur Analyse von Architekturdiagrammen, API-Doku-Screenshots oder zur Bilddaten-Extraktion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Häufige Probleme und Lösungen
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Modell nicht gefunden:&lt;/strong&gt; Führen Sie &lt;code&gt;ollama pull gemma4&lt;/code&gt; aus oder prüfen Sie mit &lt;code&gt;ollama list&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Langsame Inferenz auf CPU:&lt;/strong&gt; Nutzen Sie &lt;code&gt;gemma4:e2b&lt;/code&gt; für bessere CPU-Performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speicherfehler:&lt;/strong&gt; Prüfen Sie VRAM/Memory mit &lt;code&gt;ollama ps&lt;/code&gt;. Wechseln Sie ggf. auf kleinere Modelle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apple Silicon-Ladeprobleme:&lt;/strong&gt; Ollama 0.20.0 unterstützt MLX; aktualisieren Sie ggf.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Port belegt:&lt;/strong&gt; Starten Sie mit anderem Port: &lt;code&gt;OLLAMA_HOST=0.0.0.0:11435 ollama serve&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Abgeschnittene Antworten:&lt;/strong&gt; Erhöhen Sie das Kontextfenster: &lt;code&gt;"options": {"num_ctx": 8192}&lt;/code&gt; im JSON-Body.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Gemma 4 vs. andere lokale Modelle
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modell&lt;/th&gt;
&lt;th&gt;Beste Größe&lt;/th&gt;
&lt;th&gt;Kontext&lt;/th&gt;
&lt;th&gt;Funktions-Calling&lt;/th&gt;
&lt;th&gt;Coding-Benchmark&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;Nativ&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;Nativ&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;Nativ&lt;/td&gt;
&lt;td&gt;Stark&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;Nativ&lt;/td&gt;
&lt;td&gt;Moderat&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Besonders die MoE-Variante (&lt;code&gt;26b&lt;/code&gt;) von Gemma 4 liefert mit 18 GB Speicher nahezu Flaggschiff-Qualität bei hoher Geschwindigkeit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Gemma 4 mit Ollama ist eines der leistungsfähigsten lokalen Setups für Entwickler. Die Installation dauert zwei Befehle, das Standardmodell läuft auf den meisten Maschinen. Der Qualitätsgewinn gegenüber Gemma 3 ist signifikant.&lt;/p&gt;

&lt;p&gt;Starten Sie mit &lt;code&gt;ollama run gemma4&lt;/code&gt;, testen Sie Ihre Endpunkte mit &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;, und wählen Sie das passende Modell gemäß Tabelle.&lt;/p&gt;

&lt;p&gt;Für Teams, die auf Gemma 4 aufbauen, ermöglicht die Kombination aus lokaler Inferenz, Apidogs Smart Mock und Testszenarien einen vollständigen, unabhängigen Entwicklungszyklus.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Wie aktualisiere ich Gemma 4 in Ollama, wenn eine neue Version herauskommt?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Führen Sie &lt;code&gt;ollama pull gemma4&lt;/code&gt; erneut aus. Ollama lädt nur Änderungen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich Gemma 4 auf einem Computer ohne GPU ausführen?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja, aber langsam. Mit CPU erreichen Sie 1–3 Tokens/Sekunde (&lt;code&gt;e2b&lt;/code&gt; empfohlen).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was ist der Unterschied zwischen gemma4:e2b und gemma4:e4b?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Beide sind dichte Edge-Modelle. E4B ist größer und besser für komplexe Aufgaben, E2B ist kleiner und unterstützt Audio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Funktioniert Gemma 4 mit LangChain und LlamaIndex?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja. Beide Frameworks unterstützen Ollama als Backend (&lt;code&gt;http://localhost:11434&lt;/code&gt;, Modellname &lt;code&gt;gemma4&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ist die lokale Gemma 4 API kompatibel mit Code für die OpenAI API?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Meistens ja. Nutzen Sie &lt;code&gt;/v1/chat/completions&lt;/code&gt;, ändern Sie &lt;code&gt;base_url&lt;/code&gt; und verwenden Sie einen beliebigen &lt;code&gt;api_key&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie verwende ich den Denkmodus von Gemma 4?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Übergeben Sie &lt;code&gt;"think": true&lt;/code&gt; im &lt;code&gt;extra_body&lt;/code&gt;-Parameter beim OpenAI SDK oder direkt im JSON-Body.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich Gemma 4 anderen Maschinen im Netzwerk bereitstellen?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja, starten Sie Ollama mit &lt;code&gt;OLLAMA_HOST=0.0.0.0:11434 ollama serve&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welches ist das beste Gemma 4 Modell für API-Entwicklungsaufgaben?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Für Mock-Daten und Tests: &lt;code&gt;e4b&lt;/code&gt;. Für komplexe Analysen: &lt;code&gt;26b&lt;/code&gt; (MoE).&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Gemma 4 als API Backend betreiben</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 03 Apr 2026 02:41:43 +0000</pubDate>
      <link>https://dev.to/emree_demir/gemma-4-als-api-backend-betreiben-1c6f</link>
      <guid>https://dev.to/emree_demir/gemma-4-als-api-backend-betreiben-1c6f</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Google hat im April 2026 Gemma 4 veröffentlicht – eine offene Familie von vier Modellen unter Apache 2.0, die auf Standard-Benchmarks Modelle übertreffen, die 20-mal größer sind. Sie können die Gemma 4 API über Google AI Studio, Vertex AI oder lokal mit Ollama und vLLM nutzen. Mit Apidogs Smart Mock generieren Sie automatisch realistische API-Antworten aus Ihren OpenAPI-Schemata, ohne eigene Mock-Regeln schreiben zu müssen.&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;Testen Sie Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;h2 id="einleitung"&gt;Einleitung&lt;/h2&gt;

&lt;p&gt;Die meisten Open-Source-KI-Modelle erfordern einen Kompromiss: Entweder viel Leistung oder einfache Bereitstellung. Große Modelle laufen nicht lokal, kleine Modelle liefern schwache Ergebnisse bei komplexen Aufgaben. Gemma 4 durchbricht diesen Kompromiss.&lt;/p&gt;

&lt;p&gt;Gemma 4 ist Googles leistungsstärkste offene Modellfamilie. Das 31B Dense Modell liegt auf Platz 3 aller offenen Modelle bei Arena AI und schlägt viele 20-mal größere Modelle. Das 26B MoE erreicht Platz 6. Beide laufen auf einer 80-GB-GPU. Die E2B- und E4B-Modelle funktionieren komplett offline auf Smartphones und Edge-Geräten.&lt;/p&gt;

&lt;p&gt;Für API-Entwickler relevant: Gemma 4 unterstützt nativ Funktionsaufrufe, strukturierte JSON-Ausgabe und große Kontextfenster (bis 256K Token). Ideal für KI-gestützte API-Tools – von Testdatengenerierung über Mocking bis zur API-Antwortanalyse.&lt;/p&gt;

&lt;p&gt;💡Wenn Sie mit Gemma 4 arbeiten und KI-Antworten nach OpenAPI-Spezifikation validieren müssen, generiert Apidogs Smart Mock Engine automatisch schema-konforme Mock-Antworten. Keine individuellen Mock-Regeln nötig – Smart Mock liest Ihr Schema und liefert passende Daten. Laden Sie Apidog kostenlos herunter und integrieren Sie es in Ihren Gemma 4 API-Workflow.&lt;/p&gt;

&lt;h2 id="was-ist-gemma-4-und-was-ist-neu"&gt;Was ist Gemma 4 und was ist neu?&lt;/h2&gt;

&lt;p&gt;Gemma 4 ist die vierte Generation offener Sprachmodelle von Google DeepMind. Seit dem Start 2024 wurden Gemma-Modelle über 400 Millionen Mal heruntergeladen, die Community hat über 100.000 Varianten gebaut – das „Gemmaverse“.&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 ist unter &lt;a href="https://goo.gle/gemma-4-apache-2" rel="noopener noreferrer"&gt;Apache 2.0-Lizenz&lt;/a&gt; veröffentlicht. Sie können das Modell kommerziell nutzen, verändern und weitergeben – ohne Einschränkungen. Wichtig für Unternehmen, die volle Kontrolle benötigen.&lt;/p&gt;

&lt;p&gt;Wichtigste Neuerung: „Intelligenz pro Parameter“. Das 31B Dense Modell liefert Top-Leistung zu einem Bruchteil der Kosten von GPT-4 oder Claude 3 Sonnet. Auf Arena AI schlägt Gemma 4 31B sogar 600B-Parameter-Modelle.&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;Die wichtigsten Neuerungen gegenüber Gemma 3:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Native multimodale Eingabe:&lt;/strong&gt; Alle Gemma 4 Modelle verarbeiten Bilder und Videos, E2B/E4B zusätzlich Audio.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Längere Kontextfenster:&lt;/strong&gt; E2B/E4B: 128K Token, 26B/31B: 256K Token – genug für ganze Repos.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Agenten-Workflows:&lt;/strong&gt; Native Funktionsaufrufe, strukturierte JSON-Ausgabe und System-Prompts.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Fortgeschrittene Argumentation:&lt;/strong&gt; Das 31B-Modell ist deutlich besser in Mathematik und multistep Reasoning.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;140+ Sprachen:&lt;/strong&gt; Nativ trainiert, nicht nur aus Englisch übersetzt.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Apache 2.0-Lizenz:&lt;/strong&gt; Volle rechtliche Klarheit für kommerzielle Nutzung.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="gemma-4-modellvarianten-und-fähigkeiten"&gt;Gemma 4 Modellvarianten und Fähigkeiten&lt;/h2&gt;

&lt;p&gt;Vier Größen – für verschiedene Hardware:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modell&lt;/th&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Aktive Parameter (Inferenz)&lt;/th&gt;
&lt;th&gt;Kontext&lt;/th&gt;
&lt;th&gt;Am besten geeignet für&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;Effektive 2B&lt;/td&gt;
&lt;td&gt;~2B&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;Mobil, IoT, Offline-Edge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E4B&lt;/td&gt;
&lt;td&gt;Effektive 4B&lt;/td&gt;
&lt;td&gt;~4B&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;Telefone, Raspberry Pi, Jetson Orin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;26B MoE&lt;/td&gt;
&lt;td&gt;26B gesamt&lt;/td&gt;
&lt;td&gt;~3.8B aktiv&lt;/td&gt;
&lt;td&gt;256K&lt;/td&gt;
&lt;td&gt;Latenzempfindliche Serveraufgaben&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;Höchste Qualität, Forschung, Fine-Tuning&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;E2B/E4B setzen auf Mixture-of-Experts: Nur ein Bruchteil der Parameter wird pro Token genutzt. Entwickelt mit Qualcomm/MediaTek, laufen sie offline auf Android (AICore Preview).&lt;/p&gt;

&lt;p&gt;26B MoE aktiviert nur 3,8B Parameter pro Inferenz, ideal für schnelle Server-Deployments.&lt;/p&gt;

&lt;p&gt;31B Dense ist der Qualitätsführer – optimal fürs Fine-Tuning und domänenspezifische Aufgaben.&lt;/p&gt;

&lt;p&gt;Für API-Tools ist 26B MoE meist das beste Verhältnis aus Geschwindigkeit und Qualität, 31B Dense für komplexe, strukturierte JSON-Ausgaben. Alle Modelle unterstützen Funktionsaufrufe und JSON-Ausgabe.&lt;/p&gt;

&lt;h2 id="gemma-4-api-einrichten-schritt-für-schritt"&gt;Gemma 4 API einrichten: Schritt für Schritt&lt;/h2&gt;

&lt;p&gt;Drei Wege zur Nutzung: Google AI Studio (am schnellsten), Vertex AI (Enterprise) oder lokal mit Ollama/vLLM.&lt;/p&gt;

&lt;h3 id="option-1-google-ai-studio-empfohlen-für-prototyping"&gt;Option 1: Google AI Studio (Prototyping)&lt;/h3&gt;

&lt;p&gt;1. Gehen Sie zu &lt;a href="https://aistudio.google.com" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt; und erstellen Sie ein (kostenloses) Konto. Generieren Sie einen API-Key.&lt;/p&gt;

&lt;p&gt;2. Installieren Sie das SDK:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;pip install google-genai
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;3. Erster API-Aufruf:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import google.generativeai as genai

genai.configure(api_key="YOUR_API_KEY")

model = genai.GenerativeModel("gemma-4-31b-it")

response = model.generate_content(
    "Generate a JSON object for a user account with id, email, and created_at fields."
)

print(response.text)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;4. Für strukturierte JSON-Ausgabe:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import google.generativeai as genai
import json

genai.configure(api_key="YOUR_API_KEY")

model = genai.GenerativeModel(
    "gemma-4-31b-it",
    generation_config={"response_mime_type": "application/json"}
)

prompt = """
Generate 3 sample user objects for an e-commerce API. 
Each user should have: id (integer), email (string), username (string), 
created_at (ISO 8601 timestamp), and subscription_tier (free|pro|enterprise).
Return as a JSON array.
"""

response = model.generate_content(prompt)
users = json.loads(response.text)
print(json.dumps(users, indent=2))
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="option-2-lokale-bereitstellung-mit-ollama"&gt;Option 2: Lokale Bereitstellung mit Ollama&lt;/h3&gt;

&lt;p&gt;1. Installieren Sie Ollama von &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;ollama.com&lt;/a&gt;. Laden Sie das Modell:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ollama pull gemma4
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;2. Starten Sie den Server:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ollama serve
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;3. OpenAI-kompatibler API-Call:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import requests
import json

response = requests.post(
    "http://localhost:11434/api/chat",
    json={
        "model": "gemma4",
        "messages": [
            {
                "role": "user",
                "content": "Generate a valid JSON response for a REST API /products endpoint. Include id, name, price, and stock fields."
            }
        ],
        "stream": False
    }
)

result = response.json()
print(result["message"]["content"])
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="option-3-funktionsaufrufe-für-api-orchestrierung"&gt;Option 3: Funktionsaufrufe für API-Orchestrierung&lt;/h3&gt;

&lt;p&gt;Mit Funktionsaufrufen können Sie Tools definieren, die das Modell gezielt aufruft:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import google.generativeai as genai

genai.configure(api_key="YOUR_API_KEY")

tools = [
    {
        "function_declarations": [
            {
                "name": "get_api_schema",
                "description": "Retrieve the OpenAPI schema for a given endpoint path",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "endpoint_path": {
                            "type": "string",
                            "description": "The API endpoint path, e.g. /users/{id}"
                        },
                        "method": {
                            "type": "string",
                            "enum": ["GET", "POST", "PUT", "DELETE", "PATCH"]
                        }
                    },
                    "required": ["endpoint_path", "method"]
                }
            }
        ]
    }
]

model = genai.GenerativeModel("gemma-4-31b-it", tools=tools)

response = model.generate_content(
    "I need to test the GET /users/{id} endpoint. What schema should the response follow?"
)

if response.candidates[0].content.parts[0].function_call:
    fc = response.candidates[0].content.parts[0].function_call
    print(f"Model called function: {fc.name}")
    print(f"With args: {dict(fc.args)}")
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Dieses Funktionsaufruf-Muster ist optimal für agentenbasierte API-Testpipelines.&lt;/p&gt;

&lt;h2 id="erstellen-von-ki-gestützten-api-mocks-mit-gemma-4"&gt;Erstellen von KI-gestützten API-Mocks mit Gemma 4&lt;/h2&gt;

&lt;p&gt;Nutzen Sie Gemma 4, um realistische Mock-Daten direkt aus einem OpenAPI-Schema zu generieren:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import google.generativeai as genai
import json

genai.configure(api_key="YOUR_API_KEY")

model = genai.GenerativeModel(
    "gemma-4-31b-it",
    generation_config={"response_mime_type": "application/json"}
)

schema = {
    "type": "object",
    "properties": {
        "id": {"type": "integer"},
        "order_number": {"type": "string", "pattern": "^ORD-[0-9]{6}$"},
        "status": {"type": "string", "enum": ["pending", "shipped", "delivered", "cancelled"]},
        "total": {"type": "number", "minimum": 0},
        "items": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "product_id": {"type": "integer"},
                    "quantity": {"type": "integer", "minimum": 1},
                    "unit_price": {"type": "number"}
                }
            }
        },
        "created_at": {"type": "string", "format": "date-time"}
    }
}

prompt = f"""
Generate 5 realistic mock responses for an order management API.
Each response must conform exactly to this JSON Schema:
{json.dumps(schema, indent=2)}

Make the data realistic: use realistic prices, product IDs, and varied statuses.
Return as a JSON array of 5 order objects.
"""

response = model.generate_content(prompt)
mock_orders = json.loads(response.text)
print(json.dumps(mock_orders, indent=2))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Gemma 4 versteht JSON-Schema-Einschränkungen (Enum, Muster etc.) und liefert passende Mock-Daten – ideal für echtes API-Mocking.&lt;/p&gt;

&lt;p&gt;Sie können für jeden Endpunkt Ihres OpenAPI-Schemas Mocks generieren. Für komplexe Fälle können Sie die komplette Spezifikation als Prompt einbinden – dank 256K Kontextfenster auch für große APIs.&lt;/p&gt;

&lt;p&gt;Effizienter Workflow: Exportieren Sie Ihre Apidog-Sammlung als OpenAPI, prompten Sie Gemma 4 und erhalten Sie automatisch pro Endpunkt realistische Testfälle.&lt;/p&gt;

&lt;h2 id="testen-von-gemma-4-api-antworten-mit-apidog"&gt;Testen von Gemma 4 API-Antworten mit Apidog&lt;/h2&gt;

&lt;p&gt;Nach der Generierung von Testdaten/API-Antworten mit Gemma 4 sollten Sie das Ergebnis gegen Ihr Schema validieren. Hier kommt Apidogs Test-Szenario-Modul ins Spiel.&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;Schritt-für-Schritt-Workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Endpunkt importieren:&lt;/strong&gt; In Apidog neuen Endpunkt anlegen, auf Ihren Gemma 4 Wrapper oder direkt Google AI Studio zeigen. Antwortschema definieren.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Mock verwenden:&lt;/strong&gt; Mit &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidogs Smart Mock&lt;/a&gt; automatisch realistische Antworten aus dem Schema generieren lassen.&lt;/li&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;li&gt;
&lt;strong&gt;Testszenario anlegen:&lt;/strong&gt; Im „Tests“-Modul ein Szenario erstellen, Gemma 4 API-Aufruf als Schritt hinzufügen, dann Assertions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assertions konfigurieren:&lt;/strong&gt; Prüfen Sie Statuscode, Header und v.a. das JSON-Feld &lt;code&gt;candidates[0].content.parts[0].text&lt;/code&gt;. Extrahieren Sie per „Extract Variable“-Prozessor die KI-Ausgabe und nutzen Sie sie in Folgeschritten.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Datengesteuertes Testen:&lt;/strong&gt; CSV/JSON-Testdaten importieren, z.B. 50 Prompt-Varianten gleichzeitig testen – ideal für robuste API-Workflows.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Die Einrichtung dauert ca. 15 Minuten, danach können Sie den Workflow automatisiert in Ihrer CI/CD-Pipeline (über Apidog CLI) nutzen.&lt;/p&gt;

&lt;h2 id="praktische-anwendungsfälle"&gt;Praktische Anwendungsfälle&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;API-Testdatengenerierung:&lt;/strong&gt; Mit Gemma 4s JSON-Modus &amp;amp; OpenAPI-Schema in Minuten Hunderte realistische Testdatensätze erstellen.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Intelligentes API-Mocking:&lt;/strong&gt; Kontextuelle Mocks, z.B. für Produktsuch-APIs, ohne jeden Fall hardcoden zu müssen.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;API-Dokumentationsgenerierung:&lt;/strong&gt; 256K Kontext erlaubt komplette Codebasen als Prompt, inkl. automatischer OpenAPI-Spezifikation durch Funktionsaufrufe.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Antwortschema-Validierung:&lt;/strong&gt; KI-Analyse von API-Antworten, inkl. Schemaverletzungen und komplexer Fehlererkennung.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Automatisiertes Schreiben von Regressionstests:&lt;/strong&gt; Gemma 4 kann auf Basis Ihrer API-Spezifikation und Fehlerreports gezielt Testfälle erzeugen, die echte Fehler abfangen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="gemma-4-im-vergleich-zu-anderen-offenen-modellen-für-die-api-nutzung"&gt;Gemma 4 im Vergleich zu anderen offenen Modellen für die API-Nutzung&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modell&lt;/th&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Kontext&lt;/th&gt;
&lt;th&gt;JSON-Ausgabe&lt;/th&gt;
&lt;th&gt;Funktionsaufruf&lt;/th&gt;
&lt;th&gt;Lizenz&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;Nativ&lt;/td&gt;
&lt;td&gt;Nativ&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 aktiv)&lt;/td&gt;
&lt;td&gt;256K&lt;/td&gt;
&lt;td&gt;Nativ&lt;/td&gt;
&lt;td&gt;Nativ&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;Über Prompt&lt;/td&gt;
&lt;td&gt;Über Prompt&lt;/td&gt;
&lt;td&gt;Llama Community&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;Über Prompt&lt;/td&gt;
&lt;td&gt;Begrenzt&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;Nativ&lt;/td&gt;
&lt;td&gt;Nativ&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;p&gt;Kritisch für API-Tools: nativer JSON-Modus, Funktionsaufruf, Kontextlänge. Gemma 4 26B/31B bieten alles. Llama 3.3 70B benötigt doppelt so viel Hardware wie Gemma 4 31B, bietet aber keine native JSON- oder Funktionsaufruf-Unterstützung. Mistral 7B ist sehr schnell, aber das Kontextfenster ist zu klein für große APIs. Qwen 2.5 72B ist stark, braucht aber viel Hardware.&lt;/p&gt;

&lt;p&gt;Die Apache 2.0-Lizenz von Gemma 4 bietet volle Rechtssicherheit, was bei Llama (Community License) nicht immer gegeben ist.&lt;/p&gt;

&lt;p&gt;Empfehlung: Für die meisten API-Entwicklungen starten Sie mit Gemma 4 26B MoE (Latenz) oder 31B (Qualität).&lt;/p&gt;

&lt;h2 id="fazit"&gt;Fazit&lt;/h2&gt;

&lt;p&gt;Gemma 4 ist eine offene, leistungsfähige Alternative zu proprietären KI-APIs im API-Tooling. Dank Apache 2.0-Lizenz und nativer Funktionsaufrufe/JSON-Modus ist die Integration in API-Workflows ohne komplexes Prompt Engineering direkt möglich.&lt;/p&gt;

&lt;p&gt;Vier Modellgrößen erlauben flexible Hardware-Auswahl. Das 26B MoE Modell ist optimal für schnelle, skalierbare API-Entwicklung.&lt;/p&gt;

&lt;p&gt;Kombinieren Sie Gemma 4 mit &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;, um KI-generierte Daten effizient zu validieren. Nutzen Sie Gemma 4 für Testdatengenerierung, Apidogs Smart Mock zum Prototypen und deren Testszenarien für die Validierung. Damit bauen Sie robuste, KI-gestützte APIs mit minimalem Aufwand.&lt;/p&gt;

&lt;h2 id="faq"&gt;FAQ&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Was ist Gemma 4?&lt;/strong&gt; Gemma 4 ist Google DeepMinds neueste Familie offener Sprachmodelle (E2B, E4B, 26B MoE, 31B Dense, Apache 2.0), veröffentlicht April 2026. Das 31B-Modell ist auf Platz 3 der Arena AI Bestenliste.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ist Gemma 4 kostenlos nutzbar?&lt;/strong&gt; Die Modellgewichte sind unter Apache 2.0 frei nutzbar; Sie zahlen nur für Rechenleistung (Google AI Studio: Freistufe mit Limits, Vertex AI: Cloud-Raten).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann Gemma 4 strukturiertes JSON ausgeben?&lt;/strong&gt; Ja, via &lt;code&gt;response_mime_type: "application/json"&lt;/code&gt; im Google Generative AI SDK. Für APIs essenziell.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie schneidet Gemma 4 im Vergleich zu GPT-4o bei der API-Entwicklung ab?&lt;/strong&gt; GPT-4o ist proprietär, kein On-Prem-Hosting, höhere API-Kosten. Gemma 4 31B kann lokal und kostenlos laufen und ist bei Reasoning-Benchmarks konkurrenzfähig.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich Gemma 4 mit eigenen API-Daten feinabstimmen?&lt;/strong&gt; Ja, Fine-Tuning über Google AI Studio, Vertex AI oder Drittanbieter-Tools wie Hugging Face TRL möglich – besonders für domänenspezifische APIs sinnvoll.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welche Hardware benötige ich für lokale Nutzung?&lt;/strong&gt; 31B/26B laufen auf einer 80-GB-NVIDIA H100 (bfloat16). Quantisierte Versionen laufen auf Consumer-GPUs (16–24 GB VRAM). E4B/E2B laufen auf Smartphones, Raspberry Pi, Jetson.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unterstützt Gemma 4 Funktionsaufrufe?&lt;/strong&gt; Ja, alle Modelle. Tools werden als JSON deklariert, das Modell ruft sie kontextgesteuert auf und gibt strukturierte Argumente aus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie teste ich Gemma 4 API-Antworten automatisch?&lt;/strong&gt; Mit Apidogs Testszenarien: Endpunkt importieren, Anfrageschritte definieren, Assertions hinzufügen, Szenario lokal/CLI/CI ausführen.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Qwen3.6-Plus API: Besser als Claude bei Terminal Benchmarks</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Thu, 02 Apr 2026 09:36:17 +0000</pubDate>
      <link>https://dev.to/emree_demir/qwen36-plus-api-besser-als-claude-bei-terminal-benchmarks-1hfi</link>
      <guid>https://dev.to/emree_demir/qwen36-plus-api-besser-als-claude-bei-terminal-benchmarks-1hfi</guid>
      <description>&lt;h2&gt;
  
  
  Kurz gesagt
&lt;/h2&gt;

&lt;p&gt;Qwen3.6-Plus wurde offiziell veröffentlicht. Es erreicht 78,8 % auf SWE-bench Verified und 61,6 % auf Terminal-Bench 2.0, womit es Claude Opus 4.5 übertrifft. Es verfügt über ein Kontextfenster von 1 Million Tokens, einen neuen &lt;code&gt;preserve_thinking&lt;/code&gt; Parameter für Agenten-Loops und arbeitet direkt mit Claude Code, OpenClaw und Qwen Code über eine OpenAI-kompatible API.&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;Probiere Apidog noch heute aus&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Von der Vorschau zur Veröffentlichung
&lt;/h2&gt;

&lt;p&gt;Wenn Sie unseren &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;früheren Leitfaden zur Qwen 3.6 Plus Vorschau auf OpenRouter&lt;/a&gt; gelesen haben, kennen Sie bereits die Fähigkeiten des Modells. Die Vorschau wurde am 30. März ohne Warteliste und kostenlos über OpenRouter veröffentlicht. In den ersten zwei Tagen wurden über 400 Millionen Completion-Tokens in ca. 400.000 Anfragen verarbeitet.&lt;/p&gt;

&lt;p&gt;Mit der offiziellen Veröffentlichung steht jetzt die Produktionsversion bereit. Qwen3.6-Plus ist über das Alibaba Cloud Model Studio mit stabiler API, SLA-gestützter Betriebszeit und einem neuen API-Parameter für komplexe Agentenaufgaben verfügbar.&lt;/p&gt;

&lt;p&gt;In diesem Leitfaden erfahren Sie, was sich geändert hat, wie Sie die API korrekt aufrufen und wie Sie Ihre Integration mit Apidog vor der Bereitstellung testen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was Qwen3.6-Plus ist
&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; ist ein gehostetes Mixture-of-Experts-Modell des Qwen-Teams von Alibaba. Wie Qwen3.5 nutzt es dünne Aktivierung – pro Token wird nur ein Teil der Parameter aktiviert. Das sorgt für starke Leistung bei geringeren Rechenkosten verglichen mit ähnlich starken dichten Modellen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wichtige Spezifikationen:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1M Token Kontextfenster (Standard)&lt;/li&gt;
&lt;li&gt;Obligatorische Chain-of-Thought-Argumentation&lt;/li&gt;
&lt;li&gt;Neuer &lt;code&gt;preserve_thinking&lt;/code&gt; Parameter für Agentenaufgaben&lt;/li&gt;
&lt;li&gt;Native multimodale Unterstützung (Vision, Video, Dokumente)&lt;/li&gt;
&lt;li&gt;OpenAI-kompatible API, Anthropic-kompatible API und OpenAI Responses API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open-Source-Varianten erscheinen in Kürze. Wer Gewichte für Self-Hosting benötigt, kann diese bald erwarten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benchmark-Ergebnisse
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Coding-Agenten
&lt;/h3&gt;

&lt;p&gt;Qwen3.6-Plus liegt bei SWE-bench-Aufgaben knapp hinter Claude Opus 4.5, übertrifft aber alle Modelle bei Terminaloperationen.&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="Qwen3.6-Plus Benchmark" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Terminal-Bench 2.0 testet echte Shell-Operationen: Dateimanagement, Prozesskontrolle, mehrstufige Workflows (3h Timeout, 32 CPUs, 48 GB RAM). Qwen3.6-Plus erreicht 61,6 % (Claude Opus 4.5: 59,3 %) – ein klarer Vorteil bei Entwickleraufgaben.&lt;/p&gt;

&lt;h3&gt;
  
  
  Allgemeine Agenten und Werkzeugnutzung
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&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 prüft GitHub MCP Tool-Aufrufe. Qwen3.6-Plus führt mit 48,2 %, DeepPlanning mit 41,5 % (Claude: 33,9 %) zeigt die Stärke bei langfristigen Planungsaufgaben.&lt;/p&gt;

&lt;h3&gt;
  
  
  Argumentation und Wissen
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&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;GPQA testet wissenschaftliche Argumentation. IFEval strict misst, wie präzise Formatierungen befolgt werden. Qwen3.6-Plus führt in beiden – entscheidend für strukturierte Ausgaben und komplexe Agentenaufgaben.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multimodal
&lt;/h3&gt;

&lt;p&gt;Qwen3.6-Plus ist von Haus aus multimodal und führt bei Benchmarks für Dokumente, räumliche und Objekterkennung.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Qwen3.6-Plus&lt;/th&gt;
&lt;th&gt;Anmerkungen&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;Spitzenwert in Tabelle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RefCOCO avg&lt;/td&gt;
&lt;td&gt;93.5%&lt;/td&gt;
&lt;td&gt;Spitzenwert in Tabelle&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;Spitzenwert in Tabelle&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;Spitzenwert in Tabelle&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;Hinter Claude (66,3 %)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Bei Dokumentenverständnis und räumlicher Verankerung ist Qwen3.6-Plus führend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie man die API aufruft
&lt;/h2&gt;

&lt;p&gt;Qwen3.6-Plus ist im Alibaba Cloud Model Studio verfügbar. Ihren API-Schlüssel erhalten Sie unter &lt;a href="https://modelstudio.alibabacloud.com" rel="noopener noreferrer"&gt;modelstudio.alibabacloud.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drei regionale Basis-URLs:&lt;/strong&gt;&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;Peking: &lt;code&gt;https://dashscope.aliyuncs.com/compatible-mode/v1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;US Virginia: &lt;code&gt;https://dashscope-us.aliyuncs.com/compatible-mode/v1&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Grundlegender Aufruf mit Streaming
&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;
  
  
  Der &lt;code&gt;preserve_thinking&lt;/code&gt; Parameter
&lt;/h3&gt;

&lt;p&gt;Mit der offiziellen Version steht &lt;code&gt;preserve_thinking&lt;/code&gt; zur Verfügung.&lt;/p&gt;

&lt;p&gt;Setzen Sie &lt;code&gt;preserve_thinking: true&lt;/code&gt;, um die komplette Chain-of-Thought aus allen bisherigen Zügen in der Konversation zu erhalten. Besonders für mehrstufige Agententasks empfohlen. Standardmäßig deaktiviert (spart Tokens). Für Agenten-Loops aktivieren:&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;# reasoning über alle Züge hinweg behalten
&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 mit Claude Code verwenden
&lt;/h3&gt;

&lt;p&gt;Die Qwen API unterstützt das Anthropic-Protokoll. Claude Code kann direkt gegen Qwen3.6-Plus laufen, nur Umgebungsvariablen anpassen:&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 mit OpenClaw verwenden
&lt;/h3&gt;

&lt;p&gt;OpenClaw (früher Moltbot / Clawdbot) ist ein quelloffener, selbst gehosteter Coding-Agent. Installation und Konfiguration:&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;# Install (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;Bearbeite &lt;code&gt;~/.openclaw/openclaw.json&lt;/code&gt; und ergänze:&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 mit Qwen Code verwenden
&lt;/h3&gt;

&lt;p&gt;Qwen Code ist Alibabas Open-Source-Terminal-Agent, speziell für Qwen-Modelle. Mit OAuth gibt es 1.000 kostenlose API-Calls/Tag.&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;# Tippe /auth für Login und Freischaltung der Free-Tier&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Warum &lt;code&gt;preserve_thinking&lt;/code&gt; das Agentenverhalten ändert
&lt;/h2&gt;

&lt;p&gt;Ohne &lt;code&gt;preserve_thinking&lt;/code&gt; behandelt die LLM-API jeden Zug isoliert – nützlich für einfache Q&amp;amp;A, aber nicht für mehrschrittige Agenten. Mit &lt;code&gt;preserve_thinking&lt;/code&gt; bleibt die gesamte Argumentationskette sichtbar. Ein Agent kann in Schritt 8 noch auf die Analyse aus Schritt 2 referenzieren.&lt;/p&gt;

&lt;p&gt;Alibabas Benchmarks zeigen: Weniger redundante Argumentation, geringerer Tokenverbrauch pro Zug bei komplexen Workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beispiel für Agenten-Loops:&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;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;# Beispiel: Multi-Step Code Review Agent
&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;Ohne &lt;code&gt;preserve_thinking&lt;/code&gt; weiß das Modell in Schritt 3 nicht mehr, welche 3 Probleme es in Schritt 1 gefunden hat. Mit Parameter bleibt der Kontext erhalten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wofür es am besten geeignet ist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fehlerbehebung auf Repository-Ebene:&lt;/strong&gt; SWE-bench Verified (78,8 %) und SWE-bench Pro (56,6 %) sind konkurrenzfähig. Für automatisierte Code-Review- und Repair-Pipelines empfiehlt sich ein Benchmark gegen Ihr aktuelles Setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terminal-Automatisierung:&lt;/strong&gt; Führend bei Terminal-Bench 2.0, optimal für Shell-intensive Workflows, Dateioperationen, Prozessmanagement, Build-Pipelines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP-Tool-Aufruf:&lt;/strong&gt; MCPMark 48,2 % – Best-in-Class für MCP-basierte Integrationen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dokumentenanalyse mit langem Kontext:&lt;/strong&gt; 1M Token-Fenster mit starken LongBench v2-Ergebnissen, geeignet für große Codebases und Spezifikationsdokumente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend-Code-Generierung:&lt;/strong&gt; QwenWebBench (Elo-Rating: 1501,7 vs. 1517,9 für Claude Opus 4.5), praktisch gleichauf in der Frontend-Generierung.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mehrsprachigkeit:&lt;/strong&gt; WMT24++ 84,3 %, MAXIFE 88,2 % (23 Sprachen) – stark für nicht-englische Anwendungen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Testen von Qwen3.6-Plus API-Aufrufen mit Apidog
&lt;/h2&gt;

&lt;p&gt;Der Endpunkt ist OpenAI-kompatibel und lässt sich direkt 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; importieren und testen.&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 Test" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Richten Sie eine POST-Anfrage an &lt;code&gt;https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions&lt;/code&gt; ein. Den API-Key setzen Sie als Umgebungsvariable: &lt;code&gt;Authorization: Bearer {{DASHSCOPE_API_KEY}}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beispiel-Assertions für die Antwort-Validierung:&lt;/strong&gt;&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;Response contains choices&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;No empty reasoning when thinking enabled&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;Verwenden Sie Apidogs Smart Mock, um Testantworten während der Entwicklung zu generieren. So testen Sie Ihren Agenten-Code, ohne ständig die Live-API zu belasten – spart Tokens und beschleunigt die Testzyklen.&lt;/p&gt;

&lt;p&gt;Für Multi-Turn-Agenten: Erstellen Sie ein Testszenario in Apidog, das mehrere Requests verknüpft. Überprüfen Sie, ob &lt;code&gt;preserve_thinking&lt;/code&gt; die Argumentation über mehrere Züge hinweg beibehält, indem Sie bei jedem Schritt die Antwortstruktur validieren, bevor Sie das System in Produktion nehmen.&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 kostenlos herunterladen&lt;/a&gt;, um diese Tests direkt einzurichten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was kommt als Nächstes
&lt;/h2&gt;

&lt;p&gt;Das Qwen-Team liefert Open-Source-Varianten in Kürze aus – nach Qwen3.5-Muster als spärliche MoE-Modelle mit Apache 2.0 Lizenzen.&lt;/p&gt;

&lt;p&gt;Die Roadmap umfasst:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Noch komplexere Aufgaben auf Repository-Ebene und Dateiproblemlösung&lt;/li&gt;
&lt;li&gt;Weitere Entwicklung multimodaler Agenten (GUI-Agenten, visuelles Coding als Kernfunktionalität)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die Open-Source-Varianten von Qwen3.5 wurden schnell zu Standardmodellen für selbst gehostete Coding-Agenten. Das gleiche wird für Qwen3.6-Varianten erwartet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Qwen3.6-Plus schließt zu Claude Opus 4.5 bei Coding-Aufgaben auf und führt bei Terminal-Operationen, MCP-Tool-Aufrufen und langfristiger Planung. Das 1M Token-Kontextfenster, Anthropic-Kompatibilität und &lt;code&gt;preserve_thinking&lt;/code&gt; für Agenten-Loops machen es für produktive Agentensysteme attraktiv.&lt;/p&gt;

&lt;p&gt;Die kostenlose Vorschau auf OpenRouter war hilfreich zum Testen, die offizielle API bringt Stabilität, SLA und agentenoptimierte Features für zuverlässige Workflows.&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; übernimmt den Testpart: OpenAI-kompatiblen Endpunkt importieren, Assertions schreiben, Entwicklung simulieren und Regressionstests durchführen, wann immer Sie Modell oder API-Version aktualisieren.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Was ist der Unterschied zwischen Qwen3.6-Plus und der Vorschau?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Die Vorschau (qwen/qwen3.6-plus-preview) startete am 30. März 2026 auf OpenRouter. Die offizielle Version bringt &lt;code&gt;preserve_thinking&lt;/code&gt;, SLA-Betriebszeit und Model Studio-Unterstützung. Open-Source-Varianten folgen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was ist &lt;code&gt;preserve_thinking&lt;/code&gt; und wann sollte ich es verwenden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Standardmäßig wird nur die Argumentation des aktuellen Zuges beibehalten. Mit &lt;code&gt;preserve_thinking: true&lt;/code&gt; bleibt die Chain-of-Thought aus allen bisherigen Zügen erhalten. Für mehrstufige Agenten-Loops nutzen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie verhält sich Qwen3.6-Plus im Vergleich zu Claude Opus 4.5?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Claude Opus 4.5 liegt bei SWE-bench Verified (80,9 % vs. 78,8 %) und OSWorld-Verified (66,3 % vs. 62,5 %) vorn. Qwen3.6-Plus führt bei Terminal-Bench 2.0 (61,6 % vs. 59,3 %), MCPMark (48,2 % vs. 42,3 %), DeepPlanning (41,5 % vs. 33,9 %) und GPQA (90,4 % vs. 87,0 %).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich Qwen3.6-Plus mit Claude Code verwenden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja. Setzen Sie &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; auf den Dashscope Anthropic-kompatiblen Endpunkt, &lt;code&gt;ANTHROPIC_MODEL&lt;/code&gt; auf &lt;code&gt;qwen3.6-plus&lt;/code&gt;, &lt;code&gt;ANTHROPIC_AUTH_TOKEN&lt;/code&gt; auf Ihren Dashscope API-Key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ist Qwen3.6-Plus Open Source?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Das gehostete API-Modell ist nicht Open-Weight. Kleinere Varianten mit öffentlichen Gewichten erscheinen in Kürze.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie erhalte ich kostenlosen Zugang?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Installieren Sie Qwen Code (&lt;code&gt;npm install -g @qwen-code/qwen-code@latest&lt;/code&gt;), starten Sie &lt;code&gt;qwen&lt;/code&gt;, dann &lt;code&gt;/auth&lt;/code&gt;. Nach OAuth erhalten Sie 1.000 kostenlose API-Aufrufe/Tag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welches Kontextfenster unterstützt es?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Standardmäßig 1M Tokens. Einige Benchmarks nutzten 256K für den Vergleich, aber der API-Standard ist 1M.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie teste ich die API-Integration vor der Bereitstellung?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Endpunkt 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; importieren, API-Key als Variable, Assertions schreiben, Entwicklung simulieren und Regressionstests beim Modell-/API-Update durchführen.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Holo3: Das beste Computernutzungsmodell?</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Thu, 02 Apr 2026 08:55:35 +0000</pubDate>
      <link>https://dev.to/emree_demir/holo3-das-beste-computernutzungsmodell-153n</link>
      <guid>https://dev.to/emree_demir/holo3-das-beste-computernutzungsmodell-153n</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;H Company hat Holo3 am 31. März 2026 veröffentlicht – ein Mixture-of-Experts-Modell, das auf OSWorld-Verified 78,85 % erreicht. Damit setzt es einen neuen Benchmark für KI-gestützte Desktop-Computernutzung und schlägt GPT-5.4 sowie Opus 4.6 zu deutlich geringeren Kosten. Die API ist ab sofort verfügbar, die 35B-Variante gibt es Open-Weight auf HuggingFace unter Apache 2.0.&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;Teste Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Die Lücke bei der Computernutzung, die die meisten Entwickler noch nicht geschlossen haben
&lt;/h2&gt;

&lt;p&gt;API-Automatisierung und CI/CD laufen stabil – aber viele Workflows brechen an einer Hürde: Alte Unternehmenssoftware ohne API, Desktop-Programme vor REST, mehrstufige Prozesse über mehrere GUIs.&lt;/p&gt;

&lt;p&gt;Klassische RPA-Tools (z.B. UiPath) lösen das mit fragilen Koordinaten-Skripten – wartungsintensiv und fehleranfällig. Oft bleibt nur manuelle Arbeit.&lt;/p&gt;

&lt;p&gt;KI-basierte Computernutzung bricht diese Grenze auf: Modelle, die Screenshots interpretieren und Aktionen (Klicks, Tippen, Scrollen) ausführen, können jede GUI automatisieren – ganz ohne API. Holo3, veröffentlicht von H Company, ist aktuell das leistungsfähigste öffentlich verfügbare Modell für diese Aufgabenklasse.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Tipp:&lt;/strong&gt; Wenn du Automatisierungs-Workflows oder Test-Pipelines für Desktop-Software entwickelst, solltest du die Holo3-API kennen. Die nächsten Abschnitte zeigen, wie du Holo3-Aufrufe in deinen Workflow integrierst – inklusive Test und Mocking mit &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;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was ist Holo3?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://hcompany.ai/holo3" rel="noopener noreferrer"&gt;Holo3&lt;/a&gt; ist ein KI-Modell für Computernutzung: Du gibst einen Screenshot und eine Aufgabenbeschreibung, das Modell liefert die dafür notwendigen Aktionen (z.B. Klick, Tastendruck, Scrollen) zurück. Nach jeder Aktion erfasst du erneut einen Screenshot und wiederholst den Zyklus, bis die Aufgabe abgeschlossen ist.&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 Screenshot" width="800" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Varianten von Holo3:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Holo3-122B-A10B:&lt;/strong&gt; 122 Milliarden Parameter, 10 Milliarden aktiv (MoE). Nur als gehostete API verfügbar (&lt;a href="https://hcompany.ai/holo-models-api" rel="noopener noreferrer"&gt;hcompany.ai/holo-models-api&lt;/a&gt;). Setzt den Benchmark-Rekord.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Holo3-35B-A3B:&lt;/strong&gt; 35 Milliarden Parameter, 3 Milliarden aktiv. Open-Weight auf &lt;a href="https://huggingface.co/Hcompany/Holo3-35B-A3B" rel="noopener noreferrer"&gt;HuggingFace&lt;/a&gt; (Apache 2.0), kostenlose API-Stufe, selbst hostbar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;MoE-Architektur:&lt;/strong&gt; Nur ein Bruchteil der Parameter wird pro Token aktiviert – günstiger im Betrieb als die Parameterzahl erwarten lässt. H Company gibt an: Holo3-122B-A10B kostet pro Aufgabe weniger als GPT-5.4 und Opus 4.6.&lt;/p&gt;

&lt;h2&gt;
  
  
  OSWorld-Verified: Was der Benchmark misst
&lt;/h2&gt;

&lt;p&gt;OSWorld-Verified ist der führende Benchmark für KI-Computernutzung. Im Unterschied zu klassischen Textbenchmarks prüft OSWorld echte Aufgaben auf echten Desktops – Erfolg wird durch den tatsächlichen Systemzustand nach Ausführung verifiziert.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beispiele für Aufgaben:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Einzel-App: Datei öffnen, Formular ausfüllen, Daten kopieren&lt;/li&gt;
&lt;li&gt;App-übergreifend: PDF auslesen, Tabelle updaten, E-Mail versenden&lt;/li&gt;
&lt;li&gt;Multi-App-Sequenzen mit Kontext über mehrere Programme&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ergebnisse:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Holo3-122B-A10B erreicht &lt;strong&gt;78,85 %&lt;/strong&gt; – bisher waren &amp;gt;40 % Stand der Technik, führende Modelle von Anthropic/OpenAI lagen bei 60-65 %.&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="OSWorld Benchmark" width="800" height="631"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gerade bei schwierigen, mehrstufigen Multi-App-Tasks liegt Holo3 deutlich vorne.&lt;/p&gt;
&lt;h2&gt;
  
  
  Wie Holo3 trainiert wurde: Agentic Learning Flywheel
&lt;/h2&gt;

&lt;p&gt;Statt statischer Demos nutzt H Company eine kontinuierliche Pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Synthetische Navigationsdaten:&lt;/strong&gt; Menschliche plus generierte Anweisungen erzeugen Szenarien.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Out-of-Domain-Erweiterung:&lt;/strong&gt; Automatische Szenario-Varianten für Grenzfälle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kuratiertes Reinforcement Learning:&lt;/strong&gt; Filterung &amp;amp; RL-Maximierung der Task-Completion-Raten.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Datenursprung:&lt;/strong&gt; Die Synthetic Environment Factory erzeugt komplette Unternehmens-Apps samt verifizierbarer Aufgaben und End-to-End-Validierung. Das Modell trainiert an realistischen Business-Workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resultat:&lt;/strong&gt; Holo3 schlägt größere Basismodelle (z.B. Qwen3.5) – nicht wegen Architektur, sondern Trainingsmethode.&lt;/p&gt;
&lt;h2&gt;
  
  
  So rufst du die Holo3 API auf
&lt;/h2&gt;

&lt;p&gt;Die API nutzt einen Screenshot-Action-Loop. So gehst du vor:&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Authentifizierung einrichten
&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 Inference API base URL&lt;/span&gt;
https://api.hcompany.ai/v1

&lt;span class="c"&gt;# Header&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-Key unter &lt;a href="https://hcompany.ai/holo-models-api" rel="noopener noreferrer"&gt;hcompany.ai/holo-models-api&lt;/a&gt; abrufen. Die kostenlose Stufe deckt Holo3-35B-A3B ab.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Screenshot mit Task senden
&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;# Screenshot aufnehmen (z.B. mit 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;Open the invoice folder and find the most recent PDF&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. Aktion parsen &amp;amp; ausführen
&lt;/h3&gt;

&lt;p&gt;Die API gibt strukturierte Aktionen zurück:&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;"The invoice folder icon is visible at this position"&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;Aktionstypen:&lt;/strong&gt; &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. Schleife bis zur Fertigstellung
&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;Done in &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; steps&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;Task not completed within step limit&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-Aufrufe mit Apidog testen
&lt;/h2&gt;

&lt;p&gt;Für produktionsreife Automatisierung ist zuverlässiges Testing Pflicht. &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; unterstützt dich dabei:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Endpunkt importieren:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Lege in Apidog eine HTTP-Anfrage zu &lt;code&gt;https://api.hcompany.ai/v1/computer-use&lt;/code&gt; an. Den &lt;code&gt;Authorization&lt;/code&gt;-Header als Umgebungsvariable speichern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Antwortvalidierung:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Mit Apidogs Test-Assertions prüfst du die API-Struktur:&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;// In Apidog's post-response script&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;Action type is valid&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;Coordinates are within screen bounds&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;p&gt;&lt;strong&gt;Mocking der API:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Mit Apidogs Smart Mock erzeugst du realistische Holo3-Antworten, ohne die Live-API zu belasten. Das spart Credits im Integrationstest und ermöglicht parallele Frontend-Entwicklung.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testszenarien:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Verkette mehrere Holo3-Anfragen in Apidog, um Multistep-Workflows zu simulieren und die Aktionssequenz vor dem Live-Deployment zu prüfen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Holo3 vs. Claude Computer Use vs. OpenAI Operator
&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 Computer Use&lt;/th&gt;
&lt;th&gt;OpenAI Operator&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-Zugriff&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ja&lt;/td&gt;
&lt;td&gt;Ja (free)&lt;/td&gt;
&lt;td&gt;Ja&lt;/td&gt;
&lt;td&gt;Ja&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Offene Gewichte&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nein&lt;/td&gt;
&lt;td&gt;Ja (Apache 2.0)&lt;/td&gt;
&lt;td&gt;Nein&lt;/td&gt;
&lt;td&gt;Nein&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Selbst hostbar&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nein&lt;/td&gt;
&lt;td&gt;Ja&lt;/td&gt;
&lt;td&gt;Nein&lt;/td&gt;
&lt;td&gt;Nein&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kosten vs. GPT-5.4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Niedriger&lt;/td&gt;
&lt;td&gt;Viel niedriger&lt;/td&gt;
&lt;td&gt;Vergleichbar&lt;/td&gt;
&lt;td&gt;GPT-5.4 Preis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Am besten für&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Produktion&lt;/td&gt;
&lt;td&gt;Entwicklung/OSS&lt;/td&gt;
&lt;td&gt;Anthropic-Stack&lt;/td&gt;
&lt;td&gt;OpenAI-Stack&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Empfehlung nach Use-Case:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Holo3-122B:&lt;/strong&gt; Beste Genauigkeit, ideal für produktive Multi-App-Workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Holo3-35B:&lt;/strong&gt; Entwicklung, Test, Open Source, Self-Hosting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Computer Use:&lt;/strong&gt; Für Anthropic-Nutzer mit einheitlicher Abrechnung.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI Operator:&lt;/strong&gt; Für GPT-5.4-Nutzer, die einen Anbieter bevorzugen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Unternehmens-Anwendungsfälle
&lt;/h2&gt;

&lt;p&gt;Holo3 ist optimal für Workflows ohne saubere API:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dateneingabe in Altsystemen:&lt;/strong&gt; ERP/CRM ohne REST-API – Holo3 automatisiert die GUI, keine Modernisierung nötig.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plattformübergreifender Abgleich:&lt;/strong&gt; Zahlen aus PDF extrahieren, mit Tabelle abgleichen, Dashboard updaten – Holo3 übernimmt den kompletten Ablauf.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regressionstests für Web-Apps:&lt;/strong&gt; Statt fragiler Selenium-Skripte nutze Holo3 mit Klartext-Tasks – UI-Änderungen ohne Selektor-Pflege.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wettbewerbsanalyse:&lt;/strong&gt; Systematisches Scraping und Strukturdatenerfassung auf Webseiten, die Standard-Scraping blocken.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Benchmarks:&lt;/strong&gt; Holo3 ist in allen vier Kategorien führend, vor allem bei Multi-App-Workflows mit komplexem Kontextmanagement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ausblick: Adaptive Agentur
&lt;/h2&gt;

&lt;p&gt;H Company arbeitet am nächsten Schritt: &lt;strong&gt;Adaptive Agentur&lt;/strong&gt;. Ziel ist ein Modell, das neue, maßgeschneiderte Unternehmenssoftware in Echtzeit versteht und navigiert – ohne vorherige Trainingsdaten. Der Agent baut sich beim Erstkontakt ein mentales Modell der UI-Struktur und erledigt Aufgaben adaptiv.&lt;/p&gt;

&lt;p&gt;Das würde die größte Restriktion heutiger Computernutzungs-KI für Unternehmen beseitigen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Holo3 setzt mit 78,85 % auf OSWorld-Verified einen neuen Maßstab für Desktop-Automatisierung und schlägt Claude und GPT-basierte Lösungen bei komplexen Multi-App-Aufgaben. Die Open-Weight-Variante Holo3-35B-A3B unter Apache 2.0 macht einen kostenfreien Einstieg möglich.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementierungsmuster:&lt;/strong&gt; Screenshot aufnehmen, API-POST, Aktion ausführen, wiederholen.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; Mit &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; validierst, mockst und testest du die Integration zuverlässig – bevor du live gehst.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tipp:&lt;/strong&gt; Entwickelst du etwas mit Desktop-GUI? Nutze Apidog kostenlos, um deine Holo3-Integration abzusichern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Häufig gestellte Fragen
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Was ist Holo3?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Holo3 ist ein KI-Modell von H Company für Computernutzung. Es verarbeitet Screenshots und gibt Aktionen (Klicks, Tastatur, Scrollen) für Desktop- oder Browser-Aufgaben zurück. Es erreicht 78,85 % auf dem OSWorld-Verified-Benchmark.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ist Holo3 Open Source?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Die Variante Holo3-35B-A3B ist Open-Weight unter Apache 2.0 (Download auf HuggingFace). Holo3-122B-A10B ist nur per API nutzbar. Beide Varianten sind über die Inference API von H Company erhältlich, das 35B-Modell sogar kostenlos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie funktioniert der OSWorld-Benchmark?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
OSWorld testet echte Computeraufgaben (Web, Dateisystem, Multi-App). Der Erfolg wird über den Systemzustand nach Ausführung gemessen – nicht durch Ausgabetext. Die Aufgaben reichen von Einzel-App bis zu komplexen Multi-App-Workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie schneidet Holo3 gegenüber Claude Computer Use ab?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Holo3-122B erzielt höhere Werte (78,85 % vs. ca. 65 % für Claude) und ist günstiger pro Aufgabe. Claude bleibt sinnvoll, wenn du bereits im Anthropic-Ökosystem bist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich Holo3 lokal ausführen?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja, mit Holo3-35B-A3B (Open-Weight auf HuggingFace). Das 122B-Modell ist exklusiv per API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Für welche Anwendungsfälle eignen sich Computernutzungs-APIs?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Automatisierung von Altsystemen (ohne REST-API), App-übergreifende Daten-Workflows, Regressionstests ohne fragile Selektoren, Scraping für Wettbewerbsanalysen – und generell alle manuellen Desktop-Workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie teste ich meine Holo3 API-Integration?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Mit &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;: Endpunkt importieren, Antwort-Assertions konfigurieren, die API mocken und Testszenarien für die Integration verketten.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was ist „Adaptive Agentur“ in der Holo3 Roadmap?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Zukünftige Modelle sollen neue, unbekannte Unternehmenssoftware in Echtzeit navigieren können – durch UI-Strukturerkennung ohne vorherige Trainingsdaten. Das würde KI-gestützte Computernutzung auch für individuell entwickelte Unternehmenslösungen universell machen.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>axios@1.14.1 Supply Chain Attacke: Was jetzt zu tun ist</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Thu, 02 Apr 2026 08:50:35 +0000</pubDate>
      <link>https://dev.to/emree_demir/axios1141-supply-chain-attacke-was-jetzt-zu-tun-ist-4jh</link>
      <guid>https://dev.to/emree_demir/axios1141-supply-chain-attacke-was-jetzt-zu-tun-ist-4jh</guid>
      <description>&lt;h2&gt;
  
  
  Kurz gesagt
&lt;/h2&gt;

&lt;p&gt;Am 30.–31. März 2026 wurden die axios-Versionen 1.14.1 und 0.30.4 auf npm mit einer bösartigen Abhängigkeit kompromittiert, die einen Remote Access Trojaner (RAT) auf infizierten Maschinen platziert. Beide Versionen wurden von der Veröffentlichung zurückgezogen. Die sichere Version ist 1.14.0. Wenn Sie &lt;a href="mailto:axios@1.14.1"&gt;axios@1.14.1&lt;/a&gt; oder 0.30.4 installiert haben, behandeln Sie die Maschine als kompromittiert und ändern Sie sofort alle Zugangsdaten.&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 jetzt ausprobieren&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Was axios ist und warum dies wichtig ist
&lt;/h2&gt;

&lt;p&gt;axios hat wöchentlich 100 Millionen Downloads auf npm. Es ist der HTTP-Client in unzähligen Frontend-Frameworks, Backend-Node.js-Diensten und Unternehmensanwendungen. Wird ein so grundlegendes Paket kompromittiert, sind die Auswirkungen gravierend – Entwickler, die im Zeitfenster 30.–31. März &lt;code&gt;npm install&lt;/code&gt; ausgeführt haben, haben unwissentlich Malware installiert.&lt;/p&gt;

&lt;p&gt;Das ist kein theoretisches Risiko. Es ist passiert, bestätigt und die Nutzlast war ernst: Ein mehrstufiger Remote Access Trojaner, der beliebige Befehle ausführen, Systemdaten exfiltrieren und persistieren kann.&lt;/p&gt;

&lt;p&gt;Wenn Ihr Team axios nutzt und Sie Apidog zum Testen Ihrer HTTP-Integrationen einsetzen, lesen Sie weiter, bevor Sie deployen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chronologie des Angriffs
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;30. März 2026 — 23:59:12 UTC:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ein bösartiges Paket namens &lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt; wird von &lt;code&gt;nrwise@proton.me&lt;/code&gt; auf npm veröffentlicht. Eine saubere Version (&lt;code&gt;4.2.0&lt;/code&gt;) wurde 18 Stunden zuvor als Typosquatting der legitimen &lt;code&gt;crypto-js&lt;/code&gt;-Bibliothek veröffentlicht.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31. März 2026 — 00:05:41 UTC:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Die automatisierte Malware-Erkennung von Socket meldet &lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt; als bösartig – sechs Minuten nach Veröffentlichung.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31. März 2026 — kurz nach Mitternacht:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;axios@1.14.1&lt;/code&gt; erscheint auf npm und zieht &lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt; als Abhängigkeit ein. Dieser Release erscheint nicht in den offiziellen Tags des axios GitHub-Repositorys. Der neueste legitime Tag bleibt &lt;code&gt;v1.14.0&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31. März 2026 — Vormittag:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Das GitHub-Issue &lt;code&gt;#10604&lt;/code&gt; meldet &lt;code&gt;axios@1.14.1&lt;/code&gt; und &lt;code&gt;axios@0.30.4&lt;/code&gt; als kompromittiert. Die axios-Betreuer bestätigen, dass sie den Angreiferzugriff zunächst nicht entfernen können – das kompromittierte Konto hatte höhere npm-Berechtigungen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31. März 2026:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Beide Versionen werden von npm zurückgezogen. Die axios-Betreuer widerrufen Tokens, verschärfen Release-Kontrollen und untersuchen, wie ein langlebiges npm-Token missbraucht wurde.&lt;/p&gt;
&lt;h2&gt;
  
  
  Wie der Angriff funktionierte
&lt;/h2&gt;

&lt;p&gt;Der Angriff nutzte ein langlebiges npm-Token im Release-Workflow aus. Nach der Kompromittierung eines Betreuer-Zugangs veröffentlichte der Angreifer eine neue Version außerhalb des üblichen Release-Prozesses.&lt;/p&gt;

&lt;p&gt;Die neue Version zog &lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt; als Abhängigkeit hinzu. Der Paketname sollte wie ein legitimes Kryptographie-Utility wirken; die saubere Version &lt;code&gt;4.2.0&lt;/code&gt; schuf Historie, um Verdacht zu mindern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Socket identifizierte folgende Angriffsstufen in &lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Stufe 1 — Ausführung:&lt;/strong&gt;
Beim Installieren wird Code via npm-Lifecycle-Skripte ausgeführt, der eine zweite Nutzlast ablegt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stufe 2 — RAT-Bereitstellung:&lt;/strong&gt;
Installation eines Remote Access Trojaners, der eine persistente Hintertür öffnet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stufe 3 — Exfiltration:&lt;/strong&gt;
Der RAT kann Shell-Befehle ausführen, Umgebungsvariablen und Secrets lesen und Systemdaten exfiltrieren.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Der RAT bleibt über Neustarts persistiert. Maschinen, die die kompromittierte Version installiert haben, sind weiter gefährdet, selbst nach Entfernen des npm-Pakets, solange der RAT nicht gezielt entfernt wird.&lt;/p&gt;
&lt;h2&gt;
  
  
  Bin ich betroffen?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sie sind betroffen, wenn:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sie zwischen &lt;strong&gt;30. März, 23:59 UTC&lt;/strong&gt; und &lt;strong&gt;31. März 2026, mittags UTC&lt;/strong&gt; ein &lt;code&gt;npm install axios&lt;/code&gt; oder &lt;code&gt;npm install&lt;/code&gt; (mit axios in &lt;code&gt;package.json&lt;/code&gt;) ausgeführt haben.&lt;/li&gt;
&lt;li&gt;Ihre Datei &lt;code&gt;node_modules/axios/package.json&lt;/code&gt; die Version &lt;strong&gt;1.14.1&lt;/strong&gt; oder &lt;strong&gt;0.30.4&lt;/strong&gt; anzeigt.&lt;/li&gt;
&lt;li&gt;Ihre &lt;code&gt;package-lock.json&lt;/code&gt; oder &lt;code&gt;yarn.lock&lt;/code&gt; axios auf &lt;strong&gt;1.14.1&lt;/strong&gt; oder &lt;strong&gt;0.30.4&lt;/strong&gt; auflöst.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Checkliste zum Überprüfen:&lt;/strong&gt;&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;# Installierte Version prüfen&lt;/span&gt;
npm list axios

&lt;span class="c"&gt;# Lock-Datei prüfen&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;# Nach plain-crypto-js suchen&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;"INFIZIERT"&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;"Nicht gefunden"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn &lt;code&gt;plain-crypto-js&lt;/code&gt; in Ihren &lt;code&gt;node_modules&lt;/code&gt; liegt, wurde die bösartige Version ausgeführt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was jetzt zu tun ist
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. axios sofort aktualisieren
&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;# oder auf die neueste sichere Version pinnen&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;&lt;strong&gt;Verifizierung:&lt;/strong&gt;&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;# Sollte 1.14.0 oder höher anzeigen (sobald ein bereinigtes 1.14.x verfügbar ist)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Wenn Sie die kompromittierte Version installiert haben
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Behandeln Sie dies als vollständigen Sicherheitsvorfall:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Alle Zugangsdaten (Secrets) ändern:&lt;/strong&gt;
API-Schlüssel, Datenbank-Credentials, SSH-Keys, Cloud-Provider-Tokens, &lt;code&gt;.env&lt;/code&gt;-Dateien.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Umgebungsvariablen prüfen:&lt;/strong&gt;
Der RAT exfiltriert gezielt Secrets aus Umgebungsvariablen und Filesystem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ausgehende Netzwerkverbindungen prüfen:&lt;/strong&gt;
Suchen Sie im fraglichen Zeitraum nach Verbindungen zu unbekannten IPs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistenzmechanismen suchen:&lt;/strong&gt;
Cronjobs, Startskripte und systemd-Dienste auf neue Einträge im Kompromittierungszeitraum überprüfen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maschine neu aufsetzen:&lt;/strong&gt;
Bei CI-Runnern oder Produktionssystemen unbedingt ein Re-Imaging durchführen. Bei Entwickler-Laptops: Secrets kompromittiert betrachten und alles ändern, bevor die Maschine weiterverwendet wird.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. CI/CD-Pipelines prüfen
&lt;/h3&gt;

&lt;p&gt;Wenn Ihre Build-Pipeline im betroffenen Zeitraum &lt;code&gt;npm install&lt;/code&gt; ausgeführt hat, ist Ihre CI-Umgebung potenziell betroffen.&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;# Build-Logs im betroffenen Zeitraum prüfen&lt;/span&gt;
&lt;span class="c"&gt;# Nach axios@1.14.1 im Install-Output suchen&lt;/span&gt;

&lt;span class="c"&gt;# Aktuelle CI node_modules prüfen&lt;/span&gt;
npm list axios plain-crypto-js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Alle Secrets ändern&lt;/strong&gt;, auf die die CI-Pipeline Zugriff hat: Deploy-Keys, Cloud-Zugangsdaten, Registry-Tokens.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Lock-Datei prüfen
&lt;/h3&gt;

&lt;p&gt;Lock-Dateien (&lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;) sollten keine kompromittierten Versionen enthalten. Falls doch, Datei löschen und neu generieren:&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;# Lock-Datei entfernen und neu erstellen&lt;/span&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;Vor dem Commit sicherstellen, dass die neue Lock-Datei axios auf eine sichere Version auflöst.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apidog zur Überprüfung Ihrer axios API-Aufrufe verwenden
&lt;/h2&gt;

&lt;p&gt;Setzen Sie axios als HTTP-Client ein, kann &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; Sie bei der Prüfung unterstützen, ob Ihre Integration nach dem Update weiterhin korrekt funktioniert.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vorgehen:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nach Update auf &lt;a href="mailto:axios@1.14.0"&gt;axios@1.14.0&lt;/a&gt; Ihre API-Endpunkte in Apidog importieren.&lt;/li&gt;
&lt;li&gt;Regressionstests durchführen, um Änderungen im Verhalten auszuschließen.&lt;/li&gt;
&lt;li&gt;Mit den Assertion-Features von Apidog prüfen, ob keine Payloads oder Header manipuliert wurden:
&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 Post-Response Assertion&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;Response is clean — no injected fields&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;Führen Sie Ihre komplette Testsuite gegen die bereinigte axios-Version in Apidog aus und dokumentieren Sie das Ausgangsverhalten vor dem Produktions-Rollout.&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 kostenlos testen&lt;/a&gt;, um HTTP-Client-Regressionstests einzurichten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Warum Lieferkettenangriffe auf npm schwer zu stoppen sind
&lt;/h2&gt;

&lt;p&gt;Der axios-Angriff ist kein Einzelfall. Das Muster wiederholt sich:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;event-stream (2018):&lt;/strong&gt; Nutzlast zur Bitcoin-Wallet-Exfiltration. 8 Mio. Downloads/Woche.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ua-parser-js (2021):&lt;/strong&gt; Kompromittierung zur Installation von Cryptominern und Passwortdieben.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;node-ipc (2022):&lt;/strong&gt; Maintainer fügt destruktiven Code gegen russische/weißrussische IPs ein.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;xz utils (2024):&lt;/strong&gt; Zwei Jahre Social Engineering für die Hintertür einer zentralen Linux-Bibliothek.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;axios (2026):&lt;/strong&gt; Kompromittierte Betreuer-Zugänge für RAT-Release über Abhängigkeit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Zentral:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Das Vertrauen gilt dem veröffentlichenden Konto, nicht dem Code. Werden Maintainer-Zugangsdaten kompromittiert, erbt der Angreifer sofort das Release-Vertrauen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Empfohlene Maßnahmen:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Maßnahme&lt;/th&gt;
&lt;th&gt;Wirkung&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Lock-Dateien (&lt;code&gt;package-lock.json&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Fixiert exakte Versionen, verhindert stille Upgrades&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;npm audit&lt;/code&gt; in CI&lt;/td&gt;
&lt;td&gt;Meldet bekannte Schwachstellen vor Deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Socket.dev / Snyk&lt;/td&gt;
&lt;td&gt;Verhaltensanalyse – erkennt verdächtige Pakete früh&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zwei-Faktor-Authentifizierung auf npm&lt;/td&gt;
&lt;td&gt;Erschwert Kompromittierung von Maintainer-Accounts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;npm publish&lt;/code&gt; mit kurzlebigen Tokens&lt;/td&gt;
&lt;td&gt;Begrenzt das Expositionsfenster bei Token-Leakage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock-Dateien in PRs prüfen&lt;/td&gt;
&lt;td&gt;Unerwartete Abhängigkeitsänderungen im Review erkennen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Das axios-Team verschärft die Release-Kontrollen und setzt auf kurzlebige Tokens. Die nachhaltige Lösung muss jedoch vom gesamten Ökosystem ausgehen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Indikatoren einer Kompromittierung (IOCs)
&lt;/h2&gt;

&lt;p&gt;Basierend auf der Analyse von Socket:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bösartige Pakete:&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;E-Mail des Herausgebers:&lt;/strong&gt; &lt;code&gt;nrwise@proton.me&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verhalten:&lt;/strong&gt; Netzwerkverbindungen bei npm-Installation, RAT-Persistenz, Exfiltration von Secrets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sichere axios-Versionen:&lt;/strong&gt; 1.14.0 und älter (außer 0.30.4), 1.13.x, 1.12.x&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bei Infektionsverdacht: Bericht an npm security (&lt;a href="mailto:security@npmjs.com"&gt;security@npmjs.com&lt;/a&gt;) senden und Logs sichern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Die axios-Komprimittierung zeigt: Abhängigkeits-Sicherheit ist ein fortlaufender Prozess. Versionen pinnen, Tools wie Socket in CI, Zugangsdaten bei Auffälligkeiten ändern, Lock-Dateien im Review prüfen.&lt;/p&gt;

&lt;p&gt;Möchten Sie nach einem axios-Update Ihre API-Integration validieren, bietet Ihnen &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; Assertions, Mocking und Regressionstests, um Ihren HTTP-Client abzusichern, bevor Sie releasen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Häufig gestellte Fragen (FAQ)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Welche axios-Versionen sind kompromittiert?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;axios@1.14.1&lt;/code&gt; und &lt;code&gt;axios@0.30.4&lt;/code&gt;. Beide wurden von npm zurückgezogen. Die sichere Version ist &lt;code&gt;1.14.0&lt;/code&gt; (bzw. jede 1.13.x, 1.12.x).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was bewirkt die bösartige axios-Nutzlast?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Sie zieht &lt;code&gt;plain-crypto-js@4.2.1&lt;/code&gt; ein, das einen mehrstufigen Remote Access Trojaner (RAT) bereitstellt. Dieser kann Befehle empfangen, Secrets exfiltrieren und persistieren.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Woher weiß ich, ob ich die kompromittierte Version installiert habe?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Führen Sie &lt;code&gt;npm list axios&lt;/code&gt; aus – erscheint 1.14.1 oder 0.30.4, sind Sie betroffen. Prüfen Sie zusätzlich &lt;code&gt;npm list plain-crypto-js&lt;/code&gt; – ist das Paket vorhanden, lief der bösartige Code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reicht ein Update auf eine saubere Version?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nein. Das Update entfernt die Abhängigkeit für die Zukunft, aber der RAT könnte schon installiert und aktiv sein. Ändern Sie alle Secrets und prüfen Sie die Maschine auf Persistenzmechanismen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie konnte der Angreifer auf npm veröffentlichen?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Wahrscheinlich durch kompromittierte Maintainer-Zugangsdaten und ein langlebiges npm-Token mit Release-Rechten. Das axios-Team zieht Konsequenzen und verschärft Release-Kontrollen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was ist der Unterschied zu einer regulären Schwachstelle?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Eine Schwachstelle ist ein Bug im legitimen Code. Ein Lieferkettenangriff bringt bösartigen Code über einen vertrauenswürdigen Release-Kanal ein – der Code war nie im axios-GitHub, sondern wurde direkt ins npm-Paket injiziert.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie kann ich meine Projekte vor Lieferkettenangriffen schützen?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Lock-Dateien nutzen, &lt;code&gt;npm audit&lt;/code&gt; in CI, Socket.dev oder ähnliche Tools für Verhaltensanalyse, 2FA für npm-Konten, kurzlebige Publish-Tokens und Lockfile-Diffs im Code-Review überprüfen.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>news</category>
      <category>npm</category>
      <category>security</category>
    </item>
  </channel>
</rss>
