# Event Announcement Template - Promote Your Sports Match (video template) > Easily advertise your sports events with this vibrant and customizable template, designed to highlight match details and attract fans. ## Overview - **Page**: https://shotstack.io/studio/templates/sports-event-promotion-template/ - **Output**: MP4, 1920x1080 (16:9), 25 fps - **Length**: 15s - **Timeline**: 21 clips on 16 tracks; assets: image, luma, 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=eyJ0aW1lbGluZSI6eyJiYWNrZ3JvdW5kIjoiI0ZGRkZGRiIsInRyYWNrcyI6W3siY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiB7e0ZPT1RFUn19IiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SIH19IiwiZmFtaWx5IjoiQXJhcGV5Iiwic2l6ZSI6IjM2IiwibGluZUhlaWdodCI6MX0sIndpZHRoIjoxNTAwLCJoZWlnaHQiOjIwMH0sInN0YXJ0IjowLjQsImxlbmd0aCI6NC42LCJvZmZzZXQiOnsieCI6MCwieSI6LTAuMzYxfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7Im91dCI6InNsaWRlRG93biIsImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Int7SEVBREVSfX0iLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJmYW1pbHkiOiJBcmFwZXkiLCJzaXplIjoiMzYiLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjE5MjAsImhlaWdodCI6MjAwfSwic3RhcnQiOjAuMiwibGVuZ3RoIjo0LjgsIm9mZnNldCI6eyJ4IjowLCJ5IjowLjM3N30sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlVXAiLCJvdXQiOiJzbGlkZURvd24ifX1dfSx7ImNsaXBzIjpbeyJsZW5ndGgiOjUsImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9zcG9ydHMtZXZlbnQtcHJvbW90aW9uLXRlbXBsYXRlL2EwYmJmYWFiLTQ2YWYtNDkxMS1iM2E3LTk3ZjMzMzc4Yjk5My9zb3VyY2UucG5nIn0sInN0YXJ0IjowLCJzY2FsZSI6MC4yNSwidHJhbnNpdGlvbiI6eyJpbiI6Inpvb20iLCJvdXQiOiJmYWRlIn0sImZpdCI6ImNyb3AifV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Int7TUFUQ0hfVFlQRX19IiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SIH19IiwiZmFtaWx5IjoiQXJhcGV5Iiwic2l6ZSI6IjMwMCIsImxpbmVIZWlnaHQiOjAuOX0sIndpZHRoIjoxMjAwLCJoZWlnaHQiOjcwMH0sInN0YXJ0IjowLCJsZW5ndGgiOjUsIm9wYWNpdHkiOjAuMjgsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIiwib3V0IjoiZmFkZSJ9LCJwb3NpdGlvbiI6ImNlbnRlciJ9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiVlMiLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiJ7eyBWU19URVhUX0ZPTlRfQ09MT1IgfX0iLCJmYW1pbHkiOiJBcmFwZXkiLCJzaXplIjoiNDEiLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjgwMCwiaGVpZ2h0IjoyMDB9LCJzdGFydCI6Ny41LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4wMSwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIiLCJlYXNpbmciOiJsaW5lYXIifSx7InN0YXJ0IjowLjAxLCJsZW5ndGgiOjAuNCwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0IjowLjQxLCJsZW5ndGgiOjUuMzgsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6NS43OSwibGVuZ3RoIjowLjM4LCJmcm9tIjowLCJ0byI6MCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XSwieSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4wMSwiZnJvbSI6MCwidG8iOjAuMDQ3LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIiwiZWFzaW5nIjoibGluZWFyIn0seyJzdGFydCI6MC4wMSwibGVuZ3RoIjowLjQsImZyb20iOjAuMDQ3LCJ0byI6MC4wNjcsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0IjowLjQxLCJsZW5ndGgiOjUuMzgsImZyb20iOjAuMDY3LCJ0byI6MC4wNjcsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo1Ljc5LCJsZW5ndGgiOjAuMzgsImZyb20iOjAuMDY3LCJ0byI6MC4wNDcsImludGVycG9sYXRpb24iOiJsaW5lYXIifV19LCJwb3NpdGlvbiI6ImNlbnRlciIsIm9wYWNpdHkiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuMDEsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIiwiZWFzaW5nIjoibGluZWFyIn0seyJzdGFydCI6MC4wMSwibGVuZ3RoIjowLjQsImZyb20iOjAsInRvIjoxLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6MC40MSwibGVuZ3RoIjo1LjM4LCJmcm9tIjoxLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjUuNzksImxlbmd0aCI6MC4zOCwiZnJvbSI6MSwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifV0sInNjYWxlIjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjAxLCJmcm9tIjoxLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMDEsImxlbmd0aCI6MC40LCJmcm9tIjoxLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjAuNDEsImxlbmd0aCI6NS4zOCwiZnJvbSI6MSwidG8iOjEsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo1Ljc5LCJsZW5ndGgiOjAuMzgsImZyb20iOjEsInRvIjoxLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dLCJ0cmFuc2Zvcm0iOnsicm90YXRlIjp7ImFuZ2xlIjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjAxLCJmcm9tIjowLCJ0byI6MCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMDEsImxlbmd0aCI6MC40LCJmcm9tIjowLCJ0byI6MCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjAuNDEsImxlbmd0aCI6NS4zOCwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo1Ljc5LCJsZW5ndGgiOjAuMzgsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dfX19XX0seyJjbGlwcyI6W3sibGVuZ3RoIjoiZW5kIiwiYXNzZXQiOnsidHlwZSI6ImltYWdlIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Nwb3J0cy1ldmVudC1wcm9tb3Rpb24tdGVtcGxhdGUvMjE0NTIyYzktMTYyNi00MmFhLWFmMWQtZmI1Y2RlYWI2M2NhL3NvdXJjZS5wbmcifSwic3RhcnQiOjcuNSwic2NhbGUiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuMjQsImZyb20iOjAuMjUsInRvIjowLjI1LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIiwiZWFzaW5nIjoibGluZWFyIn0seyJzdGFydCI6MC4yNCwibGVuZ3RoIjowLjQzLCJmcm9tIjowLjI1LCJ0byI6MC4yNSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjAuNjcsImxlbmd0aCI6NS4xMiwiZnJvbSI6MC4yNSwidG8iOjAuMjUsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo1Ljc5LCJsZW5ndGgiOjAuMzgsImZyb20iOjAuMjUsInRvIjowLjI1LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dLCJvZmZzZXQiOnsieCI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4yNCwiZnJvbSI6MC4xMjUsInRvIjowLjEyNSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMjQsImxlbmd0aCI6MC40MywiZnJvbSI6MC4xMjUsInRvIjowLjEyNSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjAuNjcsImxlbmd0aCI6NS4xMiwiZnJvbSI6MC4xMjUsInRvIjowLjEyNSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjUuNzksImxlbmd0aCI6MC4zOCwiZnJvbSI6MC4xMjUsInRvIjowLjEyNSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XSwieSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4yNCwiZnJvbSI6MC4wNDcsInRvIjowLjA0NywiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMjQsImxlbmd0aCI6MC40MywiZnJvbSI6MC4wNDcsInRvIjowLjA2NywiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjAuNjcsImxlbmd0aCI6NS4xMiwiZnJvbSI6MC4wNjcsInRvIjowLjA2NywiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjUuNzksImxlbmd0aCI6MC4zOCwiZnJvbSI6MC4wNjcsInRvIjowLjA0NywiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XX0sInBvc2l0aW9uIjoiY2VudGVyIiwib3BhY2l0eSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4yNCwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIiLCJlYXNpbmciOiJsaW5lYXIifSx7InN0YXJ0IjowLjI0LCJsZW5ndGgiOjAuNDMsImZyb20iOjAsInRvIjoxLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6MC42NywibGVuZ3RoIjo1LjEyLCJmcm9tIjoxLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjUuNzksImxlbmd0aCI6MC4zOCwiZnJvbSI6MSwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifV0sInRyYW5zZm9ybSI6eyJyb3RhdGUiOnsiYW5nbGUiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuMjQsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIiwiZWFzaW5nIjoibGluZWFyIn0seyJzdGFydCI6MC4yNCwibGVuZ3RoIjowLjQzLCJmcm9tIjowLCJ0byI6MCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjAuNjcsImxlbmd0aCI6NS4xMiwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo1Ljc5LCJsZW5ndGgiOjAuMzgsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dfX0sImZpdCI6ImNyb3AifV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6ImVuZCIsImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9zcG9ydHMtZXZlbnQtcHJvbW90aW9uLXRlbXBsYXRlL2IyNmI2MjhmLTE5MzktNDY2Yy05NDJkLWE3Y2M4NDZiYjU1Yy9zb3VyY2UucG5nIn0sInN0YXJ0Ijo3LjUsInNjYWxlIjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjI0LCJmcm9tIjowLjI1LCJ0byI6MC4yNSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMjQsImxlbmd0aCI6MC40MywiZnJvbSI6MC4yNSwidG8iOjAuMjUsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0IjowLjY3LCJsZW5ndGgiOjUuMTIsImZyb20iOjAuMjUsInRvIjowLjI1LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6NS43OSwibGVuZ3RoIjowLjM4LCJmcm9tIjowLjI1LCJ0byI6MC4yNSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XSwib2Zmc2V0Ijp7IngiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuMjQsImZyb20iOi0wLjExOCwidG8iOi0wLjExOCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMjQsImxlbmd0aCI6MC40MywiZnJvbSI6LTAuMTE4LCJ0byI6LTAuMTE4LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6MC42NywibGVuZ3RoIjo1LjEyLCJmcm9tIjotMC4xMTgsInRvIjotMC4xMTgsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo1Ljc5LCJsZW5ndGgiOjAuMzgsImZyb20iOi0wLjExOCwidG8iOi0wLjExOCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XSwieSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4yNCwiZnJvbSI6MC4wNDksInRvIjowLjA0OSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMjQsImxlbmd0aCI6MC40MywiZnJvbSI6MC4wNDksInRvIjowLjA3OSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjAuNjcsImxlbmd0aCI6NS4xMiwiZnJvbSI6MC4wNzksInRvIjowLjA3OSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjUuNzksImxlbmd0aCI6MC4zOCwiZnJvbSI6MC4wNzksInRvIjowLjA0OSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XX0sInBvc2l0aW9uIjoiY2VudGVyIiwib3BhY2l0eSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4yNCwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIiLCJlYXNpbmciOiJsaW5lYXIifSx7InN0YXJ0IjowLjI0LCJsZW5ndGgiOjAuNDMsImZyb20iOjAsInRvIjoxLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6MC42NywibGVuZ3RoIjo1LjEyLCJmcm9tIjoxLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjUuNzksImxlbmd0aCI6MC4zOCwiZnJvbSI6MSwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifV0sInRyYW5zZm9ybSI6eyJyb3RhdGUiOnsiYW5nbGUiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuMjQsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIiwiZWFzaW5nIjoibGluZWFyIn0seyJzdGFydCI6MC4yNCwibGVuZ3RoIjowLjQzLCJmcm9tIjowLCJ0byI6MCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjAuNjcsImxlbmd0aCI6NS4xMiwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo1Ljc5LCJsZW5ndGgiOjAuMzgsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dfX0sImZpdCI6ImNyb3AifV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiB7e1RJTUV9fSIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUl8yIH19IiwiZmFtaWx5IjoiTW9udHNlcnJhdCBTZW1pQm9sZCIsInNpemUiOiIzNiIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6MzAwLCJoZWlnaHQiOjc1LCJiYWNrZ3JvdW5kIjp7ImNvbG9yIjoie3sgVElNRV9DT0xPUiB9fSIsImJvcmRlclJhZGl1cyI6MTl9fSwic3RhcnQiOjgsImxlbmd0aCI6Nywib2Zmc2V0Ijp7InkiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuMTYsImZyb20iOi0wLjEwNCwidG8iOi0wLjE0NywiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMTYsImxlbmd0aCI6MC4zNSwiZnJvbSI6LTAuMTQ3LCJ0byI6LTAuMTQ3LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6MC41MSwibGVuZ3RoIjo0LjMsImZyb20iOi0wLjE0NywidG8iOi0wLjE0NywiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjQuODEsImxlbmd0aCI6MC40OSwiZnJvbSI6LTAuMTQ3LCJ0byI6LTAuMTQ3LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dLCJ4IjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjE2LCJmcm9tIjowLjE0NywidG8iOjAuMTQ3LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIiwiZWFzaW5nIjoibGluZWFyIn0seyJzdGFydCI6MC4xNiwibGVuZ3RoIjowLjM1LCJmcm9tIjowLjE0NywidG8iOjAuMDkyLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6MC41MSwibGVuZ3RoIjo0LjMsImZyb20iOjAuMDkyLCJ0byI6MC4wOTIsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo0LjgxLCJsZW5ndGgiOjAuNDksImZyb20iOjAuMDkyLCJ0byI6MC4xNDcsImludGVycG9sYXRpb24iOiJsaW5lYXIifV19LCJwb3NpdGlvbiI6ImNlbnRlciIsIm9wYWNpdHkiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuMTYsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIiwiZWFzaW5nIjoibGluZWFyIn0seyJzdGFydCI6MC4xNiwibGVuZ3RoIjowLjM1LCJmcm9tIjowLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjAuNTEsImxlbmd0aCI6NC4zLCJmcm9tIjoxLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjQuODEsImxlbmd0aCI6MC40OSwiZnJvbSI6MSwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifV0sInNjYWxlIjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjE2LCJmcm9tIjoxLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMTYsImxlbmd0aCI6MC4zNSwiZnJvbSI6MSwidG8iOjEsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0IjowLjUxLCJsZW5ndGgiOjQuMywiZnJvbSI6MSwidG8iOjEsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo0LjgxLCJsZW5ndGgiOjAuNDksImZyb20iOjEsInRvIjoxLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dLCJ0cmFuc2Zvcm0iOnsicm90YXRlIjp7ImFuZ2xlIjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjE2LCJmcm9tIjowLCJ0byI6MCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMTYsImxlbmd0aCI6MC4zNSwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0IjowLjUxLCJsZW5ndGgiOjQuMywiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo0LjgxLCJsZW5ndGgiOjAuNDksImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dfX19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIHt7REFURX19IiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SXzIgfX0iLCJmYW1pbHkiOiJNb250c2VycmF0IFNlbWlCb2xkIiwic2l6ZSI6IjM2IiwibGluZUhlaWdodCI6MX0sIndpZHRoIjozMDAsImhlaWdodCI6NzUsImJhY2tncm91bmQiOnsiY29sb3IiOiJ7eyBEQVRFX0NPTE9SIH19IiwiYm9yZGVyUmFkaXVzIjoxOX19LCJzdGFydCI6OCwibGVuZ3RoIjo3LCJvZmZzZXQiOnsieCI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4wNCwiZnJvbSI6MC4wMTcsInRvIjowLjAxNywiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMDQsImxlbmd0aCI6MC40NSwiZnJvbSI6MC4wMTcsInRvIjotMC4wODgsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0IjowLjQ5LCJsZW5ndGgiOjQuNjIsImZyb20iOi0wLjA4OCwidG8iOi0wLjA4OCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjUuMTEsImxlbmd0aCI6MC40OCwiZnJvbSI6LTAuMDg4LCJ0byI6MC4wMTcsImludGVycG9sYXRpb24iOiJsaW5lYXIifV0sInkiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuMDQsImZyb20iOi0wLjE0NywidG8iOi0wLjE0NywiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMDQsImxlbmd0aCI6MC40NSwiZnJvbSI6LTAuMTQ3LCJ0byI6LTAuMTQ3LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6MC40OSwibGVuZ3RoIjo0LjYyLCJmcm9tIjotMC4xNDcsInRvIjotMC4xNDcsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0Ijo1LjExLCJsZW5ndGgiOjAuNDgsImZyb20iOi0wLjE0NywidG8iOi0wLjE0NywiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XX0sInBvc2l0aW9uIjoiY2VudGVyIiwib3BhY2l0eSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4wNCwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIiLCJlYXNpbmciOiJsaW5lYXIifSx7InN0YXJ0IjowLjA0LCJsZW5ndGgiOjAuNDUsImZyb20iOjAsInRvIjoxLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6MC40OSwibGVuZ3RoIjo0LjYyLCJmcm9tIjoxLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjUuMTEsImxlbmd0aCI6MC40OCwiZnJvbSI6MSwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifV0sInNjYWxlIjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjA0LCJmcm9tIjoxLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMDQsImxlbmd0aCI6MC40NSwiZnJvbSI6MSwidG8iOjEsImludGVycG9sYXRpb24iOiJsaW5lYXIifSx7InN0YXJ0IjowLjQ5LCJsZW5ndGgiOjQuNjIsImZyb20iOjEsInRvIjoxLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6NS4xMSwibGVuZ3RoIjowLjQ4LCJmcm9tIjoxLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XSwidHJhbnNmb3JtIjp7InJvdGF0ZSI6eyJhbmdsZSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4wNCwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIiLCJlYXNpbmciOiJsaW5lYXIifSx7InN0YXJ0IjowLjA0LCJsZW5ndGgiOjAuNDUsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn0seyJzdGFydCI6MC40OSwibGVuZ3RoIjo0LjYyLCJmcm9tIjowLCJ0byI6MCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9LHsic3RhcnQiOjUuMTEsImxlbmd0aCI6MC40OCwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifV19fX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIiLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiIjMDAwMDAwIiwiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjo3MiwibGluZUhlaWdodCI6MX0sIndpZHRoIjoxOTIwLCJoZWlnaHQiOjE5MjAsImJhY2tncm91bmQiOnsiY29sb3IiOiJ7eyBTVEFSX0NPTE9SIH19In19LCJzdGFydCI6NSwibGVuZ3RoIjoxMCwicG9zaXRpb24iOiJjZW50ZXIifSx7ImFzc2V0Ijp7InR5cGUiOiJsdW1hIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Nwb3J0cy1ldmVudC1wcm9tb3Rpb24tdGVtcGxhdGUvOTNjZGIzNmQtODU5ZS00ZGVkLThhYTktM2M2NzczZjVjMzNiL3NvdXJjZS5tcDQifSwic3RhcnQiOjUsImxlbmd0aCI6MTB9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoiIzAwMDAwMCIsImZhbWlseSI6Ik1vbnRzZXJyYXQgRXh0cmFCb2xkIiwic2l6ZSI6NzIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6MTkyMCwiaGVpZ2h0IjoxOTIwLCJiYWNrZ3JvdW5kIjp7ImNvbG9yIjoie3sgU1RBUl9CQUNLR1JPVU5EX0NPTE9SIH19In19LCJzdGFydCI6NSwibGVuZ3RoIjoxMH0seyJhc3NldCI6eyJ0eXBlIjoibHVtYSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9zcG9ydHMtZXZlbnQtcHJvbW90aW9uLXRlbXBsYXRlL2ViZDU0ZGZjLTczMzAtNDhmOC04YWZiLTYyODQyYzkyODhkNy9zb3VyY2UubXA0In0sInN0YXJ0Ijo1LCJsZW5ndGgiOjEwfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjE5MjAsImhlaWdodCI6MTkyMCwiYmFja2dyb3VuZCI6eyJjb2xvciI6Int7IEJBUl9CQUNLR1JPVU5EX0NPTE9SIH19In19LCJzdGFydCI6NSwibGVuZ3RoIjoxMH0seyJhc3NldCI6eyJ0eXBlIjoibHVtYSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9zcG9ydHMtZXZlbnQtcHJvbW90aW9uLXRlbXBsYXRlLzk5MGJkMmM2LWRkMjItNDA3YS04OGZmLWIwOWMzNjI1OTFiYS9zb3VyY2UubXA0In0sInN0YXJ0Ijo1LCJsZW5ndGgiOjEwfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjE5MjAsImhlaWdodCI6MTA4MCwiYmFja2dyb3VuZCI6eyJjb2xvciI6Int7IEdSQURJRU5UX0JBQ0tHUk9VTkRfQ09MT1IgfX0ifX0sInN0YXJ0IjowLCJsZW5ndGgiOjUsInRyYW5zaXRpb24iOnsib3V0IjoiZmFkZSIsImluIjoiZmFkZSJ9LCJwb3NpdGlvbiI6ImNlbnRlciJ9LHsiYXNzZXQiOnsidHlwZSI6Imx1bWEiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vc3BvcnRzLWV2ZW50LXByb21vdGlvbi10ZW1wbGF0ZS85MTIwODcwZC0xY2ZhLTQ1N2EtYWUyOS01NWUxMzVkNTgzMTcvc291cmNlLnBuZyJ9LCJzdGFydCI6MCwibGVuZ3RoIjo1fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjE5MjAsImhlaWdodCI6MTA4MCwiYmFja2dyb3VuZCI6eyJjb2xvciI6Int7IEZJUlNUX0JBQ0tHUk9VTkRfQ09MT1JfMiB9fSJ9fSwic3RhcnQiOjAsImxlbmd0aCI6NSwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUiLCJvdXQiOiJmYWRlIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoiIzAwMDAwMCIsImZhbWlseSI6Ik1vbnRzZXJyYXQgRXh0cmFCb2xkIiwic2l6ZSI6NzIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6MTkyMCwiaGVpZ2h0IjoxOTIwLCJiYWNrZ3JvdW5kIjp7ImNvbG9yIjoie3sgQk9BUkRfQkFDS0dST1VORF9DT0xPUiB9fSJ9fSwic3RhcnQiOjUsImxlbmd0aCI6MTB9LHsiYXNzZXQiOnsidHlwZSI6Imx1bWEiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vc3BvcnRzLWV2ZW50LXByb21vdGlvbi10ZW1wbGF0ZS9jOWNhZDczZi0xZGMwLTQzNzAtYmRmOC1mNDU1MmY2N2I0MWIvc291cmNlLm1wNCJ9LCJzdGFydCI6NSwibGVuZ3RoIjoxMH1dfSx7ImNsaXBzIjpbeyJsZW5ndGgiOiJlbmQiLCJhc3NldCI6eyJ0eXBlIjoiaW1hZ2UiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vc3BvcnRzLWV2ZW50LXByb21vdGlvbi10ZW1wbGF0ZS8zM2MzMDE0MC1lZGFhLTQ0M2MtOWY2OS0yM2ZjZWVkN2NlMWYvc291cmNlLmpwZyJ9LCJzdGFydCI6NC41LCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9fV19XX0sIm91dHB1dCI6eyJmb3JtYXQiOiJtcDQiLCJmcHMiOjI1LCJzaXplIjp7IndpZHRoIjoxOTIwLCJoZWlnaHQiOjEwODB9fSwibWVyZ2UiOlt7ImZpbmQiOiJIRUFERVIiLCJyZXBsYWNlIjoiU0FLU0lLQU5MQUggUEVSVEFORElHQU4gUEVSU0FIQUJBVEFOIn0seyJmaW5kIjoiRk9PVEVSIiwicmVwbGFjZSI6IlBFUlRBTkRJR0FOIFBFUlNBSEFCQVRBTiJ9LHsiZmluZCI6Ik1BVENIX1RZUEUiLCJyZXBsYWNlIjoiRlJJRU5ETFkgTUFUQ0gifSx7ImZpbmQiOiJMT0dPX0lNQUdFX1NSQyIsInJlcGxhY2UiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vc3BvcnRzLWV2ZW50LXByb21vdGlvbi10ZW1wbGF0ZS82MGY2ZTliNS0yNjZiLTRkMGUtODk5Mi1lNDAyMmE3MDQwYzIvc2hvdHN0YWNrLXByb3h5LndlYnAifSx7ImZpbmQiOiJHUkFESUVOVF9CQUNLR1JPVU5EX0NPTE9SIiwicmVwbGFjZSI6IiNmZjAwMDAifSx7ImZpbmQiOiJGSVJTVF9CQUNLR1JPVU5EX0NPTE9SXzIiLCJyZXBsYWNlIjoiIzE1NDk1NiJ9LHsiZmluZCI6IklNQUdFX1NSQyIsInJlcGxhY2UiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vc3BvcnRzLWV2ZW50LXByb21vdGlvbi10ZW1wbGF0ZS85YTUyODQ1MS0wNGI1LTQ1MTktOWNmMC01YWM0Mjk3NWE0ZmIvc2hvdHN0YWNrLXByb3h5LndlYnAifSx7ImZpbmQiOiJCT0FSRF9CQUNLR1JPVU5EX0NPTE9SIiwicmVwbGFjZSI6IiNmZmZmZmYifSx7ImZpbmQiOiJCQVJfQkFDS0dST1VORF9DT0xPUiIsInJlcGxhY2UiOiIjMTg3YmE1In0seyJmaW5kIjoiU1RBUl9CQUNLR1JPVU5EX0NPTE9SIiwicmVwbGFjZSI6IiMxODdiYTUifSx7ImZpbmQiOiJTVEFSX0NPTE9SIiwicmVwbGFjZSI6IiMxOTNjMDYifSx7ImZpbmQiOiJMT0dPX0lNQUdFX1NSQ18xIiwicmVwbGFjZSI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9zcG9ydHMtZXZlbnQtcHJvbW90aW9uLXRlbXBsYXRlL2E1MzVhZTFjLTlmZjQtNGU3ZS05NTA3LWQwZjA4ZjQ2ZjcwMi9zaG90c3RhY2stcHJveHkud2VicCJ9LHsiZmluZCI6IkxPR09fSU1BR0VfU1JDXzIiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Nwb3J0cy1ldmVudC1wcm9tb3Rpb24tdGVtcGxhdGUvYjIxZGZjYjQtNGQ5YS00ZDQ2LWJlMDUtMGVjNTZjY2ZlNDE0L3Nob3RzdGFjay1wcm94eS53ZWJwIn0seyJmaW5kIjoiVlNfVEVYVF9GT05UX0NPTE9SIiwicmVwbGFjZSI6IiMwMDAwMDAifSx7ImZpbmQiOiJUSU1FIiwicmVwbGFjZSI6IjE3OjAwUE0ifSx7ImZpbmQiOiJEQVRFIiwicmVwbGFjZSI6IkZFQiAyMCwgMjAyNCJ9LHsiZmluZCI6IlRFWFRfRk9OVF9DT0xPUiIsInJlcGxhY2UiOiIjZmZmZmZmIn0seyJmaW5kIjoiVEVYVF9GT05UX0NPTE9SXzIiLCJyZXBsYWNlIjoiI2ZmZmZmZiJ9LHsiZmluZCI6IkRBVEVfQ09MT1IiLCJyZXBsYWNlIjoiIzcwMTFkMCJ9LHsiZmluZCI6IlRJTUVfQ09MT1IiLCJyZXBsYWNlIjoiI2ZmMDAwMCJ9XX0 - **Edit and save to an account**: https://dashboard.shotstack.io/studio/editor/sports-event-promotion-template ## 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 | | --- | --- | | `{{ HEADER }}` | SAKSIKANLAH PERTANDIGAN PERSAHABATAN | | `{{ FOOTER }}` | PERTANDIGAN PERSAHABATAN | | `{{ MATCH_TYPE }}` | FRIENDLY MATCH | | `{{ LOGO_IMAGE_SRC }}` | https://templates.shotstack.io/sports-event-promotion-template/60f6e9b5-266b-4d0e-8992-e4022a7040c2/shotstack-proxy.webp | | `{{ GRADIENT_BACKGROUND_COLOR }}` | #ff0000 | | `{{ FIRST_BACKGROUND_COLOR_2 }}` | #154956 | | `{{ IMAGE_SRC }}` | https://templates.shotstack.io/sports-event-promotion-template/9a528451-04b5-4519-9cf0-5ac42975a4fb/shotstack-proxy.webp | | `{{ BOARD_BACKGROUND_COLOR }}` | #ffffff | | `{{ BAR_BACKGROUND_COLOR }}` | #187ba5 | | `{{ STAR_BACKGROUND_COLOR }}` | #187ba5 | | `{{ STAR_COLOR }}` | #193c06 | | `{{ LOGO_IMAGE_SRC_1 }}` | https://templates.shotstack.io/sports-event-promotion-template/a535ae1c-9ff4-4e7e-9507-d0f08f46f702/shotstack-proxy.webp | | `{{ LOGO_IMAGE_SRC_2 }}` | https://templates.shotstack.io/sports-event-promotion-template/b21dfcb4-4d9a-4d46-be05-0ec56ccfe414/shotstack-proxy.webp | | `{{ VS_TEXT_FONT_COLOR }}` | #000000 | | `{{ TIME }}` | 17:00PM | | `{{ DATE }}` | FEB 20, 2024 | | `{{ TEXT_FONT_COLOR }}` | #ffffff | | `{{ TEXT_FONT_COLOR_2 }}` | #ffffff | | `{{ DATE_COLOR }}` | #7011d0 | | `{{ TIME_COLOR }}` | #ff0000 | ## Template JSON ```json { "timeline": { "background": "#FFFFFF", "tracks": [ { "clips": [ { "asset": { "type": "text", "text": " {{FOOTER}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "36", "lineHeight": 1 }, "width": 1500, "height": 200 }, "start": 0.4, "length": 4.6, "offset": { "x": 0, "y": -0.361 }, "position": "center", "transition": { "out": "slideDown", "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{HEADER}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "36", "lineHeight": 1 }, "width": 1920, "height": 200 }, "start": 0.2, "length": 4.8, "offset": { "x": 0, "y": 0.377 }, "position": "center", "transition": { "in": "slideUp", "out": "slideDown" } } ] }, { "clips": [ { "length": 5, "asset": { "type": "image", "src": "https://templates.shotstack.io/sports-event-promotion-template/a0bbfaab-46af-4911-b3a7-97f33378b993/source.png" }, "start": 0, "scale": 0.25, "transition": { "in": "zoom", "out": "fade" }, "fit": "crop" } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{MATCH_TYPE}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "300", "lineHeight": 0.9 }, "width": 1200, "height": 700 }, "start": 0, "length": 5, "opacity": 0.28, "transition": { "in": "fade", "out": "fade" }, "position": "center" } ] }, { "clips": [ { "asset": { "type": "text", "text": "VS", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ VS_TEXT_FONT_COLOR }}", "family": "Arapey", "size": "41", "lineHeight": 1 }, "width": 800, "height": 200 }, "start": 7.5, "length": "end", "offset": { "x": [ { "start": 0, "length": 0.01, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.01, "length": 0.4, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 0.41, "length": 5.38, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 0, "to": 0, "interpolation": "linear" } ], "y": [ { "start": 0, "length": 0.01, "from": 0, "to": 0.047, "interpolation": "linear", "easing": "linear" }, { "start": 0.01, "length": 0.4, "from": 0.047, "to": 0.067, "interpolation": "linear" }, { "start": 0.41, "length": 5.38, "from": 0.067, "to": 0.067, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 0.067, "to": 0.047, "interpolation": "linear" } ] }, "position": "center", "opacity": [ { "start": 0, "length": 0.01, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.01, "length": 0.4, "from": 0, "to": 1, "interpolation": "linear" }, { "start": 0.41, "length": 5.38, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 1, "to": 0, "interpolation": "linear" } ], "scale": [ { "start": 0, "length": 0.01, "from": 1, "to": 1, "interpolation": "linear", "easing": "linear" }, { "start": 0.01, "length": 0.4, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 0.41, "length": 5.38, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 1, "to": 1, "interpolation": "linear" } ], "transform": { "rotate": { "angle": [ { "start": 0, "length": 0.01, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.01, "length": 0.4, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 0.41, "length": 5.38, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 0, "to": 0, "interpolation": "linear" } ] } } } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "https://templates.shotstack.io/sports-event-promotion-template/214522c9-1626-42aa-af1d-fb5cdeab63ca/source.png" }, "start": 7.5, "scale": [ { "start": 0, "length": 0.24, "from": 0.25, "to": 0.25, "interpolation": "linear", "easing": "linear" }, { "start": 0.24, "length": 0.43, "from": 0.25, "to": 0.25, "interpolation": "linear" }, { "start": 0.67, "length": 5.12, "from": 0.25, "to": 0.25, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 0.25, "to": 0.25, "interpolation": "linear" } ], "offset": { "x": [ { "start": 0, "length": 0.24, "from": 0.125, "to": 0.125, "interpolation": "linear", "easing": "linear" }, { "start": 0.24, "length": 0.43, "from": 0.125, "to": 0.125, "interpolation": "linear" }, { "start": 0.67, "length": 5.12, "from": 0.125, "to": 0.125, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 0.125, "to": 0.125, "interpolation": "linear" } ], "y": [ { "start": 0, "length": 0.24, "from": 0.047, "to": 0.047, "interpolation": "linear", "easing": "linear" }, { "start": 0.24, "length": 0.43, "from": 0.047, "to": 0.067, "interpolation": "linear" }, { "start": 0.67, "length": 5.12, "from": 0.067, "to": 0.067, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 0.067, "to": 0.047, "interpolation": "linear" } ] }, "position": "center", "opacity": [ { "start": 0, "length": 0.24, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.24, "length": 0.43, "from": 0, "to": 1, "interpolation": "linear" }, { "start": 0.67, "length": 5.12, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 1, "to": 0, "interpolation": "linear" } ], "transform": { "rotate": { "angle": [ { "start": 0, "length": 0.24, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.24, "length": 0.43, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 0.67, "length": 5.12, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 0, "to": 0, "interpolation": "linear" } ] } }, "fit": "crop" } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "https://templates.shotstack.io/sports-event-promotion-template/b26b628f-1939-466c-942d-a7cc846bb55c/source.png" }, "start": 7.5, "scale": [ { "start": 0, "length": 0.24, "from": 0.25, "to": 0.25, "interpolation": "linear", "easing": "linear" }, { "start": 0.24, "length": 0.43, "from": 0.25, "to": 0.25, "interpolation": "linear" }, { "start": 0.67, "length": 5.12, "from": 0.25, "to": 0.25, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 0.25, "to": 0.25, "interpolation": "linear" } ], "offset": { "x": [ { "start": 0, "length": 0.24, "from": -0.118, "to": -0.118, "interpolation": "linear", "easing": "linear" }, { "start": 0.24, "length": 0.43, "from": -0.118, "to": -0.118, "interpolation": "linear" }, { "start": 0.67, "length": 5.12, "from": -0.118, "to": -0.118, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": -0.118, "to": -0.118, "interpolation": "linear" } ], "y": [ { "start": 0, "length": 0.24, "from": 0.049, "to": 0.049, "interpolation": "linear", "easing": "linear" }, { "start": 0.24, "length": 0.43, "from": 0.049, "to": 0.079, "interpolation": "linear" }, { "start": 0.67, "length": 5.12, "from": 0.079, "to": 0.079, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 0.079, "to": 0.049, "interpolation": "linear" } ] }, "position": "center", "opacity": [ { "start": 0, "length": 0.24, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.24, "length": 0.43, "from": 0, "to": 1, "interpolation": "linear" }, { "start": 0.67, "length": 5.12, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 1, "to": 0, "interpolation": "linear" } ], "transform": { "rotate": { "angle": [ { "start": 0, "length": 0.24, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.24, "length": 0.43, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 0.67, "length": 5.12, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 5.79, "length": 0.38, "from": 0, "to": 0, "interpolation": "linear" } ] } }, "fit": "crop" } ] }, { "clips": [ { "asset": { "type": "text", "text": " {{TIME}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR_2 }}", "family": "Montserrat SemiBold", "size": "36", "lineHeight": 1 }, "width": 300, "height": 75, "background": { "color": "{{ TIME_COLOR }}", "borderRadius": 19 } }, "start": 8, "length": 7, "offset": { "y": [ { "start": 0, "length": 0.16, "from": -0.104, "to": -0.147, "interpolation": "linear", "easing": "linear" }, { "start": 0.16, "length": 0.35, "from": -0.147, "to": -0.147, "interpolation": "linear" }, { "start": 0.51, "length": 4.3, "from": -0.147, "to": -0.147, "interpolation": "linear" }, { "start": 4.81, "length": 0.49, "from": -0.147, "to": -0.147, "interpolation": "linear" } ], "x": [ { "start": 0, "length": 0.16, "from": 0.147, "to": 0.147, "interpolation": "linear", "easing": "linear" }, { "start": 0.16, "length": 0.35, "from": 0.147, "to": 0.092, "interpolation": "linear" }, { "start": 0.51, "length": 4.3, "from": 0.092, "to": 0.092, "interpolation": "linear" }, { "start": 4.81, "length": 0.49, "from": 0.092, "to": 0.147, "interpolation": "linear" } ] }, "position": "center", "opacity": [ { "start": 0, "length": 0.16, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.16, "length": 0.35, "from": 0, "to": 1, "interpolation": "linear" }, { "start": 0.51, "length": 4.3, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 4.81, "length": 0.49, "from": 1, "to": 0, "interpolation": "linear" } ], "scale": [ { "start": 0, "length": 0.16, "from": 1, "to": 1, "interpolation": "linear", "easing": "linear" }, { "start": 0.16, "length": 0.35, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 0.51, "length": 4.3, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 4.81, "length": 0.49, "from": 1, "to": 1, "interpolation": "linear" } ], "transform": { "rotate": { "angle": [ { "start": 0, "length": 0.16, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.16, "length": 0.35, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 0.51, "length": 4.3, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 4.81, "length": 0.49, "from": 0, "to": 0, "interpolation": "linear" } ] } } } ] }, { "clips": [ { "asset": { "type": "text", "text": " {{DATE}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR_2 }}", "family": "Montserrat SemiBold", "size": "36", "lineHeight": 1 }, "width": 300, "height": 75, "background": { "color": "{{ DATE_COLOR }}", "borderRadius": 19 } }, "start": 8, "length": 7, "offset": { "x": [ { "start": 0, "length": 0.04, "from": 0.017, "to": 0.017, "interpolation": "linear", "easing": "linear" }, { "start": 0.04, "length": 0.45, "from": 0.017, "to": -0.088, "interpolation": "linear" }, { "start": 0.49, "length": 4.62, "from": -0.088, "to": -0.088, "interpolation": "linear" }, { "start": 5.11, "length": 0.48, "from": -0.088, "to": 0.017, "interpolation": "linear" } ], "y": [ { "start": 0, "length": 0.04, "from": -0.147, "to": -0.147, "interpolation": "linear", "easing": "linear" }, { "start": 0.04, "length": 0.45, "from": -0.147, "to": -0.147, "interpolation": "linear" }, { "start": 0.49, "length": 4.62, "from": -0.147, "to": -0.147, "interpolation": "linear" }, { "start": 5.11, "length": 0.48, "from": -0.147, "to": -0.147, "interpolation": "linear" } ] }, "position": "center", "opacity": [ { "start": 0, "length": 0.04, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.04, "length": 0.45, "from": 0, "to": 1, "interpolation": "linear" }, { "start": 0.49, "length": 4.62, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 5.11, "length": 0.48, "from": 1, "to": 0, "interpolation": "linear" } ], "scale": [ { "start": 0, "length": 0.04, "from": 1, "to": 1, "interpolation": "linear", "easing": "linear" }, { "start": 0.04, "length": 0.45, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 0.49, "length": 4.62, "from": 1, "to": 1, "interpolation": "linear" }, { "start": 5.11, "length": 0.48, "from": 1, "to": 1, "interpolation": "linear" } ], "transform": { "rotate": { "angle": [ { "start": 0, "length": 0.04, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.04, "length": 0.45, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 0.49, "length": 4.62, "from": 0, "to": 0, "interpolation": "linear" }, { "start": 5.11, "length": 0.48, "from": 0, "to": 0, "interpolation": "linear" } ] } } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 1920, "height": 1920, "background": { "color": "{{ STAR_COLOR }}" } }, "start": 5, "length": 10, "position": "center" }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/sports-event-promotion-template/93cdb36d-859e-4ded-8aa9-3c6773f5c33b/source.mp4" }, "start": 5, "length": 10 } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 1920, "height": 1920, "background": { "color": "{{ STAR_BACKGROUND_COLOR }}" } }, "start": 5, "length": 10 }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/sports-event-promotion-template/ebd54dfc-7330-48f8-8afb-62842c9288d7/source.mp4" }, "start": 5, "length": 10 } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 1920, "height": 1920, "background": { "color": "{{ BAR_BACKGROUND_COLOR }}" } }, "start": 5, "length": 10 }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/sports-event-promotion-template/990bd2c6-dd22-407a-88ff-b09c362591ba/source.mp4" }, "start": 5, "length": 10 } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 1920, "height": 1080, "background": { "color": "{{ GRADIENT_BACKGROUND_COLOR }}" } }, "start": 0, "length": 5, "transition": { "out": "fade", "in": "fade" }, "position": "center" }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/sports-event-promotion-template/9120870d-1cfa-457a-ae29-55e135d58317/source.png" }, "start": 0, "length": 5 } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 1920, "height": 1080, "background": { "color": "{{ FIRST_BACKGROUND_COLOR_2 }}" } }, "start": 0, "length": 5, "transition": { "in": "fade", "out": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 1920, "height": 1920, "background": { "color": "{{ BOARD_BACKGROUND_COLOR }}" } }, "start": 5, "length": 10 }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/sports-event-promotion-template/c9cad73f-1dc0-4370-bdf8-f4552f67b41b/source.mp4" }, "start": 5, "length": 10 } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "https://templates.shotstack.io/sports-event-promotion-template/33c30140-edaa-443c-9f69-23fceed7ce1f/source.jpg" }, "start": 4.5, "transition": { "in": "fade" } } ] } ] }, "output": { "format": "mp4", "fps": 25, "size": { "width": 1920, "height": 1080 } }, "merge": [ { "find": "HEADER", "replace": "SAKSIKANLAH PERTANDIGAN PERSAHABATAN" }, { "find": "FOOTER", "replace": "PERTANDIGAN PERSAHABATAN" }, { "find": "MATCH_TYPE", "replace": "FRIENDLY MATCH" }, { "find": "LOGO_IMAGE_SRC", "replace": "https://templates.shotstack.io/sports-event-promotion-template/60f6e9b5-266b-4d0e-8992-e4022a7040c2/shotstack-proxy.webp" }, { "find": "GRADIENT_BACKGROUND_COLOR", "replace": "#ff0000" }, { "find": "FIRST_BACKGROUND_COLOR_2", "replace": "#154956" }, { "find": "IMAGE_SRC", "replace": "https://templates.shotstack.io/sports-event-promotion-template/9a528451-04b5-4519-9cf0-5ac42975a4fb/shotstack-proxy.webp" }, { "find": "BOARD_BACKGROUND_COLOR", "replace": "#ffffff" }, { "find": "BAR_BACKGROUND_COLOR", "replace": "#187ba5" }, { "find": "STAR_BACKGROUND_COLOR", "replace": "#187ba5" }, { "find": "STAR_COLOR", "replace": "#193c06" }, { "find": "LOGO_IMAGE_SRC_1", "replace": "https://templates.shotstack.io/sports-event-promotion-template/a535ae1c-9ff4-4e7e-9507-d0f08f46f702/shotstack-proxy.webp" }, { "find": "LOGO_IMAGE_SRC_2", "replace": "https://templates.shotstack.io/sports-event-promotion-template/b21dfcb4-4d9a-4d46-be05-0ec56ccfe414/shotstack-proxy.webp" }, { "find": "VS_TEXT_FONT_COLOR", "replace": "#000000" }, { "find": "TIME", "replace": "17:00PM" }, { "find": "DATE", "replace": "FEB 20, 2024" }, { "find": "TEXT_FONT_COLOR", "replace": "#ffffff" }, { "find": "TEXT_FONT_COLOR_2", "replace": "#ffffff" }, { "find": "DATE_COLOR", "replace": "#7011d0" }, { "find": "TIME_COLOR", "replace": "#ff0000" } ] } ``` ## 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