1:"$Sreact.fragment"
3:I[54118,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1737","static/chunks/fe207bbb-c84ed91deca4f888.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","5289","static/chunks/5289-131715863bbab062.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4094","static/chunks/4094-eaa6158623fe27ff.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4982","static/chunks/4982-a4b2ee93ffd82ffd.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1810","static/chunks/1810-cf4ca0391c1ddf2a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6397","static/chunks/6397-b7ccd1edf8aedf12.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7979","static/chunks/7979-1799576a8e82a4f3.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","144","static/chunks/144-1a048554a0613a1b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2610","static/chunks/2610-c41f461a4ed7cf24.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","528","static/chunks/528-7ef2006e50a52549.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9919","static/chunks/9919-b585857c6e10fb85.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9326","static/chunks/9326-103822841b140d80.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4077","static/chunks/4077-cba4e88bdb106467.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1924","static/chunks/1924-8c4ee98e9b0dbf83.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2530","static/chunks/2530-9eb218eca5ffc00b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7177","static/chunks/app/layout-75dbb92d3cda2f1c.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"Providers"]
4:I[98195,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1737","static/chunks/fe207bbb-c84ed91deca4f888.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","5289","static/chunks/5289-131715863bbab062.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4094","static/chunks/4094-eaa6158623fe27ff.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4982","static/chunks/4982-a4b2ee93ffd82ffd.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1810","static/chunks/1810-cf4ca0391c1ddf2a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6397","static/chunks/6397-b7ccd1edf8aedf12.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7979","static/chunks/7979-1799576a8e82a4f3.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","144","static/chunks/144-1a048554a0613a1b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2610","static/chunks/2610-c41f461a4ed7cf24.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","528","static/chunks/528-7ef2006e50a52549.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9919","static/chunks/9919-b585857c6e10fb85.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9326","static/chunks/9326-103822841b140d80.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4077","static/chunks/4077-cba4e88bdb106467.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1924","static/chunks/1924-8c4ee98e9b0dbf83.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2530","static/chunks/2530-9eb218eca5ffc00b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7177","static/chunks/app/layout-75dbb92d3cda2f1c.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"GoogleTagManager"]
5:I[4411,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1737","static/chunks/fe207bbb-c84ed91deca4f888.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","5289","static/chunks/5289-131715863bbab062.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4094","static/chunks/4094-eaa6158623fe27ff.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4982","static/chunks/4982-a4b2ee93ffd82ffd.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1810","static/chunks/1810-cf4ca0391c1ddf2a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6397","static/chunks/6397-b7ccd1edf8aedf12.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7979","static/chunks/7979-1799576a8e82a4f3.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","144","static/chunks/144-1a048554a0613a1b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2610","static/chunks/2610-c41f461a4ed7cf24.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","528","static/chunks/528-7ef2006e50a52549.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9919","static/chunks/9919-b585857c6e10fb85.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9326","static/chunks/9326-103822841b140d80.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4077","static/chunks/4077-cba4e88bdb106467.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1924","static/chunks/1924-8c4ee98e9b0dbf83.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2530","static/chunks/2530-9eb218eca5ffc00b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7177","static/chunks/app/layout-75dbb92d3cda2f1c.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"FilmAwardStrip"]
6:"$Sreact.suspense"
7:I[40459,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1737","static/chunks/fe207bbb-c84ed91deca4f888.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","5289","static/chunks/5289-131715863bbab062.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4094","static/chunks/4094-eaa6158623fe27ff.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4982","static/chunks/4982-a4b2ee93ffd82ffd.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1810","static/chunks/1810-cf4ca0391c1ddf2a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6397","static/chunks/6397-b7ccd1edf8aedf12.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7979","static/chunks/7979-1799576a8e82a4f3.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","144","static/chunks/144-1a048554a0613a1b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2610","static/chunks/2610-c41f461a4ed7cf24.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","528","static/chunks/528-7ef2006e50a52549.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9919","static/chunks/9919-b585857c6e10fb85.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9326","static/chunks/9326-103822841b140d80.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4077","static/chunks/4077-cba4e88bdb106467.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1924","static/chunks/1924-8c4ee98e9b0dbf83.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2530","static/chunks/2530-9eb218eca5ffc00b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7177","static/chunks/app/layout-75dbb92d3cda2f1c.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"Navbar"]
8:I[15848,[],""]
9:I[55256,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","8039","static/chunks/app/error-332e154bd557e323.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"default"]
a:I[62142,[],""]
1a:I[79302,["4219","static/chunks/app/global-error-f07d85f704128170.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"default"]
:HL["/_next/static/media/7d4881bb7e1bf84d-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/css/c91c557421edbcc1.css?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","style"]
:HL["/_next/static/css/9c4f0c3be44ead33.css?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","style"]
2:T412,
(function () {
  window.dataLayer = window.dataLayer || [];
  function gtag() { window.dataLayer.push(arguments); }

  gtag('consent', 'default', {
    ad_storage: 'denied',
    ad_user_data: 'denied',
    ad_personalization: 'denied',
    analytics_storage: 'denied',
    functionality_storage: 'denied',
    personalization_storage: 'denied',
    security_storage: 'granted'
  });

  try {
    var match = document.cookie.match(/(?:^|;\s*)gdpr_consent=([^;]*)/);
    if (!match) return;
    var saved = JSON.parse(decodeURIComponent(match[1]));
    if (!saved || typeof saved !== 'object') return;
    gtag('consent', 'update', {
      analytics_storage: saved.analytics ? 'granted' : 'denied',
      ad_storage: saved.marketing ? 'granted' : 'denied',
      ad_user_data: saved.marketing ? 'granted' : 'denied',
      ad_personalization: saved.marketing ? 'granted' : 'denied',
      functionality_storage: saved.functional ? 'granted' : 'denied'
    });
  } catch (e) {
    /* malformed cookie â€” the denied default stands */
  }
})();
0:{"P":null,"b":"vX-6P7rGIK5v7u82yfIum","p":"","c":["","models","wan3.0-video","api"],"i":false,"f":[[["",{"children":["models",{"children":[["route","wan3.0-video","d"],{"children":["api",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/c91c557421edbcc1.css?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/9c4f0c3be44ead33.css?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"__variable_8c25df","children":[["$","head",null,{"children":[["$","script",null,{"id":"consent-mode-default","dangerouslySetInnerHTML":{"__html":"$2"}}],["$","script",null,{"id":"film-award-dismissed","dangerouslySetInnerHTML":{"__html":"try{if(document.cookie.split(';').some(function(c){return c.trim()===\"film_award_2027_dismissed=1\"}))document.documentElement.setAttribute(\"data-film-award-dismissed\",'')}catch(e){}"}}],["$","link",null,{"rel":"preconnect","href":"https://images.segmind.com"}],["$","link",null,{"rel":"preconnect","href":"https://segmind-resources.s3.amazonaws.com"}],["$","link",null,{"rel":"preconnect","href":"https://www.googletagmanager.com"}],["$","link",null,{"rel":"preload","href":"/fonts/Satoshi-Variable.woff2","as":"font","type":"font/woff2","crossOrigin":"anonymous"}]]}],["$","body",null,{"className":"antialiased bg-background text-foreground","children":["$","$L3",null,{"children":[["$","$L4",null,{"gtmId":"GTM-MHW23H4Z"}],["$","div",null,{"className":"min-h-screen flex flex-col","children":[["$","$L5",null,{}],["$","$6",null,{"fallback":["$","div",null,{"className":"h-16 bg-background/95 backdrop-blur border-b border-border"}],"children":["$","$L7",null,{}]}],["$","main",null,{"className":"flex-1","children":["$","$L8",null,{"parallelRouterKey":"children","error":"$9","errorStyles":[],"errorScripts":[],"template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","div",null,{"className":"min-h-screen bg-background flex items-center justify-center px-4 sm:px-6 lg:px-8","children":["$","div",null,{"className":"max-w-lg w-full text-center","children":[["$","div",null,{"className":"mb-8","children":["$","div",null,{"className":"relative","children":[["$","h1",null,{"className":"text-9xl font-bold text-muted/20 dark:text-muted/10 select-none","children":"404"}],["$","div",null,{"className":"absolute inset-0 flex items-center justify-center","children":["$","div",null,{"className":"relative","children":[["$","div",null,{"className":"absolute -top-8 -left-8 w-16 h-16 bg-brand-100 dark:bg-brand-950 rounded-full flex items-center justify-center animate-bounce","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-zap w-8 h-8 text-brand-500","children":["$Lb","$undefined"]}]}],"$Lc","$Ld"]}]}]]}]}],"$Le","$Lf","$L10","$L11"]}]}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],"$L12"]}],"$L13","$L14"]}]}]]}]]}],{"children":["models","$L15",{"children":[["route","wan3.0-video","d"],"$L16",{"children":["api","$L17",{"children":["__PAGE__","$L18",{},null,false]},null,false]},null,false]},null,false]},null,false],"$L19",false]],"m":"$undefined","G":["$1a",[]],"s":false,"S":true}
1b:I[75289,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6541","static/chunks/fb4e7fc9-e31ad622f5fde25d.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9761","static/chunks/998e86a0-e112630ec4db17dc.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","5289","static/chunks/5289-131715863bbab062.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4094","static/chunks/4094-eaa6158623fe27ff.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4982","static/chunks/4982-a4b2ee93ffd82ffd.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1810","static/chunks/1810-cf4ca0391c1ddf2a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6118","static/chunks/6118-7328b7d3f629a5ef.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7979","static/chunks/7979-1799576a8e82a4f3.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","393","static/chunks/393-7cd2157fc3790475.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3985","static/chunks/3985-1f9bcb95de313d61.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2610","static/chunks/2610-c41f461a4ed7cf24.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4844","static/chunks/4844-011fe3465334e7d0.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9305","static/chunks/9305-0f5d0f2a661afddc.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","713","static/chunks/713-dcb3ca4f0233704d.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3504","static/chunks/3504-ae9bc2dc93d2ef47.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9919","static/chunks/9919-b585857c6e10fb85.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9326","static/chunks/9326-103822841b140d80.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1885","static/chunks/1885-f206f5873f09b3e2.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4077","static/chunks/4077-cba4e88bdb106467.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","5126","static/chunks/5126-bdde68ce894e4935.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","5642","static/chunks/5642-c80cb7ee6e914a6a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1924","static/chunks/1924-8c4ee98e9b0dbf83.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6372","static/chunks/6372-3e2880fc7d769d1f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1289","static/chunks/1289-4fdf72847f7ef615.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","8382","static/chunks/8382-004a14550e3769cc.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1951","static/chunks/app/models/%5Broute%5D/page-c5fd4df0a8a5cab4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],""]
1c:I[4717,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1737","static/chunks/fe207bbb-c84ed91deca4f888.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","5289","static/chunks/5289-131715863bbab062.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4094","static/chunks/4094-eaa6158623fe27ff.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4982","static/chunks/4982-a4b2ee93ffd82ffd.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1810","static/chunks/1810-cf4ca0391c1ddf2a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6397","static/chunks/6397-b7ccd1edf8aedf12.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7979","static/chunks/7979-1799576a8e82a4f3.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","144","static/chunks/144-1a048554a0613a1b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2610","static/chunks/2610-c41f461a4ed7cf24.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","528","static/chunks/528-7ef2006e50a52549.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9919","static/chunks/9919-b585857c6e10fb85.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9326","static/chunks/9326-103822841b140d80.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4077","static/chunks/4077-cba4e88bdb106467.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1924","static/chunks/1924-8c4ee98e9b0dbf83.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2530","static/chunks/2530-9eb218eca5ffc00b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7177","static/chunks/app/layout-75dbb92d3cda2f1c.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"Footer"]
1d:I[35733,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6397","static/chunks/6397-b7ccd1edf8aedf12.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6140","static/chunks/6140-b94b4e43e1bb103d.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","8012","static/chunks/app/models/%5Broute%5D/api/page-117c8b87bdd6a7b4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"Toaster"]
1e:I[20659,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1737","static/chunks/fe207bbb-c84ed91deca4f888.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","5289","static/chunks/5289-131715863bbab062.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4094","static/chunks/4094-eaa6158623fe27ff.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4982","static/chunks/4982-a4b2ee93ffd82ffd.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1810","static/chunks/1810-cf4ca0391c1ddf2a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6397","static/chunks/6397-b7ccd1edf8aedf12.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7979","static/chunks/7979-1799576a8e82a4f3.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","144","static/chunks/144-1a048554a0613a1b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2610","static/chunks/2610-c41f461a4ed7cf24.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","528","static/chunks/528-7ef2006e50a52549.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9919","static/chunks/9919-b585857c6e10fb85.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9326","static/chunks/9326-103822841b140d80.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4077","static/chunks/4077-cba4e88bdb106467.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1924","static/chunks/1924-8c4ee98e9b0dbf83.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","2530","static/chunks/2530-9eb218eca5ffc00b.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7177","static/chunks/app/layout-75dbb92d3cda2f1c.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"LazyLayoutExtras"]
21:I[30661,[],"OutletBoundary"]
23:I[72272,[],"AsyncMetadataOutlet"]
25:I[30661,[],"ViewportBoundary"]
27:I[30661,[],"MetadataBoundary"]
b:["$","path","1xq2db",{"d":"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"}]
c:["$","div",null,{"className":"absolute -top-4 -right-12 w-12 h-12 bg-brand-secondary-100 dark:bg-brand-secondary-950 rounded-full flex items-center justify-center animate-pulse","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-search w-6 h-6 text-brand-secondary-500","children":[["$","circle","4ej97u",{"cx":"11","cy":"11","r":"8"}],["$","path","1qie3q",{"d":"m21 21-4.3-4.3"}],"$undefined"]}]}]
d:["$","div",null,{"className":"absolute -bottom-6 left-4 w-10 h-10 bg-green-100 dark:bg-green-950 rounded-full flex items-center justify-center animate-bounce delay-200","children":["$","div",null,{"className":"w-3 h-3 bg-green-500 rounded-full"}]}]
e:["$","div",null,{"className":"mb-8","children":[["$","h2",null,{"className":"text-2xl font-semibold text-foreground mb-4","children":"Page Not Found"}],["$","p",null,{"className":"text-muted-foreground text-lg mb-2","children":"Oops! The page you're looking for doesn't exist."}],["$","p",null,{"className":"text-muted-foreground","children":"It might have been moved, deleted, or you entered the wrong URL."}]]}]
f:["$","div",null,{"className":"flex flex-col sm:flex-row gap-4 justify-center items-center mb-12","children":[["$","$L1b",null,{"href":"/","className":"inline-flex items-center justify-center gap-2 px-6 py-3 bg-brand-600 dark:bg-brand-500 text-white rounded-lg hover:bg-brand-700 dark:hover:bg-brand-600 transition-colors font-medium text-base w-full sm:w-auto","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-house w-5 h-5","children":[["$","path","5wwlr5",{"d":"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"}],["$","path","1d0kgt",{"d":"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}],"$undefined"]}],"Go Home"]}],["$","$L1b",null,{"href":"/models","className":"inline-flex items-center justify-center gap-2 px-6 py-3 bg-surface border border-border text-foreground rounded-lg hover:bg-surface/80 transition-colors font-medium text-base w-full sm:w-auto","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-search w-5 h-5","children":[["$","circle","4ej97u",{"cx":"11","cy":"11","r":"8"}],["$","path","1qie3q",{"d":"m21 21-4.3-4.3"}],"$undefined"]}],"Browse Models"]}]]}]
10:["$","div",null,{"className":"border-t border-border pt-8","children":[["$","p",null,{"className":"text-sm text-muted-foreground mb-4","children":"Popular destinations:"}],["$","div",null,{"className":"flex flex-wrap justify-center gap-4 text-sm","children":[["$","$L1b",null,{"href":"/models/tags/image","className":"text-brand-600 dark:text-brand-400 hover:text-brand-700 dark:hover:text-brand-300 transition-colors","children":"Image Models"}],["$","span",null,{"className":"text-muted-foreground","children":"â€¢"}],["$","$L1b",null,{"href":"/models/tags/video","className":"text-brand-600 dark:text-brand-400 hover:text-brand-700 dark:hover:text-brand-300 transition-colors","children":"Video Models"}],["$","span",null,{"className":"text-muted-foreground","children":"â€¢"}],["$","$L1b",null,{"href":"/models/tags/llms","className":"text-brand-600 dark:text-brand-400 hover:text-brand-700 dark:hover:text-brand-300 transition-colors","children":"LLMs"}],["$","span",null,{"className":"text-muted-foreground","children":"â€¢"}],["$","$L1b",null,{"href":"/models","className":"text-brand-600 dark:text-brand-400 hover:text-brand-700 dark:hover:text-brand-300 transition-colors","children":"All Models"}]]}]]}]
11:["$","div",null,{"className":"mt-8","children":["$","$L1b",null,{"href":"/","className":"inline-flex items-center text-sm text-muted-foreground hover:text-foreground transition-colors","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left w-4 h-4 mr-2","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"Go back to homepage"]}]}]
12:["$","$L1c",null,{}]
13:["$","$L1d",null,{"closeButton":true,"toastOptions":{"duration":30000}}]
14:["$","$L1e",null,{}]
15:["$","$1","c",{"children":[null,["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}]
16:["$","$1","c",{"children":[null,"$L1f"]}]
17:["$","$1","c",{"children":[null,["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}]
18:["$","$1","c",{"children":["$L20",null,["$","$L21",null,{"children":["$L22",["$","$L23",null,{"promise":"$@24"}]]}]]}]
19:["$","$1","h",{"children":[null,[["$","$L25",null,{"children":"$L26"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L27",null,{"children":["$","div",null,{"hidden":true,"children":["$","$6",null,{"fallback":null,"children":"$L28"}]}]}]]}]
26:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
22:null
2a:I[53921,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","5289","static/chunks/5289-131715863bbab062.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7213","static/chunks/7213-ed3acee0c865cd60.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7256","static/chunks/app/models/%5Broute%5D/layout-23522cb6540a765c.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"default"]
2f:I[4704,[],"IconMark"]
20:[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"TechArticle\",\"@id\":\"https://www.segmind.com/models/wan3.0-video/api\",\"name\":\"Wan 3.0 Video API Documentation\",\"description\":\"Complete API documentation for Wan 3.0 Video. Code examples in Python, JavaScript, and cURL. Integrate this AI model into your applications with Segmind's\",\"url\":\"https://www.segmind.com/models/wan3.0-video/api\",\"about\":{\"@id\":\"https://www.segmind.com/models/wan3.0-video\"},\"publisher\":{\"@type\":\"Organization\",\"@id\":\"https://www.segmind.com/#organization\",\"name\":\"Segmind\",\"url\":\"https://www.segmind.com\",\"logo\":\"https://www.segmind.com/favicon.svg\"}}"}}],"$L29"]
2b:Tef4,# Wan 3.0 Video â€” All-in-One AI Video Generation Model

## What is Wan 3.0 Video?

Wan 3.0 Video is Alibaba's all-in-one video generation model, the newest release in the Wan family from Tongyi Lab. Where earlier versions split the work across separate models, Wan 3.0 folds text-to-video, image-to-video, reference-to-video, and video editing into a single endpoint. You give it a prompt, a first and last frame, reference images, reference clips, reference audio, or even a document, and the model infers what you are asking for and renders it.

The headline change is length: Wan 3.0 generates up to 30 seconds of video in a single pass at 30fps, double its predecessor. That is long enough for continuous camera moves and one-take shot language instead of the short fragments most models cap out at. It also generates a native audio track alongside the video, in the same pass, with multilingual voice output.

## Key Features

- One model, four modes: text-to-video, image-to-video, reference-to-video, and video editing, selected automatically from the media you attach.
- Up to 30-second single-pass generation, or `-1` for smart duration that matches your prompt and source.
- Native audio generated with the video, not dubbed on afterward.
- 480P, 720P, and 1080P output across six aspect ratios plus an adaptive mode.
- Rich inputs: first frame, last frame, up to 10 reference images, reference video or audio clips, and document references (PPT, PDF, DOC, XLS, and more).
- First-and-last-frame control for precise shot framing.

## Best Use Cases

Wan 3.0 fits filmmaking and short drama, social media and advertising, e-commerce product demos, character animation, and document-to-video workflows. The 30-second window lets a single generation hold a complete exchange, camera move, or transition without stitching. Reference-to-video keeps characters, props, spaces, and style consistent across shots, which suits branded content and recurring characters. Document input turns a slide deck, spreadsheet, or PDF into an explainer or promo in one upload, making it a practical tool for marketing and educational video.

## Prompt Tips and Output Quality

Write cinematic, specific prompts: name the subject, the motion, the camera move, the lighting, and the ambient sound you want in the audio track. Keep `prompt_extend` on for short prompts so the model enriches detail automatically. Use first-and-last-frame control when you need an exact start and finish, and reference images for consistent identity. Output realism is strong on faces, micro-expressions, and reference fidelity; audio texture and on-screen text rendering are the areas Alibaba flags as still improving, so verify any in-frame typography.

## FAQs

**Can Wan 3.0 make videos longer than 30 seconds?**
A single pass tops out at 30 seconds. Longer narratives are built with the video extension capability rather than one call.

**Does Wan 3.0 generate audio?**
Yes. Audio is on by default and produced in the same pass as the video, with multilingual voice output. Toggling audio does not change pricing.

**What resolutions and aspect ratios are supported?**
480P, 720P, and 1080P, with 16:9, 4:3, 1:1, 3:4, 9:16, and an adaptive ratio that follows your input.

**What inputs can it take?**
Text, images (first frame, last frame, up to 10 reference images), reference video and audio clips, and documents such as PPT, PDF, DOC, and XLS.

**Is there a 4K tier or open weights?**
No. Output caps at 1080P, and Alibaba has not published open weights for Wan 3.0; earlier Wan releases were the open ones.

**How do I keep a character consistent across a shot?**
Supply reference images and, where possible, first-and-last-frame control, then check frame one against the final frame for identity drift.
2c:T7ab,# How to Use Wan 3.0 Video

Wan 3.0 Video is a single model that handles text-to-video, image-to-video, reference-to-video, and video editing. You pick the mode simply by what you attach: a prompt alone runs text-to-video, a first frame runs image-to-video, adding a last frame gives first-and-last-frame control, and reference images, clips, or documents run reference-to-video.

## Choosing the right inputs

- Text-to-video: write a detailed `prompt` and set `aspect_ratio` for framing. Keep `prompt_extend` on for short prompts.
- Image-to-video: supply `image` as the first frame, and optionally `last_frame` to lock the ending of the shot.
- Reference-to-video: add up to 10 `reference_images` for consistent subjects, `reference_videos` for motion or style, and `audio_url` for lip-sync.
- Editing: pass a clip via `reference_videos` and describe the change; use `duration` `-1` to match the source length.

## Getting quality output

Write cinematic prompts that name the subject, motion, camera move, lighting, and the ambient sound you want in the native audio track. Use `negative_prompt` to remove unwanted objects or artifacts. Set `resolution` to 480P for fast previews and iteration, then 1080P for final delivery. Set a fixed `seed` when you need reproducible results.

## Recommended Settings

- Quick preview: `resolution` 480P, `duration` 5, `prompt_extend` true, `audio` on.
- Social clip: `resolution` 720P, `aspect_ratio` 9:16, `duration` 8 to 15.
- Cinematic final: `resolution` 1080P, `aspect_ratio` 16:9, `duration` up to 30.
- Consistent character: add `reference_images`, keep `seed` fixed, verify frame one against the final frame.
- Document-to-video: attach a deck or PDF as a reference, write a prompt describing the desired narrative, and let smart duration size the clip.

Keep `audio` enabled for finished videos since it costs nothing extra, and add `watermark` when you need an AI-generated disclosure.
2d:Tfe6,## How Pricing Works

Wan 3.0 Video is billed per second of video processed, at a per-second rate set by the **output resolution** (480p, 720p or 1080p). Two things are counted:

- **The video you generate**: 2 to 30 seconds, or the length of the source clip when you edit a video with `duration: -1`.
- **Every reference video you attach, at its full length** (up to 15 seconds each). If you attach more than one, their lengths add up.

Text prompts, a first or last frame image, reference images and audio generation add no charge.

```
billed seconds = output duration + total reference video duration
cost = rate Ã— billed seconds
```

### Per-Second Rates

| Resolution | Rate |
|---|---|
| 480p | $0.05/s |
| 720p | $0.10/s |
| 1080p | $0.20/s |

Reference video seconds are charged at your output's rate, whatever the reference's own resolution or frame rate, so a lower-quality reference is not a cheaper one. A shorter one is.

### Quick Cost Examples

| Mode | Resolution | Reference video | Output | Billed seconds | Cost |
|---|---|---|---|---|---|
| Text / image-to-video | 480p | â€” | 5s | 5 | $0.25 |
| Text / image-to-video | 720p | â€” | 5s | 5 | $0.50 |
| Text / image-to-video | 720p | â€” | 10s | 10 | $1.00 |
| Text / image-to-video | 1080p | â€” | 30s | 30 | $6.00 |
| With a reference video | 720p | 5s | 10s | 15 | $1.50 |
| With a reference video | 720p | 12s | 10s | 22 | $2.20 |
| With a reference video | 1080p | 12s | 10s | 22 | $4.40 |
| Video edit (`duration: -1`) | 720p | 10s source clip | 10s | 20 | $2.00 |

### Credit Holds vs. Your Final Charge

If you watch your balance during a generation, you may see an amount deducted that differs from what the clip ends up costing. That is expected:

1. **On request**: Segmind places a temporary hold on credits, sized from this model's recent average cost. This is an estimate, not the price of your clip.
2. **On completion**: the hold is settled at the actual cost of your request. If the hold was larger, the difference is returned to your balance right away; if it was smaller (common for long outputs or generations with reference videos), the remainder is deducted.

So the number to reconcile against the tables above is your balance **after** the request settles, not the momentary change while it runs.

**Failed generations are not billed.** If a request returns an error, the hold is rolled back in full and you are charged nothing.

### Important Notes

- **A reference video usually costs more than the output it drives**: a 10-second output guided by a 12-second reference is billed as 22 seconds, not 10.
- **Editing a clip bills the source and the result**: editing a 10-second clip into a 10-second result is billed as 20 seconds.
- **Audio is free**: generating a soundtrack does not change the price.
- **Aspect ratio does not affect the price**: every ratio at a given resolution bills at the same rate.
- **Exact lengths**: output is billed in whole seconds of the video you receive, and reference videos at their measured length (for example, 11.71 seconds).

### Cost Optimization Tips

- **Trim reference videos to the motion you need**: cutting a 12-second reference to 5 seconds saves 7 billed seconds ($0.70 at 720p) on every generation.
- **Use reference images when you only need a character or a style**: reference images add nothing to the bill; reference videos add their full length.
- **480p for drafts, 720p for delivery, 1080p for hero shots**: each step up in resolution roughly doubles the per-second rate.
- **Match duration to the shot**: output cost is strictly per second, so request the length you need (2 to 30 seconds).
- **Fix the seed to iterate**: lock a seed and refine the prompt instead of re-rolling full-length renders.

### Example Scenario

A creator producing 20 character-replacement clips a day at 720p, each a 10-second output driven by a 12-second reference video, is billed 22 seconds per clip: about **$44.00/day**. Trimming each reference to the 5 seconds that matter brings that to 15 seconds per clip, about **$30.00/day**.
1f:["$","$L2a",null,{"route":"wan3.0-video","modelDetails":{"title":"Wan 3.0 Video","thumbnail_image":"https://segmind-resources.s3.amazonaws.com/output/wan3.0-video-1838.webp","type":"imageToVideo","model_type":"SO","is_depreciated":false,"meta_description":"Generate up to 30 seconds of 1080p video with native audio from text, first and last frames, or reference images, video, and audio â€” in one model.","seo_description":"$2b","guide":"$2c","pricing_guide":"$2d","artifacts":[],"default_image_output":"https://segmind-resources.s3.amazonaws.com/output/wan3.0-video-example-output.mp4","default_response":null,"parameters":{"prompt":{"isRequired":true,"affectsPricing":false,"type":"str","description":"Describe the video; up to 20,000 characters. Include motion and audio cues.","isEnum":false,"hidden":false,"isAdvanced":false,"displayOrder":0,"component":"textarea","label":"Prompt","default":"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.","displayValue":"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."},"image":{"isRequired":false,"affectsPricing":false,"type":"image","description":"Start image for image-to-video. Use a clear, high-resolution frame.","isEnum":false,"hidden":false,"isAdvanced":false,"displayOrder":1,"component":"image","label":"First Frame","default":"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg","displayValue":"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"},"last_frame":{"isRequired":false,"affectsPricing":false,"type":"image","description":"Optional end frame, max one image. Pair with first frame.","isEnum":false,"hidden":false,"isAdvanced":false,"displayOrder":2,"component":"image","label":"Last Frame","default":null},"reference_images":{"isRequired":false,"affectsPricing":false,"type":"image","description":"Up to 10 images guiding subject, character or style. Add for consistency.","isEnum":false,"hidden":false,"isAdvanced":false,"displayOrder":3,"component":"image","label":"Reference Images","default":null},"reference_videos":{"isRequired":false,"affectsPricing":false,"type":"image","description":"Up to 5 clips, 15 seconds total. Use to guide motion or edits.","isEnum":false,"hidden":false,"isAdvanced":false,"displayOrder":4,"component":"image","label":"Reference Videos","default":null},"audio_url":{"isRequired":false,"affectsPricing":false,"type":"image","description":"Reference audio, up to 5 clips, 15 seconds total. Enables lip-sync.","isEnum":false,"hidden":false,"isAdvanced":false,"displayOrder":5,"component":"image","label":"Reference Audio","default":null},"resolution":{"isRequired":false,"affectsPricing":true,"type":"str","description":"Output quality: 480P, 720P or 1080P; affects pricing. Use 1080P for final.","isEnum":true,"hidden":false,"isAdvanced":false,"displayOrder":6,"component":"select","label":"Resolution","default":"720P","enumValues":["480P","720P","1080P"],"displayValue":"720P"},"duration":{"isRequired":false,"affectsPricing":true,"type":"int","description":"Length 2 to 30 seconds; -1 auto-matches source. Longer suits full scenes.","isEnum":false,"hidden":false,"isAdvanced":false,"displayOrder":7,"component":"number","label":"Duration (seconds)","default":5,"displayValue":5},"aspect_ratio":{"isRequired":false,"affectsPricing":false,"type":"str","description":"Framing for text-to-video: 16:9, 9:16, 1:1, adaptive. Match your platform.","isEnum":true,"hidden":false,"isAdvanced":false,"displayOrder":8,"component":"select","label":"Aspect Ratio","default":"16:9","enumValues":["16:9","4:3","1:1","3:4","9:16","adaptive"],"displayValue":"16:9"},"negative_prompt":{"isRequired":false,"affectsPricing":false,"type":"str","description":"Content to exclude, up to 500 characters. List unwanted objects or artifacts.","isEnum":false,"hidden":false,"isAdvanced":true,"displayOrder":9,"component":"textarea","label":"Negative Prompt","default":null},"prompt_extend":{"isRequired":false,"affectsPricing":false,"type":"bool","description":"Auto-rewrites short prompts for richer detail. Enable for brief inputs.","isEnum":false,"hidden":false,"isAdvanced":true,"displayOrder":10,"component":"switch","label":"Prompt Extend","default":true,"displayValue":true},"seed":{"isRequired":false,"affectsPricing":false,"type":"int","description":"Integer 0 to 2147483647 for reproducible output. Fix to repeat a result.","isEnum":false,"hidden":false,"isAdvanced":true,"displayOrder":11,"component":"number","label":"Seed","default":null},"watermark":{"isRequired":false,"affectsPricing":false,"type":"bool","description":"Adds an AI Generated watermark. Enable for disclosure or compliance.","isEnum":false,"hidden":false,"isAdvanced":true,"displayOrder":12,"component":"switch","label":"Watermark","default":false,"displayValue":false},"audio":{"isRequired":false,"affectsPricing":false,"type":"bool","description":"Generates a synced soundtrack in the same pass. No price change.","isEnum":false,"hidden":false,"isAdvanced":false,"displayOrder":9,"component":"switch","label":"Generate Audio","default":true,"displayValue":true}},"endpoints":{"main":"/v1/wan3.0-video"},"api_notes":[],"model_outputs":null,"llm_capabilities":null,"license":"","github_link":null,"inference_provider":"DASHSCOPE","created_ts":"2026-08-14 03:30:03.720348+00:00","slug":"wan3.0-video","name":"Wan 3.0 Video","description":"Generate 30-second 1080p video with native audio.","category":"imageToVideo","modality":"video","input":"image","output":"video","provider":"ALIBABA","thumbnail_url":"https://segmind-resources.s3.amazonaws.com/output/wan3.0-video-1838.webp","is_new":false,"coming_soon":false,"popularity_score":78,"category_percentile":97,"average_cost":0.8053931402533608,"latency_seconds":300.75646,"created_at":"2026-08-14 03:30:03.720348+00:00","parameters_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","title":"Prompt","description":"Describe the video. Required unless you supply an image or video input.","x-ui-metadata":{"order":0,"placeholder":"A red teapot on a wooden table, slow dolly in, warm afternoon light"}},"image":{"type":["string","null"],"format":"uri","title":"First Frame","description":"Start the video from this image (image-to-video).","x-file-metadata":{"allowed-types":["image/*"]},"x-ui-metadata":{"order":1}},"last_frame":{"type":["string","null"],"format":"uri","title":"Last Frame","description":"Optional end frame. Use with First Frame to control the whole shot.","x-file-metadata":{"allowed-types":["image/*"]},"x-ui-metadata":{"order":2}},"reference_images":{"type":"array","title":"Reference Images","description":"Images whose subject, character or style the video should follow.","items":{"type":"string","format":"uri","x-file-metadata":{"allowed-types":["image/*"]}},"x-ui-metadata":{"order":3}},"reference_videos":{"type":"array","title":"Reference Videos","description":"Videos to guide motion or style, or the clip you want edited. Each second of reference video is billed at the output rate (15 seconds maximum per video).","items":{"type":"string","format":"uri","x-file-metadata":{"allowed-types":["video/*"]}},"x-ui-metadata":{"order":4}},"audio_url":{"type":["string","null"],"format":"uri","title":"Reference Audio","description":"Optional audio track to drive the video, including lip-sync.","x-file-metadata":{"allowed-types":["audio/*"]},"x-ui-metadata":{"order":5}},"resolution":{"type":"string","title":"Resolution","description":"Output resolution. Affects pricing.","default":"720P","oneOf":[{"const":"480P","title":"480p"},{"const":"720P","title":"720p"},{"const":"1080P","title":"1080p"}],"x-ui-metadata":{"order":6}},"duration":{"type":"integer","title":"Duration (seconds)","description":"Clip length, 2 to 30 seconds. Affects pricing. Use -1 to match the source when editing a video.","default":5,"minimum":-1,"maximum":30,"x-ui-metadata":{"order":7}},"aspect_ratio":{"type":"string","title":"Aspect Ratio","description":"Framing for text-to-video. Ignored when a first frame or reference sets the shape.","oneOf":[{"const":"16:9","title":"16:9"},{"const":"4:3","title":"4:3"},{"const":"1:1","title":"1:1"},{"const":"3:4","title":"3:4"},{"const":"9:16","title":"9:16"},{"const":"adaptive","title":"Adaptive - match the input"}],"x-ui-metadata":{"order":8}},"negative_prompt":{"type":"string","title":"Negative Prompt","description":"Content to keep out of the video.","maxLength":500,"x-ui-metadata":{"order":9,"advanced":true}},"prompt_extend":{"type":"boolean","title":"Prompt Extend","description":"Let the model rewrite and enrich short prompts.","default":true,"x-ui-metadata":{"order":10,"advanced":true}},"seed":{"type":"integer","title":"Seed","description":"Seed for reproducible results.","minimum":0,"maximum":2147483647,"x-ui-metadata":{"order":11,"advanced":true}},"watermark":{"type":"boolean","title":"Watermark","description":"Add an \"AI Generated\" watermark.","default":false,"x-ui-metadata":{"order":12,"advanced":true}},"audio":{"type":"boolean","title":"Generate Audio","description":"Generate a synchronised soundtrack in the same pass. Does not change the price.","default":true,"x-ui-metadata":{"order":9}}},"required":["prompt"],"examples":[{"prompt":"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.","image":"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg","resolution":"720P","duration":5,"aspect_ratio":"16:9","prompt_extend":true,"watermark":false,"audio":true}]}},"metrics":{"total_requests":null,"latency":300.75646},"children":"$L2e"}]
24:{"metadata":[["$","title","0",{"children":"Wan 3.0 Video API Documentation | Segmind"}],["$","meta","1",{"name":"description","content":"Complete API documentation for Wan 3.0 Video. Code examples in Python, JavaScript, and cURL. Integrate this AI model into your applications with Segmind's serverless API."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","meta","3",{"name":"googlebot","content":"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"}],["$","link","4",{"rel":"canonical","href":"https://www.segmind.com/models/wan3.0-video/api"}],["$","meta","5",{"property":"og:title","content":"Wan 3.0 Video API Documentation"}],["$","meta","6",{"property":"og:description","content":"Complete API documentation for Wan 3.0 Video. Code examples in Python, JavaScript, and cURL. Integrate this AI model into your applications with Segmind's serverless API."}],["$","meta","7",{"property":"og:url","content":"https://www.segmind.com/models/wan3.0-video/api"}],["$","meta","8",{"property":"og:site_name","content":"Segmind"}],["$","meta","9",{"property":"og:image","content":"https://segmind-resources.s3.amazonaws.com/output/wan3.0-video-1838.webp"}],["$","meta","10",{"property":"og:type","content":"article"}],["$","meta","11",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","12",{"name":"twitter:title","content":"Wan 3.0 Video API Documentation"}],["$","meta","13",{"name":"twitter:description","content":"API docs for Wan 3.0 Video. Python, JavaScript & cURL examples. Pay-as-you-go serverless API."}],["$","meta","14",{"name":"twitter:image","content":"https://segmind-resources.s3.amazonaws.com/output/wan3.0-video-1838.webp"}],["$","link","15",{"rel":"shortcut icon","href":"/favicon.ico"}],["$","link","16",{"rel":"icon","href":"/favicon.ico","sizes":"any"}],["$","link","17",{"rel":"icon","href":"/favicon-48x48.png","type":"image/png","sizes":"48x48"}],["$","link","18",{"rel":"icon","href":"/favicon-192x192.png","type":"image/png","sizes":"192x192"}],["$","link","19",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","20",{"rel":"apple-touch-icon","href":"/favicon-48x48.png"}],["$","$L2f","21",{}]],"error":null,"digest":"$undefined"}
28:"$24:metadata"
30:I[501,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6397","static/chunks/6397-b7ccd1edf8aedf12.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6140","static/chunks/6140-b94b4e43e1bb103d.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","8012","static/chunks/app/models/%5Broute%5D/api/page-117c8b87bdd6a7b4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"default"]
2e:["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]
31:T662,# pip install "segmind>=1.1.0"
# export SEGMIND_API_KEY="YOUR_API_KEY"
from segmind import SegmindClient, InferenceFailed, InferenceTimeout

# Async (v2) â€” recommended for long-running / video models.
# run() blocks up to 600s; submit_async + job.wait(timeout=...) sets a longer
# deadline and keeps the request_id so you can re-poll later.
client = SegmindClient()                      # reads SEGMIND_API_KEY
payload = {
    "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
    "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
    "resolution": "720P",
    "duration": 5,
    "aspect_ratio": "16:9",
    "prompt_extend": True,
    "watermark": False,
    "audio": True,
}
job = client.submit_async("wan3.0-video", **payload)
print(job.request_id)                         # available immediately
try:
    result = job.wait(timeout=900, interval=2.0)
    print(result["status"])                  # COMPLETED
    print(result.get("output"))              # model output (e.g. video URL)
except InferenceTimeout as e:
    print("still running:", e.request_id)    # re-poll later with this id
except InferenceFailed as e:
    print("failed:", e.detail)

# Fast models (<=600s) can use the one-liner instead:
# result = segmind.run("wan3.0-video", **payload)32:T231f,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#6A737D"># pip install "segmind>=1.1.0"</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#6A737D"># export SEGMIND_API_KEY="YOUR_API_KEY"</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#D73A49">from</span><span style="color:#24292E"> segmind </span><span style="color:#D73A49">import</span><span style="color:#24292E"> SegmindClient, InferenceFailed, InferenceTimeout</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#6A737D"># Async (v2) â€” recommended for long-running / video models.</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#6A737D"># run() blocks up to 600s; submit_async + job.wait(timeout=...) sets a longer</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#6A737D"># deadline and keeps the request_id so you can re-poll later.</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#24292E">client </span><span style="color:#D73A49">=</span><span style="color:#24292E"> SegmindClient()                      </span><span style="color:#6A737D"># reads SEGMIND_API_KEY</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#24292E">payload </span><span style="color:#D73A49">=</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#032F62">    "prompt"</span><span style="color:#24292E">: </span><span style="color:#032F62">"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#032F62">    "image"</span><span style="color:#24292E">: </span><span style="color:#032F62">"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#032F62">    "resolution"</span><span style="color:#24292E">: </span><span style="color:#032F62">"720P"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#032F62">    "duration"</span><span style="color:#24292E">: </span><span style="color:#005CC5">5</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#032F62">    "aspect_ratio"</span><span style="color:#24292E">: </span><span style="color:#032F62">"16:9"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#032F62">    "prompt_extend"</span><span style="color:#24292E">: </span><span style="color:#005CC5">True</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#032F62">    "watermark"</span><span style="color:#24292E">: </span><span style="color:#005CC5">False</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#032F62">    "audio"</span><span style="color:#24292E">: </span><span style="color:#005CC5">True</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#24292E">}</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#24292E">job </span><span style="color:#D73A49">=</span><span style="color:#24292E"> client.submit_async(</span><span style="color:#032F62">"wan3.0-video"</span><span style="color:#24292E">, </span><span style="color:#D73A49">**</span><span style="color:#24292E">payload)</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#005CC5">print</span><span style="color:#24292E">(job.request_id)                         </span><span style="color:#6A737D"># available immediately</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#D73A49">try</span><span style="color:#24292E">:</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#24292E">    result </span><span style="color:#D73A49">=</span><span style="color:#24292E"> job.wait(</span><span style="color:#E36209">timeout</span><span style="color:#D73A49">=</span><span style="color:#005CC5">900</span><span style="color:#24292E">, </span><span style="color:#E36209">interval</span><span style="color:#D73A49">=</span><span style="color:#005CC5">2.0</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#005CC5">    print</span><span style="color:#24292E">(result[</span><span style="color:#032F62">"status"</span><span style="color:#24292E">])                  </span><span style="color:#6A737D"># COMPLETED</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#005CC5">    print</span><span style="color:#24292E">(result.get(</span><span style="color:#032F62">"output"</span><span style="color:#24292E">))              </span><span style="color:#6A737D"># model output (e.g. video URL)</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#D73A49">except</span><span style="color:#24292E"> InferenceTimeout </span><span style="color:#D73A49">as</span><span style="color:#24292E"> e:</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#005CC5">    print</span><span style="color:#24292E">(</span><span style="color:#032F62">"still running:"</span><span style="color:#24292E">, e.request_id)    </span><span style="color:#6A737D"># re-poll later with this id</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#D73A49">except</span><span style="color:#24292E"> InferenceFailed </span><span style="color:#D73A49">as</span><span style="color:#24292E"> e:</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#005CC5">    print</span><span style="color:#24292E">(</span><span style="color:#032F62">"failed:"</span><span style="color:#24292E">, e.detail)</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#6A737D"># Fast models (&#x3C;=600s) can use the one-liner instead:</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#6A737D"># result = segmind.run("wan3.0-video", **payload)</span></span></span></span></code></pre>33:T231e,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#6A737D"># pip install "segmind>=1.1.0"</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#6A737D"># export SEGMIND_API_KEY="YOUR_API_KEY"</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#F97583">from</span><span style="color:#E1E4E8"> segmind </span><span style="color:#F97583">import</span><span style="color:#E1E4E8"> SegmindClient, InferenceFailed, InferenceTimeout</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#6A737D"># Async (v2) â€” recommended for long-running / video models.</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#6A737D"># run() blocks up to 600s; submit_async + job.wait(timeout=...) sets a longer</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#6A737D"># deadline and keeps the request_id so you can re-poll later.</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">client </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> SegmindClient()                      </span><span style="color:#6A737D"># reads SEGMIND_API_KEY</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">payload </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "prompt"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "image"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "resolution"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"720P"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "duration"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">5</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "aspect_ratio"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"16:9"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "prompt_extend"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">True</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "watermark"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">False</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "audio"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">True</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">job </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> client.submit_async(</span><span style="color:#9ECBFF">"wan3.0-video"</span><span style="color:#E1E4E8">, </span><span style="color:#F97583">**</span><span style="color:#E1E4E8">payload)</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#79B8FF">print</span><span style="color:#E1E4E8">(job.request_id)                         </span><span style="color:#6A737D"># available immediately</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#F97583">try</span><span style="color:#E1E4E8">:</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    result </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> job.wait(</span><span style="color:#FFAB70">timeout</span><span style="color:#F97583">=</span><span style="color:#79B8FF">900</span><span style="color:#E1E4E8">, </span><span style="color:#FFAB70">interval</span><span style="color:#F97583">=</span><span style="color:#79B8FF">2.0</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    print</span><span style="color:#E1E4E8">(result[</span><span style="color:#9ECBFF">"status"</span><span style="color:#E1E4E8">])                  </span><span style="color:#6A737D"># COMPLETED</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    print</span><span style="color:#E1E4E8">(result.get(</span><span style="color:#9ECBFF">"output"</span><span style="color:#E1E4E8">))              </span><span style="color:#6A737D"># model output (e.g. video URL)</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#F97583">except</span><span style="color:#E1E4E8"> InferenceTimeout </span><span style="color:#F97583">as</span><span style="color:#E1E4E8"> e:</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    print</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"still running:"</span><span style="color:#E1E4E8">, e.request_id)    </span><span style="color:#6A737D"># re-poll later with this id</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#F97583">except</span><span style="color:#E1E4E8"> InferenceFailed </span><span style="color:#F97583">as</span><span style="color:#E1E4E8"> e:</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    print</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"failed:"</span><span style="color:#E1E4E8">, e.detail)</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#6A737D"># Fast models (&#x3C;=600s) can use the one-liner instead:</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#6A737D"># result = segmind.run("wan3.0-video", **payload)</span></span></span></span></code></pre>34:T48a,# 1. Submit to the v2 async endpoint -> returns a request_id
REQUEST_ID=$(curl -s -X POST "https://api.segmind.com/v2/wan3.0-video" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
  "resolution": "720P",
  "duration": 5,
  "aspect_ratio": "16:9",
  "prompt_extend": true,
  "watermark": false,
  "audio": true
}' | jq -r .request_id)

# 2. Poll status until "COMPLETED" (FAILED is served as HTTP 422)
curl -s "https://api.segmind.com/v2/requests/$REQUEST_ID/status" \
  -H "x-api-key: YOUR_API_KEY"

# 3. Fetch the final result body (available for 1 hour)
curl -s "https://api.segmind.com/v2/requests/$REQUEST_ID" \
  -H "x-api-key: YOUR_API_KEY"35:T1608,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 1. Submit to the v2 async endpoint -> returns a request_id</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#24292E">REQUEST_ID</span><span style="color:#D73A49">=</span><span style="color:#24292E">$(</span><span style="color:#6F42C1">curl</span><span style="color:#005CC5"> -s</span><span style="color:#005CC5"> -X</span><span style="color:#032F62"> POST</span><span style="color:#032F62"> "https://api.segmind.com/v2/wan3.0-video"</span><span style="color:#005CC5"> \</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#005CC5">  -H</span><span style="color:#032F62"> "x-api-key: YOUR_API_KEY"</span><span style="color:#005CC5"> \</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#005CC5">  -H</span><span style="color:#032F62"> "Content-Type: application/json"</span><span style="color:#005CC5"> \</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#005CC5">  -d</span><span style="color:#032F62"> '{</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#032F62">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#032F62">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#032F62">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#032F62">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#032F62">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#032F62">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#032F62">}'</span><span style="color:#D73A49"> |</span><span style="color:#6F42C1"> jq</span><span style="color:#005CC5"> -r</span><span style="color:#032F62"> .request_id</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 2. Poll status until "COMPLETED" (FAILED is served as HTTP 422)</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#6F42C1">curl</span><span style="color:#005CC5"> -s</span><span style="color:#032F62"> "https://api.segmind.com/v2/requests/</span><span style="color:#24292E">$REQUEST_ID</span><span style="color:#032F62">/status"</span><span style="color:#005CC5"> \</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#005CC5">  -H</span><span style="color:#032F62"> "x-api-key: YOUR_API_KEY"</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 3. Fetch the final result body (available for 1 hour)</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#6F42C1">curl</span><span style="color:#005CC5"> -s</span><span style="color:#032F62"> "https://api.segmind.com/v2/requests/</span><span style="color:#24292E">$REQUEST_ID</span><span style="color:#032F62">"</span><span style="color:#005CC5"> \</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#005CC5">  -H</span><span style="color:#032F62"> "x-api-key: YOUR_API_KEY"</span></span></span></span></code></pre>36:T1607,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 1. Submit to the v2 async endpoint -> returns a request_id</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">REQUEST_ID</span><span style="color:#F97583">=</span><span style="color:#E1E4E8">$(</span><span style="color:#B392F0">curl</span><span style="color:#79B8FF"> -s</span><span style="color:#79B8FF"> -X</span><span style="color:#9ECBFF"> POST</span><span style="color:#9ECBFF"> "https://api.segmind.com/v2/wan3.0-video"</span><span style="color:#79B8FF"> \</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  -H</span><span style="color:#9ECBFF"> "x-api-key: YOUR_API_KEY"</span><span style="color:#79B8FF"> \</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  -H</span><span style="color:#9ECBFF"> "Content-Type: application/json"</span><span style="color:#79B8FF"> \</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  -d</span><span style="color:#9ECBFF"> '{</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">}'</span><span style="color:#F97583"> |</span><span style="color:#B392F0"> jq</span><span style="color:#79B8FF"> -r</span><span style="color:#9ECBFF"> .request_id</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 2. Poll status until "COMPLETED" (FAILED is served as HTTP 422)</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#B392F0">curl</span><span style="color:#79B8FF"> -s</span><span style="color:#9ECBFF"> "https://api.segmind.com/v2/requests/</span><span style="color:#E1E4E8">$REQUEST_ID</span><span style="color:#9ECBFF">/status"</span><span style="color:#79B8FF"> \</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  -H</span><span style="color:#9ECBFF"> "x-api-key: YOUR_API_KEY"</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 3. Fetch the final result body (available for 1 hour)</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#B392F0">curl</span><span style="color:#79B8FF"> -s</span><span style="color:#9ECBFF"> "https://api.segmind.com/v2/requests/</span><span style="color:#E1E4E8">$REQUEST_ID</span><span style="color:#9ECBFF">"</span><span style="color:#79B8FF"> \</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  -H</span><span style="color:#9ECBFF"> "x-api-key: YOUR_API_KEY"</span></span></span></span></code></pre>37:T61f,const API_KEY = 'YOUR_API_KEY';

// 1. Submit to the v2 async endpoint -> returns a request_id
const submit = await fetch('https://api.segmind.com/v2/wan3.0-video', {
  method: 'POST',
  headers: {
    'x-api-key': API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
  "resolution": "720P",
  "duration": 5,
  "aspect_ratio": "16:9",
  "prompt_extend": true,
  "watermark": false,
  "audio": true
}),
});
const { request_id } = await submit.json();

// 2. Poll status until COMPLETED (FAILED is served as HTTP 422)
let status = 'QUEUED';
while (status === 'QUEUED' || status === 'PROCESSING') {
  await new Promise((r) => setTimeout(r, 1000));
  const res = await fetch('https://api.segmind.com/v2/requests/' + request_id + '/status', {
    headers: { 'x-api-key': API_KEY },
  });
  status = (await res.json()).status;
  console.log(status);
}

// 3. Fetch the final result body (available for 1 hour)
const result = await fetch('https://api.segmind.com/v2/requests/' + request_id, {
  headers: { 'x-api-key': API_KEY },
});
console.log(await result.json());38:T2d1f,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#D73A49">const</span><span style="color:#005CC5"> API_KEY</span><span style="color:#D73A49"> =</span><span style="color:#032F62"> 'YOUR_API_KEY'</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 1. Submit to the v2 async endpoint -> returns a request_id</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#D73A49">const</span><span style="color:#005CC5"> submit</span><span style="color:#D73A49"> =</span><span style="color:#D73A49"> await</span><span style="color:#6F42C1"> fetch</span><span style="color:#24292E">(</span><span style="color:#032F62">'https://api.segmind.com/v2/wan3.0-video'</span><span style="color:#24292E">, {</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#24292E">  method: </span><span style="color:#032F62">'POST'</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#24292E">  headers: {</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#032F62">    'x-api-key'</span><span style="color:#24292E">: </span><span style="color:#005CC5">API_KEY</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#032F62">    'Content-Type'</span><span style="color:#24292E">: </span><span style="color:#032F62">'application/json'</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#24292E">  },</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#24292E">  body: </span><span style="color:#005CC5">JSON</span><span style="color:#24292E">.</span><span style="color:#6F42C1">stringify</span><span style="color:#24292E">({</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt"</span><span style="color:#24292E">: </span><span style="color:#032F62">"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#032F62">  "image"</span><span style="color:#24292E">: </span><span style="color:#032F62">"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#032F62">  "resolution"</span><span style="color:#24292E">: </span><span style="color:#032F62">"720P"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#032F62">  "duration"</span><span style="color:#24292E">: </span><span style="color:#005CC5">5</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#032F62">  "aspect_ratio"</span><span style="color:#24292E">: </span><span style="color:#032F62">"16:9"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt_extend"</span><span style="color:#24292E">: </span><span style="color:#005CC5">true</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#032F62">  "watermark"</span><span style="color:#24292E">: </span><span style="color:#005CC5">false</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#032F62">  "audio"</span><span style="color:#24292E">: </span><span style="color:#005CC5">true</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#24292E">}),</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#24292E">});</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#D73A49">const</span><span style="color:#24292E"> { </span><span style="color:#005CC5">request_id</span><span style="color:#24292E"> } </span><span style="color:#D73A49">=</span><span style="color:#D73A49"> await</span><span style="color:#24292E"> submit.</span><span style="color:#6F42C1">json</span><span style="color:#24292E">();</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 2. Poll status until COMPLETED (FAILED is served as HTTP 422)</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#D73A49">let</span><span style="color:#24292E"> status </span><span style="color:#D73A49">=</span><span style="color:#032F62"> 'QUEUED'</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#D73A49">while</span><span style="color:#24292E"> (status </span><span style="color:#D73A49">===</span><span style="color:#032F62"> 'QUEUED'</span><span style="color:#D73A49"> ||</span><span style="color:#24292E"> status </span><span style="color:#D73A49">===</span><span style="color:#032F62"> 'PROCESSING'</span><span style="color:#24292E">) {</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#D73A49">  await</span><span style="color:#D73A49"> new</span><span style="color:#005CC5"> Promise</span><span style="color:#24292E">((</span><span style="color:#E36209">r</span><span style="color:#24292E">) </span><span style="color:#D73A49">=></span><span style="color:#6F42C1"> setTimeout</span><span style="color:#24292E">(r, </span><span style="color:#005CC5">1000</span><span style="color:#24292E">));</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#D73A49">  const</span><span style="color:#005CC5"> res</span><span style="color:#D73A49"> =</span><span style="color:#D73A49"> await</span><span style="color:#6F42C1"> fetch</span><span style="color:#24292E">(</span><span style="color:#032F62">'https://api.segmind.com/v2/requests/'</span><span style="color:#D73A49"> +</span><span style="color:#24292E"> request_id </span><span style="color:#D73A49">+</span><span style="color:#032F62"> '/status'</span><span style="color:#24292E">, {</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#24292E">    headers: { </span><span style="color:#032F62">'x-api-key'</span><span style="color:#24292E">: </span><span style="color:#005CC5">API_KEY</span><span style="color:#24292E"> },</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#24292E">  });</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#24292E">  status </span><span style="color:#D73A49">=</span><span style="color:#24292E"> (</span><span style="color:#D73A49">await</span><span style="color:#24292E"> res.</span><span style="color:#6F42C1">json</span><span style="color:#24292E">()).status;</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#24292E">  console.</span><span style="color:#6F42C1">log</span><span style="color:#24292E">(status);</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#24292E">}</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 3. Fetch the final result body (available for 1 hour)</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#D73A49">const</span><span style="color:#005CC5"> result</span><span style="color:#D73A49"> =</span><span style="color:#D73A49"> await</span><span style="color:#6F42C1"> fetch</span><span style="color:#24292E">(</span><span style="color:#032F62">'https://api.segmind.com/v2/requests/'</span><span style="color:#D73A49"> +</span><span style="color:#24292E"> request_id, {</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#24292E">  headers: { </span><span style="color:#032F62">'x-api-key'</span><span style="color:#24292E">: </span><span style="color:#005CC5">API_KEY</span><span style="color:#24292E"> },</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#24292E">});</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#24292E">console.</span><span style="color:#6F42C1">log</span><span style="color:#24292E">(</span><span style="color:#D73A49">await</span><span style="color:#24292E"> result.</span><span style="color:#6F42C1">json</span><span style="color:#24292E">());</span></span></span></span></code></pre>39:T2d1e,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#F97583">const</span><span style="color:#79B8FF"> API_KEY</span><span style="color:#F97583"> =</span><span style="color:#9ECBFF"> 'YOUR_API_KEY'</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 1. Submit to the v2 async endpoint -> returns a request_id</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#F97583">const</span><span style="color:#79B8FF"> submit</span><span style="color:#F97583"> =</span><span style="color:#F97583"> await</span><span style="color:#B392F0"> fetch</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'https://api.segmind.com/v2/wan3.0-video'</span><span style="color:#E1E4E8">, {</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  method: </span><span style="color:#9ECBFF">'POST'</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  headers: {</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    'x-api-key'</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">API_KEY</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    'Content-Type'</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">'application/json'</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  },</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  body: </span><span style="color:#79B8FF">JSON</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">stringify</span><span style="color:#E1E4E8">({</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "image"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "resolution"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"720P"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "duration"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">5</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "aspect_ratio"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"16:9"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt_extend"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">true</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "watermark"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">false</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "audio"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">true</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}),</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">});</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#F97583">const</span><span style="color:#E1E4E8"> { </span><span style="color:#79B8FF">request_id</span><span style="color:#E1E4E8"> } </span><span style="color:#F97583">=</span><span style="color:#F97583"> await</span><span style="color:#E1E4E8"> submit.</span><span style="color:#B392F0">json</span><span style="color:#E1E4E8">();</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 2. Poll status until COMPLETED (FAILED is served as HTTP 422)</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#F97583">let</span><span style="color:#E1E4E8"> status </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> 'QUEUED'</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#F97583">while</span><span style="color:#E1E4E8"> (status </span><span style="color:#F97583">===</span><span style="color:#9ECBFF"> 'QUEUED'</span><span style="color:#F97583"> ||</span><span style="color:#E1E4E8"> status </span><span style="color:#F97583">===</span><span style="color:#9ECBFF"> 'PROCESSING'</span><span style="color:#E1E4E8">) {</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#F97583">  await</span><span style="color:#F97583"> new</span><span style="color:#79B8FF"> Promise</span><span style="color:#E1E4E8">((</span><span style="color:#FFAB70">r</span><span style="color:#E1E4E8">) </span><span style="color:#F97583">=></span><span style="color:#B392F0"> setTimeout</span><span style="color:#E1E4E8">(r, </span><span style="color:#79B8FF">1000</span><span style="color:#E1E4E8">));</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#F97583">  const</span><span style="color:#79B8FF"> res</span><span style="color:#F97583"> =</span><span style="color:#F97583"> await</span><span style="color:#B392F0"> fetch</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'https://api.segmind.com/v2/requests/'</span><span style="color:#F97583"> +</span><span style="color:#E1E4E8"> request_id </span><span style="color:#F97583">+</span><span style="color:#9ECBFF"> '/status'</span><span style="color:#E1E4E8">, {</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    headers: { </span><span style="color:#9ECBFF">'x-api-key'</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">API_KEY</span><span style="color:#E1E4E8"> },</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  });</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  status </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> (</span><span style="color:#F97583">await</span><span style="color:#E1E4E8"> res.</span><span style="color:#B392F0">json</span><span style="color:#E1E4E8">()).status;</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  console.</span><span style="color:#B392F0">log</span><span style="color:#E1E4E8">(status);</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 3. Fetch the final result body (available for 1 hour)</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#F97583">const</span><span style="color:#79B8FF"> result</span><span style="color:#F97583"> =</span><span style="color:#F97583"> await</span><span style="color:#B392F0"> fetch</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'https://api.segmind.com/v2/requests/'</span><span style="color:#F97583"> +</span><span style="color:#E1E4E8"> request_id, {</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  headers: { </span><span style="color:#9ECBFF">'x-api-key'</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">API_KEY</span><span style="color:#E1E4E8"> },</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">});</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">console.</span><span style="color:#B392F0">log</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">await</span><span style="color:#E1E4E8"> result.</span><span style="color:#B392F0">json</span><span style="color:#E1E4E8">());</span></span></span></span></code></pre>3a:T919,package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
    "time"
)

const apiKey = "YOUR_API_KEY"

func main() {
    client := &http.Client{}
    data := []byte(`{
  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
  "resolution": "720P",
  "duration": 5,
  "aspect_ratio": "16:9",
  "prompt_extend": true,
  "watermark": false,
  "audio": true
}`)

    // 1. Submit to the v2 async endpoint -> returns a request_id
    req, _ := http.NewRequest("POST", "https://api.segmind.com/v2/wan3.0-video", bytes.NewBuffer(data))
    req.Header.Set("x-api-key", apiKey)
    req.Header.Set("Content-Type", "application/json")
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    var submit map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&submit)
    resp.Body.Close()
    requestID, ok := submit["request_id"].(string)
    if !ok {
        panic(fmt.Sprintf("submit failed: %v", submit))
    }

    // 2. Poll status until COMPLETED (FAILED is served as HTTP 422)
    status := "QUEUED"
    for status == "QUEUED" || status == "PROCESSING" {
        time.Sleep(time.Second)
        sReq, _ := http.NewRequest("GET", "https://api.segmind.com/v2/requests/"+requestID+"/status", nil)
        sReq.Header.Set("x-api-key", apiKey)
        sResp, err := client.Do(sReq)
        if err != nil {
            panic(err)
        }
        var s map[string]interface{}
        json.NewDecoder(sResp.Body).Decode(&s)
        sResp.Body.Close()
        status, _ = s["status"].(string)
        fmt.Println(status)
    }

    // 3. Fetch the final result body (available for 1 hour)
    rReq, _ := http.NewRequest("GET", "https://api.segmind.com/v2/requests/"+requestID, nil)
    rReq.Header.Set("x-api-key", apiKey)
    rResp, _ := client.Do(rReq)
    defer rResp.Body.Close()
    body, _ := io.ReadAll(rResp.Body)
    fmt.Println(string(body))
}3b:T4a4e,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#D73A49">package</span><span style="color:#6F42C1"> main</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#D73A49">import</span><span style="color:#24292E"> (</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">bytes</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">encoding/json</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">fmt</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">io</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">net/http</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">time</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#D73A49">const</span><span style="color:#005CC5"> apiKey</span><span style="color:#D73A49"> =</span><span style="color:#032F62"> "YOUR_API_KEY"</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#D73A49">func</span><span style="color:#6F42C1"> main</span><span style="color:#24292E">() {</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#24292E">    client </span><span style="color:#D73A49">:=</span><span style="color:#D73A49"> &#x26;</span><span style="color:#6F42C1">http</span><span style="color:#24292E">.</span><span style="color:#6F42C1">Client</span><span style="color:#24292E">{}</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#24292E">    data </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> []</span><span style="color:#D73A49">byte</span><span style="color:#24292E">(</span><span style="color:#032F62">`{</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#032F62">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#032F62">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#032F62">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#032F62">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#032F62">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#032F62">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#032F62">}`</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#6A737D">    // 1. Submit to the v2 async endpoint -> returns a request_id</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#24292E">    req, _ </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> http.</span><span style="color:#6F42C1">NewRequest</span><span style="color:#24292E">(</span><span style="color:#032F62">"POST"</span><span style="color:#24292E">, </span><span style="color:#032F62">"https://api.segmind.com/v2/wan3.0-video"</span><span style="color:#24292E">, bytes.</span><span style="color:#6F42C1">NewBuffer</span><span style="color:#24292E">(data))</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#24292E">    req.Header.</span><span style="color:#6F42C1">Set</span><span style="color:#24292E">(</span><span style="color:#032F62">"x-api-key"</span><span style="color:#24292E">, apiKey)</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#24292E">    req.Header.</span><span style="color:#6F42C1">Set</span><span style="color:#24292E">(</span><span style="color:#032F62">"Content-Type"</span><span style="color:#24292E">, </span><span style="color:#032F62">"application/json"</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#24292E">    resp, err </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> client.</span><span style="color:#6F42C1">Do</span><span style="color:#24292E">(req)</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#D73A49">    if</span><span style="color:#24292E"> err </span><span style="color:#D73A49">!=</span><span style="color:#005CC5"> nil</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"><span style="color:#6F42C1">        panic</span><span style="color:#24292E">(err)</span></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#24292E">    }</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#D73A49">    var</span><span style="color:#24292E"> submit </span><span style="color:#D73A49">map</span><span style="color:#24292E">[</span><span style="color:#D73A49">string</span><span style="color:#24292E">]</span><span style="color:#D73A49">interface</span><span style="color:#24292E">{}</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#24292E">    json.</span><span style="color:#6F42C1">NewDecoder</span><span style="color:#24292E">(resp.Body).</span><span style="color:#6F42C1">Decode</span><span style="color:#24292E">(</span><span style="color:#D73A49">&#x26;</span><span style="color:#24292E">submit)</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#24292E">    resp.Body.</span><span style="color:#6F42C1">Close</span><span style="color:#24292E">()</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#24292E">    requestID, ok </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> submit[</span><span style="color:#032F62">"request_id"</span><span style="color:#24292E">].(</span><span style="color:#D73A49">string</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">39</span><span class="line-content"><span class="line"><span style="color:#D73A49">    if</span><span style="color:#D73A49"> !</span><span style="color:#24292E">ok {</span></span></span></span>
<span class="line"><span class="line-number">40</span><span class="line-content"><span class="line"><span style="color:#6F42C1">        panic</span><span style="color:#24292E">(fmt.</span><span style="color:#6F42C1">Sprintf</span><span style="color:#24292E">(</span><span style="color:#032F62">"submit failed: </span><span style="color:#005CC5">%v</span><span style="color:#032F62">"</span><span style="color:#24292E">, submit))</span></span></span></span>
<span class="line"><span class="line-number">41</span><span class="line-content"><span class="line"><span style="color:#24292E">    }</span></span></span></span>
<span class="line"><span class="line-number">42</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">43</span><span class="line-content"><span class="line"><span style="color:#6A737D">    // 2. Poll status until COMPLETED (FAILED is served as HTTP 422)</span></span></span></span>
<span class="line"><span class="line-number">44</span><span class="line-content"><span class="line"><span style="color:#24292E">    status </span><span style="color:#D73A49">:=</span><span style="color:#032F62"> "QUEUED"</span></span></span></span>
<span class="line"><span class="line-number">45</span><span class="line-content"><span class="line"><span style="color:#D73A49">    for</span><span style="color:#24292E"> status </span><span style="color:#D73A49">==</span><span style="color:#032F62"> "QUEUED"</span><span style="color:#D73A49"> ||</span><span style="color:#24292E"> status </span><span style="color:#D73A49">==</span><span style="color:#032F62"> "PROCESSING"</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">46</span><span class="line-content"><span class="line"><span style="color:#24292E">        time.</span><span style="color:#6F42C1">Sleep</span><span style="color:#24292E">(time.Second)</span></span></span></span>
<span class="line"><span class="line-number">47</span><span class="line-content"><span class="line"><span style="color:#24292E">        sReq, _ </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> http.</span><span style="color:#6F42C1">NewRequest</span><span style="color:#24292E">(</span><span style="color:#032F62">"GET"</span><span style="color:#24292E">, </span><span style="color:#032F62">"https://api.segmind.com/v2/requests/"</span><span style="color:#D73A49">+</span><span style="color:#24292E">requestID</span><span style="color:#D73A49">+</span><span style="color:#032F62">"/status"</span><span style="color:#24292E">, </span><span style="color:#005CC5">nil</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">48</span><span class="line-content"><span class="line"><span style="color:#24292E">        sReq.Header.</span><span style="color:#6F42C1">Set</span><span style="color:#24292E">(</span><span style="color:#032F62">"x-api-key"</span><span style="color:#24292E">, apiKey)</span></span></span></span>
<span class="line"><span class="line-number">49</span><span class="line-content"><span class="line"><span style="color:#24292E">        sResp, err </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> client.</span><span style="color:#6F42C1">Do</span><span style="color:#24292E">(sReq)</span></span></span></span>
<span class="line"><span class="line-number">50</span><span class="line-content"><span class="line"><span style="color:#D73A49">        if</span><span style="color:#24292E"> err </span><span style="color:#D73A49">!=</span><span style="color:#005CC5"> nil</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">51</span><span class="line-content"><span class="line"><span style="color:#6F42C1">            panic</span><span style="color:#24292E">(err)</span></span></span></span>
<span class="line"><span class="line-number">52</span><span class="line-content"><span class="line"><span style="color:#24292E">        }</span></span></span></span>
<span class="line"><span class="line-number">53</span><span class="line-content"><span class="line"><span style="color:#D73A49">        var</span><span style="color:#24292E"> s </span><span style="color:#D73A49">map</span><span style="color:#24292E">[</span><span style="color:#D73A49">string</span><span style="color:#24292E">]</span><span style="color:#D73A49">interface</span><span style="color:#24292E">{}</span></span></span></span>
<span class="line"><span class="line-number">54</span><span class="line-content"><span class="line"><span style="color:#24292E">        json.</span><span style="color:#6F42C1">NewDecoder</span><span style="color:#24292E">(sResp.Body).</span><span style="color:#6F42C1">Decode</span><span style="color:#24292E">(</span><span style="color:#D73A49">&#x26;</span><span style="color:#24292E">s)</span></span></span></span>
<span class="line"><span class="line-number">55</span><span class="line-content"><span class="line"><span style="color:#24292E">        sResp.Body.</span><span style="color:#6F42C1">Close</span><span style="color:#24292E">()</span></span></span></span>
<span class="line"><span class="line-number">56</span><span class="line-content"><span class="line"><span style="color:#24292E">        status, _ </span><span style="color:#D73A49">=</span><span style="color:#24292E"> s[</span><span style="color:#032F62">"status"</span><span style="color:#24292E">].(</span><span style="color:#D73A49">string</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">57</span><span class="line-content"><span class="line"><span style="color:#24292E">        fmt.</span><span style="color:#6F42C1">Println</span><span style="color:#24292E">(status)</span></span></span></span>
<span class="line"><span class="line-number">58</span><span class="line-content"><span class="line"><span style="color:#24292E">    }</span></span></span></span>
<span class="line"><span class="line-number">59</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">60</span><span class="line-content"><span class="line"><span style="color:#6A737D">    // 3. Fetch the final result body (available for 1 hour)</span></span></span></span>
<span class="line"><span class="line-number">61</span><span class="line-content"><span class="line"><span style="color:#24292E">    rReq, _ </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> http.</span><span style="color:#6F42C1">NewRequest</span><span style="color:#24292E">(</span><span style="color:#032F62">"GET"</span><span style="color:#24292E">, </span><span style="color:#032F62">"https://api.segmind.com/v2/requests/"</span><span style="color:#D73A49">+</span><span style="color:#24292E">requestID, </span><span style="color:#005CC5">nil</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">62</span><span class="line-content"><span class="line"><span style="color:#24292E">    rReq.Header.</span><span style="color:#6F42C1">Set</span><span style="color:#24292E">(</span><span style="color:#032F62">"x-api-key"</span><span style="color:#24292E">, apiKey)</span></span></span></span>
<span class="line"><span class="line-number">63</span><span class="line-content"><span class="line"><span style="color:#24292E">    rResp, _ </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> client.</span><span style="color:#6F42C1">Do</span><span style="color:#24292E">(rReq)</span></span></span></span>
<span class="line"><span class="line-number">64</span><span class="line-content"><span class="line"><span style="color:#D73A49">    defer</span><span style="color:#24292E"> rResp.Body.</span><span style="color:#6F42C1">Close</span><span style="color:#24292E">()</span></span></span></span>
<span class="line"><span class="line-number">65</span><span class="line-content"><span class="line"><span style="color:#24292E">    body, _ </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> io.</span><span style="color:#6F42C1">ReadAll</span><span style="color:#24292E">(rResp.Body)</span></span></span></span>
<span class="line"><span class="line-number">66</span><span class="line-content"><span class="line"><span style="color:#24292E">    fmt.</span><span style="color:#6F42C1">Println</span><span style="color:#24292E">(</span><span style="color:#D73A49">string</span><span style="color:#24292E">(body))</span></span></span></span>
<span class="line"><span class="line-number">67</span><span class="line-content"><span class="line"><span style="color:#24292E">}</span></span></span></span></code></pre>3c:T4a4d,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#F97583">package</span><span style="color:#B392F0"> main</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#F97583">import</span><span style="color:#E1E4E8"> (</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">bytes</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">encoding/json</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">fmt</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">io</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">net/http</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">time</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#F97583">const</span><span style="color:#79B8FF"> apiKey</span><span style="color:#F97583"> =</span><span style="color:#9ECBFF"> "YOUR_API_KEY"</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#F97583">func</span><span style="color:#B392F0"> main</span><span style="color:#E1E4E8">() {</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    client </span><span style="color:#F97583">:=</span><span style="color:#F97583"> &#x26;</span><span style="color:#B392F0">http</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">Client</span><span style="color:#E1E4E8">{}</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    data </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> []</span><span style="color:#F97583">byte</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">`{</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">}`</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#6A737D">    // 1. Submit to the v2 async endpoint -> returns a request_id</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    req, _ </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> http.</span><span style="color:#B392F0">NewRequest</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"POST"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"https://api.segmind.com/v2/wan3.0-video"</span><span style="color:#E1E4E8">, bytes.</span><span style="color:#B392F0">NewBuffer</span><span style="color:#E1E4E8">(data))</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    req.Header.</span><span style="color:#B392F0">Set</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"x-api-key"</span><span style="color:#E1E4E8">, apiKey)</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    req.Header.</span><span style="color:#B392F0">Set</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"Content-Type"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"application/json"</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    resp, err </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">Do</span><span style="color:#E1E4E8">(req)</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#F97583">    if</span><span style="color:#E1E4E8"> err </span><span style="color:#F97583">!=</span><span style="color:#79B8FF"> nil</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"><span style="color:#B392F0">        panic</span><span style="color:#E1E4E8">(err)</span></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    }</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#F97583">    var</span><span style="color:#E1E4E8"> submit </span><span style="color:#F97583">map</span><span style="color:#E1E4E8">[</span><span style="color:#F97583">string</span><span style="color:#E1E4E8">]</span><span style="color:#F97583">interface</span><span style="color:#E1E4E8">{}</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    json.</span><span style="color:#B392F0">NewDecoder</span><span style="color:#E1E4E8">(resp.Body).</span><span style="color:#B392F0">Decode</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">&#x26;</span><span style="color:#E1E4E8">submit)</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    resp.Body.</span><span style="color:#B392F0">Close</span><span style="color:#E1E4E8">()</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    requestID, ok </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> submit[</span><span style="color:#9ECBFF">"request_id"</span><span style="color:#E1E4E8">].(</span><span style="color:#F97583">string</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">39</span><span class="line-content"><span class="line"><span style="color:#F97583">    if</span><span style="color:#F97583"> !</span><span style="color:#E1E4E8">ok {</span></span></span></span>
<span class="line"><span class="line-number">40</span><span class="line-content"><span class="line"><span style="color:#B392F0">        panic</span><span style="color:#E1E4E8">(fmt.</span><span style="color:#B392F0">Sprintf</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"submit failed: </span><span style="color:#79B8FF">%v</span><span style="color:#9ECBFF">"</span><span style="color:#E1E4E8">, submit))</span></span></span></span>
<span class="line"><span class="line-number">41</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    }</span></span></span></span>
<span class="line"><span class="line-number">42</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">43</span><span class="line-content"><span class="line"><span style="color:#6A737D">    // 2. Poll status until COMPLETED (FAILED is served as HTTP 422)</span></span></span></span>
<span class="line"><span class="line-number">44</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    status </span><span style="color:#F97583">:=</span><span style="color:#9ECBFF"> "QUEUED"</span></span></span></span>
<span class="line"><span class="line-number">45</span><span class="line-content"><span class="line"><span style="color:#F97583">    for</span><span style="color:#E1E4E8"> status </span><span style="color:#F97583">==</span><span style="color:#9ECBFF"> "QUEUED"</span><span style="color:#F97583"> ||</span><span style="color:#E1E4E8"> status </span><span style="color:#F97583">==</span><span style="color:#9ECBFF"> "PROCESSING"</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">46</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        time.</span><span style="color:#B392F0">Sleep</span><span style="color:#E1E4E8">(time.Second)</span></span></span></span>
<span class="line"><span class="line-number">47</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        sReq, _ </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> http.</span><span style="color:#B392F0">NewRequest</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"GET"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"https://api.segmind.com/v2/requests/"</span><span style="color:#F97583">+</span><span style="color:#E1E4E8">requestID</span><span style="color:#F97583">+</span><span style="color:#9ECBFF">"/status"</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">nil</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">48</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        sReq.Header.</span><span style="color:#B392F0">Set</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"x-api-key"</span><span style="color:#E1E4E8">, apiKey)</span></span></span></span>
<span class="line"><span class="line-number">49</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        sResp, err </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">Do</span><span style="color:#E1E4E8">(sReq)</span></span></span></span>
<span class="line"><span class="line-number">50</span><span class="line-content"><span class="line"><span style="color:#F97583">        if</span><span style="color:#E1E4E8"> err </span><span style="color:#F97583">!=</span><span style="color:#79B8FF"> nil</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">51</span><span class="line-content"><span class="line"><span style="color:#B392F0">            panic</span><span style="color:#E1E4E8">(err)</span></span></span></span>
<span class="line"><span class="line-number">52</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        }</span></span></span></span>
<span class="line"><span class="line-number">53</span><span class="line-content"><span class="line"><span style="color:#F97583">        var</span><span style="color:#E1E4E8"> s </span><span style="color:#F97583">map</span><span style="color:#E1E4E8">[</span><span style="color:#F97583">string</span><span style="color:#E1E4E8">]</span><span style="color:#F97583">interface</span><span style="color:#E1E4E8">{}</span></span></span></span>
<span class="line"><span class="line-number">54</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        json.</span><span style="color:#B392F0">NewDecoder</span><span style="color:#E1E4E8">(sResp.Body).</span><span style="color:#B392F0">Decode</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">&#x26;</span><span style="color:#E1E4E8">s)</span></span></span></span>
<span class="line"><span class="line-number">55</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        sResp.Body.</span><span style="color:#B392F0">Close</span><span style="color:#E1E4E8">()</span></span></span></span>
<span class="line"><span class="line-number">56</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        status, _ </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> s[</span><span style="color:#9ECBFF">"status"</span><span style="color:#E1E4E8">].(</span><span style="color:#F97583">string</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">57</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        fmt.</span><span style="color:#B392F0">Println</span><span style="color:#E1E4E8">(status)</span></span></span></span>
<span class="line"><span class="line-number">58</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    }</span></span></span></span>
<span class="line"><span class="line-number">59</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">60</span><span class="line-content"><span class="line"><span style="color:#6A737D">    // 3. Fetch the final result body (available for 1 hour)</span></span></span></span>
<span class="line"><span class="line-number">61</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    rReq, _ </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> http.</span><span style="color:#B392F0">NewRequest</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"GET"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"https://api.segmind.com/v2/requests/"</span><span style="color:#F97583">+</span><span style="color:#E1E4E8">requestID, </span><span style="color:#79B8FF">nil</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">62</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    rReq.Header.</span><span style="color:#B392F0">Set</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"x-api-key"</span><span style="color:#E1E4E8">, apiKey)</span></span></span></span>
<span class="line"><span class="line-number">63</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    rResp, _ </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">Do</span><span style="color:#E1E4E8">(rReq)</span></span></span></span>
<span class="line"><span class="line-number">64</span><span class="line-content"><span class="line"><span style="color:#F97583">    defer</span><span style="color:#E1E4E8"> rResp.Body.</span><span style="color:#B392F0">Close</span><span style="color:#E1E4E8">()</span></span></span></span>
<span class="line"><span class="line-number">65</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    body, _ </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> io.</span><span style="color:#B392F0">ReadAll</span><span style="color:#E1E4E8">(rResp.Body)</span></span></span></span>
<span class="line"><span class="line-number">66</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    fmt.</span><span style="color:#B392F0">Println</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">string</span><span style="color:#E1E4E8">(body))</span></span></span></span>
<span class="line"><span class="line-number">67</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}</span></span></span></span></code></pre>3d:T7c1,<?php

$apiKey = 'YOUR_API_KEY';
$headers = [
    'x-api-key: ' . $apiKey,
    'Content-Type: application/json',
];

$data = '{
  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
  "resolution": "720P",
  "duration": 5,
  "aspect_ratio": "16:9",
  "prompt_extend": true,
  "watermark": false,
  "audio": true
}';

// 1. Submit to the v2 async endpoint -> returns a request_id
$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.segmind.com/v2/wan3.0-video',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $data,
    CURLOPT_HTTPHEADER => $headers,
]);
$submit = json_decode(curl_exec($curl), true);
$requestId = $submit['request_id'] ?? '';
curl_close($curl);

// 2. Poll status until COMPLETED (FAILED is served as HTTP 422)
$status = 'QUEUED';
while ($status === 'QUEUED' || $status === 'PROCESSING') {
    sleep(1);
    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL => 'https://api.segmind.com/v2/requests/' . $requestId . '/status',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => $headers,
    ]);
    $poll = json_decode(curl_exec($curl), true);
    $status = $poll['status'] ?? '';
    curl_close($curl);
    echo $status . "\n";
}

// 3. Fetch the final result body (available for 1 hour)
$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.segmind.com/v2/requests/' . $requestId,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => $headers,
]);
echo curl_exec($curl);
curl_close($curl);

?>3e:T3a57,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#D73A49">&#x3C;?</span><span style="color:#005CC5">php</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#24292E">$apiKey </span><span style="color:#D73A49">=</span><span style="color:#032F62"> 'YOUR_API_KEY'</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#24292E">$headers </span><span style="color:#D73A49">=</span><span style="color:#24292E"> [</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#032F62">    'x-api-key: '</span><span style="color:#D73A49"> .</span><span style="color:#24292E"> $apiKey,</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#032F62">    'Content-Type: application/json'</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#24292E">];</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#24292E">$data </span><span style="color:#D73A49">=</span><span style="color:#032F62"> '{</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#032F62">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#032F62">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#032F62">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#032F62">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#032F62">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#032F62">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#032F62">}'</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 1. Submit to the v2 async endpoint -> returns a request_id</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#24292E">$curl </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> curl_init</span><span style="color:#24292E">();</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#005CC5">curl_setopt_array</span><span style="color:#24292E">($curl, [</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_URL</span><span style="color:#D73A49"> =></span><span style="color:#032F62"> 'https://api.segmind.com/v2/wan3.0-video'</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_RETURNTRANSFER</span><span style="color:#D73A49"> =></span><span style="color:#005CC5"> true</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_POST</span><span style="color:#D73A49"> =></span><span style="color:#005CC5"> true</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_POSTFIELDS</span><span style="color:#D73A49"> =></span><span style="color:#24292E"> $data,</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_HTTPHEADER</span><span style="color:#D73A49"> =></span><span style="color:#24292E"> $headers,</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#24292E">]);</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#24292E">$submit </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> json_decode</span><span style="color:#24292E">(</span><span style="color:#005CC5">curl_exec</span><span style="color:#24292E">($curl), </span><span style="color:#005CC5">true</span><span style="color:#24292E">);</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#24292E">$requestId </span><span style="color:#D73A49">=</span><span style="color:#24292E"> $submit[</span><span style="color:#032F62">'request_id'</span><span style="color:#24292E">] </span><span style="color:#D73A49">??</span><span style="color:#032F62"> ''</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#005CC5">curl_close</span><span style="color:#24292E">($curl);</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 2. Poll status until COMPLETED (FAILED is served as HTTP 422)</span></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#24292E">$status </span><span style="color:#D73A49">=</span><span style="color:#032F62"> 'QUEUED'</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#D73A49">while</span><span style="color:#24292E"> ($status </span><span style="color:#D73A49">===</span><span style="color:#032F62"> 'QUEUED'</span><span style="color:#D73A49"> ||</span><span style="color:#24292E"> $status </span><span style="color:#D73A49">===</span><span style="color:#032F62"> 'PROCESSING'</span><span style="color:#24292E">) {</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#005CC5">    sleep</span><span style="color:#24292E">(</span><span style="color:#005CC5">1</span><span style="color:#24292E">);</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#24292E">    $curl </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> curl_init</span><span style="color:#24292E">();</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#005CC5">    curl_setopt_array</span><span style="color:#24292E">($curl, [</span></span></span></span>
<span class="line"><span class="line-number">39</span><span class="line-content"><span class="line"><span style="color:#005CC5">        CURLOPT_URL</span><span style="color:#D73A49"> =></span><span style="color:#032F62"> 'https://api.segmind.com/v2/requests/'</span><span style="color:#D73A49"> .</span><span style="color:#24292E"> $requestId </span><span style="color:#D73A49">.</span><span style="color:#032F62"> '/status'</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">40</span><span class="line-content"><span class="line"><span style="color:#005CC5">        CURLOPT_RETURNTRANSFER</span><span style="color:#D73A49"> =></span><span style="color:#005CC5"> true</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">41</span><span class="line-content"><span class="line"><span style="color:#005CC5">        CURLOPT_HTTPHEADER</span><span style="color:#D73A49"> =></span><span style="color:#24292E"> $headers,</span></span></span></span>
<span class="line"><span class="line-number">42</span><span class="line-content"><span class="line"><span style="color:#24292E">    ]);</span></span></span></span>
<span class="line"><span class="line-number">43</span><span class="line-content"><span class="line"><span style="color:#24292E">    $poll </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> json_decode</span><span style="color:#24292E">(</span><span style="color:#005CC5">curl_exec</span><span style="color:#24292E">($curl), </span><span style="color:#005CC5">true</span><span style="color:#24292E">);</span></span></span></span>
<span class="line"><span class="line-number">44</span><span class="line-content"><span class="line"><span style="color:#24292E">    $status </span><span style="color:#D73A49">=</span><span style="color:#24292E"> $poll[</span><span style="color:#032F62">'status'</span><span style="color:#24292E">] </span><span style="color:#D73A49">??</span><span style="color:#032F62"> ''</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number">45</span><span class="line-content"><span class="line"><span style="color:#005CC5">    curl_close</span><span style="color:#24292E">($curl);</span></span></span></span>
<span class="line"><span class="line-number">46</span><span class="line-content"><span class="line"><span style="color:#005CC5">    echo</span><span style="color:#24292E"> $status </span><span style="color:#D73A49">.</span><span style="color:#032F62"> "</span><span style="color:#005CC5">\n</span><span style="color:#032F62">"</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number">47</span><span class="line-content"><span class="line"><span style="color:#24292E">}</span></span></span></span>
<span class="line"><span class="line-number">48</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">49</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 3. Fetch the final result body (available for 1 hour)</span></span></span></span>
<span class="line"><span class="line-number">50</span><span class="line-content"><span class="line"><span style="color:#24292E">$curl </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> curl_init</span><span style="color:#24292E">();</span></span></span></span>
<span class="line"><span class="line-number">51</span><span class="line-content"><span class="line"><span style="color:#005CC5">curl_setopt_array</span><span style="color:#24292E">($curl, [</span></span></span></span>
<span class="line"><span class="line-number">52</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_URL</span><span style="color:#D73A49"> =></span><span style="color:#032F62"> 'https://api.segmind.com/v2/requests/'</span><span style="color:#D73A49"> .</span><span style="color:#24292E"> $requestId,</span></span></span></span>
<span class="line"><span class="line-number">53</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_RETURNTRANSFER</span><span style="color:#D73A49"> =></span><span style="color:#005CC5"> true</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">54</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_HTTPHEADER</span><span style="color:#D73A49"> =></span><span style="color:#24292E"> $headers,</span></span></span></span>
<span class="line"><span class="line-number">55</span><span class="line-content"><span class="line"><span style="color:#24292E">]);</span></span></span></span>
<span class="line"><span class="line-number">56</span><span class="line-content"><span class="line"><span style="color:#005CC5">echo</span><span style="color:#005CC5"> curl_exec</span><span style="color:#24292E">($curl);</span></span></span></span>
<span class="line"><span class="line-number">57</span><span class="line-content"><span class="line"><span style="color:#005CC5">curl_close</span><span style="color:#24292E">($curl);</span></span></span></span>
<span class="line"><span class="line-number">58</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">59</span><span class="line-content"><span class="line"><span style="color:#D73A49">?></span></span></span></span></code></pre>3f:T3a56,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#F97583">&#x3C;?</span><span style="color:#79B8FF">php</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$apiKey </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> 'YOUR_API_KEY'</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$headers </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> [</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    'x-api-key: '</span><span style="color:#F97583"> .</span><span style="color:#E1E4E8"> $apiKey,</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    'Content-Type: application/json'</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">];</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$data </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> '{</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">}'</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 1. Submit to the v2 async endpoint -> returns a request_id</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$curl </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> curl_init</span><span style="color:#E1E4E8">();</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#79B8FF">curl_setopt_array</span><span style="color:#E1E4E8">($curl, [</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_URL</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'https://api.segmind.com/v2/wan3.0-video'</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_RETURNTRANSFER</span><span style="color:#F97583"> =></span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_POST</span><span style="color:#F97583"> =></span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_POSTFIELDS</span><span style="color:#F97583"> =></span><span style="color:#E1E4E8"> $data,</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_HTTPHEADER</span><span style="color:#F97583"> =></span><span style="color:#E1E4E8"> $headers,</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">]);</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$submit </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> json_decode</span><span style="color:#E1E4E8">(</span><span style="color:#79B8FF">curl_exec</span><span style="color:#E1E4E8">($curl), </span><span style="color:#79B8FF">true</span><span style="color:#E1E4E8">);</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$requestId </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> $submit[</span><span style="color:#9ECBFF">'request_id'</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">??</span><span style="color:#9ECBFF"> ''</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#79B8FF">curl_close</span><span style="color:#E1E4E8">($curl);</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 2. Poll status until COMPLETED (FAILED is served as HTTP 422)</span></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$status </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> 'QUEUED'</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#F97583">while</span><span style="color:#E1E4E8"> ($status </span><span style="color:#F97583">===</span><span style="color:#9ECBFF"> 'QUEUED'</span><span style="color:#F97583"> ||</span><span style="color:#E1E4E8"> $status </span><span style="color:#F97583">===</span><span style="color:#9ECBFF"> 'PROCESSING'</span><span style="color:#E1E4E8">) {</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    sleep</span><span style="color:#E1E4E8">(</span><span style="color:#79B8FF">1</span><span style="color:#E1E4E8">);</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    $curl </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> curl_init</span><span style="color:#E1E4E8">();</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    curl_setopt_array</span><span style="color:#E1E4E8">($curl, [</span></span></span></span>
<span class="line"><span class="line-number">39</span><span class="line-content"><span class="line"><span style="color:#79B8FF">        CURLOPT_URL</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'https://api.segmind.com/v2/requests/'</span><span style="color:#F97583"> .</span><span style="color:#E1E4E8"> $requestId </span><span style="color:#F97583">.</span><span style="color:#9ECBFF"> '/status'</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">40</span><span class="line-content"><span class="line"><span style="color:#79B8FF">        CURLOPT_RETURNTRANSFER</span><span style="color:#F97583"> =></span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">41</span><span class="line-content"><span class="line"><span style="color:#79B8FF">        CURLOPT_HTTPHEADER</span><span style="color:#F97583"> =></span><span style="color:#E1E4E8"> $headers,</span></span></span></span>
<span class="line"><span class="line-number">42</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    ]);</span></span></span></span>
<span class="line"><span class="line-number">43</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    $poll </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> json_decode</span><span style="color:#E1E4E8">(</span><span style="color:#79B8FF">curl_exec</span><span style="color:#E1E4E8">($curl), </span><span style="color:#79B8FF">true</span><span style="color:#E1E4E8">);</span></span></span></span>
<span class="line"><span class="line-number">44</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    $status </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> $poll[</span><span style="color:#9ECBFF">'status'</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">??</span><span style="color:#9ECBFF"> ''</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number">45</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    curl_close</span><span style="color:#E1E4E8">($curl);</span></span></span></span>
<span class="line"><span class="line-number">46</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    echo</span><span style="color:#E1E4E8"> $status </span><span style="color:#F97583">.</span><span style="color:#9ECBFF"> "</span><span style="color:#79B8FF">\n</span><span style="color:#9ECBFF">"</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number">47</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}</span></span></span></span>
<span class="line"><span class="line-number">48</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">49</span><span class="line-content"><span class="line"><span style="color:#6A737D">// 3. Fetch the final result body (available for 1 hour)</span></span></span></span>
<span class="line"><span class="line-number">50</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$curl </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> curl_init</span><span style="color:#E1E4E8">();</span></span></span></span>
<span class="line"><span class="line-number">51</span><span class="line-content"><span class="line"><span style="color:#79B8FF">curl_setopt_array</span><span style="color:#E1E4E8">($curl, [</span></span></span></span>
<span class="line"><span class="line-number">52</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_URL</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'https://api.segmind.com/v2/requests/'</span><span style="color:#F97583"> .</span><span style="color:#E1E4E8"> $requestId,</span></span></span></span>
<span class="line"><span class="line-number">53</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_RETURNTRANSFER</span><span style="color:#F97583"> =></span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">54</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_HTTPHEADER</span><span style="color:#F97583"> =></span><span style="color:#E1E4E8"> $headers,</span></span></span></span>
<span class="line"><span class="line-number">55</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">]);</span></span></span></span>
<span class="line"><span class="line-number">56</span><span class="line-content"><span class="line"><span style="color:#79B8FF">echo</span><span style="color:#79B8FF"> curl_exec</span><span style="color:#E1E4E8">($curl);</span></span></span></span>
<span class="line"><span class="line-number">57</span><span class="line-content"><span class="line"><span style="color:#79B8FF">curl_close</span><span style="color:#E1E4E8">($curl);</span></span></span></span>
<span class="line"><span class="line-number">58</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">59</span><span class="line-content"><span class="line"><span style="color:#F97583">?></span></span></span></span></code></pre>40:T656,require 'net/http'
require 'json'
require 'uri'

API_KEY = 'YOUR_API_KEY'

def get_json(url)
  uri = URI(url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  req = Net::HTTP::Get.new(uri)
  req['x-api-key'] = API_KEY
  JSON.parse(http.request(req).body)
end

# 1. Submit to the v2 async endpoint -> returns a request_id
uri = URI('https://api.segmind.com/v2/wan3.0-video')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
req = Net::HTTP::Post.new(uri)
req['x-api-key'] = API_KEY
req['Content-Type'] = 'application/json'
req.body = '{
  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
  "resolution": "720P",
  "duration": 5,
  "aspect_ratio": "16:9",
  "prompt_extend": true,
  "watermark": false,
  "audio": true
}'
request_id = JSON.parse(http.request(req).body)['request_id']

# 2. Poll status until COMPLETED (FAILED is served as HTTP 422)
status = 'QUEUED'
while ['QUEUED', 'PROCESSING'].include?(status)
  sleep 1
  status = get_json("https://api.segmind.com/v2/requests/#{request_id}/status")['status']
  puts status
end

# 3. Fetch the final result body (available for 1 hour)
puts get_json("https://api.segmind.com/v2/requests/#{request_id}").to_json41:T3144,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#D73A49">require</span><span style="color:#032F62"> 'net/http'</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#D73A49">require</span><span style="color:#032F62"> 'json'</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#D73A49">require</span><span style="color:#032F62"> 'uri'</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#005CC5">API_KEY</span><span style="color:#D73A49"> =</span><span style="color:#032F62"> 'YOUR_API_KEY'</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#D73A49">def</span><span style="color:#6F42C1"> get_json</span><span style="color:#24292E">(url)</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#E36209">  uri</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> URI</span><span style="color:#24292E">(url)</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#E36209">  http</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> Net</span><span style="color:#24292E">::</span><span style="color:#005CC5">HTTP</span><span style="color:#24292E">.</span><span style="color:#D73A49">new</span><span style="color:#24292E">(uri.</span><span style="color:#6F42C1">host</span><span style="color:#24292E">, uri.</span><span style="color:#6F42C1">port</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#24292E">  http.</span><span style="color:#6F42C1">use_ssl</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> true</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#E36209">  req</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> Net</span><span style="color:#24292E">::</span><span style="color:#005CC5">HTTP</span><span style="color:#24292E">::</span><span style="color:#005CC5">Get</span><span style="color:#24292E">.</span><span style="color:#D73A49">new</span><span style="color:#24292E">(uri)</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#24292E">  req[</span><span style="color:#032F62">'x-api-key'</span><span style="color:#24292E">] </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> API_KEY</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#005CC5">  JSON</span><span style="color:#24292E">.</span><span style="color:#6F42C1">parse</span><span style="color:#24292E">(http.</span><span style="color:#6F42C1">request</span><span style="color:#24292E">(req).</span><span style="color:#6F42C1">body</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#D73A49">end</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 1. Submit to the v2 async endpoint -> returns a request_id</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#E36209">uri</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> URI</span><span style="color:#24292E">(</span><span style="color:#032F62">'https://api.segmind.com/v2/wan3.0-video'</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#E36209">http</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> Net</span><span style="color:#24292E">::</span><span style="color:#005CC5">HTTP</span><span style="color:#24292E">.</span><span style="color:#D73A49">new</span><span style="color:#24292E">(uri.</span><span style="color:#6F42C1">host</span><span style="color:#24292E">, uri.</span><span style="color:#6F42C1">port</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#24292E">http.</span><span style="color:#6F42C1">use_ssl</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> true</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#E36209">req</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> Net</span><span style="color:#24292E">::</span><span style="color:#005CC5">HTTP</span><span style="color:#24292E">::</span><span style="color:#005CC5">Post</span><span style="color:#24292E">.</span><span style="color:#D73A49">new</span><span style="color:#24292E">(uri)</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#24292E">req[</span><span style="color:#032F62">'x-api-key'</span><span style="color:#24292E">] </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> API_KEY</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#24292E">req[</span><span style="color:#032F62">'Content-Type'</span><span style="color:#24292E">] </span><span style="color:#D73A49">=</span><span style="color:#032F62"> 'application/json'</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#24292E">req.</span><span style="color:#6F42C1">body</span><span style="color:#D73A49"> =</span><span style="color:#032F62"> '{</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#032F62">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#032F62">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#032F62">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#032F62">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#032F62">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#032F62">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#032F62">}'</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"><span style="color:#E36209">request_id</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> JSON</span><span style="color:#24292E">.</span><span style="color:#6F42C1">parse</span><span style="color:#24292E">(http.</span><span style="color:#6F42C1">request</span><span style="color:#24292E">(req).</span><span style="color:#6F42C1">body</span><span style="color:#24292E">)[</span><span style="color:#032F62">'request_id'</span><span style="color:#24292E">]</span></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 2. Poll status until COMPLETED (FAILED is served as HTTP 422)</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#E36209">status</span><span style="color:#D73A49"> =</span><span style="color:#032F62"> 'QUEUED'</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#D73A49">while</span><span style="color:#24292E"> [</span><span style="color:#032F62">'QUEUED'</span><span style="color:#24292E">, </span><span style="color:#032F62">'PROCESSING'</span><span style="color:#24292E">].</span><span style="color:#6F42C1">include?</span><span style="color:#24292E">(status)</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#005CC5">  sleep</span><span style="color:#005CC5"> 1</span></span></span></span>
<span class="line"><span class="line-number">39</span><span class="line-content"><span class="line"><span style="color:#E36209">  status</span><span style="color:#D73A49"> =</span><span style="color:#6F42C1"> get_json</span><span style="color:#24292E">(</span><span style="color:#032F62">"https://api.segmind.com/v2/requests/</span><span style="color:#032F62">#{request_id}</span><span style="color:#032F62">/status"</span><span style="color:#24292E">)[</span><span style="color:#032F62">'status'</span><span style="color:#24292E">]</span></span></span></span>
<span class="line"><span class="line-number">40</span><span class="line-content"><span class="line"><span style="color:#005CC5">  puts</span><span style="color:#24292E"> status</span></span></span></span>
<span class="line"><span class="line-number">41</span><span class="line-content"><span class="line"><span style="color:#D73A49">end</span></span></span></span>
<span class="line"><span class="line-number">42</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">43</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 3. Fetch the final result body (available for 1 hour)</span></span></span></span>
<span class="line"><span class="line-number">44</span><span class="line-content"><span class="line"><span style="color:#005CC5">puts</span><span style="color:#6F42C1"> get_json</span><span style="color:#24292E">(</span><span style="color:#032F62">"https://api.segmind.com/v2/requests/</span><span style="color:#032F62">#{request_id}</span><span style="color:#032F62">"</span><span style="color:#24292E">).</span><span style="color:#6F42C1">to_json</span></span></span></span></code></pre>42:T3143,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#F97583">require</span><span style="color:#9ECBFF"> 'net/http'</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#F97583">require</span><span style="color:#9ECBFF"> 'json'</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#F97583">require</span><span style="color:#9ECBFF"> 'uri'</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#79B8FF">API_KEY</span><span style="color:#F97583"> =</span><span style="color:#9ECBFF"> 'YOUR_API_KEY'</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#F97583">def</span><span style="color:#B392F0"> get_json</span><span style="color:#E1E4E8">(url)</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#FFAB70">  uri</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> URI</span><span style="color:#E1E4E8">(url)</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#FFAB70">  http</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> Net</span><span style="color:#E1E4E8">::</span><span style="color:#79B8FF">HTTP</span><span style="color:#E1E4E8">.</span><span style="color:#F97583">new</span><span style="color:#E1E4E8">(uri.</span><span style="color:#B392F0">host</span><span style="color:#E1E4E8">, uri.</span><span style="color:#B392F0">port</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  http.</span><span style="color:#B392F0">use_ssl</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> true</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#FFAB70">  req</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> Net</span><span style="color:#E1E4E8">::</span><span style="color:#79B8FF">HTTP</span><span style="color:#E1E4E8">::</span><span style="color:#79B8FF">Get</span><span style="color:#E1E4E8">.</span><span style="color:#F97583">new</span><span style="color:#E1E4E8">(uri)</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  req[</span><span style="color:#9ECBFF">'x-api-key'</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> API_KEY</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  JSON</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">parse</span><span style="color:#E1E4E8">(http.</span><span style="color:#B392F0">request</span><span style="color:#E1E4E8">(req).</span><span style="color:#B392F0">body</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#F97583">end</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 1. Submit to the v2 async endpoint -> returns a request_id</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#FFAB70">uri</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> URI</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'https://api.segmind.com/v2/wan3.0-video'</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#FFAB70">http</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> Net</span><span style="color:#E1E4E8">::</span><span style="color:#79B8FF">HTTP</span><span style="color:#E1E4E8">.</span><span style="color:#F97583">new</span><span style="color:#E1E4E8">(uri.</span><span style="color:#B392F0">host</span><span style="color:#E1E4E8">, uri.</span><span style="color:#B392F0">port</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">http.</span><span style="color:#B392F0">use_ssl</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> true</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#FFAB70">req</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> Net</span><span style="color:#E1E4E8">::</span><span style="color:#79B8FF">HTTP</span><span style="color:#E1E4E8">::</span><span style="color:#79B8FF">Post</span><span style="color:#E1E4E8">.</span><span style="color:#F97583">new</span><span style="color:#E1E4E8">(uri)</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">req[</span><span style="color:#9ECBFF">'x-api-key'</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> API_KEY</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">req[</span><span style="color:#9ECBFF">'Content-Type'</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> 'application/json'</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">req.</span><span style="color:#B392F0">body</span><span style="color:#F97583"> =</span><span style="color:#9ECBFF"> '{</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">}'</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"><span style="color:#FFAB70">request_id</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> JSON</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">parse</span><span style="color:#E1E4E8">(http.</span><span style="color:#B392F0">request</span><span style="color:#E1E4E8">(req).</span><span style="color:#B392F0">body</span><span style="color:#E1E4E8">)[</span><span style="color:#9ECBFF">'request_id'</span><span style="color:#E1E4E8">]</span></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 2. Poll status until COMPLETED (FAILED is served as HTTP 422)</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#FFAB70">status</span><span style="color:#F97583"> =</span><span style="color:#9ECBFF"> 'QUEUED'</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#F97583">while</span><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">'QUEUED'</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">'PROCESSING'</span><span style="color:#E1E4E8">].</span><span style="color:#B392F0">include?</span><span style="color:#E1E4E8">(status)</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  sleep</span><span style="color:#79B8FF"> 1</span></span></span></span>
<span class="line"><span class="line-number">39</span><span class="line-content"><span class="line"><span style="color:#FFAB70">  status</span><span style="color:#F97583"> =</span><span style="color:#B392F0"> get_json</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"https://api.segmind.com/v2/requests/</span><span style="color:#9ECBFF">#{request_id}</span><span style="color:#9ECBFF">/status"</span><span style="color:#E1E4E8">)[</span><span style="color:#9ECBFF">'status'</span><span style="color:#E1E4E8">]</span></span></span></span>
<span class="line"><span class="line-number">40</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  puts</span><span style="color:#E1E4E8"> status</span></span></span></span>
<span class="line"><span class="line-number">41</span><span class="line-content"><span class="line"><span style="color:#F97583">end</span></span></span></span>
<span class="line"><span class="line-number">42</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">43</span><span class="line-content"><span class="line"><span style="color:#6A737D"># 3. Fetch the final result body (available for 1 hour)</span></span></span></span>
<span class="line"><span class="line-number">44</span><span class="line-content"><span class="line"><span style="color:#79B8FF">puts</span><span style="color:#B392F0"> get_json</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"https://api.segmind.com/v2/requests/</span><span style="color:#9ECBFF">#{request_id}</span><span style="color:#9ECBFF">"</span><span style="color:#E1E4E8">).</span><span style="color:#B392F0">to_json</span></span></span></span></code></pre>43:T427,# pip install "segmind>=1.1.0"
# export SEGMIND_API_KEY="YOUR_API_KEY"
import segmind

# Sync (v1): one blocking call, returns an httpx.Response.
response = segmind.run_sync(
    "wan3.0-video",
    prompt="The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
    image="https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
    resolution="720P",
    duration=5,
    aspect_ratio="16:9",
    prompt_extend=True,
    watermark=False,
    audio=True,
)

# Media models return the file itself; a JSON body carries the result instead.
if response.headers.get("content-type", "").startswith("application/json"):
    print(response.json())
else:
    with open("output.mp4", "wb") as f:
        f.write(response.content)44:T184e,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#6A737D"># pip install "segmind>=1.1.0"</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#6A737D"># export SEGMIND_API_KEY="YOUR_API_KEY"</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#D73A49">import</span><span style="color:#24292E"> segmind</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#6A737D"># Sync (v1): one blocking call, returns an httpx.Response.</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#24292E">response </span><span style="color:#D73A49">=</span><span style="color:#24292E"> segmind.run_sync(</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#032F62">    "wan3.0-video"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#E36209">    prompt</span><span style="color:#D73A49">=</span><span style="color:#032F62">"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#E36209">    image</span><span style="color:#D73A49">=</span><span style="color:#032F62">"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#E36209">    resolution</span><span style="color:#D73A49">=</span><span style="color:#032F62">"720P"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#E36209">    duration</span><span style="color:#D73A49">=</span><span style="color:#005CC5">5</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#E36209">    aspect_ratio</span><span style="color:#D73A49">=</span><span style="color:#032F62">"16:9"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#E36209">    prompt_extend</span><span style="color:#D73A49">=</span><span style="color:#005CC5">True</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#E36209">    watermark</span><span style="color:#D73A49">=</span><span style="color:#005CC5">False</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#E36209">    audio</span><span style="color:#D73A49">=</span><span style="color:#005CC5">True</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#6A737D"># Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#D73A49">if</span><span style="color:#24292E"> response.headers.get(</span><span style="color:#032F62">"content-type"</span><span style="color:#24292E">, </span><span style="color:#032F62">""</span><span style="color:#24292E">).startswith(</span><span style="color:#032F62">"application/json"</span><span style="color:#24292E">):</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#005CC5">    print</span><span style="color:#24292E">(response.json())</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#D73A49">else</span><span style="color:#24292E">:</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#D73A49">    with</span><span style="color:#005CC5"> open</span><span style="color:#24292E">(</span><span style="color:#032F62">"output.mp4"</span><span style="color:#24292E">, </span><span style="color:#032F62">"wb"</span><span style="color:#24292E">) </span><span style="color:#D73A49">as</span><span style="color:#24292E"> f:</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#24292E">        f.write(response.content)</span></span></span></span></code></pre>45:T184d,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#6A737D"># pip install "segmind>=1.1.0"</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#6A737D"># export SEGMIND_API_KEY="YOUR_API_KEY"</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#F97583">import</span><span style="color:#E1E4E8"> segmind</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#6A737D"># Sync (v1): one blocking call, returns an httpx.Response.</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">response </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> segmind.run_sync(</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "wan3.0-video"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#FFAB70">    prompt</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#FFAB70">    image</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#FFAB70">    resolution</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"720P"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#FFAB70">    duration</span><span style="color:#F97583">=</span><span style="color:#79B8FF">5</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#FFAB70">    aspect_ratio</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"16:9"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#FFAB70">    prompt_extend</span><span style="color:#F97583">=</span><span style="color:#79B8FF">True</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#FFAB70">    watermark</span><span style="color:#F97583">=</span><span style="color:#79B8FF">False</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#FFAB70">    audio</span><span style="color:#F97583">=</span><span style="color:#79B8FF">True</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#6A737D"># Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#F97583">if</span><span style="color:#E1E4E8"> response.headers.get(</span><span style="color:#9ECBFF">"content-type"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">""</span><span style="color:#E1E4E8">).startswith(</span><span style="color:#9ECBFF">"application/json"</span><span style="color:#E1E4E8">):</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    print</span><span style="color:#E1E4E8">(response.json())</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#F97583">else</span><span style="color:#E1E4E8">:</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#F97583">    with</span><span style="color:#79B8FF"> open</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"output.mp4"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"wb"</span><span style="color:#E1E4E8">) </span><span style="color:#F97583">as</span><span style="color:#E1E4E8"> f:</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        f.write(response.content)</span></span></span></span></code></pre>46:T51e,import requests
import json

url = "https://api.segmind.com/v1/wan3.0-video"
headers = {
    "x-api-key": "YOUR_API_KEY",
    "Content-Type": "application/json"
}

data = {
    "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
    "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
    "resolution": "720P",
    "duration": 5,
    "aspect_ratio": "16:9",
    "prompt_extend": true,
    "watermark": false,
    "audio": true
}

response = requests.post(url, headers=headers, json=data)

if response.status_code == 200:
    # Media models return the file itself; a JSON body carries the result instead.
    if response.headers.get("Content-Type", "").startswith("application/json"):
        print(json.dumps(response.json(), indent=2))
    else:
        with open("output.mp4", "wb") as f:
            f.write(response.content)
        print("Saved output.mp4")
else:
    print(f"Error: {response.status_code}")
    print(response.text)47:T2377,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#D73A49">import</span><span style="color:#24292E"> requests</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#D73A49">import</span><span style="color:#24292E"> json</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#24292E">url </span><span style="color:#D73A49">=</span><span style="color:#032F62"> "https://api.segmind.com/v1/wan3.0-video"</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#24292E">headers </span><span style="color:#D73A49">=</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#032F62">    "x-api-key"</span><span style="color:#24292E">: </span><span style="color:#032F62">"YOUR_API_KEY"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#032F62">    "Content-Type"</span><span style="color:#24292E">: </span><span style="color:#032F62">"application/json"</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#24292E">}</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#24292E">data </span><span style="color:#D73A49">=</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#032F62">    "prompt"</span><span style="color:#24292E">: </span><span style="color:#032F62">"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#032F62">    "image"</span><span style="color:#24292E">: </span><span style="color:#032F62">"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#032F62">    "resolution"</span><span style="color:#24292E">: </span><span style="color:#032F62">"720P"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#032F62">    "duration"</span><span style="color:#24292E">: </span><span style="color:#005CC5">5</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#032F62">    "aspect_ratio"</span><span style="color:#24292E">: </span><span style="color:#032F62">"16:9"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#032F62">    "prompt_extend"</span><span style="color:#24292E">: true,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#032F62">    "watermark"</span><span style="color:#24292E">: false,</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#032F62">    "audio"</span><span style="color:#24292E">: true</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#24292E">}</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#24292E">response </span><span style="color:#D73A49">=</span><span style="color:#24292E"> requests.post(url, </span><span style="color:#E36209">headers</span><span style="color:#D73A49">=</span><span style="color:#24292E">headers, </span><span style="color:#E36209">json</span><span style="color:#D73A49">=</span><span style="color:#24292E">data)</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#D73A49">if</span><span style="color:#24292E"> response.status_code </span><span style="color:#D73A49">==</span><span style="color:#005CC5"> 200</span><span style="color:#24292E">:</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#6A737D">    # Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#D73A49">    if</span><span style="color:#24292E"> response.headers.get(</span><span style="color:#032F62">"Content-Type"</span><span style="color:#24292E">, </span><span style="color:#032F62">""</span><span style="color:#24292E">).startswith(</span><span style="color:#032F62">"application/json"</span><span style="color:#24292E">):</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#005CC5">        print</span><span style="color:#24292E">(json.dumps(response.json(), </span><span style="color:#E36209">indent</span><span style="color:#D73A49">=</span><span style="color:#005CC5">2</span><span style="color:#24292E">))</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#D73A49">    else</span><span style="color:#24292E">:</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#D73A49">        with</span><span style="color:#005CC5"> open</span><span style="color:#24292E">(</span><span style="color:#032F62">"output.mp4"</span><span style="color:#24292E">, </span><span style="color:#032F62">"wb"</span><span style="color:#24292E">) </span><span style="color:#D73A49">as</span><span style="color:#24292E"> f:</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#24292E">            f.write(response.content)</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#005CC5">        print</span><span style="color:#24292E">(</span><span style="color:#032F62">"Saved output.mp4"</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#D73A49">else</span><span style="color:#24292E">:</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#005CC5">    print</span><span style="color:#24292E">(</span><span style="color:#D73A49">f</span><span style="color:#032F62">"Error: </span><span style="color:#005CC5">{</span><span style="color:#24292E">response.status_code</span><span style="color:#005CC5">}</span><span style="color:#032F62">"</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"><span style="color:#005CC5">    print</span><span style="color:#24292E">(response.text)</span></span></span></span></code></pre>48:T2376,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#F97583">import</span><span style="color:#E1E4E8"> requests</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#F97583">import</span><span style="color:#E1E4E8"> json</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">url </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "https://api.segmind.com/v1/wan3.0-video"</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">headers </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "x-api-key"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"YOUR_API_KEY"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "Content-Type"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"application/json"</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">data </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "prompt"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "image"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "resolution"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"720P"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "duration"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">5</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "aspect_ratio"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"16:9"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "prompt_extend"</span><span style="color:#E1E4E8">: true,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "watermark"</span><span style="color:#E1E4E8">: false,</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "audio"</span><span style="color:#E1E4E8">: true</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">response </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> requests.post(url, </span><span style="color:#FFAB70">headers</span><span style="color:#F97583">=</span><span style="color:#E1E4E8">headers, </span><span style="color:#FFAB70">json</span><span style="color:#F97583">=</span><span style="color:#E1E4E8">data)</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#F97583">if</span><span style="color:#E1E4E8"> response.status_code </span><span style="color:#F97583">==</span><span style="color:#79B8FF"> 200</span><span style="color:#E1E4E8">:</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#6A737D">    # Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#F97583">    if</span><span style="color:#E1E4E8"> response.headers.get(</span><span style="color:#9ECBFF">"Content-Type"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">""</span><span style="color:#E1E4E8">).startswith(</span><span style="color:#9ECBFF">"application/json"</span><span style="color:#E1E4E8">):</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#79B8FF">        print</span><span style="color:#E1E4E8">(json.dumps(response.json(), </span><span style="color:#FFAB70">indent</span><span style="color:#F97583">=</span><span style="color:#79B8FF">2</span><span style="color:#E1E4E8">))</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#F97583">    else</span><span style="color:#E1E4E8">:</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#F97583">        with</span><span style="color:#79B8FF"> open</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"output.mp4"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"wb"</span><span style="color:#E1E4E8">) </span><span style="color:#F97583">as</span><span style="color:#E1E4E8"> f:</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">            f.write(response.content)</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#79B8FF">        print</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"Saved output.mp4"</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#F97583">else</span><span style="color:#E1E4E8">:</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    print</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">f</span><span style="color:#9ECBFF">"Error: </span><span style="color:#79B8FF">{</span><span style="color:#E1E4E8">response.status_code</span><span style="color:#79B8FF">}</span><span style="color:#9ECBFF">"</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    print</span><span style="color:#E1E4E8">(response.text)</span></span></span></span></code></pre>49:Td4c,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#6F42C1">curl</span><span style="color:#005CC5"> -X</span><span style="color:#032F62"> POST</span><span style="color:#032F62"> "https://api.segmind.com/v1/wan3.0-video"</span><span style="color:#005CC5"> \</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#005CC5">  -H</span><span style="color:#032F62"> "x-api-key: YOUR_API_KEY"</span><span style="color:#005CC5"> \</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#005CC5">  -H</span><span style="color:#032F62"> "Content-Type: application/json"</span><span style="color:#005CC5"> \</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#005CC5">  -d</span><span style="color:#032F62"> '{</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#032F62">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#032F62">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#032F62">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#032F62">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#032F62">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#032F62">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#032F62">}'</span><span style="color:#005CC5"> \</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#005CC5">  -o</span><span style="color:#032F62"> output.mp4</span></span></span></span></code></pre>4a:Td4b,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#B392F0">curl</span><span style="color:#79B8FF"> -X</span><span style="color:#9ECBFF"> POST</span><span style="color:#9ECBFF"> "https://api.segmind.com/v1/wan3.0-video"</span><span style="color:#79B8FF"> \</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  -H</span><span style="color:#9ECBFF"> "x-api-key: YOUR_API_KEY"</span><span style="color:#79B8FF"> \</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  -H</span><span style="color:#9ECBFF"> "Content-Type: application/json"</span><span style="color:#79B8FF"> \</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  -d</span><span style="color:#9ECBFF"> '{</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">}'</span><span style="color:#79B8FF"> \</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  -o</span><span style="color:#9ECBFF"> output.mp4</span></span></span></span></code></pre>4b:T52d,import { writeFile } from 'node:fs/promises';

const response = await fetch('https://api.segmind.com/v1/wan3.0-video', {
  method: 'POST',
  headers: {
    'x-api-key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
  "resolution": "720P",
  "duration": 5,
  "aspect_ratio": "16:9",
  "prompt_extend": true,
  "watermark": false,
  "audio": true
}),
});

if (response.ok) {
  // Media models return the file itself; a JSON body carries the result instead.
  if ((response.headers.get('content-type') || '').startsWith('application/json')) {
    console.log(await response.json());
  } else {
    await writeFile('output.mp4', Buffer.from(await response.arrayBuffer()));
    console.log('Saved output.mp4');
  }
} else {
  console.error('Error:', response.status);
  console.error(await response.text());
}4c:T2560,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#D73A49">import</span><span style="color:#24292E"> { writeFile } </span><span style="color:#D73A49">from</span><span style="color:#032F62"> 'node:fs/promises'</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#D73A49">const</span><span style="color:#005CC5"> response</span><span style="color:#D73A49"> =</span><span style="color:#D73A49"> await</span><span style="color:#6F42C1"> fetch</span><span style="color:#24292E">(</span><span style="color:#032F62">'https://api.segmind.com/v1/wan3.0-video'</span><span style="color:#24292E">, {</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#24292E">  method: </span><span style="color:#032F62">'POST'</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#24292E">  headers: {</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#032F62">    'x-api-key'</span><span style="color:#24292E">: </span><span style="color:#032F62">'YOUR_API_KEY'</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#032F62">    'Content-Type'</span><span style="color:#24292E">: </span><span style="color:#032F62">'application/json'</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#24292E">  },</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#24292E">  body: </span><span style="color:#005CC5">JSON</span><span style="color:#24292E">.</span><span style="color:#6F42C1">stringify</span><span style="color:#24292E">({</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt"</span><span style="color:#24292E">: </span><span style="color:#032F62">"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#032F62">  "image"</span><span style="color:#24292E">: </span><span style="color:#032F62">"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#032F62">  "resolution"</span><span style="color:#24292E">: </span><span style="color:#032F62">"720P"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#032F62">  "duration"</span><span style="color:#24292E">: </span><span style="color:#005CC5">5</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#032F62">  "aspect_ratio"</span><span style="color:#24292E">: </span><span style="color:#032F62">"16:9"</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt_extend"</span><span style="color:#24292E">: </span><span style="color:#005CC5">true</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#032F62">  "watermark"</span><span style="color:#24292E">: </span><span style="color:#005CC5">false</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#032F62">  "audio"</span><span style="color:#24292E">: </span><span style="color:#005CC5">true</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#24292E">}),</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#24292E">});</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#D73A49">if</span><span style="color:#24292E"> (response.ok) {</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#6A737D">  // Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#D73A49">  if</span><span style="color:#24292E"> ((response.headers.</span><span style="color:#6F42C1">get</span><span style="color:#24292E">(</span><span style="color:#032F62">'content-type'</span><span style="color:#24292E">) </span><span style="color:#D73A49">||</span><span style="color:#032F62"> ''</span><span style="color:#24292E">).</span><span style="color:#6F42C1">startsWith</span><span style="color:#24292E">(</span><span style="color:#032F62">'application/json'</span><span style="color:#24292E">)) {</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#24292E">    console.</span><span style="color:#6F42C1">log</span><span style="color:#24292E">(</span><span style="color:#D73A49">await</span><span style="color:#24292E"> response.</span><span style="color:#6F42C1">json</span><span style="color:#24292E">());</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#24292E">  } </span><span style="color:#D73A49">else</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#D73A49">    await</span><span style="color:#6F42C1"> writeFile</span><span style="color:#24292E">(</span><span style="color:#032F62">'output.mp4'</span><span style="color:#24292E">, Buffer.</span><span style="color:#6F42C1">from</span><span style="color:#24292E">(</span><span style="color:#D73A49">await</span><span style="color:#24292E"> response.</span><span style="color:#6F42C1">arrayBuffer</span><span style="color:#24292E">()));</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#24292E">    console.</span><span style="color:#6F42C1">log</span><span style="color:#24292E">(</span><span style="color:#032F62">'Saved output.mp4'</span><span style="color:#24292E">);</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#24292E">  }</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#24292E">} </span><span style="color:#D73A49">else</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#24292E">  console.</span><span style="color:#6F42C1">error</span><span style="color:#24292E">(</span><span style="color:#032F62">'Error:'</span><span style="color:#24292E">, response.status);</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#24292E">  console.</span><span style="color:#6F42C1">error</span><span style="color:#24292E">(</span><span style="color:#D73A49">await</span><span style="color:#24292E"> response.</span><span style="color:#6F42C1">text</span><span style="color:#24292E">());</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#24292E">}</span></span></span></span></code></pre>4d:T255f,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#F97583">import</span><span style="color:#E1E4E8"> { writeFile } </span><span style="color:#F97583">from</span><span style="color:#9ECBFF"> 'node:fs/promises'</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#F97583">const</span><span style="color:#79B8FF"> response</span><span style="color:#F97583"> =</span><span style="color:#F97583"> await</span><span style="color:#B392F0"> fetch</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'https://api.segmind.com/v1/wan3.0-video'</span><span style="color:#E1E4E8">, {</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  method: </span><span style="color:#9ECBFF">'POST'</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  headers: {</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    'x-api-key'</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">'YOUR_API_KEY'</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    'Content-Type'</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">'application/json'</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  },</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  body: </span><span style="color:#79B8FF">JSON</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">stringify</span><span style="color:#E1E4E8">({</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls."</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "image"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "resolution"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"720P"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "duration"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">5</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "aspect_ratio"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"16:9"</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt_extend"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">true</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "watermark"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">false</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "audio"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">true</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}),</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">});</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#F97583">if</span><span style="color:#E1E4E8"> (response.ok) {</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#6A737D">  // Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#F97583">  if</span><span style="color:#E1E4E8"> ((response.headers.</span><span style="color:#B392F0">get</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'content-type'</span><span style="color:#E1E4E8">) </span><span style="color:#F97583">||</span><span style="color:#9ECBFF"> ''</span><span style="color:#E1E4E8">).</span><span style="color:#B392F0">startsWith</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'application/json'</span><span style="color:#E1E4E8">)) {</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    console.</span><span style="color:#B392F0">log</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">await</span><span style="color:#E1E4E8"> response.</span><span style="color:#B392F0">json</span><span style="color:#E1E4E8">());</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  } </span><span style="color:#F97583">else</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#F97583">    await</span><span style="color:#B392F0"> writeFile</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'output.mp4'</span><span style="color:#E1E4E8">, Buffer.</span><span style="color:#B392F0">from</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">await</span><span style="color:#E1E4E8"> response.</span><span style="color:#B392F0">arrayBuffer</span><span style="color:#E1E4E8">()));</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    console.</span><span style="color:#B392F0">log</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'Saved output.mp4'</span><span style="color:#E1E4E8">);</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  }</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">} </span><span style="color:#F97583">else</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  console.</span><span style="color:#B392F0">error</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'Error:'</span><span style="color:#E1E4E8">, response.status);</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">  console.</span><span style="color:#B392F0">error</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">await</span><span style="color:#E1E4E8"> response.</span><span style="color:#B392F0">text</span><span style="color:#E1E4E8">());</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}</span></span></span></span></code></pre>4e:T6b2,package main

import (
    "bytes"
    "fmt"
    "io"
    "net/http"
    "os"
    "strings"
)

func main() {
    url := "https://api.segmind.com/v1/wan3.0-video"

    data := []byte(`{
  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
  "resolution": "720P",
  "duration": 5,
  "aspect_ratio": "16:9",
  "prompt_extend": true,
  "watermark": false,
  "audio": true
}`)

    req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
    if err != nil {
        panic(err)
    }

    req.Header.Set("x-api-key", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, err := io.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    if resp.StatusCode != http.StatusOK {
        fmt.Printf("Error: %d\n%s\n", resp.StatusCode, body)
        return
    }

    // Media models return the file itself; a JSON body carries the result instead.
    if strings.HasPrefix(resp.Header.Get("Content-Type"), "application/json") {
        fmt.Println(string(body))
        return
    }

    if err := os.WriteFile("output.mp4", body, 0o644); err != nil {
        panic(err)
    }
    fmt.Println("Saved output.mp4")
}4f:T3aa3,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#D73A49">package</span><span style="color:#6F42C1"> main</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#D73A49">import</span><span style="color:#24292E"> (</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">bytes</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">fmt</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">io</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">net/http</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">os</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#032F62">    "</span><span style="color:#6F42C1">strings</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#D73A49">func</span><span style="color:#6F42C1"> main</span><span style="color:#24292E">() {</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#24292E">    url </span><span style="color:#D73A49">:=</span><span style="color:#032F62"> "https://api.segmind.com/v1/wan3.0-video"</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#24292E">    data </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> []</span><span style="color:#D73A49">byte</span><span style="color:#24292E">(</span><span style="color:#032F62">`{</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#032F62">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#032F62">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#032F62">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#032F62">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#032F62">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#032F62">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#032F62">}`</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#24292E">    req, err </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> http.</span><span style="color:#6F42C1">NewRequest</span><span style="color:#24292E">(</span><span style="color:#032F62">"POST"</span><span style="color:#24292E">, url, bytes.</span><span style="color:#6F42C1">NewBuffer</span><span style="color:#24292E">(data))</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#D73A49">    if</span><span style="color:#24292E"> err </span><span style="color:#D73A49">!=</span><span style="color:#005CC5"> nil</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#6F42C1">        panic</span><span style="color:#24292E">(err)</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#24292E">    }</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#24292E">    req.Header.</span><span style="color:#6F42C1">Set</span><span style="color:#24292E">(</span><span style="color:#032F62">"x-api-key"</span><span style="color:#24292E">, </span><span style="color:#032F62">"YOUR_API_KEY"</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#24292E">    req.Header.</span><span style="color:#6F42C1">Set</span><span style="color:#24292E">(</span><span style="color:#032F62">"Content-Type"</span><span style="color:#24292E">, </span><span style="color:#032F62">"application/json"</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#24292E">    client </span><span style="color:#D73A49">:=</span><span style="color:#D73A49"> &#x26;</span><span style="color:#6F42C1">http</span><span style="color:#24292E">.</span><span style="color:#6F42C1">Client</span><span style="color:#24292E">{}</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#24292E">    resp, err </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> client.</span><span style="color:#6F42C1">Do</span><span style="color:#24292E">(req)</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#D73A49">    if</span><span style="color:#24292E"> err </span><span style="color:#D73A49">!=</span><span style="color:#005CC5"> nil</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#6F42C1">        panic</span><span style="color:#24292E">(err)</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#24292E">    }</span></span></span></span>
<span class="line"><span class="line-number">39</span><span class="line-content"><span class="line"><span style="color:#D73A49">    defer</span><span style="color:#24292E"> resp.Body.</span><span style="color:#6F42C1">Close</span><span style="color:#24292E">()</span></span></span></span>
<span class="line"><span class="line-number">40</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">41</span><span class="line-content"><span class="line"><span style="color:#24292E">    body, err </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> io.</span><span style="color:#6F42C1">ReadAll</span><span style="color:#24292E">(resp.Body)</span></span></span></span>
<span class="line"><span class="line-number">42</span><span class="line-content"><span class="line"><span style="color:#D73A49">    if</span><span style="color:#24292E"> err </span><span style="color:#D73A49">!=</span><span style="color:#005CC5"> nil</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">43</span><span class="line-content"><span class="line"><span style="color:#6F42C1">        panic</span><span style="color:#24292E">(err)</span></span></span></span>
<span class="line"><span class="line-number">44</span><span class="line-content"><span class="line"><span style="color:#24292E">    }</span></span></span></span>
<span class="line"><span class="line-number">45</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">46</span><span class="line-content"><span class="line"><span style="color:#D73A49">    if</span><span style="color:#24292E"> resp.StatusCode </span><span style="color:#D73A49">!=</span><span style="color:#24292E"> http.StatusOK {</span></span></span></span>
<span class="line"><span class="line-number">47</span><span class="line-content"><span class="line"><span style="color:#24292E">        fmt.</span><span style="color:#6F42C1">Printf</span><span style="color:#24292E">(</span><span style="color:#032F62">"Error: </span><span style="color:#005CC5">%d\n%s\n</span><span style="color:#032F62">"</span><span style="color:#24292E">, resp.StatusCode, body)</span></span></span></span>
<span class="line"><span class="line-number">48</span><span class="line-content"><span class="line"><span style="color:#D73A49">        return</span></span></span></span>
<span class="line"><span class="line-number">49</span><span class="line-content"><span class="line"><span style="color:#24292E">    }</span></span></span></span>
<span class="line"><span class="line-number">50</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">51</span><span class="line-content"><span class="line"><span style="color:#6A737D">    // Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">52</span><span class="line-content"><span class="line"><span style="color:#D73A49">    if</span><span style="color:#24292E"> strings.</span><span style="color:#6F42C1">HasPrefix</span><span style="color:#24292E">(resp.Header.</span><span style="color:#6F42C1">Get</span><span style="color:#24292E">(</span><span style="color:#032F62">"Content-Type"</span><span style="color:#24292E">), </span><span style="color:#032F62">"application/json"</span><span style="color:#24292E">) {</span></span></span></span>
<span class="line"><span class="line-number">53</span><span class="line-content"><span class="line"><span style="color:#24292E">        fmt.</span><span style="color:#6F42C1">Println</span><span style="color:#24292E">(</span><span style="color:#D73A49">string</span><span style="color:#24292E">(body))</span></span></span></span>
<span class="line"><span class="line-number">54</span><span class="line-content"><span class="line"><span style="color:#D73A49">        return</span></span></span></span>
<span class="line"><span class="line-number">55</span><span class="line-content"><span class="line"><span style="color:#24292E">    }</span></span></span></span>
<span class="line"><span class="line-number">56</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">57</span><span class="line-content"><span class="line"><span style="color:#D73A49">    if</span><span style="color:#24292E"> err </span><span style="color:#D73A49">:=</span><span style="color:#24292E"> os.</span><span style="color:#6F42C1">WriteFile</span><span style="color:#24292E">(</span><span style="color:#032F62">"output.mp4"</span><span style="color:#24292E">, body, </span><span style="color:#D73A49">0o</span><span style="color:#005CC5">644</span><span style="color:#24292E">); err </span><span style="color:#D73A49">!=</span><span style="color:#005CC5"> nil</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">58</span><span class="line-content"><span class="line"><span style="color:#6F42C1">        panic</span><span style="color:#24292E">(err)</span></span></span></span>
<span class="line"><span class="line-number">59</span><span class="line-content"><span class="line"><span style="color:#24292E">    }</span></span></span></span>
<span class="line"><span class="line-number">60</span><span class="line-content"><span class="line"><span style="color:#24292E">    fmt.</span><span style="color:#6F42C1">Println</span><span style="color:#24292E">(</span><span style="color:#032F62">"Saved output.mp4"</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">61</span><span class="line-content"><span class="line"><span style="color:#24292E">}</span></span></span></span></code></pre>50:T3aa2,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#F97583">package</span><span style="color:#B392F0"> main</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#F97583">import</span><span style="color:#E1E4E8"> (</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">bytes</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">fmt</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">io</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">net/http</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">os</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    "</span><span style="color:#B392F0">strings</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#F97583">func</span><span style="color:#B392F0"> main</span><span style="color:#E1E4E8">() {</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    url </span><span style="color:#F97583">:=</span><span style="color:#9ECBFF"> "https://api.segmind.com/v1/wan3.0-video"</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    data </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> []</span><span style="color:#F97583">byte</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">`{</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">}`</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    req, err </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> http.</span><span style="color:#B392F0">NewRequest</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"POST"</span><span style="color:#E1E4E8">, url, bytes.</span><span style="color:#B392F0">NewBuffer</span><span style="color:#E1E4E8">(data))</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#F97583">    if</span><span style="color:#E1E4E8"> err </span><span style="color:#F97583">!=</span><span style="color:#79B8FF"> nil</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#B392F0">        panic</span><span style="color:#E1E4E8">(err)</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    }</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    req.Header.</span><span style="color:#B392F0">Set</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"x-api-key"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"YOUR_API_KEY"</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    req.Header.</span><span style="color:#B392F0">Set</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"Content-Type"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"application/json"</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    client </span><span style="color:#F97583">:=</span><span style="color:#F97583"> &#x26;</span><span style="color:#B392F0">http</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">Client</span><span style="color:#E1E4E8">{}</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    resp, err </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">Do</span><span style="color:#E1E4E8">(req)</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#F97583">    if</span><span style="color:#E1E4E8"> err </span><span style="color:#F97583">!=</span><span style="color:#79B8FF"> nil</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#B392F0">        panic</span><span style="color:#E1E4E8">(err)</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    }</span></span></span></span>
<span class="line"><span class="line-number">39</span><span class="line-content"><span class="line"><span style="color:#F97583">    defer</span><span style="color:#E1E4E8"> resp.Body.</span><span style="color:#B392F0">Close</span><span style="color:#E1E4E8">()</span></span></span></span>
<span class="line"><span class="line-number">40</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">41</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    body, err </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> io.</span><span style="color:#B392F0">ReadAll</span><span style="color:#E1E4E8">(resp.Body)</span></span></span></span>
<span class="line"><span class="line-number">42</span><span class="line-content"><span class="line"><span style="color:#F97583">    if</span><span style="color:#E1E4E8"> err </span><span style="color:#F97583">!=</span><span style="color:#79B8FF"> nil</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">43</span><span class="line-content"><span class="line"><span style="color:#B392F0">        panic</span><span style="color:#E1E4E8">(err)</span></span></span></span>
<span class="line"><span class="line-number">44</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    }</span></span></span></span>
<span class="line"><span class="line-number">45</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">46</span><span class="line-content"><span class="line"><span style="color:#F97583">    if</span><span style="color:#E1E4E8"> resp.StatusCode </span><span style="color:#F97583">!=</span><span style="color:#E1E4E8"> http.StatusOK {</span></span></span></span>
<span class="line"><span class="line-number">47</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        fmt.</span><span style="color:#B392F0">Printf</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"Error: </span><span style="color:#79B8FF">%d\n%s\n</span><span style="color:#9ECBFF">"</span><span style="color:#E1E4E8">, resp.StatusCode, body)</span></span></span></span>
<span class="line"><span class="line-number">48</span><span class="line-content"><span class="line"><span style="color:#F97583">        return</span></span></span></span>
<span class="line"><span class="line-number">49</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    }</span></span></span></span>
<span class="line"><span class="line-number">50</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">51</span><span class="line-content"><span class="line"><span style="color:#6A737D">    // Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">52</span><span class="line-content"><span class="line"><span style="color:#F97583">    if</span><span style="color:#E1E4E8"> strings.</span><span style="color:#B392F0">HasPrefix</span><span style="color:#E1E4E8">(resp.Header.</span><span style="color:#B392F0">Get</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"Content-Type"</span><span style="color:#E1E4E8">), </span><span style="color:#9ECBFF">"application/json"</span><span style="color:#E1E4E8">) {</span></span></span></span>
<span class="line"><span class="line-number">53</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">        fmt.</span><span style="color:#B392F0">Println</span><span style="color:#E1E4E8">(</span><span style="color:#F97583">string</span><span style="color:#E1E4E8">(body))</span></span></span></span>
<span class="line"><span class="line-number">54</span><span class="line-content"><span class="line"><span style="color:#F97583">        return</span></span></span></span>
<span class="line"><span class="line-number">55</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    }</span></span></span></span>
<span class="line"><span class="line-number">56</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">57</span><span class="line-content"><span class="line"><span style="color:#F97583">    if</span><span style="color:#E1E4E8"> err </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> os.</span><span style="color:#B392F0">WriteFile</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"output.mp4"</span><span style="color:#E1E4E8">, body, </span><span style="color:#F97583">0o</span><span style="color:#79B8FF">644</span><span style="color:#E1E4E8">); err </span><span style="color:#F97583">!=</span><span style="color:#79B8FF"> nil</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">58</span><span class="line-content"><span class="line"><span style="color:#B392F0">        panic</span><span style="color:#E1E4E8">(err)</span></span></span></span>
<span class="line"><span class="line-number">59</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    }</span></span></span></span>
<span class="line"><span class="line-number">60</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">    fmt.</span><span style="color:#B392F0">Println</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"Saved output.mp4"</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">61</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}</span></span></span></span></code></pre>51:T616,<?php

$url = "https://api.segmind.com/v1/wan3.0-video";
$headers = [
    'x-api-key: YOUR_API_KEY',
    'Content-Type: application/json',
];

$data = '{
  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
  "resolution": "720P",
  "duration": 5,
  "aspect_ratio": "16:9",
  "prompt_extend": true,
  "watermark": false,
  "audio": true
}';

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $data,
    CURLOPT_HTTPHEADER => $headers,
]);

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$contentType = (string) curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
curl_close($curl);

if ($httpCode === 200 && str_starts_with($contentType, 'application/json')) {
    // Media models return the file itself; a JSON body carries the result instead.
    echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
} elseif ($httpCode === 200) {
    file_put_contents('output.mp4', $response);
    echo "Saved output.mp4\n";
} else {
    echo "Error: $httpCode\n";
    echo $response;
}

?>52:T2bf1,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#D73A49">&#x3C;?</span><span style="color:#005CC5">php</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#24292E">$url </span><span style="color:#D73A49">=</span><span style="color:#032F62"> "https://api.segmind.com/v1/wan3.0-video"</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#24292E">$headers </span><span style="color:#D73A49">=</span><span style="color:#24292E"> [</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#032F62">    'x-api-key: YOUR_API_KEY'</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#032F62">    'Content-Type: application/json'</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#24292E">];</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#24292E">$data </span><span style="color:#D73A49">=</span><span style="color:#032F62"> '{</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#032F62">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#032F62">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#032F62">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#032F62">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#032F62">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#032F62">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#032F62">}'</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#24292E">$curl </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> curl_init</span><span style="color:#24292E">();</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#005CC5">curl_setopt_array</span><span style="color:#24292E">($curl, [</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_URL</span><span style="color:#D73A49"> =></span><span style="color:#24292E"> $url,</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_RETURNTRANSFER</span><span style="color:#D73A49"> =></span><span style="color:#005CC5"> true</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_POST</span><span style="color:#D73A49"> =></span><span style="color:#005CC5"> true</span><span style="color:#24292E">,</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_POSTFIELDS</span><span style="color:#D73A49"> =></span><span style="color:#24292E"> $data,</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#005CC5">    CURLOPT_HTTPHEADER</span><span style="color:#D73A49"> =></span><span style="color:#24292E"> $headers,</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#24292E">]);</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#24292E">$response </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> curl_exec</span><span style="color:#24292E">($curl);</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#24292E">$httpCode </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> curl_getinfo</span><span style="color:#24292E">($curl, </span><span style="color:#005CC5">CURLINFO_HTTP_CODE</span><span style="color:#24292E">);</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#24292E">$contentType </span><span style="color:#D73A49">=</span><span style="color:#24292E"> (</span><span style="color:#D73A49">string</span><span style="color:#24292E">) </span><span style="color:#005CC5">curl_getinfo</span><span style="color:#24292E">($curl, </span><span style="color:#005CC5">CURLINFO_CONTENT_TYPE</span><span style="color:#24292E">);</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#005CC5">curl_close</span><span style="color:#24292E">($curl);</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#D73A49">if</span><span style="color:#24292E"> ($httpCode </span><span style="color:#D73A49">===</span><span style="color:#005CC5"> 200</span><span style="color:#D73A49"> &#x26;&#x26;</span><span style="color:#005CC5"> str_starts_with</span><span style="color:#24292E">($contentType, </span><span style="color:#032F62">'application/json'</span><span style="color:#24292E">)) {</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#6A737D">    // Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#005CC5">    echo</span><span style="color:#005CC5"> json_encode</span><span style="color:#24292E">(</span><span style="color:#005CC5">json_decode</span><span style="color:#24292E">($response, </span><span style="color:#005CC5">true</span><span style="color:#24292E">), </span><span style="color:#005CC5">JSON_PRETTY_PRINT</span><span style="color:#24292E">);</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#24292E">} </span><span style="color:#D73A49">elseif</span><span style="color:#24292E"> ($httpCode </span><span style="color:#D73A49">===</span><span style="color:#005CC5"> 200</span><span style="color:#24292E">) {</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#005CC5">    file_put_contents</span><span style="color:#24292E">(</span><span style="color:#032F62">'output.mp4'</span><span style="color:#24292E">, $response);</span></span></span></span>
<span class="line"><span class="line-number">39</span><span class="line-content"><span class="line"><span style="color:#005CC5">    echo</span><span style="color:#032F62"> "Saved output.mp4</span><span style="color:#005CC5">\n</span><span style="color:#032F62">"</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number">40</span><span class="line-content"><span class="line"><span style="color:#24292E">} </span><span style="color:#D73A49">else</span><span style="color:#24292E"> {</span></span></span></span>
<span class="line"><span class="line-number">41</span><span class="line-content"><span class="line"><span style="color:#005CC5">    echo</span><span style="color:#032F62"> "Error: </span><span style="color:#24292E">$httpCode</span><span style="color:#005CC5">\n</span><span style="color:#032F62">"</span><span style="color:#24292E">;</span></span></span></span>
<span class="line"><span class="line-number">42</span><span class="line-content"><span class="line"><span style="color:#005CC5">    echo</span><span style="color:#24292E"> $response;</span></span></span></span>
<span class="line"><span class="line-number">43</span><span class="line-content"><span class="line"><span style="color:#24292E">}</span></span></span></span>
<span class="line"><span class="line-number">44</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">45</span><span class="line-content"><span class="line"><span style="color:#D73A49">?></span></span></span></span></code></pre>53:T2bf0,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#F97583">&#x3C;?</span><span style="color:#79B8FF">php</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$url </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "https://api.segmind.com/v1/wan3.0-video"</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$headers </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> [</span></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    'x-api-key: YOUR_API_KEY'</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">    'Content-Type: application/json'</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">];</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$data </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> '{</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">}'</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$curl </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> curl_init</span><span style="color:#E1E4E8">();</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#79B8FF">curl_setopt_array</span><span style="color:#E1E4E8">($curl, [</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_URL</span><span style="color:#F97583"> =></span><span style="color:#E1E4E8"> $url,</span></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_RETURNTRANSFER</span><span style="color:#F97583"> =></span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_POST</span><span style="color:#F97583"> =></span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_POSTFIELDS</span><span style="color:#F97583"> =></span><span style="color:#E1E4E8"> $data,</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    CURLOPT_HTTPHEADER</span><span style="color:#F97583"> =></span><span style="color:#E1E4E8"> $headers,</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">]);</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$response </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> curl_exec</span><span style="color:#E1E4E8">($curl);</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$httpCode </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> curl_getinfo</span><span style="color:#E1E4E8">($curl, </span><span style="color:#79B8FF">CURLINFO_HTTP_CODE</span><span style="color:#E1E4E8">);</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">$contentType </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> (</span><span style="color:#F97583">string</span><span style="color:#E1E4E8">) </span><span style="color:#79B8FF">curl_getinfo</span><span style="color:#E1E4E8">($curl, </span><span style="color:#79B8FF">CURLINFO_CONTENT_TYPE</span><span style="color:#E1E4E8">);</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#79B8FF">curl_close</span><span style="color:#E1E4E8">($curl);</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#F97583">if</span><span style="color:#E1E4E8"> ($httpCode </span><span style="color:#F97583">===</span><span style="color:#79B8FF"> 200</span><span style="color:#F97583"> &#x26;&#x26;</span><span style="color:#79B8FF"> str_starts_with</span><span style="color:#E1E4E8">($contentType, </span><span style="color:#9ECBFF">'application/json'</span><span style="color:#E1E4E8">)) {</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#6A737D">    // Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    echo</span><span style="color:#79B8FF"> json_encode</span><span style="color:#E1E4E8">(</span><span style="color:#79B8FF">json_decode</span><span style="color:#E1E4E8">($response, </span><span style="color:#79B8FF">true</span><span style="color:#E1E4E8">), </span><span style="color:#79B8FF">JSON_PRETTY_PRINT</span><span style="color:#E1E4E8">);</span></span></span></span>
<span class="line"><span class="line-number">37</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">} </span><span style="color:#F97583">elseif</span><span style="color:#E1E4E8"> ($httpCode </span><span style="color:#F97583">===</span><span style="color:#79B8FF"> 200</span><span style="color:#E1E4E8">) {</span></span></span></span>
<span class="line"><span class="line-number">38</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    file_put_contents</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'output.mp4'</span><span style="color:#E1E4E8">, $response);</span></span></span></span>
<span class="line"><span class="line-number">39</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    echo</span><span style="color:#9ECBFF"> "Saved output.mp4</span><span style="color:#79B8FF">\n</span><span style="color:#9ECBFF">"</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number">40</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">} </span><span style="color:#F97583">else</span><span style="color:#E1E4E8"> {</span></span></span></span>
<span class="line"><span class="line-number">41</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    echo</span><span style="color:#9ECBFF"> "Error: </span><span style="color:#E1E4E8">$httpCode</span><span style="color:#79B8FF">\n</span><span style="color:#9ECBFF">"</span><span style="color:#E1E4E8">;</span></span></span></span>
<span class="line"><span class="line-number">42</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    echo</span><span style="color:#E1E4E8"> $response;</span></span></span></span>
<span class="line"><span class="line-number">43</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">}</span></span></span></span>
<span class="line"><span class="line-number">44</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">45</span><span class="line-content"><span class="line"><span style="color:#F97583">?></span></span></span></span></code></pre>54:T532,require 'net/http'
require 'json'
require 'uri'

uri = URI('https://api.segmind.com/v1/wan3.0-video')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request['x-api-key'] = 'YOUR_API_KEY'
request['Content-Type'] = 'application/json'
request.body = '{
  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",
  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",
  "resolution": "720P",
  "duration": 5,
  "aspect_ratio": "16:9",
  "prompt_extend": true,
  "watermark": false,
  "audio": true
}'

response = http.request(request)

if response.code == '200'
  # Media models return the file itself; a JSON body carries the result instead.
  if response['content-type'].to_s.start_with?('application/json')
    puts JSON.pretty_generate(JSON.parse(response.body))
  else
    File.binwrite('output.mp4', response.body)
    puts 'Saved output.mp4'
  end
else
  puts "Error: #{response.code}"
  puts response.body
end55:T2654,<pre class="shiki-light" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#D73A49">require</span><span style="color:#032F62"> 'net/http'</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#D73A49">require</span><span style="color:#032F62"> 'json'</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#D73A49">require</span><span style="color:#032F62"> 'uri'</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#E36209">uri</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> URI</span><span style="color:#24292E">(</span><span style="color:#032F62">'https://api.segmind.com/v1/wan3.0-video'</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#E36209">http</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> Net</span><span style="color:#24292E">::</span><span style="color:#005CC5">HTTP</span><span style="color:#24292E">.</span><span style="color:#D73A49">new</span><span style="color:#24292E">(uri.</span><span style="color:#6F42C1">host</span><span style="color:#24292E">, uri.</span><span style="color:#6F42C1">port</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#24292E">http.</span><span style="color:#6F42C1">use_ssl</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> true</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#E36209">request</span><span style="color:#D73A49"> =</span><span style="color:#005CC5"> Net</span><span style="color:#24292E">::</span><span style="color:#005CC5">HTTP</span><span style="color:#24292E">::</span><span style="color:#005CC5">Post</span><span style="color:#24292E">.</span><span style="color:#D73A49">new</span><span style="color:#24292E">(uri)</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#24292E">request[</span><span style="color:#032F62">'x-api-key'</span><span style="color:#24292E">] </span><span style="color:#D73A49">=</span><span style="color:#032F62"> 'YOUR_API_KEY'</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#24292E">request[</span><span style="color:#032F62">'Content-Type'</span><span style="color:#24292E">] </span><span style="color:#D73A49">=</span><span style="color:#032F62"> 'application/json'</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#24292E">request.</span><span style="color:#6F42C1">body</span><span style="color:#D73A49"> =</span><span style="color:#032F62"> '{</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#032F62">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#032F62">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#032F62">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#032F62">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#032F62">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#032F62">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#032F62">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#032F62">}'</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#E36209">response</span><span style="color:#D73A49"> =</span><span style="color:#24292E"> http.</span><span style="color:#6F42C1">request</span><span style="color:#24292E">(request)</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#D73A49">if</span><span style="color:#24292E"> response.</span><span style="color:#6F42C1">code</span><span style="color:#D73A49"> ==</span><span style="color:#032F62"> '200'</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#6A737D">  # Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#D73A49">  if</span><span style="color:#24292E"> response[</span><span style="color:#032F62">'content-type'</span><span style="color:#24292E">].</span><span style="color:#6F42C1">to_s</span><span style="color:#24292E">.</span><span style="color:#6F42C1">start_with?</span><span style="color:#24292E">(</span><span style="color:#032F62">'application/json'</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#005CC5">    puts</span><span style="color:#005CC5"> JSON</span><span style="color:#24292E">.</span><span style="color:#6F42C1">pretty_generate</span><span style="color:#24292E">(</span><span style="color:#005CC5">JSON</span><span style="color:#24292E">.</span><span style="color:#6F42C1">parse</span><span style="color:#24292E">(response.</span><span style="color:#6F42C1">body</span><span style="color:#24292E">))</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#D73A49">  else</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#005CC5">    File</span><span style="color:#24292E">.</span><span style="color:#6F42C1">binwrite</span><span style="color:#24292E">(</span><span style="color:#032F62">'output.mp4'</span><span style="color:#24292E">, response.</span><span style="color:#6F42C1">body</span><span style="color:#24292E">)</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#005CC5">    puts</span><span style="color:#032F62"> 'Saved output.mp4'</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#D73A49">  end</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"><span style="color:#D73A49">else</span></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#005CC5">  puts</span><span style="color:#032F62"> "Error: </span><span style="color:#032F62">#{response.</span><span style="color:#6F42C1">code</span><span style="color:#032F62">}</span><span style="color:#032F62">"</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#005CC5">  puts</span><span style="color:#24292E"> response.</span><span style="color:#6F42C1">body</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#D73A49">end</span></span></span></span></code></pre>56:T2653,<pre class="shiki-dark" style="" tabindex="0"><code><span class="line"><span class="line-number"> 1</span><span class="line-content"><span class="line"><span style="color:#F97583">require</span><span style="color:#9ECBFF"> 'net/http'</span></span></span></span>
<span class="line"><span class="line-number"> 2</span><span class="line-content"><span class="line"><span style="color:#F97583">require</span><span style="color:#9ECBFF"> 'json'</span></span></span></span>
<span class="line"><span class="line-number"> 3</span><span class="line-content"><span class="line"><span style="color:#F97583">require</span><span style="color:#9ECBFF"> 'uri'</span></span></span></span>
<span class="line"><span class="line-number"> 4</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 5</span><span class="line-content"><span class="line"><span style="color:#FFAB70">uri</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> URI</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'https://api.segmind.com/v1/wan3.0-video'</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number"> 6</span><span class="line-content"><span class="line"><span style="color:#FFAB70">http</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> Net</span><span style="color:#E1E4E8">::</span><span style="color:#79B8FF">HTTP</span><span style="color:#E1E4E8">.</span><span style="color:#F97583">new</span><span style="color:#E1E4E8">(uri.</span><span style="color:#B392F0">host</span><span style="color:#E1E4E8">, uri.</span><span style="color:#B392F0">port</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number"> 7</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">http.</span><span style="color:#B392F0">use_ssl</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> true</span></span></span></span>
<span class="line"><span class="line-number"> 8</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number"> 9</span><span class="line-content"><span class="line"><span style="color:#FFAB70">request</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> Net</span><span style="color:#E1E4E8">::</span><span style="color:#79B8FF">HTTP</span><span style="color:#E1E4E8">::</span><span style="color:#79B8FF">Post</span><span style="color:#E1E4E8">.</span><span style="color:#F97583">new</span><span style="color:#E1E4E8">(uri)</span></span></span></span>
<span class="line"><span class="line-number">10</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">request[</span><span style="color:#9ECBFF">'x-api-key'</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> 'YOUR_API_KEY'</span></span></span></span>
<span class="line"><span class="line-number">11</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">request[</span><span style="color:#9ECBFF">'Content-Type'</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> 'application/json'</span></span></span></span>
<span class="line"><span class="line-number">12</span><span class="line-content"><span class="line"><span style="color:#E1E4E8">request.</span><span style="color:#B392F0">body</span><span style="color:#F97583"> =</span><span style="color:#9ECBFF"> '{</span></span></span></span>
<span class="line"><span class="line-number">13</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt": "The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.",</span></span></span></span>
<span class="line"><span class="line-number">14</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "image": "https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg",</span></span></span></span>
<span class="line"><span class="line-number">15</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "resolution": "720P",</span></span></span></span>
<span class="line"><span class="line-number">16</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "duration": 5,</span></span></span></span>
<span class="line"><span class="line-number">17</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "aspect_ratio": "16:9",</span></span></span></span>
<span class="line"><span class="line-number">18</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "prompt_extend": true,</span></span></span></span>
<span class="line"><span class="line-number">19</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "watermark": false,</span></span></span></span>
<span class="line"><span class="line-number">20</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">  "audio": true</span></span></span></span>
<span class="line"><span class="line-number">21</span><span class="line-content"><span class="line"><span style="color:#9ECBFF">}'</span></span></span></span>
<span class="line"><span class="line-number">22</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">23</span><span class="line-content"><span class="line"><span style="color:#FFAB70">response</span><span style="color:#F97583"> =</span><span style="color:#E1E4E8"> http.</span><span style="color:#B392F0">request</span><span style="color:#E1E4E8">(request)</span></span></span></span>
<span class="line"><span class="line-number">24</span><span class="line-content"><span class="line"></span></span></span>
<span class="line"><span class="line-number">25</span><span class="line-content"><span class="line"><span style="color:#F97583">if</span><span style="color:#E1E4E8"> response.</span><span style="color:#B392F0">code</span><span style="color:#F97583"> ==</span><span style="color:#9ECBFF"> '200'</span></span></span></span>
<span class="line"><span class="line-number">26</span><span class="line-content"><span class="line"><span style="color:#6A737D">  # Media models return the file itself; a JSON body carries the result instead.</span></span></span></span>
<span class="line"><span class="line-number">27</span><span class="line-content"><span class="line"><span style="color:#F97583">  if</span><span style="color:#E1E4E8"> response[</span><span style="color:#9ECBFF">'content-type'</span><span style="color:#E1E4E8">].</span><span style="color:#B392F0">to_s</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">start_with?</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'application/json'</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">28</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    puts</span><span style="color:#79B8FF"> JSON</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">pretty_generate</span><span style="color:#E1E4E8">(</span><span style="color:#79B8FF">JSON</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">parse</span><span style="color:#E1E4E8">(response.</span><span style="color:#B392F0">body</span><span style="color:#E1E4E8">))</span></span></span></span>
<span class="line"><span class="line-number">29</span><span class="line-content"><span class="line"><span style="color:#F97583">  else</span></span></span></span>
<span class="line"><span class="line-number">30</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    File</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">binwrite</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'output.mp4'</span><span style="color:#E1E4E8">, response.</span><span style="color:#B392F0">body</span><span style="color:#E1E4E8">)</span></span></span></span>
<span class="line"><span class="line-number">31</span><span class="line-content"><span class="line"><span style="color:#79B8FF">    puts</span><span style="color:#9ECBFF"> 'Saved output.mp4'</span></span></span></span>
<span class="line"><span class="line-number">32</span><span class="line-content"><span class="line"><span style="color:#F97583">  end</span></span></span></span>
<span class="line"><span class="line-number">33</span><span class="line-content"><span class="line"><span style="color:#F97583">else</span></span></span></span>
<span class="line"><span class="line-number">34</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  puts</span><span style="color:#9ECBFF"> "Error: </span><span style="color:#9ECBFF">#{response.</span><span style="color:#B392F0">code</span><span style="color:#9ECBFF">}</span><span style="color:#9ECBFF">"</span></span></span></span>
<span class="line"><span class="line-number">35</span><span class="line-content"><span class="line"><span style="color:#79B8FF">  puts</span><span style="color:#E1E4E8"> response.</span><span style="color:#B392F0">body</span></span></span></span>
<span class="line"><span class="line-number">36</span><span class="line-content"><span class="line"><span style="color:#F97583">end</span></span></span></span></code></pre>29:["$","div",null,{"className":"space-y-6 md:space-y-8","children":[["$","div",null,{"className":"flex flex-col lg:grid lg:grid-cols-2 gap-6 lg:gap-8","children":[["$","div",null,{"className":"order-1 lg:order-1","children":["$","$L30",null,{"groups":[{"mode":"async","label":"Async","mechanism":"POST /v2/wan3.0-video Â· submit + poll","examples":[{"language":"python-sdk","label":"Python (SDK)","code":"$31","highlightedLight":"$32","highlightedDark":"$33"},{"language":"curl","label":"cURL","code":"$34","highlightedLight":"$35","highlightedDark":"$36"},{"language":"javascript","label":"JavaScript","code":"$37","highlightedLight":"$38","highlightedDark":"$39"},{"language":"go","label":"Go","code":"$3a","highlightedLight":"$3b","highlightedDark":"$3c"},{"language":"php","label":"PHP","code":"$3d","highlightedLight":"$3e","highlightedDark":"$3f"},{"language":"ruby","label":"Ruby","code":"$40","highlightedLight":"$41","highlightedDark":"$42"}]},{"mode":"sync","label":"Sync","mechanism":"POST /v1/wan3.0-video Â· single blocking call","examples":[{"language":"python-sdk","label":"Python (SDK)","code":"$43","highlightedLight":"$44","highlightedDark":"$45"},{"language":"python","label":"Python (requests)","code":"$46","highlightedLight":"$47","highlightedDark":"$48"},{"language":"curl","label":"cURL","code":"curl -X POST \"https://api.segmind.com/v1/wan3.0-video\" \\\n  -H \"x-api-key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n  \"prompt\": \"The ocean waves roll gently onto the shore and spread across the wet, reflective sand as warm golden sunset light shimmers on the water. Sea foam bubbles and recedes, a soft breeze stirs the surface, and the seagulls glide and flap slowly across the glowing sky. Natural, realistic motion. Ambient sound of rolling ocean waves, gentle sea breeze, and distant seagull calls.\",\n  \"image\": \"https://segmind-resources.s3.amazonaws.com/input/wan3.0-video-first-frame.jpg\",\n  \"resolution\": \"720P\",\n  \"duration\": 5,\n  \"aspect_ratio\": \"16:9\",\n  \"prompt_extend\": true,\n  \"watermark\": false,\n  \"audio\": true\n}' \\\n  -o output.mp4","highlightedLight":"$49","highlightedDark":"$4a"},{"language":"javascript","label":"JavaScript","code":"$4b","highlightedLight":"$4c","highlightedDark":"$4d"},{"language":"go","label":"Go","code":"$4e","highlightedLight":"$4f","highlightedDark":"$50"},{"language":"php","label":"PHP","code":"$51","highlightedLight":"$52","highlightedDark":"$53"},{"language":"ruby","label":"Ruby","code":"$54","highlightedLight":"$55","highlightedDark":"$56"}]}]}]}],"$L57"]}],"$L58","$L59"]}]
5a:I[24824,["6693","static/chunks/fba4ba2d-460e04194f22506f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","3009","static/chunks/6a7d804d-a5cc510ceffe206f.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","7505","static/chunks/c02d83f4-5637599209ef9447.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","9509","static/chunks/9509-6125acd3006111c1.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","4378","static/chunks/4378-3f82908971052aa9.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6397","static/chunks/6397-b7ccd1edf8aedf12.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1742","static/chunks/1742-0ea812562873537a.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","1172","static/chunks/1172-89020d82938322e4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","6140","static/chunks/6140-b94b4e43e1bb103d.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x","8012","static/chunks/app/models/%5Broute%5D/api/page-117c8b87bdd6a7b4.js?dpl=dpl_CPYCfxesaX7RKfJUQZpH2JDib41x"],"ParameterDisplay"]
57:["$","div",null,{"className":"order-2 lg:order-2","children":["$","div",null,{"ref":"$undefined","className":"rounded-lg transition-all duration-200 text-foreground text-base p-4 md:p-6 bg-surface border border-border shadow-sm h-fit","children":["$","div",null,{"className":"space-y-4 sm:space-y-6","children":[["$","div",null,{"children":[["$","h3",null,{"className":"text-sm font-medium text-muted-foreground mb-2","children":"API Endpoint"}],["$","div",null,{"className":"bg-muted/30 border border-border px-2.5 py-2 rounded-md flex items-center gap-2","children":[["$","span",null,{"className":"text-xs font-medium text-muted-foreground bg-background px-2 py-0.5 rounded border border-border flex-shrink-0","children":"POST"}],["$","code",null,{"className":"text-xs font-mono text-foreground break-all overflow-x-auto","children":["https://api.segmind.com/v1/","wan3.0-video"]}]]}]]}],["$","div",null,{"children":[["$","h3",null,{"className":"text-lg font-medium text-foreground mb-4","children":"Parameters"}],["$","div",null,{"className":"space-y-3","children":[["$","$L5a","prompt",{"param":{"name":"prompt","type":"string","description":"Describe the video. Required unless you supply an image or video input.","required":true}}],["$","$L5a","aspect_ratio",{"param":{"name":"aspect_ratio","type":"string","description":"Framing for text-to-video. Ignored when a first frame or reference sets the shape.","required":false,"enum":["16:9","4:3","1:1","3:4","9:16","adaptive"],"enumLabels":["16:9","4:3","1:1","3:4","9:16","Adaptive - match the input"],"oneOf":"$1f:props:modelDetails:parameters_schema:properties:aspect_ratio:oneOf"}}],["$","$L5a","audio",{"param":{"name":"audio","type":"boolean","description":"Generate a synchronised soundtrack in the same pass. Does not change the price.","required":false,"default":true}}],["$","$L5a","audio_url",{"param":{"name":"audio_url","type":"$1f:props:modelDetails:parameters_schema:properties:audio_url:type","description":"Optional audio track to drive the video, including lip-sync.","required":false,"format":"uri"}}],["$","$L5a","duration",{"param":{"name":"duration","type":"integer","description":"Clip length, 2 to 30 seconds. Affects pricing. Use -1 to match the source when editing a video.","required":false,"default":5,"minimum":-1,"maximum":30}}],["$","$L5a","image",{"param":{"name":"image","type":"$1f:props:modelDetails:parameters_schema:properties:image:type","description":"Start the video from this image (image-to-video).","required":false,"format":"uri"}}],["$","$L5a","last_frame",{"param":{"name":"last_frame","type":"$1f:props:modelDetails:parameters_schema:properties:last_frame:type","description":"Optional end frame. Use with First Frame to control the whole shot.","required":false,"format":"uri"}}],["$","$L5a","negative_prompt",{"param":{"name":"negative_prompt","type":"string","description":"Content to keep out of the video.","required":false}}],["$","$L5a","prompt_extend",{"param":{"name":"prompt_extend","type":"boolean","description":"Let the model rewrite and enrich short prompts.","required":false,"default":true}}],["$","$L5a","reference_images",{"param":{"name":"reference_images","type":"string[]","description":"Images whose subject, character or style the video should follow.","required":false,"items":"$1f:props:modelDetails:parameters_schema:properties:reference_images:items"}}],["$","$L5a","reference_videos",{"param":{"name":"reference_videos","type":"string[]","description":"Videos to guide motion or style, or the clip you want edited. Each second of reference video is billed at the output rate (15 seconds maximum per video).","required":false,"items":"$1f:props:modelDetails:parameters_schema:properties:reference_videos:items"}}],["$","$L5a","resolution",{"param":{"name":"resolution","type":"string","description":"Output resolution. Affects pricing.","required":false,"enum":["480P","720P","1080P"],"enumLabels":["480p","720p","1080p"],"default":"720P","oneOf":"$1f:props:modelDetails:parameters_schema:properties:resolution:oneOf"}}],["$","$L5a","seed",{"param":{"name":"seed","type":"integer","description":"Seed for reproducible results.","required":false,"minimum":0,"maximum":2147483647}}],["$","$L5a","watermark",{"param":{"name":"watermark","type":"boolean","description":"Add an \"AI Generated\" watermark.","required":false,"default":false}}]]}]]}],["$","div",null,{"className":"bg-emerald-500/5 border border-emerald-500/20 p-4 rounded-lg","children":[["$","h4",null,{"className":"text-sm font-medium text-emerald-700 dark:text-emerald-400 mb-2","children":"Response Type"}],["$","p",null,{"className":"text-sm text-emerald-600 dark:text-emerald-500 leading-relaxed","children":["Returns: ",["$","span",null,{"className":"font-semibold","children":"Video"}]]}]]}]]}]}]}]
58:["$","div",null,{"ref":"$undefined","className":"rounded-lg transition-all duration-200 text-foreground shadow-sm text-base p-6 bg-surface border border-border","children":[["$","h3",null,{"className":"text-lg font-medium text-foreground mb-2","children":"Asynchronous requests (v2)"}],["$","p",null,{"className":"text-sm text-muted-foreground mb-4","children":["Use ",["$","span",null,{"className":"font-medium text-foreground","children":"Async"}]," for video, long-running (>~60s), or high-concurrency workloads; ",["$","span",null,{"className":"font-medium text-foreground","children":"Sync"}]," ","is simplest for fast image & LLM calls. Async submits a"," ",["$","span",null,{"className":"font-medium text-foreground","children":"request"}]," and you poll it to completion."]}],["$","ol",null,{"className":"space-y-2 mb-5","children":[["$","li","1",{"className":"flex items-start gap-3","children":[["$","span",null,{"className":"text-xs font-mono bg-muted text-muted-foreground px-2 py-1 rounded flex-shrink-0","children":"1"}],["$","div",null,{"className":"min-w-0","children":[["$","code",null,{"className":"text-xs font-mono text-foreground break-all","children":"POST /v2/wan3.0-video"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":[["$","span",null,{"className":"font-medium","children":"Submit"}]," â€” ","returns request_id, status_url, response_url"]}]]}]]}],["$","li","2",{"className":"flex items-start gap-3","children":[["$","span",null,{"className":"text-xs font-mono bg-muted text-muted-foreground px-2 py-1 rounded flex-shrink-0","children":"2"}],["$","div",null,{"className":"min-w-0","children":[["$","code",null,{"className":"text-xs font-mono text-foreground break-all","children":"GET /v2/requests/{id}/status"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":[["$","span",null,{"className":"font-medium","children":"Poll"}]," â€” ","until COMPLETED or FAILED"]}]]}]]}],["$","li","3",{"className":"flex items-start gap-3","children":[["$","span",null,{"className":"text-xs font-mono bg-muted text-muted-foreground px-2 py-1 rounded flex-shrink-0","children":"3"}],["$","div",null,{"className":"min-w-0","children":[["$","code",null,{"className":"text-xs font-mono text-foreground break-all","children":"GET /v2/requests/{id}"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":[["$","span",null,{"className":"font-medium","children":"Result"}]," â€” ","final response body"]}]]}]]}]]}],["$","h4",null,{"className":"text-sm font-medium text-foreground mb-2","children":"Status states"}],["$","div",null,{"className":"grid sm:grid-cols-2 gap-2 mb-5","children":[["$","div","QUEUED",{"className":"flex items-center gap-2 bg-muted/30 border border-border px-3 py-2 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono font-semibold text-muted-foreground","children":"QUEUED"}],["$","span",null,{"className":"text-xs text-muted-foreground","children":["â€” ","Accepted, waiting for a worker"]}]]}],["$","div","PROCESSING",{"className":"flex items-center gap-2 bg-muted/30 border border-border px-3 py-2 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono font-semibold text-blue-600 dark:text-blue-400","children":"PROCESSING"}],["$","span",null,{"className":"text-xs text-muted-foreground","children":["â€” ","Running on a worker"]}]]}],["$","div","COMPLETED",{"className":"flex items-center gap-2 bg-muted/30 border border-border px-3 py-2 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono font-semibold text-emerald-600 dark:text-emerald-400","children":"COMPLETED"}],["$","span",null,{"className":"text-xs text-muted-foreground","children":["â€” ","Done â€” result body is ready"]}]]}],["$","div","FAILED",{"className":"flex items-center gap-2 bg-muted/30 border border-border px-3 py-2 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono font-semibold text-red-600 dark:text-red-400","children":"FAILED"}],["$","span",null,{"className":"text-xs text-muted-foreground","children":["â€” ","Errored (incl. content/RAI blocks)"]}]]}]]}],"$L5b"]}]
59:["$","div",null,{"ref":"$undefined","className":"rounded-lg transition-all duration-200 text-foreground shadow-sm text-base p-6 bg-surface border border-border","children":[["$","h3",null,{"className":"text-lg font-medium text-foreground mb-4","children":"Common Error Codes"}],["$","p",null,{"className":"text-sm text-muted-foreground mb-4","children":"The API returns standard HTTP status codes. Detailed error messages are provided in the response body."}],["$","div",null,{"className":"grid sm:grid-cols-2 gap-3","children":[["$","div","400",{"className":"flex items-start gap-3 bg-muted/30 border border-border p-3 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono bg-red-500/10 text-red-600 dark:text-red-400 px-2 py-1 rounded flex-shrink-0","children":"400"}],["$","div",null,{"className":"min-w-0","children":[["$","h4",null,{"className":"text-sm font-medium text-foreground","children":"Bad Request"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":"Invalid parameters or request format"}]]}]]}],["$","div","401",{"className":"flex items-start gap-3 bg-muted/30 border border-border p-3 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono bg-red-500/10 text-red-600 dark:text-red-400 px-2 py-1 rounded flex-shrink-0","children":"401"}],["$","div",null,{"className":"min-w-0","children":[["$","h4",null,{"className":"text-sm font-medium text-foreground","children":"Unauthorized"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":"Missing or invalid API key"}]]}]]}],["$","div","403",{"className":"flex items-start gap-3 bg-muted/30 border border-border p-3 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono bg-red-500/10 text-red-600 dark:text-red-400 px-2 py-1 rounded flex-shrink-0","children":"403"}],["$","div",null,{"className":"min-w-0","children":[["$","h4",null,{"className":"text-sm font-medium text-foreground","children":"Forbidden"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":"Insufficient permissions"}]]}]]}],["$","div","404",{"className":"flex items-start gap-3 bg-muted/30 border border-border p-3 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono bg-red-500/10 text-red-600 dark:text-red-400 px-2 py-1 rounded flex-shrink-0","children":"404"}],["$","div",null,{"className":"min-w-0","children":[["$","h4",null,{"className":"text-sm font-medium text-foreground","children":"Not Found"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":"Model or endpoint not found"}]]}]]}],["$","div","406",{"className":"flex items-start gap-3 bg-muted/30 border border-border p-3 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono bg-red-500/10 text-red-600 dark:text-red-400 px-2 py-1 rounded flex-shrink-0","children":"406"}],["$","div",null,{"className":"min-w-0","children":[["$","h4",null,{"className":"text-sm font-medium text-foreground","children":"Insufficient Credits"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":"Not enough credits to process request"}]]}]]}],["$","div","429",{"className":"flex items-start gap-3 bg-muted/30 border border-border p-3 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono bg-red-500/10 text-red-600 dark:text-red-400 px-2 py-1 rounded flex-shrink-0","children":"429"}],["$","div",null,{"className":"min-w-0","children":[["$","h4",null,{"className":"text-sm font-medium text-foreground","children":"Rate Limited"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":"Too many requests"}]]}]]}],["$","div","500",{"className":"flex items-start gap-3 bg-muted/30 border border-border p-3 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono bg-red-500/10 text-red-600 dark:text-red-400 px-2 py-1 rounded flex-shrink-0","children":"500"}],["$","div",null,{"className":"min-w-0","children":[["$","h4",null,{"className":"text-sm font-medium text-foreground","children":"Server Error"}],"$L5c"]}]]}],"$L5d","$L5e"]}]]}]
5b:["$","ul",null,{"className":"space-y-1.5 text-sm text-muted-foreground list-disc pl-5","children":[["$","li",null,{"children":["A ",["$","span",null,{"className":"font-mono text-foreground","children":"FAILED"}]," request is served as HTTP"," ",["$","span",null,{"className":"font-mono text-foreground","children":"422"}]," â€” the body still carries the"," ",["$","span",null,{"className":"font-mono text-foreground","children":"error"}]," detail."]}],["$","li",null,{"children":["An unknown or expired ",["$","span",null,{"className":"font-mono text-foreground","children":"request_id"}]," returns HTTP"," ",["$","span",null,{"className":"font-mono text-foreground","children":"404"}],"."]}],["$","li",null,{"children":["Results are retained for ",["$","span",null,{"className":"font-medium text-foreground","children":"1 hour"}],", then expire."]}],["$","li",null,{"children":["Content / RAI blocks surface as ",["$","span",null,{"className":"font-mono text-foreground","children":"FAILED"}],", not a separate state."]}],["$","li",null,{"children":["Track completion by ",["$","span",null,{"className":"font-medium text-foreground","children":"polling"}]," the status endpoint."]}]]}]
5c:["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":"Internal server error"}]
5d:["$","div","502",{"className":"flex items-start gap-3 bg-muted/30 border border-border p-3 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono bg-red-500/10 text-red-600 dark:text-red-400 px-2 py-1 rounded flex-shrink-0","children":"502"}],["$","div",null,{"className":"min-w-0","children":[["$","h4",null,{"className":"text-sm font-medium text-foreground","children":"Bad Gateway"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":"Service temporarily unavailable"}]]}]]}]
5e:["$","div","504",{"className":"flex items-start gap-3 bg-muted/30 border border-border p-3 rounded-lg","children":[["$","span",null,{"className":"text-xs font-mono bg-red-500/10 text-red-600 dark:text-red-400 px-2 py-1 rounded flex-shrink-0","children":"504"}],["$","div",null,{"className":"min-w-0","children":[["$","h4",null,{"className":"text-sm font-medium text-foreground","children":"Timeout"}],["$","p",null,{"className":"text-xs text-muted-foreground mt-0.5","children":"Request timed out"}]]}]]}]
