{
  "aboutHtml": "<p>HeyGen Video is het algemene model van HeyGen voor scènegeneratie, door de fabrikant aangeduid als heygen-video-1. Het creëert onderwerp, omgeving, licht en geluid samen op basis van een creatieve briefing. Elke clip is 5–15 seconden lang en bevat een gegenereerde audiotrack met dialoog, omgevingsgeluid en effecten. Bruikbare productie-invoer omvat een scènebeschrijving, een productfoto of materiaal dat een persoon, plaats of beweging vastlegt. Het resulterende bestand is een korte scène voor een productpresentatie, een onboardingfragment, een vastgoedbeeld of ander gemonteerd videowerk.</p><p>Drie modi geven de invoer verschillende rollen. Tekst-naar-video creëert een scène uit de prompt. Beeld-naar-video begint letterlijk op het aangeleverde beeld en volgt daarna de briefing voor de actie. Referentie-naar-video gebruikt aangeleverde beelden, video en optionele audio om een nieuw gecomponeerde scène te sturen; dit vereist minimaal één referentiebeeld of -video. Kies een beeld voor het eerste frame wanneer de openingscompositie met een stilstaand beeld moet overeenkomen, of referenties wanneer een bekend object in een andere compositie moet verschijnen. Dit scènemodel staat los van de avatarrenderengines en de Video Agent-compositieworkflow van HeyGen.</p><p>De gids van de maker geeft de voorkeur aan gedetailleerde, concrete shotaanwijzingen: één onderwerp, één locatie en één afgebakende actie, met een vaste of zacht bewegende camera. Beschrijf camerapositie, gewenste lenswerking of scherptediepte, licht, oppervlaktetextuur en kleurbehandeling. Leg uit waar objecten elkaar raken wanneer een actie van contact afhangt. Gebruik voor een oorspronkelijk productvoorbeeld een referentiefoto van een thermosfles en vraag deze op een houten aanrecht te laten staan terwijl een presentator ernaast spreekt, met een kleine camerabeweging naar de fles. Controleer vorm, plaatsing en zichtbare markeringen van de fles in het resultaat.</p><p>Referentielijsten ondersteunen maximaal negen beelden, drie video&#39;s en drie audio-items, met maximaal twaalf referenties in totaal. Beelden, video&#39;s en audio worden in het promptformaat van de fabrikant afzonderlijk genummerd: het eerste beeld is &lt;Picture 1&gt; en de eerste video is &lt;Video 1&gt;. Geef elke referentie een rol en identificeer die rol expliciet in de briefing. Het model leest de eerste vijf seconden van elke referentievideo, dus bereid het relevante gedeelte aan het begin voor. De API-referentie specificeert ook referentievideoverhoudingen tussen 1:4 en 4:1. Een lange clip met de gewenste beweging pas aan het einde is een slechte voorbereiding op dat invoervenster van vijf seconden.</p><p>De gedocumenteerde referentie-interface accepteert een rechtstreeks toegankelijke HTTPS-bron, een ID van een geüpload bestand of inline base64. De gids vermeldt maximale beeldgroottes van 16 MB via URL en 5 MB inline; video of audio mag tot 32 MB via URL en 16 MB inline zijn. Bereid goed leesbaar bronmateriaal voor waarin het belangrijke onderwerp gemakkelijk te onderscheiden is en zonder tegenstrijdige instructies in verschillende referenties. Behoud de bedoelde oriëntatie in het beeld voor het eerste frame. Deze invoerdetails betreffen de referentieworkflow van de maker en helpen het creatieve materiaal voor de geselecteerde modus te ordenen.</p><p>Stuur geluid in dezelfde briefing als het beeld. Benoem dialoog, stemvoordracht, ruimtegeluid en specifieke effecten, inclusief of een geluid dichtbij of ver weg moet zijn. Specificeer de bedoelde muziekbehandeling wanneer de scène alleen spraak en omgevingsgeluid moet bevatten. De gids stelt voor om bij de planning ongeveer 2,5 gesproken woorden per seconde aan te houden, dus laat ruimte voor pauzes en zichtbare actie. Een korte inleiding kan worden gepland als één regel gevolgd door een moment dat het product onthult. Luister naar de daadwerkelijke woorden en of het gegenereerde geluid bij de ruimte en actie past.</p><p>De uitvoerduur wordt in hele seconden van vijf tot vijftien gekozen, met vijf seconden als standaard. Resolutie is een grootteklasse: 480p, 768p, 1080p of 2k. De gedocumenteerde kadreringskeuzes zijn 21:9, 16:9, 4:3, 1:1, 3:4 en 9:16. Selecteer voor tekst-naar-video en referentie-naar-video op 1080p of 2k 16:9 of 9:16; adaptieve referentiekadrering is gedocumenteerd op 480p en 768p. Beeld-naar-video volgt de verhoudingen van het eerste beeld, dus snijd vóór generatie bij wanneer de vereiste vorm verandert. Controleer de concrete afmetingen van het voltooide resultaat in plaats van aan te nemen dat een grootteklasselabel één conventioneel pixelpaar impliceert.</p><p>De modelgids specificeert MP4-video met H.264-beeldcodering en AAC-audio op 32 kHz stereo. Een generatie wordt asynchroon verwerkt en de voltooide taak levert de afspeelbare videolocatie, duur en afmetingen. De ondertekende videolocatie kan worden vernieuwd door de taak opnieuw op te vragen. Bewaar de daadwerkelijke clip, het referentiemateriaal en de briefing voor een montagebeoordeling. Een record met status in afwachting of in verwerking volgt de generatie; de voltooide video is het productieresultaat dat op beeld, spraak en geluid moet worden beoordeeld.</p><p>De fabrikant beschrijft keuzes voor promptverbetering van turbo, quality en disabled; disabled behoudt de voorbereide formulering zoals geschreven. Een vaste seed is nuttig om een wijziging van één zinsdeel te vergelijken terwijl de overige invoer gelijk blijft. Leg de gekozen seed en instellingen bij de shotbriefing vast. Houd voor opschriften in beeld een bedoelde formulering kort en spel die precies; de gids beveelt aan alinea&#39;s, kleine tekst en gelabelde diagrammen achteraf te compositen. Controleer elk zichtbaar teken in een gegenereerde titel in plaats van aan te nemen dat de formulering correct is gereproduceerd.</p><p>De gids noemt lange tekst in beeld, zachte organische beweging zoals bloemblaadjes, papier of haar, en handelingen waarbij handen van dichtbij in beeld zijn als minder betrouwbare gebieden. Laat voor een procedurele uitleg een duidelijk geschreven regel de stappen overbrengen terwijl het beeld een stabiele persoon of een stabiel object toont; gebruik afzonderlijk geverifieerde beelden wanneer de fysieke handeling zelf exact moet zijn. Controleer het hele shot op objectcontinuïteit, contact, gezichts- en handdetails, dialoog en geluid. Een beknopte lijst van wat in de volgende take moet veranderen houdt een gedetailleerde productiebriefing praktisch.</p>",
  "aboutText": "HeyGen Video is het algemene model van HeyGen voor scènegeneratie, door de fabrikant aangeduid als heygen-video-1. Het creëert onderwerp, omgeving, licht en geluid samen op basis van een creatieve briefing. Elke clip is 5–15 seconden lang en bevat een gegenereerde audiotrack met dialoog, omgevingsgeluid en effecten. Bruikbare productie-invoer omvat een scènebeschrijving, een productfoto of materiaal dat een persoon, plaats of beweging vastlegt. Het resulterende bestand is een korte scène voor een productpresentatie, een onboardingfragment, een vastgoedbeeld of ander gemonteerd videowerk.\n\nDrie modi geven de invoer verschillende rollen. Tekst-naar-video creëert een scène uit de prompt. Beeld-naar-video begint letterlijk op het aangeleverde beeld en volgt daarna de briefing voor de actie. Referentie-naar-video gebruikt aangeleverde beelden, video en optionele audio om een nieuw gecomponeerde scène te sturen; dit vereist minimaal één referentiebeeld of -video. Kies een beeld voor het eerste frame wanneer de openingscompositie met een stilstaand beeld moet overeenkomen, of referenties wanneer een bekend object in een andere compositie moet verschijnen. Dit scènemodel staat los van de avatarrenderengines en de Video Agent-compositieworkflow van HeyGen.\n\nDe gids van de maker geeft de voorkeur aan gedetailleerde, concrete shotaanwijzingen: één onderwerp, één locatie en één afgebakende actie, met een vaste of zacht bewegende camera. Beschrijf camerapositie, gewenste lenswerking of scherptediepte, licht, oppervlaktetextuur en kleurbehandeling. Leg uit waar objecten elkaar raken wanneer een actie van contact afhangt. Gebruik voor een oorspronkelijk productvoorbeeld een referentiefoto van een thermosfles en vraag deze op een houten aanrecht te laten staan terwijl een presentator ernaast spreekt, met een kleine camerabeweging naar de fles. Controleer vorm, plaatsing en zichtbare markeringen van de fles in het resultaat.\n\nReferentielijsten ondersteunen maximaal negen beelden, drie video's en drie audio-items, met maximaal twaalf referenties in totaal. Beelden, video's en audio worden in het promptformaat van de fabrikant afzonderlijk genummerd: het eerste beeld is <Picture 1> en de eerste video is <Video 1>. Geef elke referentie een rol en identificeer die rol expliciet in de briefing. Het model leest de eerste vijf seconden van elke referentievideo, dus bereid het relevante gedeelte aan het begin voor. De API-referentie specificeert ook referentievideoverhoudingen tussen 1:4 en 4:1. Een lange clip met de gewenste beweging pas aan het einde is een slechte voorbereiding op dat invoervenster van vijf seconden.\n\nDe gedocumenteerde referentie-interface accepteert een rechtstreeks toegankelijke HTTPS-bron, een ID van een geüpload bestand of inline base64. De gids vermeldt maximale beeldgroottes van 16 MB via URL en 5 MB inline; video of audio mag tot 32 MB via URL en 16 MB inline zijn. Bereid goed leesbaar bronmateriaal voor waarin het belangrijke onderwerp gemakkelijk te onderscheiden is en zonder tegenstrijdige instructies in verschillende referenties. Behoud de bedoelde oriëntatie in het beeld voor het eerste frame. Deze invoerdetails betreffen de referentieworkflow van de maker en helpen het creatieve materiaal voor de geselecteerde modus te ordenen.\n\nStuur geluid in dezelfde briefing als het beeld. Benoem dialoog, stemvoordracht, ruimtegeluid en specifieke effecten, inclusief of een geluid dichtbij of ver weg moet zijn. Specificeer de bedoelde muziekbehandeling wanneer de scène alleen spraak en omgevingsgeluid moet bevatten. De gids stelt voor om bij de planning ongeveer 2,5 gesproken woorden per seconde aan te houden, dus laat ruimte voor pauzes en zichtbare actie. Een korte inleiding kan worden gepland als één regel gevolgd door een moment dat het product onthult. Luister naar de daadwerkelijke woorden en of het gegenereerde geluid bij de ruimte en actie past.\n\nDe uitvoerduur wordt in hele seconden van vijf tot vijftien gekozen, met vijf seconden als standaard. Resolutie is een grootteklasse: 480p, 768p, 1080p of 2k. De gedocumenteerde kadreringskeuzes zijn 21:9, 16:9, 4:3, 1:1, 3:4 en 9:16. Selecteer voor tekst-naar-video en referentie-naar-video op 1080p of 2k 16:9 of 9:16; adaptieve referentiekadrering is gedocumenteerd op 480p en 768p. Beeld-naar-video volgt de verhoudingen van het eerste beeld, dus snijd vóór generatie bij wanneer de vereiste vorm verandert. Controleer de concrete afmetingen van het voltooide resultaat in plaats van aan te nemen dat een grootteklasselabel één conventioneel pixelpaar impliceert.\n\nDe modelgids specificeert MP4-video met H.264-beeldcodering en AAC-audio op 32 kHz stereo. Een generatie wordt asynchroon verwerkt en de voltooide taak levert de afspeelbare videolocatie, duur en afmetingen. De ondertekende videolocatie kan worden vernieuwd door de taak opnieuw op te vragen. Bewaar de daadwerkelijke clip, het referentiemateriaal en de briefing voor een montagebeoordeling. Een record met status in afwachting of in verwerking volgt de generatie; de voltooide video is het productieresultaat dat op beeld, spraak en geluid moet worden beoordeeld.\n\nDe fabrikant beschrijft keuzes voor promptverbetering van turbo, quality en disabled; disabled behoudt de voorbereide formulering zoals geschreven. Een vaste seed is nuttig om een wijziging van één zinsdeel te vergelijken terwijl de overige invoer gelijk blijft. Leg de gekozen seed en instellingen bij de shotbriefing vast. Houd voor opschriften in beeld een bedoelde formulering kort en spel die precies; de gids beveelt aan alinea's, kleine tekst en gelabelde diagrammen achteraf te compositen. Controleer elk zichtbaar teken in een gegenereerde titel in plaats van aan te nemen dat de formulering correct is gereproduceerd.\n\nDe gids noemt lange tekst in beeld, zachte organische beweging zoals bloemblaadjes, papier of haar, en handelingen waarbij handen van dichtbij in beeld zijn als minder betrouwbare gebieden. Laat voor een procedurele uitleg een duidelijk geschreven regel de stappen overbrengen terwijl het beeld een stabiele persoon of een stabiel object toont; gebruik afzonderlijk geverifieerde beelden wanneer de fysieke handeling zelf exact moet zijn. Controleer het hele shot op objectcontinuïteit, contact, gezichts- en handdetails, dialoog en geluid. Een beknopte lijst van wat in de volgende take moet veranderen houdt een gedetailleerde productiebriefing praktisch.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "903fde23ca59883055d8a9601654a904949d756f1f60178b4be159d70b99bb51",
    "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\">•</span><h2 id=\"sheet-title\">HeyGen: HeyGen Video</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sluiten\">×</button></div><div class=\"idline\"><span>HeyGen /</span><code>heygen/heygen-video-1</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=\"Ultra|videos|/v1/videos|heygen%2Fheygen-video-1\">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\">HeyGen Video genereert scènes van 5–15 seconden met dialoog, omgevingsgeluid en effecten op basis van tekst, een eerste beeld of visuele en audioreferenties. Het algemene model heygen-video-1 ondersteunt product- en personageshots, met referentieregelaars en MP4-uitvoer. Duidelijke, afgebakende acties geven het een bruikbare productiebriefing.</p><dl class=\"card-io\" data-card-io><div><dt>Toegestane invoer</dt><dd>Tekst · Afbeeldingen · Audio · Video</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\"><p>HeyGen Video is het algemene model van HeyGen voor scènegeneratie, door de fabrikant aangeduid als heygen-video-1. Het creëert onderwerp, omgeving, licht en geluid samen op basis van een creatieve briefing. Elke clip is 5–15 seconden lang en bevat een gegenereerde audiotrack met dialoog, omgevingsgeluid en effecten. Bruikbare productie-invoer omvat een scènebeschrijving, een productfoto of materiaal dat een persoon, plaats of beweging vastlegt. Het resulterende bestand is een korte scène voor een productpresentatie, een onboardingfragment, een vastgoedbeeld of ander gemonteerd videowerk.</p><p>Drie modi geven de invoer verschillende rollen. Tekst-naar-video creëert een scène uit de prompt. Beeld-naar-video begint letterlijk op het aangeleverde beeld en volgt daarna de briefing voor de actie. Referentie-naar-video gebruikt aangeleverde beelden, video en optionele audio om een nieuw gecomponeerde scène te sturen; dit vereist minimaal één referentiebeeld of -video. Kies een beeld voor het eerste frame wanneer de openingscompositie met een stilstaand beeld moet overeenkomen, of referenties wanneer een bekend object in een andere compositie moet verschijnen. Dit scènemodel staat los van de avatarrenderengines en de Video Agent-compositieworkflow van HeyGen.</p><p>De gids van de maker geeft de voorkeur aan gedetailleerde, concrete shotaanwijzingen: één onderwerp, één locatie en één afgebakende actie, met een vaste of zacht bewegende camera. Beschrijf camerapositie, gewenste lenswerking of scherptediepte, licht, oppervlaktetextuur en kleurbehandeling. Leg uit waar objecten elkaar raken wanneer een actie van contact afhangt. Gebruik voor een oorspronkelijk productvoorbeeld een referentiefoto van een thermosfles en vraag deze op een houten aanrecht te laten staan terwijl een presentator ernaast spreekt, met een kleine camerabeweging naar de fles. Controleer vorm, plaatsing en zichtbare markeringen van de fles in het resultaat.</p><p>Referentielijsten ondersteunen maximaal negen beelden, drie video&#39;s en drie audio-items, met maximaal twaalf referenties in totaal. Beelden, video&#39;s en audio worden in het promptformaat van de fabrikant afzonderlijk genummerd: het eerste beeld is &lt;Picture 1&gt; en de eerste video is &lt;Video 1&gt;. Geef elke referentie een rol en identificeer die rol expliciet in de briefing. Het model leest de eerste vijf seconden van elke referentievideo, dus bereid het relevante gedeelte aan het begin voor. De API-referentie specificeert ook referentievideoverhoudingen tussen 1:4 en 4:1. Een lange clip met de gewenste beweging pas aan het einde is een slechte voorbereiding op dat invoervenster van vijf seconden.</p><p>De gedocumenteerde referentie-interface accepteert een rechtstreeks toegankelijke HTTPS-bron, een ID van een geüpload bestand of inline base64. De gids vermeldt maximale beeldgroottes van 16 MB via URL en 5 MB inline; video of audio mag tot 32 MB via URL en 16 MB inline zijn. Bereid goed leesbaar bronmateriaal voor waarin het belangrijke onderwerp gemakkelijk te onderscheiden is en zonder tegenstrijdige instructies in verschillende referenties. Behoud de bedoelde oriëntatie in het beeld voor het eerste frame. Deze invoerdetails betreffen de referentieworkflow van de maker en helpen het creatieve materiaal voor de geselecteerde modus te ordenen.</p><p>Stuur geluid in dezelfde briefing als het beeld. Benoem dialoog, stemvoordracht, ruimtegeluid en specifieke effecten, inclusief of een geluid dichtbij of ver weg moet zijn. Specificeer de bedoelde muziekbehandeling wanneer de scène alleen spraak en omgevingsgeluid moet bevatten. De gids stelt voor om bij de planning ongeveer 2,5 gesproken woorden per seconde aan te houden, dus laat ruimte voor pauzes en zichtbare actie. Een korte inleiding kan worden gepland als één regel gevolgd door een moment dat het product onthult. Luister naar de daadwerkelijke woorden en of het gegenereerde geluid bij de ruimte en actie past.</p><p>De uitvoerduur wordt in hele seconden van vijf tot vijftien gekozen, met vijf seconden als standaard. Resolutie is een grootteklasse: 480p, 768p, 1080p of 2k. De gedocumenteerde kadreringskeuzes zijn 21:9, 16:9, 4:3, 1:1, 3:4 en 9:16. Selecteer voor tekst-naar-video en referentie-naar-video op 1080p of 2k 16:9 of 9:16; adaptieve referentiekadrering is gedocumenteerd op 480p en 768p. Beeld-naar-video volgt de verhoudingen van het eerste beeld, dus snijd vóór generatie bij wanneer de vereiste vorm verandert. Controleer de concrete afmetingen van het voltooide resultaat in plaats van aan te nemen dat een grootteklasselabel één conventioneel pixelpaar impliceert.</p><p>De modelgids specificeert MP4-video met H.264-beeldcodering en AAC-audio op 32 kHz stereo. Een generatie wordt asynchroon verwerkt en de voltooide taak levert de afspeelbare videolocatie, duur en afmetingen. De ondertekende videolocatie kan worden vernieuwd door de taak opnieuw op te vragen. Bewaar de daadwerkelijke clip, het referentiemateriaal en de briefing voor een montagebeoordeling. Een record met status in afwachting of in verwerking volgt de generatie; de voltooide video is het productieresultaat dat op beeld, spraak en geluid moet worden beoordeeld.</p><p>De fabrikant beschrijft keuzes voor promptverbetering van turbo, quality en disabled; disabled behoudt de voorbereide formulering zoals geschreven. Een vaste seed is nuttig om een wijziging van één zinsdeel te vergelijken terwijl de overige invoer gelijk blijft. Leg de gekozen seed en instellingen bij de shotbriefing vast. Houd voor opschriften in beeld een bedoelde formulering kort en spel die precies; de gids beveelt aan alinea&#39;s, kleine tekst en gelabelde diagrammen achteraf te compositen. Controleer elk zichtbaar teken in een gegenereerde titel in plaats van aan te nemen dat de formulering correct is gereproduceerd.</p><p>De gids noemt lange tekst in beeld, zachte organische beweging zoals bloemblaadjes, papier of haar, en handelingen waarbij handen van dichtbij in beeld zijn als minder betrouwbare gebieden. Laat voor een procedurele uitleg een duidelijk geschreven regel de stappen overbrengen terwijl het beeld een stabiele persoon of een stabiel object toont; gebruik afzonderlijk geverifieerde beelden wanneer de fysieke handeling zelf exact moet zijn. Controleer het hele shot op objectcontinuïteit, contact, gezichts- en handdetails, dialoog en geluid. Een beknopte lijst van wat in de volgende take moet veranderen houdt een gedetailleerde productiebriefing praktisch.</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 Ultra · Video</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Invoertypen</dt><dd><code>text</code>, <code>image</code>, <code>audio</code>, <code>video</code></dd></div><div><dt>Uitvoertypen</dt><dd><code>video</code></dd></div><div><dt>Uitvoerformaat</dt><dd>oorspronkelijke MP4-bytes; geen normalisatie of transcodering</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>heygen/heygen-video-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\">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>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span></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>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15</div><div>Minimum: 1</div><div>Maximum: 600</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, 768p, 2K</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\">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>21:9, 16:9, 4:3, 1:1, 3:4, 9:16</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\">generate_audio</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean</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>false</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\">frame_images</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>array</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>Minimumaantal items: 1</div><div>Maximumaantal items: 1</div><div>Invoerinhoud: Array met frameobjecten. Elk object bevat type=image_url, image_url met daarin url, en frame_type. Gebruik een HTTPS-afbeeldings-URL en stel frame_type in op first_frame. Elke framerol komt maximaal eenmaal voor.</div><div>Exacte sleutels: type, image_url, frame_type</div><div>Voorwaarden: Deze sleutels beschrijven elk frameobject; image_url bevat uitsluitend url. Laat frame_images weg voor een verzoek met uitsluitend tekst.</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\">input_references</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>array</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></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\">seed</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: -9.223.372.036.854.775.808</div><div>Maximum: 9.223.372.036.854.775.807</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\">callback_url</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>Patroon: ^https://</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\">session_id</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></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\">trace</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></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\">user</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></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> · Een geschreven prompt. · Vereist: model, prompt, duration</p><p class=\"note-s\"><code>Geef prompt als tekst en duration in hele seconden op. Kies een ondersteunde resolutie en, indien nodig, een beeldverhouding.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Type: string · heygen/heygen-video-1</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Type: string · Maximumaantal UTF-8-bytes: 10.000 · Ten minste één teken anders dan witruimte vereist: Ja</p><p class=\"note-s\"><b>Afbeelding naar video</b> · Een geschreven prompt en een afbeelding voor het eerste frame. · Vereist: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_images is een array. Elk frameobject bevat type, image_url en frame_type; image_url bevat url. Stel type in op image_url. Gebruik first_frame. Elke framerol komt maximaal eenmaal voor. Geef voor elk frame een openbare HTTPS-afbeeldings-URL op. Kies een ondersteunde resolutie en, indien nodig, een beeldverhouding.</code></p><p class=\"note-s\">Exacte sleutels: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Type: string · heygen/heygen-video-1</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Type: string · Maximumaantal UTF-8-bytes: 10.000 · Ten minste één teken anders dan witruimte vereist: Ja</p><p class=\"note-s\"><b>Reference to video</b> · Een geschreven prompt en ondersteunde afbeeldings-, video- en audioreferenties. · Vereist: model, prompt, duration, input_references</p><p class=\"note-s\"><code>input_references is een array met objecten. Stel type in op image_url, video_url, audio_url en gebruik het bijbehorende veld dat url bevat. Gebruik openbare HTTPS-URLs. Laat frame_images weg om de referentiemodus te selecteren. Kies een ondersteunde resolutie en, indien nodig, een beeldverhouding.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Type: string · heygen/heygen-video-1</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Type: string · Maximumaantal UTF-8-bytes: 10.000 · Ten minste één teken anders dan witruimte vereist: Ja</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>content_type</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>application/json</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>model, prompt, duration</td></tr><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, image, audio, video</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>additional_properties</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>false</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>resolution, aspect_ratio, generate_audio, frame_images, input_references, seed, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Levenscyclus: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarieven</h3><div class=\"card-result-process\" data-billing-basis><h5>Zo worden de uiteindelijke kosten berekend</h5><p class=\"note-s\">De weergegeven tarieven geven een schatting van de kosten vóór de generatie. Het definitieve bedrag wordt berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van de uitvoer en de geschatte hoeveelheden zijn niet de definitieve factureerbare hoeveelheid.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.</p><dl data-price-conditions><dt>Snelle modus</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer de snelle modus is geselecteerd</span></dd><dt>Flexmodus</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer de modus flex is geselecteerd</span></dd><dt>Maximale redeneerinspanning</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt</span></dd></dl></div><div data-declared-tariff-pricing><h4>Geschatte tarieven ter vergelijking</h4><h4>Prijzen per configuratie</h4><p class=\"note-s\">Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuratie</th><th>Tariefstaffel</th><th>Verwachte hoeveelheid</th><th>Rekeneenheid</th><th>Factureringsvoorwaarden</th><th>Kosten</th></tr></thead><tbody><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Basistarieven voor tokens</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>Basistarief</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>—</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>—</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Invoer · Invoertokens · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache lezen · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per videoseconde</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>resolution: 2k</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking</span> <b>$0.2</b> <span class=\"price-unit\">per videoseconde</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per videoseconde</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>resolution: 480p</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking</span> <b>$0.04</b> <span class=\"price-unit\">per videoseconde</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per videoseconde</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>resolution: 768p</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking</span> <b>$0.072</b> <span class=\"price-unit\">per videoseconde</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per videoseconde</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>generatiemodus: reference; resolutie: 2k</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking</span> <b>$0.36</b> <span class=\"price-unit\">per videoseconde</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per videoseconde</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>generatiemodus: reference; resolutie: 480p</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking</span> <b>$0.14</b> <span class=\"price-unit\">per videoseconde</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per videoseconde</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>generatiemodus: reference; resolutie: 768p</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs · Schatting uitsluitend ter vergelijking</span> <b>$0.2</b> <span class=\"price-unit\">per videoseconde</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>referentie-invoerafbeelding</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per referentie-invoerafbeelding</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>—</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Invoer · referentie-invoerafbeelding · Schatting uitsluitend ter vergelijking</span> <b>$0.08</b> <span class=\"price-unit\">per referentie-invoerafbeelding</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Geschatte generatiekosten</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Verwachte hoeveelheid\"><span class=\"card-cell-label\">Verwachte hoeveelheid</span>schatting voor één generatie</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>—</td><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>—</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking</span> <b>$0.2</b> <span class=\"price-unit\">schatting vóór generatie</span></div><p class=\"note-s\">Deze schatting is geen extra bedrag of vast tarief voor de voltooide generatie.</p></td></tr></tbody></table></div></div><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><div data-declared-reference-pricing><h4>Details van het referentietarief</h4><p class=\"note-s\">Referentiestaffels op modelniveau veranderen de methodeselectie, kostenramingen of afschrijvingen niet. Voor de actieve kostenberekening gelden de tarieven van de geselecteerde Ailoot-methode.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Prijsreferenties voor videoconfiguraties</summary><h4>Prijzen per configuratie</h4><p class=\"note-s\">Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuratie</th><th>Factureringsvoorwaarden</th><th>Kosten</th></tr></thead><tbody><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>resolution: 2k</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs</span> <b>$0.18</b> <span class=\"price-unit\">per videoseconde</span></div><p class=\"note-s\">Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.</p></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>resolution: 480p</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs</span> <b>$0.04</b> <span class=\"price-unit\">per videoseconde</span></div><p class=\"note-s\">Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.</p></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>resolution: 768p</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs</span> <b>$0.06</b> <span class=\"price-unit\">per videoseconde</span></div><p class=\"note-s\">Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.</p></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>generatiemodus: reference; resolutie: 2k</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs</span> <b>$0.36</b> <span class=\"price-unit\">per videoseconde</span></div><p class=\"note-s\">Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.</p></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>generatiemodus: reference; resolutie: 480p</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs</span> <b>$0.08</b> <span class=\"price-unit\">per videoseconde</span></div><p class=\"note-s\">Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.</p></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Videoprijs</th><td data-cell-label=\"Factureringsvoorwaarden\"><span class=\"card-cell-label\">Factureringsvoorwaarden</span>generatiemodus: reference; resolutie: 768p</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Uitvoer · Videoprijs</span> <b>$0.12</b> <span class=\"price-unit\">per videoseconde</span></div><p class=\"note-s\">Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Voorbeeldverzoeken</h3><h4>Ailoot Ultra · Video</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-1713-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1713-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · video maken</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-1713-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1713-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;duration&quot;:8,&quot;model&quot;:&quot;heygen/heygen-video-1&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;480p&quot;}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Resultaten ophalen en opslaan</h3><h4>Ailoot Ultra · Video</h4><p class=\"note-s\">ondertekende inhouds-URLs die u bezit</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_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-1714-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1714-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET · Status van de oorspronkelijke bewerking</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-1714-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1714-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</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-1715-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1715-panel-0\" aria-selected=\"true\" tabindex=\"0\">Elk voltooid eigen uitvoerresultaat opslaan</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-1715-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1715-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</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 alle daadwerkelijke uitvoer die u bezit en de geretourneerde gemeten metadata.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Als het oorspronkelijke antwoord moet worden gecontroleerd</h5><p class=\"note-s\">503 result_pending_check + oorspronkelijke id + X-Should-Retry:false; herhaal het oorspronkelijke verzoek nooit</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><th>Betekenis</th></tr></thead><tbody><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Positie van deze video in de uitvoerlijst, geteld vanaf nul.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Ondertekende HTTPS-download-URL voor deze voltooide video.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string | null</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>SHA-256-digest van de oorspronkelijke videobytes; null indien niet beschikbaar.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer | null</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Grootte van het oorspronkelijke videobestand in bytes; null indien niet beschikbaar.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer | null</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Gemeten videoduur in milliseconden; null indien niet beschikbaar.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer | null</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Videobreedte in pixels; null indien niet beschikbaar.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer | null</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Videohoogte in pixels; null indien niet beschikbaar.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string | null</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Videocodec-identificatie; null indien niet vastgelegd.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>boolean | null</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Of de video een audiotrack bevat; null indien niet gemeten.</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string | null</td><td data-cell-label=\"Betekenis\"><span class=\"card-cell-label\">Betekenis</span>Audiocodec-identificatie; null wanneer geen identificatie is vastgelegd.</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>404 · <code>not_found_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Videotoegang is niet beschikbaar of deze video-ID is niet gevonden.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Controleer videotoegang. Gebruik voor een bestaande video de oorspronkelijke openbare ID en dezelfde API-sleutel.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De API-sleutel komt niet overeen met het geauthenticeerde account.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Controleer uw API-sleutel en accounttoegang voordat u indient.</td></tr><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>Het verzoek kon niet worden gelezen of de downloadindex is ongeldig.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Corrigeer de verzoekbody. Kies voor een download een uitvoerindex die door de oorspronkelijke taak is geretourneerd.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De geselecteerde videoconfiguratie kan niet worden geprijsd.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Kies een ondersteunde videoconfiguratie en vul de vereiste opties in voordat u een gecorrigeerd verzoek indient.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Een videoinvoer of oorspronkelijke vervolgtaak is ongeldig.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Gebruik geldige HTTPS-invoer. Gebruik voor een vervolg uw voltooide oorspronkelijke openbare video-ID met dezelfde API-sleutel.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>402 · <code>billing_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Het beschikbare saldo of de limieten staan geen reservering toe.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Controleer uw beschikbare saldo en limieten voordat u een nieuw verzoek verstuurt.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>503 · <code>server_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Videoverificatie, opslag of servicetoegang is tijdelijk niet beschikbaar.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Wacht tot de service beschikbaar is. Als u al een video-ID hebt, controleert u die oorspronkelijke taak in plaats van een nieuwe generatie aan te maken.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Het oorspronkelijke videoresultaat en de kosten moeten worden gecontroleerd.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Bewaar de geretourneerde video-ID en controleer die taak. Verstuur geen vervangend generatieverzoek terwijl deze wordt gecontroleerd.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De bestaande videodownload is tijdelijk niet beschikbaar.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Controleer dezelfde videotaak later en download de bestaande uitvoer. Een nieuwe generatie maakt een afzonderlijke operatie aan.</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>De video-inhoud is niet gepubliceerd.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Controleer de oorspronkelijke taakstatus. Download nadat deze completed meldt; als deze failed meldt, volgt u de melding over kostencontrole.</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=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=heygen%2Fheygen-video-1&amp;route=Ultra&amp;caller=heygen%2Fheygen-video-1&amp;fmt=videos\"><code>heygen/heygen-video-1</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=heygen%2Fheygen-video-1&amp;route=Ultra&amp;caller=heygen%2Fheygen-video-1&amp;fmt=videos\"><code>heygen/heygen-video-1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "heygen/heygen-video-1",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "heygen/heygen-video-1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|heygen%2Fheygen-video-1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "De weergegeven tarieven geven een schatting van de kosten vóór de generatie. Het definitieve bedrag wordt berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van de uitvoer en de geschatte hoeveelheden zijn niet de definitieve factureerbare hoeveelheid.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Bewaar alle daadwerkelijke uitvoer die u bezit en de geretourneerde gemeten metadata.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Videotoegang is niet beschikbaar of deze video-ID is niet gevonden.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Controleer videotoegang. Gebruik voor een bestaande video de oorspronkelijke openbare ID en dezelfde API-sleutel.",
                "type": "not_found_error"
              },
              {
                "condition": "De API-sleutel komt niet overeen met het geauthenticeerde account.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Controleer uw API-sleutel en accounttoegang voordat u indient.",
                "type": "authentication_error"
              },
              {
                "condition": "Het verzoek kon niet worden gelezen of de downloadindex is ongeldig.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Corrigeer de verzoekbody. Kies voor een download een uitvoerindex die door de oorspronkelijke taak is geretourneerd.",
                "type": "invalid_request_error"
              },
              {
                "condition": "De geselecteerde videoconfiguratie kan niet worden geprijsd.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Kies een ondersteunde videoconfiguratie en vul de vereiste opties in voordat u een gecorrigeerd verzoek indient.",
                "type": "price_unavailable"
              },
              {
                "condition": "Een videoinvoer of oorspronkelijke vervolgtaak is ongeldig.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Gebruik geldige HTTPS-invoer. Gebruik voor een vervolg uw voltooide oorspronkelijke openbare video-ID met dezelfde API-sleutel.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Het beschikbare saldo of de limieten staan geen reservering toe.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Controleer uw beschikbare saldo en limieten voordat u een nieuw verzoek verstuurt.",
                "type": "billing_error"
              },
              {
                "condition": "Videoverificatie, opslag of servicetoegang is tijdelijk niet beschikbaar.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Wacht tot de service beschikbaar is. Als u al een video-ID hebt, controleert u die oorspronkelijke taak in plaats van een nieuwe generatie aan te maken.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Het oorspronkelijke videoresultaat en de kosten moeten worden gecontroleerd.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Bewaar de geretourneerde video-ID en controleer die taak. Verstuur geen vervangend generatieverzoek terwijl deze wordt gecontroleerd.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "De bestaande videodownload is tijdelijk niet beschikbaar.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Controleer dezelfde videotaak later en download de bestaande uitvoer. Een nieuwe generatie maakt een afzonderlijke operatie aan.",
                "type": "server_error"
              },
              {
                "condition": "De video-inhoud is niet gepubliceerd.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Controleer de oorspronkelijke taakstatus. Download nadat deze completed meldt; als deze failed meldt, volgt u de melding over kostencontrole.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + oorspronkelijke id + X-Should-Retry:false; herhaal het oorspronkelijke verzoek nooit"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "heygen/heygen-video-1"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Geef prompt als tekst en duration in hele seconden op. Kies een ondersteunde resolutie en, indien nodig, een beeldverhouding.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Een geschreven prompt."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "heygen/heygen-video-1"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images is een array. Elk frameobject bevat type, image_url en frame_type; image_url bevat url. Stel type in op image_url. Gebruik first_frame. Elke framerol komt maximaal eenmaal voor. Geef voor elk frame een openbare HTTPS-afbeeldings-URL op. Kies een ondersteunde resolutie en, indien nodig, een beeldverhouding.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Een geschreven prompt en een afbeelding voor het eerste frame."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "heygen/heygen-video-1"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "input_references is een array met objecten. Stel type in op image_url, video_url, audio_url en gebruik het bijbehorende veld dat url bevat. Gebruik openbare HTTPS-URLs. Laat frame_images weg om de referentiemodus te selecteren. Kies een ondersteunde resolutie en, indien nodig, een beeldverhouding.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Een geschreven prompt en ondersteunde afbeeldings-, video- en audioreferenties."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Positie van deze video in de uitvoerlijst, geteld vanaf nul.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Ondertekende HTTPS-download-URL voor deze voltooide video.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "SHA-256-digest van de oorspronkelijke videobytes; null indien niet beschikbaar.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Grootte van het oorspronkelijke videobestand in bytes; null indien niet beschikbaar.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Gemeten videoduur in milliseconden; null indien niet beschikbaar.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Videobreedte in pixels; null indien niet beschikbaar.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Videohoogte in pixels; null indien niet beschikbaar.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Videocodec-identificatie; null indien niet vastgelegd.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Of de video een audiotrack bevat; null indien niet gemeten.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Audiocodec-identificatie; null wanneer geen identificatie is vastgelegd.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "ondertekende inhouds-URLs die u bezit",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "heygen/heygen-video-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "heygen/heygen-video-1"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "768p",
                  "2K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "768p",
                    "2K"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Deze sleutels beschrijven elk frameobject; image_url bevat uitsluitend url. Laat frame_images weg voor een verzoek met uitsluitend tekst.",
                "content": "Array met frameobjecten. Elk object bevat type=image_url, image_url met daarin url, en frame_type. Gebruik een HTTPS-afbeeldings-URL en stel frame_type in op first_frame. Elke framerol komt maximaal eenmaal voor.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 1,
                "max_items": 1,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "heygen/heygen-video-1"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "768p",
                    "2K"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": false,
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist."
              ]
            },
            "unsupported": [
              "size",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 2k",
              "quoted_unit": "per video second"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_2k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.04",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.04",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 768p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.072",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_768p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.072",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generatiemodus: reference; resolutie: 2k",
              "quoted_unit": "per video second"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.36",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_2k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.36",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generatiemodus: reference; resolutie: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.14",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.14",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generatiemodus: reference; resolutie: 768p",
              "quoted_unit": "per video second"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_768p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference input image"
            },
            "label": "reference input image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_input_images",
                "label": "reference input image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_input_images"
              }
            ]
          },
          {
            "basis": "Deze schatting is geen extra bedrag of vast tarief voor de voltooide generatie.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Geschatte generatiekosten",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"heygen/heygen-video-1\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"480p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 2k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_2k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.04",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.04",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 768p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.072",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_768p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.072",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: reference; resolution: 2k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.36",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_2k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.36",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: reference; resolution: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.14",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.14",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: reference; resolution: 768p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_768p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference input image"
            },
            "label": "reference input image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_input_images",
                "label": "reference input image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_input_images"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "heygen/heygen-video-1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.2",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_2k",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.04",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_480p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.04",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.072",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_768p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.072",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.36",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_duration_seconds_2k",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.36",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.14",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_duration_seconds_480p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.14",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.2",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_duration_seconds_768p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.08",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_input_images",
            "label": "reference input image",
            "native_amount_usd_per_unit": "0.08",
            "native_quantity": 1,
            "public_unit_label": "per reference input image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "reference_input_images"
          },
          {
            "amount": "0.2",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "heygen/heygen-video-1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "0e2fd34a015f9fcbf748ed570ec950004799823930b5b4e6db58273c7ded334c",
    "input_html_sha256": "48f70198ef8cc85c38919fa89b11bb31b60b2e4c7308199f2a4014ab2a14a91b",
    "private_audit_sha256": "15b4f23841ca7f057099b41dbcd923a86a432fbc8c449da234719642ce8d8ef8",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nl/heygen-heygen-video-1/",
    "description": "HeyGen Video genereert scènes van 5–15 seconden met dialoog, omgevingsgeluid en effecten op basis van tekst, een eerste beeld of visuele en audioreferenties. Het algemene model heygen-video-1 ondersteunt product- en personageshots, met referentieregelaars en MP4-uitvoer. Duidelijke, afgebakende acties geven het een bruikbare productiebriefing.",
    "locale": "nl",
    "md_url": "https://ailoot.ai/models/nl/heygen-heygen-video-1/index.md",
    "title": "HeyGen: HeyGen Video — Ailoot",
    "url": "https://ailoot.ai/models/nl/heygen-heygen-video-1/"
  },
  "rawModel": {
    "about": "HeyGen Video is het algemene model van HeyGen voor scènegeneratie, door de fabrikant aangeduid als heygen-video-1. Het creëert onderwerp, omgeving, licht en geluid samen op basis van een creatieve briefing. Elke clip is 5–15 seconden lang en bevat een gegenereerde audiotrack met dialoog, omgevingsgeluid en effecten. Bruikbare productie-invoer omvat een scènebeschrijving, een productfoto of materiaal dat een persoon, plaats of beweging vastlegt. Het resulterende bestand is een korte scène voor een productpresentatie, een onboardingfragment, een vastgoedbeeld of ander gemonteerd videowerk.\n\nDrie modi geven de invoer verschillende rollen. Tekst-naar-video creëert een scène uit de prompt. Beeld-naar-video begint letterlijk op het aangeleverde beeld en volgt daarna de briefing voor de actie. Referentie-naar-video gebruikt aangeleverde beelden, video en optionele audio om een nieuw gecomponeerde scène te sturen; dit vereist minimaal één referentiebeeld of -video. Kies een beeld voor het eerste frame wanneer de openingscompositie met een stilstaand beeld moet overeenkomen, of referenties wanneer een bekend object in een andere compositie moet verschijnen. Dit scènemodel staat los van de avatarrenderengines en de Video Agent-compositieworkflow van HeyGen.\n\nDe gids van de maker geeft de voorkeur aan gedetailleerde, concrete shotaanwijzingen: één onderwerp, één locatie en één afgebakende actie, met een vaste of zacht bewegende camera. Beschrijf camerapositie, gewenste lenswerking of scherptediepte, licht, oppervlaktetextuur en kleurbehandeling. Leg uit waar objecten elkaar raken wanneer een actie van contact afhangt. Gebruik voor een oorspronkelijk productvoorbeeld een referentiefoto van een thermosfles en vraag deze op een houten aanrecht te laten staan terwijl een presentator ernaast spreekt, met een kleine camerabeweging naar de fles. Controleer vorm, plaatsing en zichtbare markeringen van de fles in het resultaat.\n\nReferentielijsten ondersteunen maximaal negen beelden, drie video's en drie audio-items, met maximaal twaalf referenties in totaal. Beelden, video's en audio worden in het promptformaat van de fabrikant afzonderlijk genummerd: het eerste beeld is <Picture 1> en de eerste video is <Video 1>. Geef elke referentie een rol en identificeer die rol expliciet in de briefing. Het model leest de eerste vijf seconden van elke referentievideo, dus bereid het relevante gedeelte aan het begin voor. De API-referentie specificeert ook referentievideoverhoudingen tussen 1:4 en 4:1. Een lange clip met de gewenste beweging pas aan het einde is een slechte voorbereiding op dat invoervenster van vijf seconden.\n\nDe gedocumenteerde referentie-interface accepteert een rechtstreeks toegankelijke HTTPS-bron, een ID van een geüpload bestand of inline base64. De gids vermeldt maximale beeldgroottes van 16 MB via URL en 5 MB inline; video of audio mag tot 32 MB via URL en 16 MB inline zijn. Bereid goed leesbaar bronmateriaal voor waarin het belangrijke onderwerp gemakkelijk te onderscheiden is en zonder tegenstrijdige instructies in verschillende referenties. Behoud de bedoelde oriëntatie in het beeld voor het eerste frame. Deze invoerdetails betreffen de referentieworkflow van de maker en helpen het creatieve materiaal voor de geselecteerde modus te ordenen.\n\nStuur geluid in dezelfde briefing als het beeld. Benoem dialoog, stemvoordracht, ruimtegeluid en specifieke effecten, inclusief of een geluid dichtbij of ver weg moet zijn. Specificeer de bedoelde muziekbehandeling wanneer de scène alleen spraak en omgevingsgeluid moet bevatten. De gids stelt voor om bij de planning ongeveer 2,5 gesproken woorden per seconde aan te houden, dus laat ruimte voor pauzes en zichtbare actie. Een korte inleiding kan worden gepland als één regel gevolgd door een moment dat het product onthult. Luister naar de daadwerkelijke woorden en of het gegenereerde geluid bij de ruimte en actie past.\n\nDe uitvoerduur wordt in hele seconden van vijf tot vijftien gekozen, met vijf seconden als standaard. Resolutie is een grootteklasse: 480p, 768p, 1080p of 2k. De gedocumenteerde kadreringskeuzes zijn 21:9, 16:9, 4:3, 1:1, 3:4 en 9:16. Selecteer voor tekst-naar-video en referentie-naar-video op 1080p of 2k 16:9 of 9:16; adaptieve referentiekadrering is gedocumenteerd op 480p en 768p. Beeld-naar-video volgt de verhoudingen van het eerste beeld, dus snijd vóór generatie bij wanneer de vereiste vorm verandert. Controleer de concrete afmetingen van het voltooide resultaat in plaats van aan te nemen dat een grootteklasselabel één conventioneel pixelpaar impliceert.\n\nDe modelgids specificeert MP4-video met H.264-beeldcodering en AAC-audio op 32 kHz stereo. Een generatie wordt asynchroon verwerkt en de voltooide taak levert de afspeelbare videolocatie, duur en afmetingen. De ondertekende videolocatie kan worden vernieuwd door de taak opnieuw op te vragen. Bewaar de daadwerkelijke clip, het referentiemateriaal en de briefing voor een montagebeoordeling. Een record met status in afwachting of in verwerking volgt de generatie; de voltooide video is het productieresultaat dat op beeld, spraak en geluid moet worden beoordeeld.\n\nDe fabrikant beschrijft keuzes voor promptverbetering van turbo, quality en disabled; disabled behoudt de voorbereide formulering zoals geschreven. Een vaste seed is nuttig om een wijziging van één zinsdeel te vergelijken terwijl de overige invoer gelijk blijft. Leg de gekozen seed en instellingen bij de shotbriefing vast. Houd voor opschriften in beeld een bedoelde formulering kort en spel die precies; de gids beveelt aan alinea's, kleine tekst en gelabelde diagrammen achteraf te compositen. Controleer elk zichtbaar teken in een gegenereerde titel in plaats van aan te nemen dat de formulering correct is gereproduceerd.\n\nDe gids noemt lange tekst in beeld, zachte organische beweging zoals bloemblaadjes, papier of haar, en handelingen waarbij handen van dichtbij in beeld zijn als minder betrouwbare gebieden. Laat voor een procedurele uitleg een duidelijk geschreven regel de stappen overbrengen terwijl het beeld een stabiele persoon of een stabiel object toont; gebruik afzonderlijk geverifieerde beelden wanneer de fysieke handeling zelf exact moet zijn. Controleer het hele shot op objectcontinuïteit, contact, gezichts- en handdetails, dialoog en geluid. Een beknopte lijst van wat in de volgende take moet veranderen houdt een gedetailleerde productiebriefing praktisch.",
    "alias_of": null,
    "aliases": [],
    "author": "HeyGen",
    "available": null,
    "canonical_model": "heygen/heygen-video-1",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.2",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "De volledige prijsinformatie voor de configuratie vindt u bij de details."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "48e35f6c3af54cdc8f715db2",
        "label": "Prijsreferenties voor videoconfiguraties",
        "profiles": [
          {
            "basis": "Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.",
            "dimensions": {
              "conditions": "resolution: 2k"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.18",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.",
            "dimensions": {
              "conditions": "resolution: 480p"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.04",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.",
            "dimensions": {
              "conditions": "resolution: 768p"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.06",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.",
            "dimensions": {
              "conditions": "generatiemodus: reference; resolutie: 2k"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.36",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.",
            "dimensions": {
              "conditions": "generatiemodus: reference; resolutie: 480p"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Gepubliceerde prijsreferentie voor de weergegeven configuratie. De definitieve kosten volgen de daadwerkelijk gefactureerde configuratie.",
            "dimensions": {
              "conditions": "generatiemodus: reference; resolutie: 768p"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.12",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "heygen/heygen-video-1",
    "input": [
      "text",
      "image",
      "audio",
      "video"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "De weergegeven tarieven geven een schatting van de kosten vóór de generatie. Het definitieve bedrag wordt berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van de uitvoer en de geschatte hoeveelheden zijn niet de definitieve factureerbare hoeveelheid.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Bewaar alle daadwerkelijke uitvoer die u bezit en de geretourneerde gemeten metadata.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Videotoegang is niet beschikbaar of deze video-ID is niet gevonden.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Controleer videotoegang. Gebruik voor een bestaande video de oorspronkelijke openbare ID en dezelfde API-sleutel.",
                "type": "not_found_error"
              },
              {
                "condition": "De API-sleutel komt niet overeen met het geauthenticeerde account.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Controleer uw API-sleutel en accounttoegang voordat u indient.",
                "type": "authentication_error"
              },
              {
                "condition": "Het verzoek kon niet worden gelezen of de downloadindex is ongeldig.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Corrigeer de verzoekbody. Kies voor een download een uitvoerindex die door de oorspronkelijke taak is geretourneerd.",
                "type": "invalid_request_error"
              },
              {
                "condition": "De geselecteerde videoconfiguratie kan niet worden geprijsd.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Kies een ondersteunde videoconfiguratie en vul de vereiste opties in voordat u een gecorrigeerd verzoek indient.",
                "type": "price_unavailable"
              },
              {
                "condition": "Een videoinvoer of oorspronkelijke vervolgtaak is ongeldig.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Gebruik geldige HTTPS-invoer. Gebruik voor een vervolg uw voltooide oorspronkelijke openbare video-ID met dezelfde API-sleutel.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Het beschikbare saldo of de limieten staan geen reservering toe.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Controleer uw beschikbare saldo en limieten voordat u een nieuw verzoek verstuurt.",
                "type": "billing_error"
              },
              {
                "condition": "Videoverificatie, opslag of servicetoegang is tijdelijk niet beschikbaar.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Wacht tot de service beschikbaar is. Als u al een video-ID hebt, controleert u die oorspronkelijke taak in plaats van een nieuwe generatie aan te maken.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Het oorspronkelijke videoresultaat en de kosten moeten worden gecontroleerd.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Bewaar de geretourneerde video-ID en controleer die taak. Verstuur geen vervangend generatieverzoek terwijl deze wordt gecontroleerd.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "De bestaande videodownload is tijdelijk niet beschikbaar.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Controleer dezelfde videotaak later en download de bestaande uitvoer. Een nieuwe generatie maakt een afzonderlijke operatie aan.",
                "type": "server_error"
              },
              {
                "condition": "De video-inhoud is niet gepubliceerd.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Controleer de oorspronkelijke taakstatus. Download nadat deze completed meldt; als deze failed meldt, volgt u de melding over kostencontrole.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + oorspronkelijke id + X-Should-Retry:false; herhaal het oorspronkelijke verzoek nooit"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "heygen/heygen-video-1"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Geef prompt als tekst en duration in hele seconden op. Kies een ondersteunde resolutie en, indien nodig, een beeldverhouding.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Een geschreven prompt."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "heygen/heygen-video-1"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images is een array. Elk frameobject bevat type, image_url en frame_type; image_url bevat url. Stel type in op image_url. Gebruik first_frame. Elke framerol komt maximaal eenmaal voor. Geef voor elk frame een openbare HTTPS-afbeeldings-URL op. Kies een ondersteunde resolutie en, indien nodig, een beeldverhouding.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Een geschreven prompt en een afbeelding voor het eerste frame."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "heygen/heygen-video-1"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "input_references is een array met objecten. Stel type in op image_url, video_url, audio_url en gebruik het bijbehorende veld dat url bevat. Gebruik openbare HTTPS-URLs. Laat frame_images weg om de referentiemodus te selecteren. Kies een ondersteunde resolutie en, indien nodig, een beeldverhouding.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "Een geschreven prompt en ondersteunde afbeeldings-, video- en audioreferenties."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Positie van deze video in de uitvoerlijst, geteld vanaf nul.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Ondertekende HTTPS-download-URL voor deze voltooide video.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "SHA-256-digest van de oorspronkelijke videobytes; null indien niet beschikbaar.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Grootte van het oorspronkelijke videobestand in bytes; null indien niet beschikbaar.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Gemeten videoduur in milliseconden; null indien niet beschikbaar.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Videobreedte in pixels; null indien niet beschikbaar.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Videohoogte in pixels; null indien niet beschikbaar.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Videocodec-identificatie; null indien niet vastgelegd.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Of de video een audiotrack bevat; null indien niet gemeten.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Audiocodec-identificatie; null wanneer geen identificatie is vastgelegd.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "ondertekende inhouds-URLs die u bezit",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "heygen/heygen-video-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "heygen/heygen-video-1"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "768p",
                  "2K"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "768p",
                    "2K"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Deze sleutels beschrijven elk frameobject; image_url bevat uitsluitend url. Laat frame_images weg voor een verzoek met uitsluitend tekst.",
                "content": "Array met frameobjecten. Elk object bevat type=image_url, image_url met daarin url, en frame_type. Gebruik een HTTPS-afbeeldings-URL en stel frame_type in op first_frame. Elke framerol komt maximaal eenmaal voor.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 1,
                "max_items": 1,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "image_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "image_url"
                          }
                        },
                        "required": [
                          "type",
                          "image_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "const": "video_url"
                          },
                          "video_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "type",
                          "video_url"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_url": {
                            "additionalProperties": false,
                            "properties": {
                              "url": {
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                              }
                            },
                            "required": [
                              "url"
                            ],
                            "type": "object"
                          },
                          "type": {
                            "const": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "heygen/heygen-video-1"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "768p",
                    "2K"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": false,
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist."
              ]
            },
            "unsupported": [
              "size",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image",
              "audio",
              "video"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "reference_to_video"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 2k",
              "quoted_unit": "per video second"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_2k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.04",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.04",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 768p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.072",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_768p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.072",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generatiemodus: reference; resolutie: 2k",
              "quoted_unit": "per video second"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.36",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_2k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.36",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generatiemodus: reference; resolutie: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.14",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.14",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generatiemodus: reference; resolutie: 768p",
              "quoted_unit": "per video second"
            },
            "label": "Videoprijs",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_768p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference input image"
            },
            "label": "reference input image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_input_images",
                "label": "reference input image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_input_images"
              }
            ]
          },
          {
            "basis": "Deze schatting is geen extra bedrag of vast tarief voor de voltooide generatie.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Geschatte generatiekosten",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"heygen/heygen-video-1\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"480p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "audio",
          "video"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 2k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_2k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.04",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.04",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 768p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.072",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_768p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.072",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: reference; resolution: 2k",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.36",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_2k",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.36",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: reference; resolution: 480p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.14",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_480p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.14",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "generation mode: reference; resolution: 768p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_duration_seconds_768p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per reference input image"
            },
            "label": "reference input image",
            "units": [
              {
                "amount": "0.08",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "reference_input_images",
                "label": "reference input image",
                "native_amount_usd_per_unit": "0.08",
                "native_quantity": 1,
                "public_unit_label": "per reference input image",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "reference_input_images"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "heygen/heygen-video-1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.2",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_2k",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.04",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_480p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.04",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.072",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_768p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.072",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.36",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_duration_seconds_2k",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.36",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.14",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_duration_seconds_480p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.14",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.2",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_duration_seconds_768p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.08",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "reference_input_images",
            "label": "reference input image",
            "native_amount_usd_per_unit": "0.08",
            "native_quantity": 1,
            "public_unit_label": "per reference input image",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "reference_input_images"
          },
          {
            "amount": "0.2",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "heygen/heygen-video-1",
        "request_model_id": "heygen/heygen-video-1",
        "route_label": "Ultra"
      }
    ],
    "name": "HeyGen: HeyGen Video",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.2,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.2,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "2k"
          ],
          "variant": "duration_seconds_2k"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.18",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "2k"
              ],
              "variant": "duration_seconds_2k"
            },
            "key": "duration_seconds_2k",
            "label": "duration seconds 2k",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "480p"
          ],
          "variant": "duration_seconds_480p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.04",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "480p"
              ],
              "variant": "duration_seconds_480p"
            },
            "key": "duration_seconds_480p",
            "label": "duration seconds 480p",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "768p"
          ],
          "variant": "duration_seconds_768p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.06",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "768p"
              ],
              "variant": "duration_seconds_768p"
            },
            "key": "duration_seconds_768p",
            "label": "duration seconds 768p",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "2k"
          ],
          "variant": "reference_duration_seconds_2k"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.36",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "2k"
              ],
              "variant": "reference_duration_seconds_2k"
            },
            "key": "reference_duration_seconds_2k",
            "label": "reference duration seconds 2k",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "480p"
          ],
          "variant": "reference_duration_seconds_480p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.08",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "480p"
              ],
              "variant": "reference_duration_seconds_480p"
            },
            "key": "reference_duration_seconds_480p",
            "label": "reference duration seconds 480p",
            "profile_index": 4,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [
            "768p"
          ],
          "variant": "reference_duration_seconds_768p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.12",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [
                "768p"
              ],
              "variant": "reference_duration_seconds_768p"
            },
            "key": "reference_duration_seconds_768p",
            "label": "reference duration seconds 768p",
            "profile_index": 5,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.18",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=2k",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.18",
            "key": "duration_seconds_2k",
            "label": "output second",
            "native_amount_usd_per_unit": "0.18",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.04",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=480p",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.04",
            "key": "duration_seconds_480p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.04",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.06",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=768p",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.06",
            "key": "duration_seconds_768p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.06",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.36",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=2k · reference_to_video",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.36",
            "key": "reference_duration_seconds_2k",
            "label": "output second",
            "native_amount_usd_per_unit": "0.36",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.08",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=480p · reference_to_video",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.08",
            "key": "reference_duration_seconds_480p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.08",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.12",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=768p · reference_to_video",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.12",
            "key": "reference_duration_seconds_768p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.12",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "heygen/heygen-video-1",
    "short": "HeyGen Video genereert scènes van 5–15 seconden met dialoog, omgevingsgeluid en effecten op basis van tekst, een eerste beeld of visuele en audioreferenties. Het algemene model heygen-video-1 ondersteunt product- en personageshots, met referentieregelaars en MP4-uitvoer. Duidelijke, afgebakende acties geven het een bruikbare productiebriefing."
  },
  "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": "HeyGen Video genereert scènes van 5–15 seconden met dialoog, omgevingsgeluid en effecten op basis van tekst, een eerste beeld of visuele en audioreferenties. Het algemene model heygen-video-1 ondersteunt product- en personageshots, met referentieregelaars en MP4-uitvoer. Duidelijke, afgebakende acties geven het een bruikbare productiebriefing.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_exact_canonical_sha256": "076c0351f255a40c58dc9254d9dc755f965e689091957ff8670ae76812d4ce98",
    "raw_model_js_projection_sha256": "34dbae5c0c174b020137a3a1d191940ee9d81011fcfcf387885a0e25f8ca4040",
    "raw_model_json_sha256": "076c0351f255a40c58dc9254d9dc755f965e689091957ff8670ae76812d4ce98",
    "renderer_sha256": "be7649af06bb0ae446191041c6cfb8a9b83a53896c8c6e9173e76a39d513e829"
  },
  "sourceRevision": "4014e1c7d1662d7b48ee868a45b229c8608d90e5d1f2f2cdc593b9d0568e24b9"
}
