{
  "aboutHtml": "<h4>Van beschrijving naar video</h4><p>Grok Imagine Video maakt video uit tekst. Het xAI-model zelf heeft ook modi met een bronafbeelding en bronvideo. In de gepubliceerde Ailoot-generatiemethode is de invoer een tekstbeschrijving en het resultaat een video.</p><p>Generatie verloopt asynchroon: eerst wordt een taak gemaakt, daarna worden de status en het voltooide resultaat via de taakidentifier opgehaald. Volgens xAI kan het maken van een video meerdere minuten duren; de tijd hangt af van scènecomplexiteit, duur, resolutie en gekozen modus.</p><h4>Duur en beeldformaat</h4><p>Voor videocreatie is een duur van <strong>1 tot 15 seconden</strong> beschikbaar. De beeldformaten omvatten <code>1:1</code>, <code>16:9</code>, <code>9:16</code>, <code>4:3</code>, <code>3:4</code>, <code>3:2</code> en <code>2:3</code>; het standaardformaat is <code>16:9</code>. Deze versie biedt <strong>480p en 720p</strong>; 1080p hoort bij versie 1.5.</p><h4>De bronafbeelding animeren</h4><p>In de xAI-modus met een afbeelding wordt die het beginframe en bepaalt de tekstinstructie de beweging. Standaard volgt de videovorm de verhoudingen van de bronafbeelding. Een expliciet opgegeven beeldverhouding verandert die vorm en kan de afbeelding uitrekken.</p><h4>Gerichte bewerking</h4><p>Bij een bestaande video past het model de beschreven wijzigingen toe en behoudt het de overige scène-inhoud. Deze modus helpt een gewenst element te wijzigen terwijl de enscenering van de bronvideo behouden blijft. Duur en verhoudingen worden van het origineel overgenomen; een nieuwe duur of beeldvorm worden niet ingesteld.</p><p>De bronvideo voor bewerking is beperkt tot <strong>8,7 seconden</strong> en het resultaat tot een resolutie van maximaal <strong>720p</strong>. Materiaal in 1080p wordt verkleind tot 720p. Instellingen voor videogeneratie op basis van tekst worden niet automatisch op bewerking toegepast.</p><h4>Een bestaande video verlengen</h4><p>In een afzonderlijke xAI-modus verlengt deze versie de bronvideo vanaf het laatste frame. De bron-MP4 moet 2 tot 15 seconden duren; het toegevoegde deel 2 tot 10 seconden, standaard 6. Het resultaat combineert de bronvideo met de verlenging. Verhoudingen en resolutie worden uit de bron overgenomen, met een grens van 720p; ze kunnen in deze modus niet afzonderlijk worden veranderd. Deze fabrikantmogelijkheid verschilt van de gepubliceerde Ailoot-generatie uit tekst.</p><h4>Referenties en versiegrenzen</h4><p>xAI voorziet in visuele referenties om het uiterlijk van mensen, kleding en voorwerpen in de scène te sturen. Een referentie bepaalt visuele kenmerken, niet het exacte beeld van het eerste frame. Bij de klassieke Grok Imagine Video kunnen een beginframe en referenties niet worden gecombineerd.</p><p>Deze versie accepteert geen exacte vastlegging van het laatste frame of tussenliggende keyframes. Die mogelijkheden horen bij Grok Imagine Video 1.5. Generatie, bronbeeldanimatie en het wijzigen van een bestaande video zijn verschillende modi; de gepubliceerde Ailoot-methode beschrijft hier generatie uit tekst.</p>",
  "aboutText": "### Van beschrijving naar video\n\nGrok Imagine Video maakt video uit tekst. Het xAI-model zelf heeft ook modi met een bronafbeelding en bronvideo. In de gepubliceerde Ailoot-generatiemethode is de invoer een tekstbeschrijving en het resultaat een video.\n\nGeneratie verloopt asynchroon: eerst wordt een taak gemaakt, daarna worden de status en het voltooide resultaat via de taakidentifier opgehaald. Volgens xAI kan het maken van een video meerdere minuten duren; de tijd hangt af van scènecomplexiteit, duur, resolutie en gekozen modus.\n\n### Duur en beeldformaat\n\nVoor videocreatie is een duur van **1 tot 15 seconden** beschikbaar. De beeldformaten omvatten `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2` en `2:3`; het standaardformaat is `16:9`. Deze versie biedt **480p en 720p**; 1080p hoort bij versie 1.5.\n\n### De bronafbeelding animeren\n\nIn de xAI-modus met een afbeelding wordt die het beginframe en bepaalt de tekstinstructie de beweging. Standaard volgt de videovorm de verhoudingen van de bronafbeelding. Een expliciet opgegeven beeldverhouding verandert die vorm en kan de afbeelding uitrekken.\n\n### Gerichte bewerking\n\nBij een bestaande video past het model de beschreven wijzigingen toe en behoudt het de overige scène-inhoud. Deze modus helpt een gewenst element te wijzigen terwijl de enscenering van de bronvideo behouden blijft. Duur en verhoudingen worden van het origineel overgenomen; een nieuwe duur of beeldvorm worden niet ingesteld.\n\nDe bronvideo voor bewerking is beperkt tot **8,7 seconden** en het resultaat tot een resolutie van maximaal **720p**. Materiaal in 1080p wordt verkleind tot 720p. Instellingen voor videogeneratie op basis van tekst worden niet automatisch op bewerking toegepast.\n\n### Een bestaande video verlengen\n\nIn een afzonderlijke xAI-modus verlengt deze versie de bronvideo vanaf het laatste frame. De bron-MP4 moet 2 tot 15 seconden duren; het toegevoegde deel 2 tot 10 seconden, standaard 6. Het resultaat combineert de bronvideo met de verlenging. Verhoudingen en resolutie worden uit de bron overgenomen, met een grens van 720p; ze kunnen in deze modus niet afzonderlijk worden veranderd. Deze fabrikantmogelijkheid verschilt van de gepubliceerde Ailoot-generatie uit tekst.\n\n### Referenties en versiegrenzen\n\nxAI voorziet in visuele referenties om het uiterlijk van mensen, kleding en voorwerpen in de scène te sturen. Een referentie bepaalt visuele kenmerken, niet het exacte beeld van het eerste frame. Bij de klassieke Grok Imagine Video kunnen een beginframe en referenties niet worden gecombineerd.\n\nDeze versie accepteert geen exacte vastlegging van het laatste frame of tussenliggende keyframes. Die mogelijkheden horen bij Grok Imagine Video 1.5. Generatie, bronbeeldanimatie en het wijzigen van een bestaande video zijn verschillende modi; de gepubliceerde Ailoot-methode beschrijft hier generatie uit tekst.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "00e6740c1a529c1d501b3d64cd4b71b648d3a1d5864b76e46815211299cd7af3",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "nl",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">x</span><h2 id=\"sheet-title\">grok-imagine-video</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sluiten\">×</button></div><div class=\"idline\"><span>xAI /</span><code>grok-imagine-video</code><button type=\"button\" id=\"copy-id\">ID kopiëren</button></div><nav class=\"card-jump-nav\" aria-label=\"Onderdelen van de modelkaart\"><button type=\"button\" data-card-jump=\"overview\">Aan de slag</button><button type=\"button\" data-card-jump=\"methods\">Invoer en methoden</button><button type=\"button\" data-card-jump=\"pricing\">Tarieven</button><button type=\"button\" data-card-jump=\"examples\">Voorbeelden</button><button type=\"button\" data-card-jump=\"results\">Resultaten</button><button type=\"button\" data-card-jump=\"aliases\">Aliasnamen</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-methoden\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Core|videos|/v1/videos/generations|grok-imagine-video\">Video</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Aan de slag</h3><p class=\"mdesc-full\">Grok Imagine Video maakt korte video&#39;s uit een tekstbeschrijving, met keuze van duur en beeldformaat. Het xAI-model zelf ondersteunt ook beeldanimatie en gerichte videobewerking.</p><dl class=\"card-io\" data-card-io><div><dt>Toegestane invoer</dt><dd>Tekst</dd></div><div><dt>Resultaten</dt><dd>Video</dd></div></dl><details class=\"card-about\"><summary>Over het model</summary><p class=\"note-s\" data-model-method-boundary>Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.</p><div class=\"mabout\" id=\"m-about\"><h4>Van beschrijving naar video</h4><p>Grok Imagine Video maakt video uit tekst. Het xAI-model zelf heeft ook modi met een bronafbeelding en bronvideo. In de gepubliceerde Ailoot-generatiemethode is de invoer een tekstbeschrijving en het resultaat een video.</p><p>Generatie verloopt asynchroon: eerst wordt een taak gemaakt, daarna worden de status en het voltooide resultaat via de taakidentifier opgehaald. Volgens xAI kan het maken van een video meerdere minuten duren; de tijd hangt af van scènecomplexiteit, duur, resolutie en gekozen modus.</p><h4>Duur en beeldformaat</h4><p>Voor videocreatie is een duur van <strong>1 tot 15 seconden</strong> beschikbaar. De beeldformaten omvatten <code>1:1</code>, <code>16:9</code>, <code>9:16</code>, <code>4:3</code>, <code>3:4</code>, <code>3:2</code> en <code>2:3</code>; het standaardformaat is <code>16:9</code>. Deze versie biedt <strong>480p en 720p</strong>; 1080p hoort bij versie 1.5.</p><h4>De bronafbeelding animeren</h4><p>In de xAI-modus met een afbeelding wordt die het beginframe en bepaalt de tekstinstructie de beweging. Standaard volgt de videovorm de verhoudingen van de bronafbeelding. Een expliciet opgegeven beeldverhouding verandert die vorm en kan de afbeelding uitrekken.</p><h4>Gerichte bewerking</h4><p>Bij een bestaande video past het model de beschreven wijzigingen toe en behoudt het de overige scène-inhoud. Deze modus helpt een gewenst element te wijzigen terwijl de enscenering van de bronvideo behouden blijft. Duur en verhoudingen worden van het origineel overgenomen; een nieuwe duur of beeldvorm worden niet ingesteld.</p><p>De bronvideo voor bewerking is beperkt tot <strong>8,7 seconden</strong> en het resultaat tot een resolutie van maximaal <strong>720p</strong>. Materiaal in 1080p wordt verkleind tot 720p. Instellingen voor videogeneratie op basis van tekst worden niet automatisch op bewerking toegepast.</p><h4>Een bestaande video verlengen</h4><p>In een afzonderlijke xAI-modus verlengt deze versie de bronvideo vanaf het laatste frame. De bron-MP4 moet 2 tot 15 seconden duren; het toegevoegde deel 2 tot 10 seconden, standaard 6. Het resultaat combineert de bronvideo met de verlenging. Verhoudingen en resolutie worden uit de bron overgenomen, met een grens van 720p; ze kunnen in deze modus niet afzonderlijk worden veranderd. Deze fabrikantmogelijkheid verschilt van de gepubliceerde Ailoot-generatie uit tekst.</p><h4>Referenties en versiegrenzen</h4><p>xAI voorziet in visuele referenties om het uiterlijk van mensen, kleding en voorwerpen in de scène te sturen. Een referentie bepaalt visuele kenmerken, niet het exacte beeld van het eerste frame. Bij de klassieke Grok Imagine Video kunnen een beginframe en referenties niet worden gecombineerd.</p><p>Deze versie accepteert geen exacte vastlegging van het laatste frame of tussenliggende keyframes. Die mogelijkheden horen bij Grok Imagine Video 1.5. Generatie, bronbeeldanimatie en het wijzigen van een bestaande video zijn verschillende modi; de gepubliceerde Ailoot-methode beschrijft hier generatie uit tekst.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Beschikbaar in Ailoot · invoer en methoden</h3><details class=\"card-method\" open><summary><b>Ailoot · Videomateriaal</b> <code>POST /v1/videos/generations</code></summary><dl class=\"method-capabilities\"><div><dt>Invoertypen</dt><dd><code>text</code></dd></div><div><dt>Uitvoertypen</dt><dd><code>video</code></dd></div><div><dt>Uitvoerformaat</dt><dd>mp4</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Veld</th><th>Type</th><th>Vereiste</th><th>Waarden en limieten</th><th>Standaard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>grok-imagine-video</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Minimumlengte: 1</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Minimum: 1</div><div>Maximum: 15</div><div>Voorwaarden: Geef niet zowel duration als seconds op</div><div>Eenheid: seconden</div></td><td data-cell-label=\"Standaard\" data-default=\"known\"><span class=\"card-cell-label\">Standaard</span>1</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">seconds</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer|integer_string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Minimum: 1</div><div>Maximum: 15</div><div>Alternatief: duration</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>480p, 720p</div></td><td data-cell-label=\"Standaard\" data-default=\"known\"><span class=\"card-cell-label\">Standaard</span>480p</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3</div><div>Voorwaarden: Als afbeeldingsinvoer is opgegeven en de verhouding is weggelaten, neemt de provider de beeldverhouding van de afbeelding over</div></td><td data-cell-label=\"Standaard\" data-default=\"known\"><span class=\"card-cell-label\">Standaard</span>16:9</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">size</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>1280x720, 720x1280, 1920x1080, 1080x1920</div><div>Voorwaarden: Moet overeenkomen met resolution/aspect_ratio als beide zijn opgegeven</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">image</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Voorwaarden: Daadwerkelijk ondersteunde invoerafbeelding; hierdoor mag de prompt worden weggelaten</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Combinaties van invoermaterialen</summary><p class=\"note-s\"><b>Tekst naar video</b> · Vereist: prompt</p><p class=\"note-s\"><b>Afbeelding naar video</b> · Vereist: image</p></details><details class=\"note-s\" data-method-contract><summary>Methodeparameters en levenscyclus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Contract</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>null</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>null</td></tr></tbody></table></div><p>Levenscyclus: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}/content</code></p><p class=\"note-s\">De methodestructuren en ID’s zijn exact; de mogelijkheden van de leverancier staan los van toelating.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarieven</h3><h4>Ailoot-methodetarieven</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Videomateriaal</b><code>POST /v1/videos/generations</code></header><dl><div><dt>Invoer</dt><dd>US$ 0,002 <em>per invoerafbeelding</em></dd></div><div><dt>Invoer</dt><dd>US$ 0,01 <em>per seconde invoervideo</em></dd></div><div><dt>Uitvoer</dt><dd>US$ 0,05 <em>per seconde bij 480p</em></dd></div><div><dt>Uitvoer</dt><dd>US$ 0,07 <em>per seconde bij 720p</em></dd></div></dl></section><p class=\"note-s\">Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. <a href=\"/docs/nl/billing/reserve/\">Zo werken reservering en afrekening →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Voorbeeldverzoeken</h3><h4>Ailoot · Videomateriaal</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-770-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-770-panel-0\" aria-selected=\"true\" tabindex=\"0\">Videovoorbeeld</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopiëren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-770-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-770-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl https://api.ailoot.ai/v1/videos/generations \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; \\\n  -H &quot;Content-Type: application/json&quot; \\\n  -d &#39;{&quot;model&quot;: &quot;grok-imagine-video&quot;, &quot;prompt&quot;: &quot;A person walks slowly through a quiet garden as the camera tracks from the side.&quot;}&#39;</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Resultaten ophalen en opslaan</h3><h4>Ailoot · Videomateriaal</h4><p class=\"note-s\">mp4</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/videos/generations/{request_id}/content</code></li></ul><h5>Taakstatus controleren</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-771-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-771-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET · Status</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopiëren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-771-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-771-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_VIDEO_ID:?Set the actual Ailoot operation ID returned by creation}&quot;\nexport AILOOT_VIDEO_ID\nvideo_id=$(python3 -c &#39;import os, urllib.parse; print(urllib.parse.quote(os.environ[&quot;AILOOT_VIDEO_ID&quot;], safe=&quot;&quot;))&#39;) || exit 1\ncurl &quot;https://api.ailoot.ai/v1/videos/generations/$video_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot;</code></pre></div></div></div><details class=\"card-about\"><summary>Lezen van andere inhoud</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-772-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-772-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET · Inhoud</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopiëren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-772-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-772-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_VIDEO_ID:?Set the actual Ailoot operation ID returned by creation}&quot;\nexport AILOOT_VIDEO_ID\nvideo_id=$(python3 -c &#39;import os, urllib.parse; print(urllib.parse.quote(os.environ[&quot;AILOOT_VIDEO_ID&quot;], safe=&quot;&quot;))&#39;) || exit 1\ncurl &quot;https://api.ailoot.ai/v1/videos/generations/$video_id/content&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; \\\n  --output video.mp4</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Alle voltooide resultaten bewaren</h5><p class=\"note-s\">Sla elke voltooide video of elk teruggegeven bestand op; haal elke daadwerkelijk teruggegeven bestands-URL op.</p><p class=\"note-s\">Bewaar de volledige status-JSON en de daadwerkelijke request_id. Een voltooid antwoord met status=done bevat video.url met een inhouds-URL die u bezit. Behoud de gerapporteerde duur en elk geretourneerd resultaatveld.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Als het oorspronkelijke antwoord moet worden gecontroleerd</h5><p class=\"note-s\">Lees de bestaande oorspronkelijke taak; dien een onzekere verzending nooit opnieuw in.</p></div><details class=\"card-about\" data-output-fields><summary>Antwoordvelden</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Veld</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">request_id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">video.url</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>owned signed content URL</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">video.duration</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>number</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">video.respect_moderation</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>boolean</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fouten en vervolgstappen</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Antwoord</th><th>Voorwaarde</th><th>Volgende stap</th></tr></thead><tbody><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Verplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Corrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Oorspronkelijke resultaatinhoud nog niet beschikbaar</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Vraag de oorspronkelijke geretourneerde ID periodiek op en respecteer Retry-After.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span><code>server_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Het geretourneerde antwoord geeft aan dat de bewerking of het resultaat moet worden gecontroleerd</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Bewaar de oorspronkelijk geretourneerde bewerkings-/taak-ID, de aanvraagheaders en het antwoord; blijf de ondersteunde leesacties voor die oorspronkelijke bewerking uitvoeren. Dien de aanmaakaanvraag niet opnieuw in.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasnamen</h3><h4>Modelaliasnamen</h4><p class=\"note-s\"><span data-model-alias-route=\"Core\"><b>Ailoot</b> <a href=\"#m=grok-imagine-video&amp;route=Core&amp;caller=grok-imagine-video&amp;fmt=videos\"><code>grok-imagine-video</code></a></span></p><h4>Aliasnamen voor methodepaden</h4><p class=\"note-s\">Gebruik de hierboven getoonde methodepaden.</p><h4>Gerelateerde aanroeper-ID’s</h4><p class=\"note-s\"><a href=\"#m=grok-imagine-video&amp;route=Core&amp;caller=grok-imagine-video&amp;fmt=videos\"><code>grok-imagine-video</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "grok-imagine-video",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos/generations",
        "request_model_id": "grok-imagine-video",
        "route_label": "Core"
      },
      "method_key": "Core|videos|/v1/videos/generations|grok-imagine-video",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Retain fullstatusJSON and actualrequest_id. Completedstatusdone carriesvideo.url withowned signedcontent; retain the actualduration andallactualreturnedresultfields.",
            "errors": [
              {
                "code": null,
                "condition": "Verplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig",
                "http_status": 400,
                "recovery": "Corrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Oorspronkelijke resultaatinhoud nog niet beschikbaar",
                "http_status": 409,
                "recovery": "Vraag de oorspronkelijke geretourneerde ID periodiek op en respecteer Retry-After.",
                "type": "video_not_ready"
              },
              {
                "code": null,
                "condition": "Het geretourneerde antwoord geeft aan dat de bewerking of het resultaat moet worden gecontroleerd",
                "http_status": null,
                "recovery": "Bewaar de oorspronkelijk geretourneerde bewerkings-/taak-ID, de aanvraagheaders en het antwoord; blijf de ondersteunde leesacties voor die oorspronkelijke bewerking uitvoeren. Dien de aanmaakaanvraag niet opnieuw in.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content"
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos/generations"
              },
              "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET",
              "mode": "submit_once_poll_original",
              "multioutputs": "retain every completed data output; index0 alone is not all outputs",
              "operation_id_is_not_task_id": true,
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 202,
              "unknown": "Lees de bestaande oorspronkelijke taak; dien een onzekere verzending nooit opnieuw in.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "required": [
                  "prompt"
                ]
              },
              {
                "mode": "image_to_video",
                "optional": [
                  "prompt"
                ],
                "required": [
                  "image"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "videos"
            ],
            "outputs": {
              "all_results": "Bewaar de volledige status-JSON en de daadwerkelijke request_id. Een voltooid antwoord met status=done bevat video.url met een inhouds-URL die u bezit. Behoud de gerapporteerde duur en elk geretourneerd resultaatveld.",
              "create_status": 202,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "request_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "video.url",
                  "type": "owned signed content URL"
                },
                {
                  "description": null,
                  "name": "video.duration",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "video.respect_moderation",
                  "type": "boolean"
                }
              ],
              "format": "mp4"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "grok-imagine-video"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "prompt",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Geef niet zowel duration als seconds op",
                "default": 1,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 15,
                "minimum": 1,
                "name": "duration",
                "required": false,
                "type": "integer",
                "unit": "seconden"
              },
              {
                "alternative": "duration",
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 15,
                "minimum": 1,
                "name": "seconds",
                "required": false,
                "type": "integer|integer_string"
              },
              {
                "availability": "source_interface",
                "default": "480p",
                "default_known": true,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Als afbeeldingsinvoer is opgegeven en de verhouding is weggelaten, neemt de provider de beeldverhouding van de afbeelding over",
                "default": "16:9",
                "default_known": true,
                "enum": [
                  "1:1",
                  "16:9",
                  "9:16",
                  "4:3",
                  "3:4",
                  "3:2",
                  "2:3"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Moet overeenkomen met resolution/aspect_ratio als beide zijn opgegeven",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280",
                  "1920x1080",
                  "1080x1920"
                ],
                "enum_known": true,
                "name": "size",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Daadwerkelijk ondersteunde invoerafbeelding; hierdoor mag de prompt worden weggelaten",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "image",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mask",
              "input_reference",
              "stream=true",
              "n/countotherthan1"
            ]
          },
          "hints": [
            "De methodestructuren en ID’s zijn exact; de mogelijkheden van de leverancier staan los van toelating."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content"
              }
            ],
            "id_source": "only actual ID/path from creation/status",
            "mode": "submit_once_poll_original",
            "multioutputs": "retain every completed data output; index0 alone is not all outputs",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 202,
            "unknown": "Read existing original job; never resubmit unknown send."
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos/generations"
          },
          "operation_modes": [
            "videos"
          ],
          "output": {
            "family": [
              "video"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl https://api.ailoot.ai/v1/videos/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\": \"grok-imagine-video\", \"prompt\": \"A person walks slowly through a quiet garden as the camera tracks from the side.\"}'",
            "label": "Create video · retained exact shape",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VIDEO_ID:?Set the actual Ailoot operation ID returned by creation}\"\nexport AILOOT_VIDEO_ID\nvideo_id=$(python3 -c 'import os, urllib.parse; print(urllib.parse.quote(os.environ[\"AILOOT_VIDEO_ID\"], safe=\"\"))') || exit 1\ncurl \"https://api.ailoot.ai/v1/videos/generations/$video_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\"",
            "label": "GET status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VIDEO_ID:?Set the actual Ailoot operation ID returned by creation}\"\nexport AILOOT_VIDEO_ID\nvideo_id=$(python3 -c 'import os, urllib.parse; print(urllib.parse.quote(os.environ[\"AILOOT_VIDEO_ID\"], safe=\"\"))') || exit 1\ncurl \"https://api.ailoot.ai/v1/videos/generations/$video_id/content\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" \\\n  --output video.mp4",
            "label": "GET content",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "Videomateriaal",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos/generations",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.002,
                "amount_unit": "usd_per_display_unit",
                "key": "image_input",
                "label": "per input image",
                "side": "in"
              },
              {
                "amount": 0.01,
                "amount_unit": "usd_per_display_unit",
                "key": "video_input_second",
                "label": "per second of input video",
                "side": "in"
              },
              {
                "amount": 0.05,
                "amount_unit": "usd_per_display_unit",
                "key": "video_output_480p_second",
                "label": "per second at 480p",
                "side": "out"
              },
              {
                "amount": 0.07,
                "amount_unit": "usd_per_display_unit",
                "key": "video_output_720p_second",
                "label": "per second at 720p",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "grok-imagine-video",
        "route_label": "Core",
        "status_reads": [
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "tool_prices": null,
        "unit": "conditional",
        "units": [
          {
            "key": "image_input",
            "label": "per input image",
            "side": "in",
            "usd": 0.002
          },
          {
            "key": "video_input_second",
            "label": "per second of input video",
            "side": "in",
            "usd": 0.01
          },
          {
            "key": "video_output_480p_second",
            "label": "per second at 480p",
            "side": "out",
            "usd": 0.05
          },
          {
            "key": "video_output_720p_second",
            "label": "per second at 720p",
            "side": "out",
            "usd": 0.07
          }
        ]
      }
    }
  ],
  "model_id": "grok-imagine-video",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "7bb4c4ca25e15b50eeefc39235d8ebe95c4dae1fc4e710a9ec53890cf2bc61be",
    "input_html_sha256": "6cd5fff8345f440833acad3e249f3668e6dc33384fc334524e97e0bea034cb34",
    "private_audit_sha256": "4559a747bd2e80c8c123e289268aa4726313481f132c927d6bcba0a45f1bd346",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nl/grok-imagine-video/",
    "description": "Grok Imagine Video maakt korte video's uit een tekstbeschrijving, met keuze van duur en beeldformaat. Het xAI-model zelf ondersteunt ook beeldanimatie en gerichte videobewerking.",
    "locale": "nl",
    "md_url": "https://ailoot.ai/models/nl/grok-imagine-video/index.md",
    "title": "grok-imagine-video — Ailoot",
    "url": "https://ailoot.ai/models/nl/grok-imagine-video/"
  },
  "rawModel": {
    "about": "### Van beschrijving naar video\n\nGrok Imagine Video maakt video uit tekst. Het xAI-model zelf heeft ook modi met een bronafbeelding en bronvideo. In de gepubliceerde Ailoot-generatiemethode is de invoer een tekstbeschrijving en het resultaat een video.\n\nGeneratie verloopt asynchroon: eerst wordt een taak gemaakt, daarna worden de status en het voltooide resultaat via de taakidentifier opgehaald. Volgens xAI kan het maken van een video meerdere minuten duren; de tijd hangt af van scènecomplexiteit, duur, resolutie en gekozen modus.\n\n### Duur en beeldformaat\n\nVoor videocreatie is een duur van **1 tot 15 seconden** beschikbaar. De beeldformaten omvatten `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2` en `2:3`; het standaardformaat is `16:9`. Deze versie biedt **480p en 720p**; 1080p hoort bij versie 1.5.\n\n### De bronafbeelding animeren\n\nIn de xAI-modus met een afbeelding wordt die het beginframe en bepaalt de tekstinstructie de beweging. Standaard volgt de videovorm de verhoudingen van de bronafbeelding. Een expliciet opgegeven beeldverhouding verandert die vorm en kan de afbeelding uitrekken.\n\n### Gerichte bewerking\n\nBij een bestaande video past het model de beschreven wijzigingen toe en behoudt het de overige scène-inhoud. Deze modus helpt een gewenst element te wijzigen terwijl de enscenering van de bronvideo behouden blijft. Duur en verhoudingen worden van het origineel overgenomen; een nieuwe duur of beeldvorm worden niet ingesteld.\n\nDe bronvideo voor bewerking is beperkt tot **8,7 seconden** en het resultaat tot een resolutie van maximaal **720p**. Materiaal in 1080p wordt verkleind tot 720p. Instellingen voor videogeneratie op basis van tekst worden niet automatisch op bewerking toegepast.\n\n### Een bestaande video verlengen\n\nIn een afzonderlijke xAI-modus verlengt deze versie de bronvideo vanaf het laatste frame. De bron-MP4 moet 2 tot 15 seconden duren; het toegevoegde deel 2 tot 10 seconden, standaard 6. Het resultaat combineert de bronvideo met de verlenging. Verhoudingen en resolutie worden uit de bron overgenomen, met een grens van 720p; ze kunnen in deze modus niet afzonderlijk worden veranderd. Deze fabrikantmogelijkheid verschilt van de gepubliceerde Ailoot-generatie uit tekst.\n\n### Referenties en versiegrenzen\n\nxAI voorziet in visuele referenties om het uiterlijk van mensen, kleding en voorwerpen in de scène te sturen. Een referentie bepaalt visuele kenmerken, niet het exacte beeld van het eerste frame. Bij de klassieke Grok Imagine Video kunnen een beginframe en referenties niet worden gecombineerd.\n\nDeze versie accepteert geen exacte vastlegging van het laatste frame of tussenliggende keyframes. Die mogelijkheden horen bij Grok Imagine Video 1.5. Generatie, bronbeeldanimatie en het wijzigen van een bestaande video zijn verschillende modi; de gepubliceerde Ailoot-methode beschrijft hier generatie uit tekst.",
    "alias_of": null,
    "aliases": [],
    "author": "xAI",
    "ctx": null,
    "formats": [
      "videos"
    ],
    "id": "grok-imagine-video",
    "input": [
      "text"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Retain fullstatusJSON and actualrequest_id. Completedstatusdone carriesvideo.url withowned signedcontent; retain the actualduration andallactualreturnedresultfields.",
            "errors": [
              {
                "code": null,
                "condition": "Verplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig",
                "http_status": 400,
                "recovery": "Corrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Oorspronkelijke resultaatinhoud nog niet beschikbaar",
                "http_status": 409,
                "recovery": "Vraag de oorspronkelijke geretourneerde ID periodiek op en respecteer Retry-After.",
                "type": "video_not_ready"
              },
              {
                "code": null,
                "condition": "Het geretourneerde antwoord geeft aan dat de bewerking of het resultaat moet worden gecontroleerd",
                "http_status": null,
                "recovery": "Bewaar de oorspronkelijk geretourneerde bewerkings-/taak-ID, de aanvraagheaders en het antwoord; blijf de ondersteunde leesacties voor die oorspronkelijke bewerking uitvoeren. Dien de aanmaakaanvraag niet opnieuw in.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content"
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos/generations"
              },
              "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET",
              "mode": "submit_once_poll_original",
              "multioutputs": "retain every completed data output; index0 alone is not all outputs",
              "operation_id_is_not_task_id": true,
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 202,
              "unknown": "Lees de bestaande oorspronkelijke taak; dien een onzekere verzending nooit opnieuw in.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "required": [
                  "prompt"
                ]
              },
              {
                "mode": "image_to_video",
                "optional": [
                  "prompt"
                ],
                "required": [
                  "image"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "videos"
            ],
            "outputs": {
              "all_results": "Bewaar de volledige status-JSON en de daadwerkelijke request_id. Een voltooid antwoord met status=done bevat video.url met een inhouds-URL die u bezit. Behoud de gerapporteerde duur en elk geretourneerd resultaatveld.",
              "create_status": 202,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "request_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "video.url",
                  "type": "owned signed content URL"
                },
                {
                  "description": null,
                  "name": "video.duration",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "video.respect_moderation",
                  "type": "boolean"
                }
              ],
              "format": "mp4"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "grok-imagine-video"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "prompt",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Geef niet zowel duration als seconds op",
                "default": 1,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 15,
                "minimum": 1,
                "name": "duration",
                "required": false,
                "type": "integer",
                "unit": "seconden"
              },
              {
                "alternative": "duration",
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 15,
                "minimum": 1,
                "name": "seconds",
                "required": false,
                "type": "integer|integer_string"
              },
              {
                "availability": "source_interface",
                "default": "480p",
                "default_known": true,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Als afbeeldingsinvoer is opgegeven en de verhouding is weggelaten, neemt de provider de beeldverhouding van de afbeelding over",
                "default": "16:9",
                "default_known": true,
                "enum": [
                  "1:1",
                  "16:9",
                  "9:16",
                  "4:3",
                  "3:4",
                  "3:2",
                  "2:3"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Moet overeenkomen met resolution/aspect_ratio als beide zijn opgegeven",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280",
                  "1920x1080",
                  "1080x1920"
                ],
                "enum_known": true,
                "name": "size",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Daadwerkelijk ondersteunde invoerafbeelding; hierdoor mag de prompt worden weggelaten",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "image",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mask",
              "input_reference",
              "stream=true",
              "n/countotherthan1"
            ]
          },
          "hints": [
            "De methodestructuren en ID’s zijn exact; de mogelijkheden van de leverancier staan los van toelating."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content"
              }
            ],
            "id_source": "only actual ID/path from creation/status",
            "mode": "submit_once_poll_original",
            "multioutputs": "retain every completed data output; index0 alone is not all outputs",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 202,
            "unknown": "Read existing original job; never resubmit unknown send."
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos/generations"
          },
          "operation_modes": [
            "videos"
          ],
          "output": {
            "family": [
              "video"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl https://api.ailoot.ai/v1/videos/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\": \"grok-imagine-video\", \"prompt\": \"A person walks slowly through a quiet garden as the camera tracks from the side.\"}'",
            "label": "Create video · retained exact shape",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VIDEO_ID:?Set the actual Ailoot operation ID returned by creation}\"\nexport AILOOT_VIDEO_ID\nvideo_id=$(python3 -c 'import os, urllib.parse; print(urllib.parse.quote(os.environ[\"AILOOT_VIDEO_ID\"], safe=\"\"))') || exit 1\ncurl \"https://api.ailoot.ai/v1/videos/generations/$video_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\"",
            "label": "GET status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VIDEO_ID:?Set the actual Ailoot operation ID returned by creation}\"\nexport AILOOT_VIDEO_ID\nvideo_id=$(python3 -c 'import os, urllib.parse; print(urllib.parse.quote(os.environ[\"AILOOT_VIDEO_ID\"], safe=\"\"))') || exit 1\ncurl \"https://api.ailoot.ai/v1/videos/generations/$video_id/content\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" \\\n  --output video.mp4",
            "label": "GET content",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "Videomateriaal",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos/generations",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.002,
                "amount_unit": "usd_per_display_unit",
                "key": "image_input",
                "label": "per input image",
                "side": "in"
              },
              {
                "amount": 0.01,
                "amount_unit": "usd_per_display_unit",
                "key": "video_input_second",
                "label": "per second of input video",
                "side": "in"
              },
              {
                "amount": 0.05,
                "amount_unit": "usd_per_display_unit",
                "key": "video_output_480p_second",
                "label": "per second at 480p",
                "side": "out"
              },
              {
                "amount": 0.07,
                "amount_unit": "usd_per_display_unit",
                "key": "video_output_720p_second",
                "label": "per second at 720p",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "grok-imagine-video",
        "route_label": "Core",
        "status_reads": [
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "tool_prices": null,
        "unit": "conditional",
        "units": [
          {
            "key": "image_input",
            "label": "per input image",
            "side": "in",
            "usd": 0.002
          },
          {
            "key": "video_input_second",
            "label": "per second of input video",
            "side": "in",
            "usd": 0.01
          },
          {
            "key": "video_output_480p_second",
            "label": "per second at 480p",
            "side": "out",
            "usd": 0.05
          },
          {
            "key": "video_output_720p_second",
            "label": "per second at 720p",
            "side": "out",
            "usd": 0.07
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "grok-imagine-video",
        "request_model_id": "grok-imagine-video",
        "route_label": "Core"
      }
    ],
    "name": "grok-imagine-video",
    "price": {
      "in": 0.002,
      "in_label": "per input image",
      "out": 0.05,
      "out_label": "per second at 480p",
      "sort_in": null,
      "sort_out": null,
      "varies": false
    },
    "short": "Grok Imagine Video maakt korte video's uit een tekstbeschrijving, met keuze van duur en beeldformaat. Het xAI-model zelf ondersteunt ook beeldanimatie en gerichte videobewerking."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Grok Imagine Video maakt korte video's uit een tekstbeschrijving, met keuze van duur en beeldformaat. Het xAI-model zelf ondersteunt ook beeldanimatie en gerichte videobewerking.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "56757ae6146a34a46cedb89133a5ba1d241a6e9d5d25c93f5ac312941332b2aa",
    "renderer_sha256": "be7649af06bb0ae446191041c6cfb8a9b83a53896c8c6e9173e76a39d513e829"
  },
  "sourceRevision": "902ca8470b63e926c3dd4de35798b74e868799cc6d78c7720d60998bbb32b350"
}
