[{"data":1,"prerenderedAt":180},["ShallowReactive",2],{"blog-list":3},[4,70,127],{"id":5,"title":6,"body":7,"date":61,"description":62,"extension":63,"meta":64,"navigation":65,"path":66,"seo":67,"stem":68,"__hash__":69},"blog\u002Fblog\u002Fimage-video-endpoints.md","Image and video endpoints",{"type":8,"value":9,"toc":55},"minimark",[10,15,19,48,52],[11,12,14],"h2",{"id":13},"shared-surface","Shared surface",[16,17,18],"p",{},"Use the same API key for:",[20,21,22,30,36,42],"ul",{},[23,24,25,29],"li",{},[26,27,28],"code",{},"POST \u002Fv1\u002Fvideo"," — Veo 3 \u002F Flow video",[23,31,32,35],{},[26,33,34],{},"POST \u002Fv1\u002Fimage"," — still generation",[23,37,38,41],{},[26,39,40],{},"GET \u002Fv1\u002Fjobs\u002F:id"," — status and result URLs",[23,43,44,47],{},[26,45,46],{},"GET \u002Fv1\u002Fcredits"," — remaining balance",[11,49,51],{"id":50},"design-goal","Design goal",[16,53,54],{},"Keep payloads small, responses consistent, and billing obvious so global teams can integrate without a long onboarding path.",{"title":56,"searchDepth":57,"depth":57,"links":58},"",2,[59,60],{"id":13,"depth":57,"text":14},{"id":50,"depth":57,"text":51},"2026-07-28","One auth model for stills and motion — how the Switflow media APIs fit together.","md",{},true,"\u002Fblog\u002Fimage-video-endpoints",{"title":6,"description":62},"blog\u002Fimage-video-endpoints","h_0Ukbdoz661FmcbsIx3XuEq33VM02oCcHQgXFLqcrQ",{"id":71,"title":72,"body":73,"date":120,"description":121,"extension":63,"meta":122,"navigation":65,"path":123,"seo":124,"stem":125,"__hash__":126},"blog\u002Fblog\u002Fcredits-explained.md","Credits explained",{"type":8,"value":74,"toc":116},[75,79,106,109,113],[11,76,78],{"id":77},"simple-math","Simple math",[20,80,81,91,99],{},[23,82,83,87,88],{},[84,85,86],"strong",{},"20,000 credits"," = ",[84,89,90],{},"$10",[23,92,93,87,96],{},[84,94,95],{},"50 credits",[84,97,98],{},"1 request",[23,100,101,102,105],{},"About ",[84,103,104],{},"400 requests"," per pack",[16,107,108],{},"Video and image endpoints share the same balance.",[11,110,112],{"id":111},"when-to-top-up","When to top up",[16,114,115],{},"Top up from your profile when you are low. Credits stay on the account while it remains active.",{"title":56,"searchDepth":57,"depth":57,"links":117},[118,119],{"id":77,"depth":57,"text":78},{"id":111,"depth":57,"text":112},"2026-07-24","20,000 credits for $10 and 50 credits per request — what that means in practice.",{},"\u002Fblog\u002Fcredits-explained",{"title":72,"description":121},"blog\u002Fcredits-explained","aEswQG4y_z7gQobNwYXbX2zx73t7c-GFwARjy3Dr-io",{"id":128,"title":129,"body":130,"date":173,"description":174,"extension":63,"meta":175,"navigation":65,"path":176,"seo":177,"stem":178,"__hash__":179},"blog\u002Fblog\u002Fveo3-into-api.md","Turn Google Flow Veo 3 into an API",{"type":8,"value":131,"toc":168},[132,136,139,145,149,152,156],[11,133,135],{"id":134},"why-an-api-layer","Why an API layer",[16,137,138],{},"Google Flow is great for exploration. Production products need stable endpoints, keys, and predictable billing.",[16,140,141,142,144],{},"Switflow connects a Flow \u002F Veo 3 capable account and exposes ",[26,143,28],{}," with the same credit wallet used for image generation.",[11,146,148],{"id":147},"what-you-send","What you send",[16,150,151],{},"A prompt, optional aspect ratio, and duration. You get a job id, then poll until the asset is ready.",[11,153,155],{"id":154},"credits","Credits",[16,157,158,159,161,162,164,165,167],{},"Each generation request costs ",[84,160,95],{},". A ",[84,163,90],{}," pack gives ",[84,166,86],{},".",{"title":56,"searchDepth":57,"depth":57,"links":169},[170,171,172],{"id":134,"depth":57,"text":135},{"id":147,"depth":57,"text":148},{"id":154,"depth":57,"text":155},"2026-07-20","How Switflow wraps Veo 3 so your app can request video over HTTP.",{},"\u002Fblog\u002Fveo3-into-api",{"title":129,"description":174},"blog\u002Fveo3-into-api","avxbfzecUjIgPs3xhdZ5mDqlyahzj7nnjEsVsh5LqgU",1785477906746]