# Maison Élan (video template) > Landscape launch film for a fashion brand: brand name, season, a collection title over two photos and an end card with a call to action. ## Overview - **Page**: https://shotstack.io/studio/templates/maison-elan/ - **Output**: MP4, 1920x1080 (16:9) - **Length**: 15s - **Timeline**: 16 clips on 8 tracks; assets: audio, html5, image, rich-text - **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=eyJ0aW1lbGluZSI6eyJiYWNrZ3JvdW5kIjoiIzBCMEIwQiIsInRyYWNrcyI6W3siY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sNSIsImh0bWwiOiI8ZGl2IGNsYXNzPVwiZ3JhaW5cIj48L2Rpdj4iLCJjc3MiOiJodG1sLGJvZHl7bWFyZ2luOjA7d2lkdGg6MTkyMHB4O2hlaWdodDoxMDgwcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmdyYWlue3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNjBweDtsZWZ0Oi02MHB4O3dpZHRoOjIwNDBweDtoZWlnaHQ6MTIwMHB4O29wYWNpdHk6MC4wNztiYWNrZ3JvdW5kLWltYWdlOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjAwJyBoZWlnaHQ9JzIwMCc-PGZpbHRlciBpZD0nbic-PGZlVHVyYnVsZW5jZSB0eXBlPSdmcmFjdGFsTm9pc2UnIGJhc2VGcmVxdWVuY3k9JzAuOScgbnVtT2N0YXZlcz0nMicgc3RpdGNoVGlsZXM9J3N0aXRjaCcvPjwvZmlsdGVyPjxyZWN0IHdpZHRoPScyMDAnIGhlaWdodD0nMjAwJyBmaWx0ZXI9J3VybCglMjNuKScvPjwvc3ZnPlwiKTtiYWNrZ3JvdW5kLXNpemU6MjQwcHggMjQwcHg7YW5pbWF0aW9uOmRyaWZ0IDAuNnMgc3RlcHMoNCkgMHMgaW5maW5pdGUgYm90aH1Aa2V5ZnJhbWVzIGRyaWZ0ezAle3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKX0yNSV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTJweCw4cHgpfTUwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKDEwcHgsLTEwcHgpfTc1JXt0cmFuc2Zvcm06dHJhbnNsYXRlKC04cHgsLTZweCl9MTAwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsMCl9fSIsImpzIjoiIn0sInN0YXJ0IjowLCJsZW5ndGgiOjE1LCJ3aWR0aCI6MTkyMCwiaGVpZ2h0IjoxMDgwfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJyaWNoLXRleHQiLCJ0ZXh0Ijoie3tCUkFORF9OQU1FfX0iLCJmb250Ijp7ImZhbWlseSI6Im51RmlELXZZU1p2aVZZVWJfcmozaWpfX2FuUFhQVHZTZ1dFXy14VSIsInNpemUiOjEyMCwid2VpZ2h0IjoiNTAwIiwiY29sb3IiOiJ7e0lWT1JZfX0ifSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6MTAsInRleHRUcmFuc2Zvcm0iOiJ1cHBlcmNhc2UiLCJsaW5lSGVpZ2h0IjoxfSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoibWlkZGxlIn0sImFuaW1hdGlvbiI6eyJwcmVzZXQiOiJmYWRlSW4iLCJkdXJhdGlvbiI6MS40fX0sInN0YXJ0IjowLjMsImxlbmd0aCI6NC43LCJ3aWR0aCI6MTYwMCwiaGVpZ2h0IjoyMDAsIm9mZnNldCI6eyJ4IjowLCJ5IjowLjA1fSwidHJhbnNpdGlvbiI6eyJvdXQiOiJmYWRlIn19LHsiYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiJ7e0NPTExFQ1RJT059fSIsImZvbnQiOnsiZmFtaWx5IjoibnVGaUQtdllTWnZpVllVYl9yajNpal9fYW5QWFBUdlNnV0VfLXhVIiwic2l6ZSI6MTEwLCJ3ZWlnaHQiOiI1MDAiLCJjb2xvciI6Int7SVZPUll9fSIsInN0eWxlIjoiaXRhbGljIn0sInN0eWxlIjp7ImxldHRlclNwYWNpbmciOjEsImxpbmVIZWlnaHQiOjF9LCJhbGlnbiI6eyJob3Jpem9udGFsIjoibGVmdCIsInZlcnRpY2FsIjoibWlkZGxlIn0sImFuaW1hdGlvbiI6eyJwcmVzZXQiOiJhc2NlbmQiLCJkdXJhdGlvbiI6MS4yLCJkaXJlY3Rpb24iOiJ1cCJ9fSwic3RhcnQiOjUuNSwibGVuZ3RoIjo0LjUsIndpZHRoIjo5MDAsImhlaWdodCI6MTYwLCJvZmZzZXQiOnsieCI6LTAuMiwieSI6MC4wMn0sInRyYW5zaXRpb24iOnsib3V0IjoiZmFkZSJ9fSx7ImFzc2V0Ijp7InR5cGUiOiJyaWNoLXRleHQiLCJ0ZXh0Ijoie3tCUkFORF9OQU1FfX0iLCJmb250Ijp7ImZhbWlseSI6Im51RmlELXZZU1p2aVZZVWJfcmozaWpfX2FuUFhQVHZTZ1dFXy14VSIsInNpemUiOjEwMCwid2VpZ2h0IjoiNTAwIiwiY29sb3IiOiJ7e0lWT1JZfX0ifSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6MTAsInRleHRUcmFuc2Zvcm0iOiJ1cHBlcmNhc2UiLCJsaW5lSGVpZ2h0IjoxfSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoibWlkZGxlIn0sImFuaW1hdGlvbiI6eyJwcmVzZXQiOiJmYWRlSW4iLCJkdXJhdGlvbiI6MS4yfX0sInN0YXJ0IjoxMC40LCJsZW5ndGgiOjQuNiwid2lkdGgiOjE2MDAsImhlaWdodCI6MTYwLCJvZmZzZXQiOnsieCI6MCwieSI6MC4xfSwidHJhbnNpdGlvbiI6eyJvdXQiOiJmYWRlIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiJ7e1NFQVNPTn19IiwiZm9udCI6eyJmYW1pbHkiOiJKVFVTaklnMV9pNnQ4a0NIS200NXhXNXJ5Z2JpNDljIiwic2l6ZSI6MjYsIndlaWdodCI6IjUwMCIsImNvbG9yIjoie3tHT0xEfX0ifSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6OCwidGV4dFRyYW5zZm9ybSI6InVwcGVyY2FzZSJ9LCJhbGlnbiI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJtaWRkbGUifSwiYW5pbWF0aW9uIjp7InByZXNldCI6ImZhZGVJbiIsImR1cmF0aW9uIjoxLjJ9fSwic3RhcnQiOjEuMywibGVuZ3RoIjozLjcsIndpZHRoIjoxMjAwLCJoZWlnaHQiOjYwLCJvZmZzZXQiOnsieCI6MCwieSI6LTAuMDh9LCJ0cmFuc2l0aW9uIjp7Im91dCI6ImZhZGUifX0seyJhc3NldCI6eyJ0eXBlIjoicmljaC10ZXh0IiwidGV4dCI6Int7VEFHTElORX19IiwiZm9udCI6eyJmYW1pbHkiOiJKVFVTaklnMV9pNnQ4a0NIS200NXhXNXJ5Z2JpNDljIiwic2l6ZSI6MzAsIndlaWdodCI6IjMwMCIsImNvbG9yIjoie3tJVk9SWX19Iiwib3BhY2l0eSI6MC44NX0sInN0eWxlIjp7ImxldHRlclNwYWNpbmciOjN9LCJhbGlnbiI6eyJob3Jpem9udGFsIjoibGVmdCIsInZlcnRpY2FsIjoibWlkZGxlIn0sImFuaW1hdGlvbiI6eyJwcmVzZXQiOiJmYWRlSW4iLCJkdXJhdGlvbiI6MX19LCJzdGFydCI6Ni42LCJsZW5ndGgiOjMuNCwid2lkdGgiOjkwMCwiaGVpZ2h0Ijo2MCwib2Zmc2V0Ijp7IngiOi0wLjIsInkiOi0wLjEzfSwidHJhbnNpdGlvbiI6eyJvdXQiOiJmYWRlIn19LHsiYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiJ7e0NUQX19IiwiZm9udCI6eyJmYW1pbHkiOiJKVFVTaklnMV9pNnQ4a0NIS200NXhXNXJ5Z2JpNDljIiwic2l6ZSI6MjIsIndlaWdodCI6IjUwMCIsImNvbG9yIjoie3tHT0xEfX0ifSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6NiwidGV4dFRyYW5zZm9ybSI6InVwcGVyY2FzZSJ9LCJhbGlnbiI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJtaWRkbGUifSwiYm9yZGVyIjp7ImNvbG9yIjoie3tHT0xEfX0iLCJ3aWR0aCI6MSwib3BhY2l0eSI6MC45fSwiYW5pbWF0aW9uIjp7InByZXNldCI6ImZhZGVJbiIsImR1cmF0aW9uIjoxfX0sInN0YXJ0IjoxMS4zLCJsZW5ndGgiOjMuNywid2lkdGgiOjU2MCwiaGVpZ2h0Ijo3Niwib2Zmc2V0Ijp7IngiOjAsInkiOi0wLjA2fSwidHJhbnNpdGlvbiI6eyJvdXQiOiJmYWRlIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiJ7e1VSTH19IiwiZm9udCI6eyJmYW1pbHkiOiJKVFVTaklnMV9pNnQ4a0NIS200NXhXNXJ5Z2JpNDljIiwic2l6ZSI6MjIsIndlaWdodCI6IjQwMCIsImNvbG9yIjoie3tJVk9SWX19Iiwib3BhY2l0eSI6MC43NX0sInN0eWxlIjp7ImxldHRlclNwYWNpbmciOjUsInRleHRUcmFuc2Zvcm0iOiJsb3dlcmNhc2UifSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoibWlkZGxlIn0sImFuaW1hdGlvbiI6eyJwcmVzZXQiOiJmYWRlSW4iLCJkdXJhdGlvbiI6MX19LCJzdGFydCI6MTIsImxlbmd0aCI6Mywid2lkdGgiOjgwMCwiaGVpZ2h0Ijo1MCwib2Zmc2V0Ijp7IngiOjAsInkiOi0wLjIyfSwidHJhbnNpdGlvbiI6eyJvdXQiOiJmYWRlIn19LHsiYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiJOZXcgQ29sbGVjdGlvbiIsImZvbnQiOnsiZmFtaWx5IjoiSlRVU2pJZzFfaTZ0OGtDSEttNDV4VzVyeWdiaTQ5YyIsInNpemUiOjIyLCJ3ZWlnaHQiOiI1MDAiLCJjb2xvciI6Int7R09MRH19In0sInN0eWxlIjp7ImxldHRlclNwYWNpbmciOjgsInRleHRUcmFuc2Zvcm0iOiJ1cHBlcmNhc2UifSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImxlZnQiLCJ2ZXJ0aWNhbCI6Im1pZGRsZSJ9LCJhbmltYXRpb24iOnsicHJlc2V0IjoiZmFkZUluIiwiZHVyYXRpb24iOjF9fSwic3RhcnQiOjUuMywibGVuZ3RoIjo0LjcsIndpZHRoIjo5MDAsImhlaWdodCI6NTAsIm9mZnNldCI6eyJ4IjotMC4yLCJ5IjowLjEyfSwidHJhbnNpdGlvbiI6eyJvdXQiOiJmYWRlIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imh0bWw1IiwiaHRtbCI6IjxkaXYgY2xhc3M9XCJvXCI-PGRpdiBjbGFzcz1cInJvdyB0b3BcIj48ZGl2IGlkPVwibDFcIiBjbGFzcz1cImxuIGxsXCI-PC9kaXY-PGRpdiBpZD1cImQxXCIgY2xhc3M9XCJkXCI-PC9kaXY-PGRpdiBpZD1cImwyXCIgY2xhc3M9XCJsbiBsclwiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9XCJyb3cgYm90XCI-PGRpdiBpZD1cImwzXCIgY2xhc3M9XCJsbiBsbFwiPjwvZGl2PjxkaXYgaWQ9XCJkMlwiIGNsYXNzPVwiZG90XCI-PC9kaXY-PGRpdiBpZD1cImw0XCIgY2xhc3M9XCJsbiBsclwiPjwvZGl2PjwvZGl2PjwvZGl2PiIsImNzcyI6Imh0bWwsYm9keXttYXJnaW46MDt3aWR0aDo3MDBweDtoZWlnaHQ6MzAwcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lm97cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NzAwcHg7aGVpZ2h0OjMwMHB4fS5yb3d7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3dpZHRoOjcwMHB4O2hlaWdodDoxMnB4fS50b3B7dG9wOjRweH0uYm90e2JvdHRvbTo0cHh9Lmxue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo2cHg7aGVpZ2h0OjFweDt3aWR0aDoyNjBweDtiYWNrZ3JvdW5kOnt7R09MRH19O3RyYW5zZm9ybTpzY2FsZVgoMCl9Lmxse3JpZ2h0OjM2NHB4O3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgY2VudGVyfS5scntsZWZ0OjM2NHB4O3RyYW5zZm9ybS1vcmlnaW46bGVmdCBjZW50ZXJ9LmR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDozNDVweDt0b3A6MXB4O3dpZHRoOjlweDtoZWlnaHQ6OXB4O2JvcmRlcjoxcHggc29saWQge3tHT0xEfX07Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6MH0uZG90e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MzQ4cHg7dG9wOjVweDt3aWR0aDozcHg7aGVpZ2h0OjNweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnt7R09MRH19O29wYWNpdHk6MH0iLCJqcyI6ImNvbnN0IHRsPWdzYXAudGltZWxpbmUoKTt0bC5mcm9tVG8oJyNkMScse3JvdGF0aW9uOjQ1LHNjYWxlOjAsb3BhY2l0eTowfSx7cm90YXRpb246NDUsc2NhbGU6MSxvcGFjaXR5OjEsZHVyYXRpb246MC44LGVhc2U6J3Bvd2VyMy5vdXQnfSwwLjIpLnRvKFsnI2wxJywnI2wyJ10se3NjYWxlWDoxLGR1cmF0aW9uOjEuNixlYXNlOidwb3dlcjMuaW5PdXQnfSwwLjQpLnRvKCcjZDInLHtvcGFjaXR5OjEsZHVyYXRpb246MC42LGVhc2U6J3Bvd2VyMi5vdXQnfSwwLjgpLnRvKFsnI2wzJywnI2w0J10se3NjYWxlWDoxLGR1cmF0aW9uOjEuNixlYXNlOidwb3dlcjMuaW5PdXQnfSwwLjkpLnRvKCcubycse29wYWNpdHk6MCxkdXJhdGlvbjowLjYsZWFzZToncG93ZXIyLmluJ30sNC4zKTsifSwic3RhcnQiOjAsImxlbmd0aCI6NSwid2lkdGgiOjcwMCwiaGVpZ2h0IjozMDAsIm9mZnNldCI6eyJ4IjowLCJ5IjowfX0seyJhc3NldCI6eyJ0eXBlIjoiaHRtbDUiLCJodG1sIjoiPGRpdiBpZD1cImxuXCIgY2xhc3M9XCJsblwiPjwvZGl2PiIsImNzcyI6Imh0bWwsYm9keXttYXJnaW46MDt3aWR0aDoyNDBweDtoZWlnaHQ6NHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5sbnt3aWR0aDoyNDBweDtoZWlnaHQ6MnB4O21hcmdpbi10b3A6MXB4O2JhY2tncm91bmQ6e3tHT0xEfX07dHJhbnNmb3JtOnNjYWxlWCgwKTt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQgY2VudGVyfSIsImpzIjoiY29uc3QgdGw9Z3NhcC50aW1lbGluZSgpO3RsLnRvKCcjbG4nLHtzY2FsZVg6MSxkdXJhdGlvbjoxLjQsZWFzZToncG93ZXIzLmluT3V0J30sMC45KS50bygnI2xuJyx7b3BhY2l0eTowLGR1cmF0aW9uOjAuNSxlYXNlOidwb3dlcjIuaW4nfSw0LjQpOyJ9LCJzdGFydCI6NSwibGVuZ3RoIjo1LCJ3aWR0aCI6MjQwLCJoZWlnaHQiOjQsIm9mZnNldCI6eyJ4IjotMC4zNzIsInkiOi0wLjA3NX19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imh0bWw1IiwiaHRtbCI6IjxkaXYgY2xhc3M9XCJnXCI-PC9kaXY-IiwiY3NzIjoiaHRtbCxib2R5e21hcmdpbjowO3dpZHRoOjE5MjBweDtoZWlnaHQ6MTA4MHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5ne3dpZHRoOjE5MjBweDtoZWlnaHQ6MTA4MHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHJnYmEoMTEsMTEsMTEsMC44OCkgMCUscmdiYSgxMSwxMSwxMSwwLjUpIDQyJSxyZ2JhKDExLDExLDExLDApIDcyJSksbGluZWFyLWdyYWRpZW50KDBkZWcscmdiYSgxMSwxMSwxMSwwLjY1KSAwJSxyZ2JhKDExLDExLDExLDApIDQ1JSl9IiwianMiOiIifSwic3RhcnQiOjUsImxlbmd0aCI6NSwid2lkdGgiOjE5MjAsImhlaWdodCI6MTA4MCwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUiLCJvdXQiOiJmYWRlIn19LHsiYXNzZXQiOnsidHlwZSI6Imh0bWw1IiwiaHRtbCI6IjxkaXYgY2xhc3M9XCJnXCI-PC9kaXY-IiwiY3NzIjoiaHRtbCxib2R5e21hcmdpbjowO3dpZHRoOjE5MjBweDtoZWlnaHQ6MTA4MHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5ne3dpZHRoOjE5MjBweDtoZWlnaHQ6MTA4MHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLHJnYmEoMTEsMTEsMTEsMC42KSAwJSxyZ2JhKDExLDExLDExLDAuOSkgMTAwJSl9IiwianMiOiIifSwic3RhcnQiOjEwLCJsZW5ndGgiOjUsIndpZHRoIjoxOTIwLCJoZWlnaHQiOjEwODAsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIiwib3V0IjoiZmFkZSJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Int7SU1BR0VfMX19In0sInN0YXJ0Ijo1LCJsZW5ndGgiOjUsImZpdCI6ImNyb3AiLCJlZmZlY3QiOiJ6b29tSW5TbG93IiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUiLCJvdXQiOiJmYWRlIn19LHsiYXNzZXQiOnsidHlwZSI6ImltYWdlIiwic3JjIjoie3tJTUFHRV8yfX0ifSwic3RhcnQiOjEwLCJsZW5ndGgiOjUsImZpdCI6ImNyb3AiLCJlZmZlY3QiOiJzbGlkZUxlZnRTbG93IiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUiLCJvdXQiOiJmYWRlIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6ImF1ZGlvIiwic3JjIjoie3tNVVNJQ319Iiwidm9sdW1lIjowLjgsImVmZmVjdCI6ImZhZGVJbkZhZGVPdXQifSwic3RhcnQiOjAsImxlbmd0aCI6MTV9XX1dLCJmb250cyI6W3sic3JjIjoiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3BsYXlmYWlyZGlzcGxheS92NDAvbnVGaUQtdllTWnZpVllVYl9yajNpal9fYW5QWFBUdlNnV0VfLXhVLnR0ZiJ9LHsic3JjIjoiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVNqSWcxX2k2dDhrQ0hLbTQ1eFc1cnlnYmk0OWMudHRmIn1dfSwib3V0cHV0Ijp7ImZvcm1hdCI6Im1wNCIsInJlc29sdXRpb24iOiIxMDgwIiwiYXNwZWN0UmF0aW8iOiIxNjo5IiwiZGVzdGluYXRpb25zIjpbeyJwcm92aWRlciI6InNob3RzdGFjayJ9XX0sIm1lcmdlIjpbeyJmaW5kIjoiQlJBTkRfTkFNRSIsInJlcGxhY2UiOiJNYWlzb24gw4lsYW4ifSx7ImZpbmQiOiJTRUFTT04iLCJyZXBsYWNlIjoiQXV0dW1uIC8gV2ludGVyIDIwMjUifSx7ImZpbmQiOiJDT0xMRUNUSU9OIiwicmVwbGFjZSI6IlRoZSBOb2lyIEVkaXQifSx7ImZpbmQiOiJUQUdMSU5FIiwicmVwbGFjZSI6IkNyYWZ0ZWQgZm9yIHRoZSBmZXcuIn0seyJmaW5kIjoiQ1RBIiwicmVwbGFjZSI6IkRpc2NvdmVyIHRoZSBDb2xsZWN0aW9uIn0seyJmaW5kIjoiVVJMIiwicmVwbGFjZSI6Im1haXNvbmVsYW4uY29tIn0seyJmaW5kIjoiSVZPUlkiLCJyZXBsYWNlIjoiI0Y0RUZFNiJ9LHsiZmluZCI6IkdPTEQiLCJyZXBsYWNlIjoiI0M5QTk2RSJ9LHsiZmluZCI6IklOSyIsInJlcGxhY2UiOiIjMEIwQjBCIn0seyJmaW5kIjoiSU1BR0VfMSIsInJlcGxhY2UiOiJodHRwczovL2Nkbi5zaG90c3RhY2suaW8vYXUvdjEvZ2VuZXJhdGlvbnMvd2Rkc2N3NmY1OS9kNTRkYzM4My0yNjliLTVhMjAtOWI5MS1iMzFmMjFjYmM1MTUucG5nIn0seyJmaW5kIjoiSU1BR0VfMiIsInJlcGxhY2UiOiJodHRwczovL2Nkbi5zaG90c3RhY2suaW8vYXUvdjEvZ2VuZXJhdGlvbnMvd2Rkc2N3NmY1OS9lZDNjNDJjNS0wNjlhLTVmZWItYmJmYi1kODdlYjRkODc3MDcucG5nIn0seyJmaW5kIjoiTVVTSUMiLCJyZXBsYWNlIjoiaHR0cHM6Ly9jZG4uc2hvdHN0YWNrLmlvL2F1L3YxL2dlbmVyYXRpb25zL3dkZHNjdzZmNTkvNTk5ZDM0MzUtMWIxNC01OGY1LTgzNjItMWFkYzZkZTBhMTFlLm1wMyJ9XX0 - **Edit and save to an account**: https://dashboard.shotstack.io/studio/editor/maison-elan ## 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 | | --- | --- | | `{{ BRAND_NAME }}` | Maison Élan | | `{{ SEASON }}` | Autumn / Winter 2025 | | `{{ COLLECTION }}` | The Noir Edit | | `{{ TAGLINE }}` | Crafted for the few. | | `{{ CTA }}` | Discover the Collection | | `{{ URL }}` | maisonelan.com | | `{{ IVORY }}` | #F4EFE6 | | `{{ GOLD }}` | #C9A96E | | `{{ INK }}` | #0B0B0B | | `{{ IMAGE_1 }}` | https://cdn.shotstack.io/au/v1/generations/wddscw6f59/d54dc383-269b-5a20-9b91-b31f21cbc515.png | | `{{ IMAGE_2 }}` | https://cdn.shotstack.io/au/v1/generations/wddscw6f59/ed3c42c5-069a-5feb-bbfb-d87eb4d87707.png | | `{{ MUSIC }}` | https://cdn.shotstack.io/au/v1/generations/wddscw6f59/599d3435-1b14-58f5-8362-1adc6de0a11e.mp3 | ## Template JSON ```json { "timeline": { "background": "#0B0B0B", "tracks": [ { "clips": [ { "asset": { "type": "html5", "html": "
", "css": "html,body{margin:0;width:1920px;height:1080px;overflow:hidden;background:transparent}.grain{position:absolute;top:-60px;left:-60px;width:2040px;height:1200px;opacity:0.07;background-image:url(\"data:image/svg+xml;utf8,\");background-size:240px 240px;animation:drift 0.6s steps(4) 0s infinite both}@keyframes drift{0%{transform:translate(0,0)}25%{transform:translate(-12px,8px)}50%{transform:translate(10px,-10px)}75%{transform:translate(-8px,-6px)}100%{transform:translate(0,0)}}", "js": "" }, "start": 0, "length": 15, "width": 1920, "height": 1080 } ] }, { "clips": [ { "asset": { "type": "rich-text", "text": "{{BRAND_NAME}}", "font": { "family": "nuFiD-vYSZviVYUb_rj3ij__anPXPTvSgWE_-xU", "size": 120, "weight": "500", "color": "{{IVORY}}" }, "style": { "letterSpacing": 10, "textTransform": "uppercase", "lineHeight": 1 }, "align": { "horizontal": "center", "vertical": "middle" }, "animation": { "preset": "fadeIn", "duration": 1.4 } }, "start": 0.3, "length": 4.7, "width": 1600, "height": 200, "offset": { "x": 0, "y": 0.05 }, "transition": { "out": "fade" } }, { "asset": { "type": "rich-text", "text": "{{COLLECTION}}", "font": { "family": "nuFiD-vYSZviVYUb_rj3ij__anPXPTvSgWE_-xU", "size": 110, "weight": "500", "color": "{{IVORY}}", "style": "italic" }, "style": { "letterSpacing": 1, "lineHeight": 1 }, "align": { "horizontal": "left", "vertical": "middle" }, "animation": { "preset": "ascend", "duration": 1.2, "direction": "up" } }, "start": 5.5, "length": 4.5, "width": 900, "height": 160, "offset": { "x": -0.2, "y": 0.02 }, "transition": { "out": "fade" } }, { "asset": { "type": "rich-text", "text": "{{BRAND_NAME}}", "font": { "family": "nuFiD-vYSZviVYUb_rj3ij__anPXPTvSgWE_-xU", "size": 100, "weight": "500", "color": "{{IVORY}}" }, "style": { "letterSpacing": 10, "textTransform": "uppercase", "lineHeight": 1 }, "align": { "horizontal": "center", "vertical": "middle" }, "animation": { "preset": "fadeIn", "duration": 1.2 } }, "start": 10.4, "length": 4.6, "width": 1600, "height": 160, "offset": { "x": 0, "y": 0.1 }, "transition": { "out": "fade" } } ] }, { "clips": [ { "asset": { "type": "rich-text", "text": "{{SEASON}}", "font": { "family": "JTUSjIg1_i6t8kCHKm45xW5rygbi49c", "size": 26, "weight": "500", "color": "{{GOLD}}" }, "style": { "letterSpacing": 8, "textTransform": "uppercase" }, "align": { "horizontal": "center", "vertical": "middle" }, "animation": { "preset": "fadeIn", "duration": 1.2 } }, "start": 1.3, "length": 3.7, "width": 1200, "height": 60, "offset": { "x": 0, "y": -0.08 }, "transition": { "out": "fade" } }, { "asset": { "type": "rich-text", "text": "{{TAGLINE}}", "font": { "family": "JTUSjIg1_i6t8kCHKm45xW5rygbi49c", "size": 30, "weight": "300", "color": "{{IVORY}}", "opacity": 0.85 }, "style": { "letterSpacing": 3 }, "align": { "horizontal": "left", "vertical": "middle" }, "animation": { "preset": "fadeIn", "duration": 1 } }, "start": 6.6, "length": 3.4, "width": 900, "height": 60, "offset": { "x": -0.2, "y": -0.13 }, "transition": { "out": "fade" } }, { "asset": { "type": "rich-text", "text": "{{CTA}}", "font": { "family": "JTUSjIg1_i6t8kCHKm45xW5rygbi49c", "size": 22, "weight": "500", "color": "{{GOLD}}" }, "style": { "letterSpacing": 6, "textTransform": "uppercase" }, "align": { "horizontal": "center", "vertical": "middle" }, "border": { "color": "{{GOLD}}", "width": 1, "opacity": 0.9 }, "animation": { "preset": "fadeIn", "duration": 1 } }, "start": 11.3, "length": 3.7, "width": 560, "height": 76, "offset": { "x": 0, "y": -0.06 }, "transition": { "out": "fade" } } ] }, { "clips": [ { "asset": { "type": "rich-text", "text": "{{URL}}", "font": { "family": "JTUSjIg1_i6t8kCHKm45xW5rygbi49c", "size": 22, "weight": "400", "color": "{{IVORY}}", "opacity": 0.75 }, "style": { "letterSpacing": 5, "textTransform": "lowercase" }, "align": { "horizontal": "center", "vertical": "middle" }, "animation": { "preset": "fadeIn", "duration": 1 } }, "start": 12, "length": 3, "width": 800, "height": 50, "offset": { "x": 0, "y": -0.22 }, "transition": { "out": "fade" } }, { "asset": { "type": "rich-text", "text": "New Collection", "font": { "family": "JTUSjIg1_i6t8kCHKm45xW5rygbi49c", "size": 22, "weight": "500", "color": "{{GOLD}}" }, "style": { "letterSpacing": 8, "textTransform": "uppercase" }, "align": { "horizontal": "left", "vertical": "middle" }, "animation": { "preset": "fadeIn", "duration": 1 } }, "start": 5.3, "length": 4.7, "width": 900, "height": 50, "offset": { "x": -0.2, "y": 0.12 }, "transition": { "out": "fade" } } ] }, { "clips": [ { "asset": { "type": "html5", "html": "
", "css": "html,body{margin:0;width:700px;height:300px;overflow:hidden;background:transparent}.o{position:relative;width:700px;height:300px}.row{position:absolute;left:0;width:700px;height:12px}.top{top:4px}.bot{bottom:4px}.ln{position:absolute;top:6px;height:1px;width:260px;background:{{GOLD}};transform:scaleX(0)}.ll{right:364px;transform-origin:right center}.lr{left:364px;transform-origin:left center}.d{position:absolute;left:345px;top:1px;width:9px;height:9px;border:1px solid {{GOLD}};box-sizing:border-box;opacity:0}.dot{position:absolute;left:348px;top:5px;width:3px;height:3px;border-radius:50%;background:{{GOLD}};opacity:0}", "js": "const tl=gsap.timeline();tl.fromTo('#d1',{rotation:45,scale:0,opacity:0},{rotation:45,scale:1,opacity:1,duration:0.8,ease:'power3.out'},0.2).to(['#l1','#l2'],{scaleX:1,duration:1.6,ease:'power3.inOut'},0.4).to('#d2',{opacity:1,duration:0.6,ease:'power2.out'},0.8).to(['#l3','#l4'],{scaleX:1,duration:1.6,ease:'power3.inOut'},0.9).to('.o',{opacity:0,duration:0.6,ease:'power2.in'},4.3);" }, "start": 0, "length": 5, "width": 700, "height": 300, "offset": { "x": 0, "y": 0 } }, { "asset": { "type": "html5", "html": "
", "css": "html,body{margin:0;width:240px;height:4px;overflow:hidden;background:transparent}.ln{width:240px;height:2px;margin-top:1px;background:{{GOLD}};transform:scaleX(0);transform-origin:left center}", "js": "const tl=gsap.timeline();tl.to('#ln',{scaleX:1,duration:1.4,ease:'power3.inOut'},0.9).to('#ln',{opacity:0,duration:0.5,ease:'power2.in'},4.4);" }, "start": 5, "length": 5, "width": 240, "height": 4, "offset": { "x": -0.372, "y": -0.075 } } ] }, { "clips": [ { "asset": { "type": "html5", "html": "
", "css": "html,body{margin:0;width:1920px;height:1080px;overflow:hidden;background:transparent}.g{width:1920px;height:1080px;background:linear-gradient(90deg,rgba(11,11,11,0.88) 0%,rgba(11,11,11,0.5) 42%,rgba(11,11,11,0) 72%),linear-gradient(0deg,rgba(11,11,11,0.65) 0%,rgba(11,11,11,0) 45%)}", "js": "" }, "start": 5, "length": 5, "width": 1920, "height": 1080, "transition": { "in": "fade", "out": "fade" } }, { "asset": { "type": "html5", "html": "
", "css": "html,body{margin:0;width:1920px;height:1080px;overflow:hidden;background:transparent}.g{width:1920px;height:1080px;background:radial-gradient(ellipse at center,rgba(11,11,11,0.6) 0%,rgba(11,11,11,0.9) 100%)}", "js": "" }, "start": 10, "length": 5, "width": 1920, "height": 1080, "transition": { "in": "fade", "out": "fade" } } ] }, { "clips": [ { "asset": { "type": "image", "src": "{{IMAGE_1}}" }, "start": 5, "length": 5, "fit": "crop", "effect": "zoomInSlow", "transition": { "in": "fade", "out": "fade" } }, { "asset": { "type": "image", "src": "{{IMAGE_2}}" }, "start": 10, "length": 5, "fit": "crop", "effect": "slideLeftSlow", "transition": { "in": "fade", "out": "fade" } } ] }, { "clips": [ { "asset": { "type": "audio", "src": "{{MUSIC}}", "volume": 0.8, "effect": "fadeInFadeOut" }, "start": 0, "length": 15 } ] } ], "fonts": [ { "src": "https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXPTvSgWE_-xU.ttf" }, { "src": "https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm45xW5rygbi49c.ttf" } ] }, "output": { "format": "mp4", "resolution": "1080", "aspectRatio": "16:9", "destinations": [ { "provider": "shotstack" } ] }, "merge": [ { "find": "BRAND_NAME", "replace": "Maison Élan" }, { "find": "SEASON", "replace": "Autumn / Winter 2025" }, { "find": "COLLECTION", "replace": "The Noir Edit" }, { "find": "TAGLINE", "replace": "Crafted for the few." }, { "find": "CTA", "replace": "Discover the Collection" }, { "find": "URL", "replace": "maisonelan.com" }, { "find": "IVORY", "replace": "#F4EFE6" }, { "find": "GOLD", "replace": "#C9A96E" }, { "find": "INK", "replace": "#0B0B0B" }, { "find": "IMAGE_1", "replace": "https://cdn.shotstack.io/au/v1/generations/wddscw6f59/d54dc383-269b-5a20-9b91-b31f21cbc515.png" }, { "find": "IMAGE_2", "replace": "https://cdn.shotstack.io/au/v1/generations/wddscw6f59/ed3c42c5-069a-5feb-bbfb-d87eb4d87707.png" }, { "find": "MUSIC", "replace": "https://cdn.shotstack.io/au/v1/generations/wddscw6f59/599d3435-1b14-58f5-8362-1adc6de0a11e.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