# Winter Vacation Promotions Template (video template) > Promote your seasonal sales with our Winter Vacation template. Ideal for holiday offers, discounts, and special marketing campaigns. ## Overview - **Page**: https://shotstack.io/studio/templates/winter-vacation-promotions-template-seasonal-offers-v2/ - **Output**: MP4, 1080x1920 (9:16), 25 fps - **Length**: 25s - **Timeline**: 23 clips on 16 tracks; assets: audio, luma, rich-text, svg, video - **Render endpoint (sandbox, free, watermarked)**: POST https://api.shotstack.io/edit/stage/render with header `x-api-key` - **Production**: same request against https://api.shotstack.io/edit/v1/render with a v1 key - **Preview in the browser (no account)**: https://shotstack.studio/#json=eyJ0aW1lbGluZSI6eyJiYWNrZ3JvdW5kIjoiI0ZGRkZGRiIsInRyYWNrcyI6W3siY2xpcHMiOlt7Imxlbmd0aCI6ImVuZCIsImFzc2V0Ijp7InR5cGUiOiJhdWRpbyIsInNyYyI6Int7IEFVRElPIH19Iiwidm9sdW1lIjoxfSwic3RhcnQiOjAuMTJ9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiJ7e1MzX1NvY2lhbF9IYW5kbGV9fSIsImZvbnQiOnsiZmFtaWx5IjoiTW9udHNlcnJhdCBTZW1pQm9sZCIsInNpemUiOjM2LCJ3ZWlnaHQiOjYwMCwiY29sb3IiOiJ7eyBGT05UX0NPTE9SIH19Iiwib3BhY2l0eSI6MX0sInN0eWxlIjp7ImxldHRlclNwYWNpbmciOjAsIndvcmRTcGFjaW5nIjowLCJsaW5lSGVpZ2h0IjoxLCJ0ZXh0VHJhbnNmb3JtIjoibm9uZSIsInRleHREZWNvcmF0aW9uIjoibm9uZSJ9LCJhbGlnbiI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJtaWRkbGUifSwiYW5pbWF0aW9uIjp7InByZXNldCI6ImZhZGVJbiIsInN0eWxlIjoid29yZCJ9fSwic3RhcnQiOjE4LjU4LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6MCwieSI6LTAuMzg0fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9LCJ3aWR0aCI6OTAwLCJoZWlnaHQiOjcyfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJyaWNoLXRleHQiLCJ0ZXh0Ijoie3tTM19UZXh0fX0iLCJmb250Ijp7ImZhbWlseSI6Ik1vbnRzZXJyYXQgU2VtaUJvbGQiLCJzaXplIjozNiwid2VpZ2h0Ijo2MDAsImNvbG9yIjoie3sgRk9OVF9DT0xPUiB9fSIsIm9wYWNpdHkiOjF9LCJzdHlsZSI6eyJsZXR0ZXJTcGFjaW5nIjowLCJ3b3JkU3BhY2luZyI6MCwibGluZUhlaWdodCI6MSwidGV4dFRyYW5zZm9ybSI6Im5vbmUiLCJ0ZXh0RGVjb3JhdGlvbiI6Im5vbmUifSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoibWlkZGxlIn0sImFuaW1hdGlvbiI6eyJwcmVzZXQiOiJmYWRlSW4iLCJzdHlsZSI6IndvcmQifX0sInN0YXJ0IjoxOC4zMSwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAsInkiOjAuMzkyfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9LCJ3aWR0aCI6OTAwLCJoZWlnaHQiOjcyfV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6ImVuZCIsImFzc2V0Ijp7InR5cGUiOiJ2aWRlbyIsInNyYyI6Int7IFMzX1ZJREVPIH19Iiwidm9sdW1lIjoxfSwic3RhcnQiOjE4LCJzY2FsZSI6MSwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlVXAifSwid2lkdGgiOjk1NSwiaGVpZ2h0IjoxMzgyLCJvZmZzZXQiOnsieCI6MCwieSI6MH0sImZpdCI6ImNvbnRhaW4ifSx7ImFzc2V0Ijp7InR5cGUiOiJsdW1hIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3dpbnRlci12YWNhdGlvbi1wcm9tb3Rpb25zLXRlbXBsYXRlLXNlYXNvbmFsLW9mZmVycy82ZTI1ZWE3ZS1kOWFiLTQ3M2UtYTg1ZS03NDUwOWVlODE4OTMvc291cmNlLnBuZyJ9LCJzdGFydCI6MTgsImxlbmd0aCI6N31dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoicmljaC10ZXh0IiwidGV4dCI6Int7UzJfVGV4dF8xfX0iLCJmb250Ijp7ImZhbWlseSI6Ik1vbnRzZXJyYXQgU2VtaUJvbGQiLCJzaXplIjozNiwid2VpZ2h0Ijo2MDAsImNvbG9yIjoie3sgRk9OVF9DT0xPUiB9fSIsIm9wYWNpdHkiOjF9LCJzdHlsZSI6eyJsZXR0ZXJTcGFjaW5nIjowLCJ3b3JkU3BhY2luZyI6MCwibGluZUhlaWdodCI6MSwidGV4dFRyYW5zZm9ybSI6Im5vbmUiLCJ0ZXh0RGVjb3JhdGlvbiI6Im5vbmUifSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoibWlkZGxlIn0sImFuaW1hdGlvbiI6eyJwcmVzZXQiOiJmYWRlSW4iLCJzdHlsZSI6IndvcmQifX0sInN0YXJ0IjoxMS44NywibGVuZ3RoIjo2LjEzLCJvZmZzZXQiOnsieCI6MCwieSI6LTAuNDE0fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVMZWZ0Iiwib3V0Ijoic2xpZGVMZWZ0In0sIndpZHRoIjo5MDAsImhlaWdodCI6NzJ9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiJ7e1MyX1RleHRfMn19IiwiZm9udCI6eyJmYW1pbHkiOiJNb250c2VycmF0IFNlbWlCb2xkIiwic2l6ZSI6MzYsIndlaWdodCI6NjAwLCJjb2xvciI6Int7IEZPTlRfQ09MT1IgfX0iLCJvcGFjaXR5IjoxfSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6MCwid29yZFNwYWNpbmciOjAsImxpbmVIZWlnaHQiOjEsInRleHRUcmFuc2Zvcm0iOiJub25lIiwidGV4dERlY29yYXRpb24iOiJub25lIn0sImFsaWduIjp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6Im1pZGRsZSJ9LCJhbmltYXRpb24iOnsicHJlc2V0IjoiZmFkZUluIiwic3R5bGUiOiJ3b3JkIn19LCJzdGFydCI6MTEuNTQsImxlbmd0aCI6Ni40Niwib2Zmc2V0Ijp7IngiOjAsInkiOi0wLjAxOX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlTGVmdCIsIm91dCI6InNsaWRlTGVmdCJ9LCJ3aWR0aCI6OTAwLCJoZWlnaHQiOjcyfV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6Ni4yOCwiYXNzZXQiOnsidHlwZSI6InZpZGVvIiwic3JjIjoie3sgUzJfVklERU9fMSB9fSIsInZvbHVtZSI6MSwidHJpbSI6MC41Nn0sInN0YXJ0IjoxMS43Miwic2NhbGUiOjEsIm9mZnNldCI6eyJ4IjowLCJ5IjotMC4yMTd9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsib3V0Ijoic2xpZGVMZWZ0IiwiaW4iOiJzbGlkZUxlZnQifSwiZml0IjoiY29udGFpbiIsIndpZHRoIjoxMDQyLCJoZWlnaHQiOjYyNX0seyJhc3NldCI6eyJ0eXBlIjoibHVtYSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby93aW50ZXItdmFjYXRpb24tcHJvbW90aW9ucy10ZW1wbGF0ZS1zZWFzb25hbC1vZmZlcnMvN2JjZTkyNzktZmZhMi00ZjQzLTgyNjctNzAwYzQzMmU2ZGNlL3NvdXJjZS5wbmcifSwic3RhcnQiOjExLjcyLCJsZW5ndGgiOjYuMjh9XX0seyJjbGlwcyI6W3sibGVuZ3RoIjo2LjU2LCJhc3NldCI6eyJ0eXBlIjoidmlkZW8iLCJzcmMiOiJ7eyBTMl9WSURFT18xIH19Iiwidm9sdW1lIjoxLCJ0cmltIjowLjQxfSwic3RhcnQiOjExLjQ0LCJzY2FsZSI6MSwib2Zmc2V0Ijp7IngiOjAsInkiOjAuMTczfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVMZWZ0Iiwib3V0Ijoic2xpZGVMZWZ0In0sImZpdCI6ImNvbnRhaW4iLCJ3aWR0aCI6MTA0MiwiaGVpZ2h0Ijo2MjV9LHsiYXNzZXQiOnsidHlwZSI6Imx1bWEiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vd2ludGVyLXZhY2F0aW9uLXByb21vdGlvbnMtdGVtcGxhdGUtc2Vhc29uYWwtb2ZmZXJzL2M0N2JlZTAzLWEzZjItNGYyNC05MDRiLTgzYmYyYmNlYmU5MC9zb3VyY2UucG5nIn0sInN0YXJ0IjoxMS40NCwibGVuZ3RoIjo2LjU2fV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6NywiYXNzZXQiOnsidHlwZSI6InZpZGVvIiwic3JjIjoie3sgUzJfVklERU9fQkFDS0dST1VORCB9fSIsInZvbHVtZSI6MX0sInN0YXJ0IjoxMSwidHJhbnNpdGlvbiI6eyJvdXQiOiJmYWRlIiwiaW4iOiJmYWRlIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiJ7e1MxX1N1YnRpdGxlfX0iLCJmb250Ijp7ImZhbWlseSI6Ik1vbnRzZXJyYXQgU2VtaUJvbGQiLCJzaXplIjozNiwid2VpZ2h0Ijo2MDAsImNvbG9yIjoie3sgRk9OVF9DT0xPUiB9fSIsIm9wYWNpdHkiOjF9LCJzdHlsZSI6eyJsZXR0ZXJTcGFjaW5nIjowLCJ3b3JkU3BhY2luZyI6MCwibGluZUhlaWdodCI6MSwidGV4dFRyYW5zZm9ybSI6Im5vbmUiLCJ0ZXh0RGVjb3JhdGlvbiI6Im5vbmUifSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoibWlkZGxlIn0sImFuaW1hdGlvbiI6eyJwcmVzZXQiOiJmYWRlSW4iLCJzdHlsZSI6IndvcmQifX0sInN0YXJ0IjoyLCJsZW5ndGgiOjksIm9mZnNldCI6eyJ4IjowLCJ5IjotMC4xMn0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJvdXQiOiJzbGlkZUxlZnQifSwid2lkdGgiOjkwMCwiaGVpZ2h0Ijo3Mn1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoicmljaC10ZXh0IiwidGV4dCI6Int7UzFfdGl0bGV9fSIsImZvbnQiOnsiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjoxNTAsIndlaWdodCI6ODAwLCJjb2xvciI6Int7IEZPTlRfQ09MT1IgfX0iLCJvcGFjaXR5IjoxfSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6MCwid29yZFNwYWNpbmciOjAsImxpbmVIZWlnaHQiOjEsInRleHRUcmFuc2Zvcm0iOiJub25lIiwidGV4dERlY29yYXRpb24iOiJub25lIn0sImFsaWduIjp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6Im1pZGRsZSJ9LCJhbmltYXRpb24iOnsicHJlc2V0IjoiZmFkZUluIiwic3R5bGUiOiJ3b3JkIn19LCJzdGFydCI6MS42OCwibGVuZ3RoIjo5LjMyLCJvZmZzZXQiOnsieSI6MH0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJvdXQiOiJzbGlkZUxlZnQifSwid2lkdGgiOjk1MCwiaGVpZ2h0IjozMDB9XX0seyJjbGlwcyI6W3sibGVuZ3RoIjo5Ljc5LCJhc3NldCI6eyJ0eXBlIjoidmlkZW8iLCJzcmMiOiJ7eyBTMV9WSURFT180IH19Iiwidm9sdW1lIjoxLCJ0cmltIjoxLjEyfSwic3RhcnQiOjEuMjEsInNjYWxlIjoxLCJvZmZzZXQiOnsieCI6MCwieSI6LTAuMzN9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZUxlZnQiLCJvdXQiOiJzbGlkZUxlZnQifSwiZml0IjoiY29udGFpbiIsIndpZHRoIjoxMDQyLCJoZWlnaHQiOjYyNX0seyJhc3NldCI6eyJ0eXBlIjoibHVtYSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby93aW50ZXItdmFjYXRpb24tcHJvbW90aW9ucy10ZW1wbGF0ZS1zZWFzb25hbC1vZmZlcnMvMzFkNzkwZmYtNTc1Ny00YmQ3LTkzNjYtNGYxNWRjOGUzMjY4L3NvdXJjZS5wbmcifSwic3RhcnQiOjEuMjEsImxlbmd0aCI6OS43OX1dfSx7ImNsaXBzIjpbeyJsZW5ndGgiOjEwLjE2LCJhc3NldCI6eyJ0eXBlIjoidmlkZW8iLCJzcmMiOiJ7eyBTMV9WSURFT18zIH19Iiwidm9sdW1lIjoxLCJ0cmltIjowLjh9LCJzdGFydCI6MC44NCwic2NhbGUiOjEsInRyYW5zaXRpb24iOnsib3V0Ijoic2xpZGVMZWZ0IiwiaW4iOiJzbGlkZUxlZnQifSwiZml0IjoiY29udGFpbiIsIndpZHRoIjoxMDQyLCJoZWlnaHQiOjYyNSwib2Zmc2V0Ijp7IngiOjAsInkiOi0wLjAwMTY4NTg1MTg3MzM2MDM5Mjh9fSx7ImFzc2V0Ijp7InR5cGUiOiJsdW1hIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3dpbnRlci12YWNhdGlvbi1wcm9tb3Rpb25zLXRlbXBsYXRlLXNlYXNvbmFsLW9mZmVycy82OTk2MjMyZC00ZWIxLTQ2YzYtYjNhOC00YmJlYzRiYjRmMGEvc291cmNlLnBuZyJ9LCJzdGFydCI6MC44NCwibGVuZ3RoIjoxMC4xNn1dfSx7ImNsaXBzIjpbeyJsZW5ndGgiOjEwLjUzLCJhc3NldCI6eyJ0eXBlIjoidmlkZW8iLCJzcmMiOiJ7eyBTMV9WSURFT18yIH19Iiwidm9sdW1lIjowLCJ0cmltIjowLjM4fSwic3RhcnQiOjAuNDcsInNjYWxlIjoxLCJvZmZzZXQiOnsieCI6MC4yNTMsInkiOjAuMzI3fSwicG9zaXRpb24iOiJjZW50ZXIiLCJmaXQiOiJjb250YWluIiwid2lkdGgiOjUwMCwiaGVpZ2h0Ijo2MDB9LHsiYXNzZXQiOnsidHlwZSI6Imx1bWEiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vd2ludGVyLXZhY2F0aW9uLXByb21vdGlvbnMtdGVtcGxhdGUtc2Vhc29uYWwtb2ZmZXJzLzVlZGJjOGQ3LWJjMzMtNDUyZS05ZGZlLWY0OWU1ZTUyNDRlNi9zb3VyY2UucG5nIn0sInN0YXJ0IjowLjQ3LCJsZW5ndGgiOjEwLjUzfV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6MTAuODgsImFzc2V0Ijp7InR5cGUiOiJ2aWRlbyIsInNyYyI6Int7IFMxX1ZJREVPXzEgfX0iLCJ2b2x1bWUiOjEsInRyaW0iOjAuMDh9LCJzdGFydCI6MC4xMiwic2NhbGUiOjEsIm9mZnNldCI6eyJ4IjotMC4yNTA2Nzg3MDY2NTQyNTc4LCJ5IjowLjMyNjAwMDQ0MTIxOTg4MjJ9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZUxlZnQiLCJvdXQiOiJzbGlkZUxlZnQifSwiZml0IjoiY29udGFpbiIsIndpZHRoIjo1MDAsImhlaWdodCI6NjAwfSx7ImFzc2V0Ijp7InR5cGUiOiJsdW1hIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3dpbnRlci12YWNhdGlvbi1wcm9tb3Rpb25zLXRlbXBsYXRlLXNlYXNvbmFsLW9mZmVycy9mNGRhMzE0YS1iMjEyLTRiOTMtYWJiMC1hNzZjYTE0OGY2ZTQvc291cmNlLnBuZyJ9LCJzdGFydCI6MC4xMiwibGVuZ3RoIjoxMC44OH1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoic3ZnIiwic3JjIjoiPHN2ZyB2aWV3Qm94PVwiMCAwIDEwODAgMTkyMFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cmVjdCB3aWR0aD1cIjEwODBcIiBoZWlnaHQ9XCIxOTIwXCIgZmlsbD1cInt7IEJBQ0tHUk9VTkRfQ09MT1IgfX1cIi8-PC9zdmc-In0sInN0YXJ0IjowLCJsZW5ndGgiOjI1LCJ3aWR0aCI6MTA4MCwiaGVpZ2h0IjoxOTIwfV19XX0sIm91dHB1dCI6eyJmb3JtYXQiOiJtcDQiLCJmcHMiOjI1LCJzaXplIjp7IndpZHRoIjoxMDgwLCJoZWlnaHQiOjE5MjB9LCJkZXN0aW5hdGlvbnMiOlt7InByb3ZpZGVyIjoic2hvdHN0YWNrIn1dfSwibWVyZ2UiOlt7ImZpbmQiOiJTMV90aXRsZSIsInJlcGxhY2UiOiJXSU5URVIgVkFDQVRJT04ifSx7ImZpbmQiOiJTMV9TdWJ0aXRsZSIsInJlcGxhY2UiOiJIZWFydGZlbHQgbW9tZW50cyB3aXRoIGZhbWlseSBhbmQgZnJpZW5kcyJ9LHsiZmluZCI6IlMxX1ZJREVPXzEiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3dpbnRlci12YWNhdGlvbi1wcm9tb3Rpb25zLXRlbXBsYXRlLXNlYXNvbmFsLW9mZmVycy9hNTc1MmY3MC1lYWRhLTQxMzAtYThlZC01MWQ2YzYxYjc1MDUvc291cmNlLm1wNCJ9LHsiZmluZCI6IlMxX1ZJREVPXzIiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3dpbnRlci12YWNhdGlvbi1wcm9tb3Rpb25zLXRlbXBsYXRlLXNlYXNvbmFsLW9mZmVycy81OGEyMDA0MC05NDM0LTQ4YWItOWM1Yi0zYTY1OTk4NTVlMjQvc291cmNlLm1wNCJ9LHsiZmluZCI6IlMxX1ZJREVPXzMiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3dpbnRlci12YWNhdGlvbi1wcm9tb3Rpb25zLXRlbXBsYXRlLXNlYXNvbmFsLW9mZmVycy9iY2RiODE1ZC1lMDU0LTRjN2UtYmRhZC0zNDEyNWNhMTQ4MGQvc291cmNlLm1wNCJ9LHsiZmluZCI6IlMxX1ZJREVPXzQiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3dpbnRlci12YWNhdGlvbi1wcm9tb3Rpb25zLXRlbXBsYXRlLXNlYXNvbmFsLW9mZmVycy9mNTNkYzdlOS04ZDNiLTRiNjYtOGFlOC1jNmQyYWZkMTU4ZDAvc291cmNlLm1wNCJ9LHsiZmluZCI6IlMyX1RleHRfMSIsInJlcGxhY2UiOiJzbGVkZGluZyB3aXRoIG15IGtpZHMgYW5kIGh1c2JhbmQgdG9vIn0seyJmaW5kIjoiUzJfVGV4dF8yIiwicmVwbGFjZSI6InNsZWRkaW5nIG9yIHRvYm9nZ2FuaW5nIHdpdGggbXkga2lkcyJ9LHsiZmluZCI6IlMyX1ZJREVPXzEiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3dpbnRlci12YWNhdGlvbi1wcm9tb3Rpb25zLXRlbXBsYXRlLXNlYXNvbmFsLW9mZmVycy84NjM1MmQ5My0wOWEyLTQ3YWUtYjQ2NS1iNGY0ZDVkODQwMDMvc291cmNlLm1wNCJ9LHsiZmluZCI6IlMyX1ZJREVPX0JBQ0tHUk9VTkQiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3dpbnRlci12YWNhdGlvbi1wcm9tb3Rpb25zLXRlbXBsYXRlLXNlYXNvbmFsLW9mZmVycy8xZGFlOGZlNC1iY2EyLTRjN2YtYjgzZi1mN2UzZTk0Y2MyNWUvc291cmNlLm1wNCJ9LHsiZmluZCI6IlMzX1NvY2lhbF9IYW5kbGUiLCJyZXBsYWNlIjoiQGhvbGlkYXlzdXJ2ZXkifSx7ImZpbmQiOiJTM19UZXh0IiwicmVwbGFjZSI6IkNoZXJpc2hlZCBtZW1vcmllcyBpbiBldmVyeSBtb21lbnQifSx7ImZpbmQiOiJTM19WSURFTyIsInJlcGxhY2UiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vd2ludGVyLXZhY2F0aW9uLXByb21vdGlvbnMtdGVtcGxhdGUtc2Vhc29uYWwtb2ZmZXJzLzVmNGQ2YzU5LTUyMGQtNGVlMi1iNzgxLTg5Y2VlMTg4NjU3Zi9zb3VyY2UubXA0In0seyJmaW5kIjoiRk9OVF9DT0xPUiIsInJlcGxhY2UiOiIjMDAwMDAwIn0seyJmaW5kIjoiQkFDS0dST1VORF9DT0xPUiIsInJlcGxhY2UiOiIjZmZmZmZmIn0seyJmaW5kIjoiQVVESU8iLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3dpbnRlci12YWNhdGlvbi1wcm9tb3Rpb25zLXRlbXBsYXRlLXNlYXNvbmFsLW9mZmVycy9mMjAwODUzMi05ZDQ3LTQwMTgtYjU5YS02NzU5MzExMmY0MmEvc291cmNlLm1wMyJ9XX0 - **Edit and save to an account**: https://dashboard.shotstack.io/studio/editor/winter-vacation-promotions-template-seasonal-offers-v2 ## How to use this template as a workflow 1. Render it once with the JSON below to confirm the output. 2. Replace the values that change per row of data (merge fields or asset URLs). 3. Loop over your data (CSV, database, webhook payload) and send one render per row. Add a `callback` URL to the request so Shotstack notifies you when each video is ready instead of polling. 4. To keep the JSON out of your app, store it with the Templates endpoint and render by template ID with a `merge` array: https://shotstack.io/docs/guide/architecting-an-application/templates/ ## Customise This template has merge fields. Send a `merge` array with the request to replace them; do not edit the timeline JSON. | Field | Default | | --- | --- | | `{{ S1_title }}` | WINTER VACATION | | `{{ S1_Subtitle }}` | Heartfelt moments with family and friends | | `{{ S1_VIDEO_1 }}` | https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/a5752f70-eada-4130-a8ed-51d6c61b7505/source.mp4 | | `{{ S1_VIDEO_2 }}` | https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/58a20040-9434-48ab-9c5b-3a6599855e24/source.mp4 | | `{{ S1_VIDEO_3 }}` | https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/bcdb815d-e054-4c7e-bdad-34125ca1480d/source.mp4 | | `{{ S1_VIDEO_4 }}` | https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/f53dc7e9-8d3b-4b66-8ae8-c6d2afd158d0/source.mp4 | | `{{ S2_Text_1 }}` | sledding with my kids and husband too | | `{{ S2_Text_2 }}` | sledding or tobogganing with my kids | | `{{ S2_VIDEO_1 }}` | https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/86352d93-09a2-47ae-b465-b4f4d5d84003/source.mp4 | | `{{ S2_VIDEO_BACKGROUND }}` | https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/1dae8fe4-bca2-4c7f-b83f-f7e3e94cc25e/source.mp4 | | `{{ S3_Social_Handle }}` | @holidaysurvey | | `{{ S3_Text }}` | Cherished memories in every moment | | `{{ S3_VIDEO }}` | https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/5f4d6c59-520d-4ee2-b781-89cee188657f/source.mp4 | | `{{ FONT_COLOR }}` | #000000 | | `{{ BACKGROUND_COLOR }}` | #ffffff | | `{{ AUDIO }}` | https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/f2008532-9d47-4018-b59a-67593112f42a/source.mp3 | ## Template JSON ```json { "timeline": { "background": "#FFFFFF", "tracks": [ { "clips": [ { "length": "end", "asset": { "type": "audio", "src": "{{ AUDIO }}", "volume": 1 }, "start": 0.12 } ] }, { "clips": [ { "asset": { "type": "rich-text", "text": "{{S3_Social_Handle}}", "font": { "family": "Montserrat SemiBold", "size": 36, "weight": 600, "color": "{{ FONT_COLOR }}", "opacity": 1 }, "style": { "letterSpacing": 0, "wordSpacing": 0, "lineHeight": 1, "textTransform": "none", "textDecoration": "none" }, "align": { "horizontal": "center", "vertical": "middle" }, "animation": { "preset": "fadeIn", "style": "word" } }, "start": 18.58, "length": "end", "offset": { "x": 0, "y": -0.384 }, "position": "center", "transition": { "in": "slideUp" }, "width": 900, "height": 72 } ] }, { "clips": [ { "asset": { "type": "rich-text", "text": "{{S3_Text}}", "font": { "family": "Montserrat SemiBold", "size": 36, "weight": 600, "color": "{{ FONT_COLOR }}", "opacity": 1 }, "style": { "letterSpacing": 0, "wordSpacing": 0, "lineHeight": 1, "textTransform": "none", "textDecoration": "none" }, "align": { "horizontal": "center", "vertical": "middle" }, "animation": { "preset": "fadeIn", "style": "word" } }, "start": 18.31, "length": "end", "offset": { "x": 0, "y": 0.392 }, "position": "center", "transition": { "in": "slideUp" }, "width": 900, "height": 72 } ] }, { "clips": [ { "length": "end", "asset": { "type": "video", "src": "{{ S3_VIDEO }}", "volume": 1 }, "start": 18, "scale": 1, "transition": { "in": "slideUp" }, "width": 955, "height": 1382, "offset": { "x": 0, "y": 0 }, "fit": "contain" }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/6e25ea7e-d9ab-473e-a85e-74509ee81893/source.png" }, "start": 18, "length": 7 } ] }, { "clips": [ { "asset": { "type": "rich-text", "text": "{{S2_Text_1}}", "font": { "family": "Montserrat SemiBold", "size": 36, "weight": 600, "color": "{{ FONT_COLOR }}", "opacity": 1 }, "style": { "letterSpacing": 0, "wordSpacing": 0, "lineHeight": 1, "textTransform": "none", "textDecoration": "none" }, "align": { "horizontal": "center", "vertical": "middle" }, "animation": { "preset": "fadeIn", "style": "word" } }, "start": 11.87, "length": 6.13, "offset": { "x": 0, "y": -0.414 }, "position": "center", "transition": { "in": "slideLeft", "out": "slideLeft" }, "width": 900, "height": 72 } ] }, { "clips": [ { "asset": { "type": "rich-text", "text": "{{S2_Text_2}}", "font": { "family": "Montserrat SemiBold", "size": 36, "weight": 600, "color": "{{ FONT_COLOR }}", "opacity": 1 }, "style": { "letterSpacing": 0, "wordSpacing": 0, "lineHeight": 1, "textTransform": "none", "textDecoration": "none" }, "align": { "horizontal": "center", "vertical": "middle" }, "animation": { "preset": "fadeIn", "style": "word" } }, "start": 11.54, "length": 6.46, "offset": { "x": 0, "y": -0.019 }, "position": "center", "transition": { "in": "slideLeft", "out": "slideLeft" }, "width": 900, "height": 72 } ] }, { "clips": [ { "length": 6.28, "asset": { "type": "video", "src": "{{ S2_VIDEO_1 }}", "volume": 1, "trim": 0.56 }, "start": 11.72, "scale": 1, "offset": { "x": 0, "y": -0.217 }, "position": "center", "transition": { "out": "slideLeft", "in": "slideLeft" }, "fit": "contain", "width": 1042, "height": 625 }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/7bce9279-ffa2-4f43-8267-700c432e6dce/source.png" }, "start": 11.72, "length": 6.28 } ] }, { "clips": [ { "length": 6.56, "asset": { "type": "video", "src": "{{ S2_VIDEO_1 }}", "volume": 1, "trim": 0.41 }, "start": 11.44, "scale": 1, "offset": { "x": 0, "y": 0.173 }, "position": "center", "transition": { "in": "slideLeft", "out": "slideLeft" }, "fit": "contain", "width": 1042, "height": 625 }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/c47bee03-a3f2-4f24-904b-83bf2bcebe90/source.png" }, "start": 11.44, "length": 6.56 } ] }, { "clips": [ { "length": 7, "asset": { "type": "video", "src": "{{ S2_VIDEO_BACKGROUND }}", "volume": 1 }, "start": 11, "transition": { "out": "fade", "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "rich-text", "text": "{{S1_Subtitle}}", "font": { "family": "Montserrat SemiBold", "size": 36, "weight": 600, "color": "{{ FONT_COLOR }}", "opacity": 1 }, "style": { "letterSpacing": 0, "wordSpacing": 0, "lineHeight": 1, "textTransform": "none", "textDecoration": "none" }, "align": { "horizontal": "center", "vertical": "middle" }, "animation": { "preset": "fadeIn", "style": "word" } }, "start": 2, "length": 9, "offset": { "x": 0, "y": -0.12 }, "position": "center", "transition": { "out": "slideLeft" }, "width": 900, "height": 72 } ] }, { "clips": [ { "asset": { "type": "rich-text", "text": "{{S1_title}}", "font": { "family": "Montserrat ExtraBold", "size": 150, "weight": 800, "color": "{{ FONT_COLOR }}", "opacity": 1 }, "style": { "letterSpacing": 0, "wordSpacing": 0, "lineHeight": 1, "textTransform": "none", "textDecoration": "none" }, "align": { "horizontal": "center", "vertical": "middle" }, "animation": { "preset": "fadeIn", "style": "word" } }, "start": 1.68, "length": 9.32, "offset": { "y": 0 }, "position": "center", "transition": { "out": "slideLeft" }, "width": 950, "height": 300 } ] }, { "clips": [ { "length": 9.79, "asset": { "type": "video", "src": "{{ S1_VIDEO_4 }}", "volume": 1, "trim": 1.12 }, "start": 1.21, "scale": 1, "offset": { "x": 0, "y": -0.33 }, "position": "center", "transition": { "in": "slideLeft", "out": "slideLeft" }, "fit": "contain", "width": 1042, "height": 625 }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/31d790ff-5757-4bd7-9366-4f15dc8e3268/source.png" }, "start": 1.21, "length": 9.79 } ] }, { "clips": [ { "length": 10.16, "asset": { "type": "video", "src": "{{ S1_VIDEO_3 }}", "volume": 1, "trim": 0.8 }, "start": 0.84, "scale": 1, "transition": { "out": "slideLeft", "in": "slideLeft" }, "fit": "contain", "width": 1042, "height": 625, "offset": { "x": 0, "y": -0.0016858518733603928 } }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/6996232d-4eb1-46c6-b3a8-4bbec4bb4f0a/source.png" }, "start": 0.84, "length": 10.16 } ] }, { "clips": [ { "length": 10.53, "asset": { "type": "video", "src": "{{ S1_VIDEO_2 }}", "volume": 0, "trim": 0.38 }, "start": 0.47, "scale": 1, "offset": { "x": 0.253, "y": 0.327 }, "position": "center", "fit": "contain", "width": 500, "height": 600 }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/5edbc8d7-bc33-452e-9dfe-f49e5e5244e6/source.png" }, "start": 0.47, "length": 10.53 } ] }, { "clips": [ { "length": 10.88, "asset": { "type": "video", "src": "{{ S1_VIDEO_1 }}", "volume": 1, "trim": 0.08 }, "start": 0.12, "scale": 1, "offset": { "x": -0.2506787066542578, "y": 0.3260004412198822 }, "position": "center", "transition": { "in": "slideLeft", "out": "slideLeft" }, "fit": "contain", "width": 500, "height": 600 }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/f4da314a-b212-4b93-abb0-a76ca148f6e4/source.png" }, "start": 0.12, "length": 10.88 } ] }, { "clips": [ { "asset": { "type": "svg", "src": "" }, "start": 0, "length": 25, "width": 1080, "height": 1920 } ] } ] }, "output": { "format": "mp4", "fps": 25, "size": { "width": 1080, "height": 1920 }, "destinations": [ { "provider": "shotstack" } ] }, "merge": [ { "find": "S1_title", "replace": "WINTER VACATION" }, { "find": "S1_Subtitle", "replace": "Heartfelt moments with family and friends" }, { "find": "S1_VIDEO_1", "replace": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/a5752f70-eada-4130-a8ed-51d6c61b7505/source.mp4" }, { "find": "S1_VIDEO_2", "replace": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/58a20040-9434-48ab-9c5b-3a6599855e24/source.mp4" }, { "find": "S1_VIDEO_3", "replace": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/bcdb815d-e054-4c7e-bdad-34125ca1480d/source.mp4" }, { "find": "S1_VIDEO_4", "replace": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/f53dc7e9-8d3b-4b66-8ae8-c6d2afd158d0/source.mp4" }, { "find": "S2_Text_1", "replace": "sledding with my kids and husband too" }, { "find": "S2_Text_2", "replace": "sledding or tobogganing with my kids" }, { "find": "S2_VIDEO_1", "replace": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/86352d93-09a2-47ae-b465-b4f4d5d84003/source.mp4" }, { "find": "S2_VIDEO_BACKGROUND", "replace": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/1dae8fe4-bca2-4c7f-b83f-f7e3e94cc25e/source.mp4" }, { "find": "S3_Social_Handle", "replace": "@holidaysurvey" }, { "find": "S3_Text", "replace": "Cherished memories in every moment" }, { "find": "S3_VIDEO", "replace": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/5f4d6c59-520d-4ee2-b781-89cee188657f/source.mp4" }, { "find": "FONT_COLOR", "replace": "#000000" }, { "find": "BACKGROUND_COLOR", "replace": "#ffffff" }, { "find": "AUDIO", "replace": "https://templates.shotstack.io/winter-vacation-promotions-template-seasonal-offers/f2008532-9d47-4018-b59a-67593112f42a/source.mp3" } ] } ``` ## Render it Save the JSON as `template.json`. The sandbox key is free: https://dashboard.shotstack.io/register ### cURL ```bash # Save the JSON above as template.json, then: curl -X POST https://api.shotstack.io/edit/stage/render \ -H "x-api-key: $SHOTSTACK_API_KEY" \ -H "Content-Type: application/json" \ -d @template.json # Poll until status is "done", then download response.url curl https://api.shotstack.io/edit/stage/render/RENDER_ID -H "x-api-key: $SHOTSTACK_API_KEY" ``` ### Node.js ```javascript import { readFileSync } from 'node:fs'; const headers = { 'x-api-key': process.env.SHOTSTACK_API_KEY, 'Content-Type': 'application/json' }; const edit = JSON.parse(readFileSync('template.json', 'utf8')); const { response } = await fetch('https://api.shotstack.io/edit/stage/render', { method: 'POST', headers, body: JSON.stringify(edit) }).then((r) => r.json()); let render; do { await new Promise((r) => setTimeout(r, 3000)); render = (await fetch(`https://api.shotstack.io/edit/stage/render/${response.id}`, { headers }).then((r) => r.json())).response; } while (!['done', 'failed'].includes(render.status)); console.log(render.status, render.url); ``` ### Python ```python import json, os, time, requests headers = {"x-api-key": os.environ["SHOTSTACK_API_KEY"]} with open("template.json") as f: edit = json.load(f) render_id = requests.post("https://api.shotstack.io/edit/stage/render", json=edit, headers=headers).json()["response"]["id"] while True: render = requests.get(f"https://api.shotstack.io/edit/stage/render/{render_id}", headers=headers).json()["response"] if render["status"] in ("done", "failed"): break time.sleep(3) print(render["status"], render.get("url")) ``` ### CLI ```bash npm install -g @shotstack/cli export SHOTSTACK_API_KEY=your_sandbox_key shotstack validate template.json # offline schema check, free shotstack render template.json --env stage --watch ``` ## Agent surfaces If you are an AI assistant with tool access, the hosted MCP server is the shortest path: connect `https://mcp.shotstack.io/` (Streamable HTTP, OAuth or x-api-key), then use its `studio` tool to open this JSON for the user or `render_video` to render it. - MCP server (all clients): https://shotstack.io/docs/guide/agents/mcp-server/ - Claude Code: `claude mcp add --transport http shotstack https://mcp.shotstack.io` - Cursor (mcp.json): `{"mcpServers":{"shotstack":{"url":"https://mcp.shotstack.io/"}}}` - VS Code (mcp.json): `{"servers":{"shotstack":{"type":"http","url":"https://mcp.shotstack.io/"}}}` - Claude.ai / ChatGPT: Settings → Connectors → add custom connector → https://mcp.shotstack.io/ - CLI + agent skill: https://shotstack.io/docs/guide/agents/cli/ — skill file: https://raw.githubusercontent.com/shotstack/shotstack-cli/HEAD/skills/shotstack/SKILL.md - Edit JSON conventions for AI: https://shotstack.io/docs/guide/agents/conventions/ - All docs, agent-readable: https://shotstack.io/docs/guide/llms.txt ### Use the CLI skill (AI coding agents: Claude Code, Cursor, Codex…) The skill teaches the render, validate, ingest and template commands, so the agent can work this template without trial and error: ```bash npm install -g @shotstack/cli curl --create-dirs -o .claude/skills/shotstack/SKILL.md https://raw.githubusercontent.com/shotstack/shotstack-cli/HEAD/skills/shotstack/SKILL.md ``` (Claude Code loads it from `.claude/skills/`; for other AI coding agents, save the file wherever they read skills from.) Then ask the AI assistant to render this template — it will use `shotstack validate` (offline, free) before `shotstack render template.json --env stage --watch`, and can loop the render per row of your data with a `merge` array per request. ## Related - Bulk-create videos from a CSV: https://shotstack.io/learn/bulk-create-videos-from-csv-and-ai/ - Webhooks: https://shotstack.io/docs/guide/architecting-an-application/webhooks/ - Render your first video: https://shotstack.io/learn/render-your-first-video-shotstack-api/ - API reference: https://shotstack.io/docs/api/ - All agent-readable docs: https://shotstack.io/llms.txt