# Fresh Start - Property Listing Template (video template)
> Create a stunning property listing with this clean, bold template that highlights your home's key features, making it easy for buyers or renters to take action.
## Overview
- **Page**: https://shotstack.io/studio/templates/property-for-sale-template-v2/
- **Output**: MP4, 1024x576 (16:9), 25 fps
- **Length**: 12s
- **Timeline**: 20 clips on 20 tracks; assets: image, image-to-video, rich-text, svg
- **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=eyJ0aW1lbGluZSI6eyJiYWNrZ3JvdW5kIjoiI0ZGRkZGRiIsInRyYWNrcyI6W3siY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJyaWNoLXRleHQiLCJ0ZXh0Ijoie3tTTElERV8xX1RFWFR9fSIsImZvbnQiOnsiZmFtaWx5IjoiRGlkYWN0IEdvdGhpYyIsInNpemUiOjIwLCJ3ZWlnaHQiOjQwMCwiY29sb3IiOiIjMDQyMzg3Iiwib3BhY2l0eSI6MX0sInN0eWxlIjp7ImxldHRlclNwYWNpbmciOjAsIndvcmRTcGFjaW5nIjowLCJsaW5lSGVpZ2h0IjoxLCJ0ZXh0VHJhbnNmb3JtIjoibm9uZSIsInRleHREZWNvcmF0aW9uIjoibm9uZSJ9LCJhbGlnbiI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJtaWRkbGUifX0sInN0YXJ0Ijo5LjgsImxlbmd0aCI6Mi4yLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9LCJvZmZzZXQiOnsieSI6LTAuMzYxLCJ4IjowfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ3aWR0aCI6NjAwLCJoZWlnaHQiOjc1fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJyaWNoLXRleHQiLCJ0ZXh0Ijoie3tHTE9CQUxfQUdFTlRfQ09OVEFDVH19IiwiZm9udCI6eyJmYW1pbHkiOiJEaWRhY3QgR290aGljIiwic2l6ZSI6MjAsIndlaWdodCI6NDAwLCJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUiB9fSIsIm9wYWNpdHkiOjF9LCJzdHlsZSI6eyJsZXR0ZXJTcGFjaW5nIjowLCJ3b3JkU3BhY2luZyI6MCwibGluZUhlaWdodCI6MSwidGV4dFRyYW5zZm9ybSI6Im5vbmUiLCJ0ZXh0RGVjb3JhdGlvbiI6Im5vbmUifSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoibWlkZGxlIn19LCJzdGFydCI6OS42LCJsZW5ndGgiOjIuNCwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlTGVmdCJ9LCJvZmZzZXQiOnsieSI6LTAuMjUsIngiOjB9LCJwb3NpdGlvbiI6ImNlbnRlciIsIndpZHRoIjo2MDAsImhlaWdodCI6NzV9XX0seyJjbGlwcyI6W3sibGVuZ3RoIjoyLjUsImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Int7IExPR08gfX0ifSwic3RhcnQiOjkuNSwic2NhbGUiOjEsImZpdCI6ImNvbnRhaW4iLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9LCJvZmZzZXQiOnsieCI6MCwieSI6LTAuMDI4NjQ1ODMzMzMzMzMzMzd9LCJwb3NpdGlvbiI6ImNlbnRlciIsIndpZHRoIjoyMzksImhlaWdodCI6MTgwfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJyaWNoLXRleHQiLCJ0ZXh0Ijoie3tHTE9CQUxfQUdFTlRfTkFNRX19IiwiZm9udCI6eyJmYW1pbHkiOiJEaWRhY3QgR290aGljIiwic2l6ZSI6MjUsIndlaWdodCI6NDAwLCJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUiB9fSIsIm9wYWNpdHkiOjF9LCJzdHlsZSI6eyJsZXR0ZXJTcGFjaW5nIjowLCJ3b3JkU3BhY2luZyI6MCwibGluZUhlaWdodCI6MSwidGV4dFRyYW5zZm9ybSI6Im5vbmUiLCJ0ZXh0RGVjb3JhdGlvbiI6Im5vbmUifSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoibWlkZGxlIn19LCJzdGFydCI6OS4yLCJsZW5ndGgiOjIuOCwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlUmlnaHQifSwib2Zmc2V0Ijp7InkiOi0wLjE3LCJ4IjowfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ3aWR0aCI6NjAwLCJoZWlnaHQiOjc1fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJyaWNoLXRleHQiLCJ0ZXh0Ijoie3tHTE9CQUxfQUdFTkNZX05BTUV9fSIsImZvbnQiOnsiZmFtaWx5IjoiRGlkYWN0IEdvdGhpYyIsInNpemUiOjMwLCJ3ZWlnaHQiOjQwMCwiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJvcGFjaXR5IjoxfSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6MCwid29yZFNwYWNpbmciOjAsImxpbmVIZWlnaHQiOjEsInRleHRUcmFuc2Zvcm0iOiJub25lIiwidGV4dERlY29yYXRpb24iOiJub25lIn0sImFsaWduIjp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6Im1pZGRsZSJ9fSwic3RhcnQiOjguOTgsImxlbmd0aCI6MywidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwib2Zmc2V0Ijp7InkiOjAuMzUsIngiOjB9LCJwb3NpdGlvbiI6ImNlbnRlciIsIndpZHRoIjo2MDAsImhlaWdodCI6NzV9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiIge3tTTElERV8zX1RFWFR9fSIsImZvbnQiOnsiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjo0NSwid2VpZ2h0Ijo4MDAsImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SIH19Iiwib3BhY2l0eSI6MX0sInN0eWxlIjp7ImxldHRlclNwYWNpbmciOjAsIndvcmRTcGFjaW5nIjowLCJsaW5lSGVpZ2h0IjoxLCJ0ZXh0VHJhbnNmb3JtIjoibm9uZSIsInRleHREZWNvcmF0aW9uIjoibm9uZSJ9LCJhbGlnbiI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJtaWRkbGUifSwiYW5pbWF0aW9uIjp7InByZXNldCI6ImZhZGVJbiIsInN0eWxlIjoid29yZCJ9fSwic3RhcnQiOjksImxlbmd0aCI6ImF1dG8iLCJvZmZzZXQiOnsieCI6MCwieSI6MC4xNzR9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVJpZ2h0In0sIndpZHRoIjo2MDAsImhlaWdodCI6MTUwfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJzdmciLCJzcmMiOiI8c3ZnIHZpZXdCb3g9XCIwIDAgMTkyMCAxMDgwXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMTkyMFwiIGhlaWdodD1cIjEwODBcIiBmaWxsPVwiI2ZmZmZmZlwiLz48L3N2Zz4ifSwic3RhcnQiOjksImxlbmd0aCI6ImF1dG8iLCJvZmZzZXQiOnsieCI6MC4wMjUsInkiOjB9LCJwb3NpdGlvbiI6ImNlbnRlciIsIndpZHRoIjoxOTIwLCJoZWlnaHQiOjEwODB9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiIge3tTTElERV8zX1NVQlRJVExFfX0iLCJmb250Ijp7ImZhbWlseSI6IkRpZGFjdCBHb3RoaWMiLCJzaXplIjoyMSwid2VpZ2h0Ijo0MDAsImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SXzIgfX0iLCJvcGFjaXR5IjoxfSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6MCwid29yZFNwYWNpbmciOjAsImxpbmVIZWlnaHQiOjEsInRleHRUcmFuc2Zvcm0iOiJub25lIiwidGV4dERlY29yYXRpb24iOiJub25lIn0sImFsaWduIjp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6Im1pZGRsZSJ9LCJiYWNrZ3JvdW5kIjp7ImNvbG9yIjoiIzA0MjM4NyIsIm9wYWNpdHkiOjEsImJvcmRlclJhZGl1cyI6MTR9fSwic3RhcnQiOjYuNSwibGVuZ3RoIjoyLjUsIm9mZnNldCI6eyJ5IjotMC4zNCwieCI6MH0sInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sInBvc2l0aW9uIjoiY2VudGVyIiwid2lkdGgiOjQwMCwiaGVpZ2h0Ijo1MH1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoicmljaC10ZXh0IiwidGV4dCI6IiB7e1NMSURFXzNfVElUTEV9fSIsImZvbnQiOnsiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjoyMSwid2VpZ2h0Ijo4MDAsImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SIH19Iiwib3BhY2l0eSI6MX0sInN0eWxlIjp7ImxldHRlclNwYWNpbmciOjAsIndvcmRTcGFjaW5nIjowLCJsaW5lSGVpZ2h0IjoxLCJ0ZXh0VHJhbnNmb3JtIjoibm9uZSIsInRleHREZWNvcmF0aW9uIjoibm9uZSJ9LCJhbGlnbiI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJtaWRkbGUifSwiYmFja2dyb3VuZCI6eyJjb2xvciI6IiNmZmZmZmYiLCJvcGFjaXR5IjoxLCJib3JkZXJSYWRpdXMiOjE0fX0sInN0YXJ0Ijo2LCJsZW5ndGgiOiJhdXRvIiwib2Zmc2V0Ijp7InkiOi0wLjI1MywieCI6MH0sInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sInBvc2l0aW9uIjoiY2VudGVyIiwid2lkdGgiOjQwMCwiaGVpZ2h0Ijo1MH1dfSx7ImNsaXBzIjpbeyJsZW5ndGgiOjMsImZpdCI6ImNvbnRhaW4iLCJhc3NldCI6eyJ0eXBlIjoiaW1hZ2UtdG8tdmlkZW8iLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vcHJvcGVydHktZm9yLXNhbGUtdGVtcGxhdGUvNzkxMDAxOGEtYWYzZS00ZjQ0LTgyOGUtYjEwOTlmOGQwMmU0L3NvdXJjZS5qcGciLCJwcm9tcHQiOiJTbG93bHkgb3JiaXQgbGVmdCBhcm91bmQgdGhlIG9iamVjdCIsImFzcGVjdFJhdGlvIjoiMTY6OSJ9LCJzdGFydCI6Niwic2NhbGUiOjEsIndpZHRoIjoxMDMwLCJoZWlnaHQiOjc1Niwib2Zmc2V0Ijp7IngiOjAsInkiOjB9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJyaWNoLXRleHQiLCJ0ZXh0IjoiIHt7U0xJREVfMl9TVUJUSVRMRX19IiwiZm9udCI6eyJmYW1pbHkiOiJEaWRhY3QgR290aGljIiwic2l6ZSI6MzksIndlaWdodCI6NDAwLCJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUl8yIH19Iiwib3BhY2l0eSI6MX0sInN0eWxlIjp7ImxldHRlclNwYWNpbmciOjAsIndvcmRTcGFjaW5nIjowLCJsaW5lSGVpZ2h0IjoxLCJ0ZXh0VHJhbnNmb3JtIjoibm9uZSIsInRleHREZWNvcmF0aW9uIjoibm9uZSJ9LCJhbGlnbiI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJtaWRkbGUifSwiYW5pbWF0aW9uIjp7InByZXNldCI6ImZhZGVJbiIsInN0eWxlIjoid29yZCJ9fSwic3RhcnQiOjMuNSwibGVuZ3RoIjoyLjUsIm9mZnNldCI6eyJ4IjowLCJ5IjotMC4wNTV9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sIndpZHRoIjo3MDAsImhlaWdodCI6MTAwfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJyaWNoLXRleHQiLCJ0ZXh0IjoiIHt7U0xJREVfMl9USVRMRX19IiwiZm9udCI6eyJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjM0LCJ3ZWlnaHQiOjgwMCwiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1JfMiB9fSIsIm9wYWNpdHkiOjF9LCJzdHlsZSI6eyJsZXR0ZXJTcGFjaW5nIjowLCJ3b3JkU3BhY2luZyI6MCwibGluZUhlaWdodCI6MSwidGV4dFRyYW5zZm9ybSI6Im5vbmUiLCJ0ZXh0RGVjb3JhdGlvbiI6Im5vbmUifSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoibWlkZGxlIn0sImFuaW1hdGlvbiI6eyJwcmVzZXQiOiJmYWRlSW4iLCJzdHlsZSI6IndvcmQifX0sInN0YXJ0IjoyLjk4LCJsZW5ndGgiOjMsIm9mZnNldCI6eyJ4IjowLCJ5IjowLjA1NX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwid2lkdGgiOjcwMCwiaGVpZ2h0IjoxMDB9XX0seyJjbGlwcyI6W3sibGVuZ3RoIjozLCJmaXQiOiJjb250YWluIiwiYXNzZXQiOnsidHlwZSI6ImltYWdlLXRvLXZpZGVvIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Byb3BlcnR5LWZvci1zYWxlLXRlbXBsYXRlL2ZjYjNlOWQ5LTJhODItNDE2ZS05NzZkLTc2MDg3YjNmOTNhYS9zb3VyY2UuanBnIiwicHJvbXB0IjoiU2xvd2x5IG9yYml0IGxlZnQgYXJvdW5kIHRoZSBvYmplY3QiLCJhc3BlY3RSYXRpbyI6IjE2OjkifSwic3RhcnQiOjMsIndpZHRoIjoxMDY3LCJoZWlnaHQiOjcxOCwib2Zmc2V0Ijp7IngiOjAsInkiOjB9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJyaWNoLXRleHQiLCJ0ZXh0Ijoie3tTTElERV8xX1RFWFR9fSIsImZvbnQiOnsiZmFtaWx5IjoiRGlkYWN0IEdvdGhpYyIsInNpemUiOjIwLCJ3ZWlnaHQiOjQwMCwiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJvcGFjaXR5IjoxfSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6MCwid29yZFNwYWNpbmciOjAsImxpbmVIZWlnaHQiOjEsInRleHRUcmFuc2Zvcm0iOiJub25lIiwidGV4dERlY29yYXRpb24iOiJub25lIn0sImFsaWduIjp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6Im1pZGRsZSJ9fSwic3RhcnQiOjAuNzUsImxlbmd0aCI6Mi4yNSwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwib2Zmc2V0Ijp7InkiOi0wLjM2MSwieCI6MH0sInBvc2l0aW9uIjoiY2VudGVyIiwid2lkdGgiOjYwMCwiaGVpZ2h0Ijo3NX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoicmljaC10ZXh0IiwidGV4dCI6Int7R0xPQkFMX0FHRU5UX0NPTlRBQ1R9fSIsImZvbnQiOnsiZmFtaWx5IjoiRGlkYWN0IEdvdGhpYyIsInNpemUiOjIwLCJ3ZWlnaHQiOjQwMCwiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJvcGFjaXR5IjoxfSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6MCwid29yZFNwYWNpbmciOjAsImxpbmVIZWlnaHQiOjEsInRleHRUcmFuc2Zvcm0iOiJub25lIiwidGV4dERlY29yYXRpb24iOiJub25lIn0sImFsaWduIjp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6Im1pZGRsZSJ9fSwic3RhcnQiOjAuNywibGVuZ3RoIjoyLjMsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sIm9mZnNldCI6eyJ5IjotMC4yNSwieCI6MH0sInBvc2l0aW9uIjoiY2VudGVyIiwid2lkdGgiOjYwMCwiaGVpZ2h0Ijo3NX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoicmljaC10ZXh0IiwidGV4dCI6Int7R0xPQkFMX0FHRU5UX05BTUV9fSIsImZvbnQiOnsiZmFtaWx5IjoiTW9udHNlcnJhdCBTZW1pQm9sZCIsInNpemUiOjI1LCJ3ZWlnaHQiOjYwMCwiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJvcGFjaXR5IjoxfSwic3R5bGUiOnsibGV0dGVyU3BhY2luZyI6MCwid29yZFNwYWNpbmciOjAsImxpbmVIZWlnaHQiOjEsInRleHRUcmFuc2Zvcm0iOiJub25lIiwidGV4dERlY29yYXRpb24iOiJub25lIn0sImFsaWduIjp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6Im1pZGRsZSJ9fSwic3RhcnQiOjAuNSwibGVuZ3RoIjoyLjUsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sIm9mZnNldCI6eyJ5IjotMC4xNywieCI6MH0sInBvc2l0aW9uIjoiY2VudGVyIiwid2lkdGgiOjYwMCwiaGVpZ2h0Ijo3NX1dfSx7ImNsaXBzIjpbeyJsZW5ndGgiOjIuOCwiYXNzZXQiOnsidHlwZSI6ImltYWdlIiwic3JjIjoie3sgTE9HTyB9fSJ9LCJzdGFydCI6MC4yLCJzY2FsZSI6MSwiZml0IjoiY29udGFpbiIsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sIm9mZnNldCI6eyJ4IjowLCJ5IjowLjA1NDM0MDI3Nzc3Nzc3Nzc4fSwid2lkdGgiOjI1NiwiaGVpZ2h0IjoyODN9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InJpY2gtdGV4dCIsInRleHQiOiJ7e0dMT0JBTF9BR0VOQ1lfTkFNRX19IiwiZm9udCI6eyJmYW1pbHkiOiJNb250c2VycmF0IFNlbWlCb2xkIiwic2l6ZSI6MzYsIndlaWdodCI6NjAwLCJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUiB9fSIsIm9wYWNpdHkiOjF9LCJzdHlsZSI6eyJsZXR0ZXJTcGFjaW5nIjowLCJ3b3JkU3BhY2luZyI6MCwibGluZUhlaWdodCI6MSwidGV4dFRyYW5zZm9ybSI6Im5vbmUiLCJ0ZXh0RGVjb3JhdGlvbiI6Im5vbmUifSwiYWxpZ24iOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoibWlkZGxlIn19LCJzdGFydCI6MCwibGVuZ3RoIjozLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9LCJvZmZzZXQiOnsieSI6MC4zLCJ4IjowfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ3aWR0aCI6NjAwLCJoZWlnaHQiOjc1fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJzdmciLCJzcmMiOiI8c3ZnIHZpZXdCb3g9XCIwIDAgMTkyMCAxMDgwXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMTkyMFwiIGhlaWdodD1cIjEwODBcIiBmaWxsPVwiI2ZmZmZmZlwiIGZpbGwtb3BhY2l0eT1cIjAuNzFcIi8-PC9zdmc-In0sInN0YXJ0IjowLCJsZW5ndGgiOiJhdXRvIiwicG9zaXRpb24iOiJjZW50ZXIiLCJ3aWR0aCI6MTkyMCwiaGVpZ2h0IjoxMDgwfV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6ImF1dG8iLCJhc3NldCI6eyJ0eXBlIjoiaW1hZ2UiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vcHJvcGVydHktZm9yLXNhbGUtdGVtcGxhdGUvYmE0ZWY4NWItNTk2OS00MWJlLTgyMjAtN2E3MzUyNTllMTkxL3NvdXJjZS5qcGcifSwic3RhcnQiOjAsImZpdCI6ImNvbnRhaW4iLCJ3aWR0aCI6MTAyNSwiaGVpZ2h0Ijo3MzYsIm9mZnNldCI6eyJ4IjowLCJ5IjowfX1dfV0sImZvbnRzIjpbeyJzcmMiOiJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZGlkYWN0Z290aGljL3YyMS9haGNmdjhxejF6dDZoQ0M1RzRGX1A0QVNwVXlTcDBMbGN5US50dGYifV19LCJvdXRwdXQiOnsiZm9ybWF0IjoibXA0IiwiZnBzIjoyNSwic2l6ZSI6eyJ3aWR0aCI6MTAyNCwiaGVpZ2h0Ijo1NzZ9LCJkZXN0aW5hdGlvbnMiOlt7InByb3ZpZGVyIjoic2hvdHN0YWNrIn1dfSwibWVyZ2UiOlt7ImZpbmQiOiJHTE9CQUxfQUdFTkNZX05BTUUiLCJyZXBsYWNlIjoiSm9obm55IFRlc3MifSx7ImZpbmQiOiJHTE9CQUxfQUdFTlRfTkFNRSIsInJlcGxhY2UiOiJNb25kYXkgYW5kIE9sdSAifSx7ImZpbmQiOiJHTE9CQUxfQUdFTlRfQ09OVEFDVCIsInJlcGxhY2UiOiIrMTIzNDU2Nzg5In0seyJmaW5kIjoiU0xJREVfMV9URVhUIiwicmVwbGFjZSI6IlNob3J0IFByb3BlcnR5IERlc2NyaXB0aW9uIn0seyJmaW5kIjoiU0xJREVfMV9JTUFHRSIsInJlcGxhY2UiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vcHJvcGVydHktZm9yLXNhbGUtdGVtcGxhdGUvZTEwOGNmZTctOTA4ZS00ODQ1LWI3ZjUtMDg4YTFhMjBlM2EwL3Nob3RzdGFjay1wcm94eS53ZWJwIn0seyJmaW5kIjoiTE9HTyIsInJlcGxhY2UiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vcHJvcGVydHktZm9yLXNhbGUtdGVtcGxhdGUvMTc5ZTBlMWEtYzY4Yy00MWU0LWEyOWItZjIxNWY1MWZhMDQwL3NvdXJjZS5wbmcifSx7ImZpbmQiOiJTTElERV8yX1RJVExFIiwicmVwbGFjZSI6Ikx1eGlvdXMgJiBiZWF1dGlmdWwgRmxhdCJ9LHsiZmluZCI6IlNMSURFXzJfU1VCVElUTEUiLCJyZXBsYWNlIjoiQW4gYW1hemluZyBjb29sIEhvdXNlIGZvciBmYW1pbHkifSx7ImZpbmQiOiJTTElERV8zX1RJVExFIiwicmVwbGFjZSI6IkEgQmVhdXRpZnVsIE91dGRvb3Igc3BhY2UifSx7ImZpbmQiOiJTTElERV8zX1NVQlRJVExFIiwicmVwbGFjZSI6IkVuam95IG5hdHVyZSBpbiB5b3VyIHByaXZhdGUgZ2FyZGVuIn0seyJmaW5kIjoiU0xJREVfM19URVhUIiwicmVwbGFjZSI6IlwiSW50ZXJlc3RlZD8gU2NoZWR1bGUgYSBWaXNpdCBUb2RheSFcIiAifSx7ImZpbmQiOiJJTUFHRS1UTy1WSURFT19TUkMiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Byb3BlcnR5LWZvci1zYWxlLXRlbXBsYXRlL2FjZTZhZTk1LWE1ZGMtNDEzYy1hZDE1LTExZDU2NGNkYWQ0NS9zaG90c3RhY2stcHJveHkud2VicCJ9LHsiZmluZCI6IklNQUdFLVRPLVZJREVPX1NSQ18yIiwicmVwbGFjZSI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9wcm9wZXJ0eS1mb3Itc2FsZS10ZW1wbGF0ZS9iYTk3ZWJmYy05YzY0LTRmYWItYjU4NC01ZWU2M2FiMGU1NTEvc2hvdHN0YWNrLXByb3h5LndlYnAifSx7ImZpbmQiOiJURVhUX0ZPTlRfQ09MT1IiLCJyZXBsYWNlIjoiIzA0MjM4NyJ9LHsiZmluZCI6IlRFWFRfRk9OVF9DT0xPUl8yIiwicmVwbGFjZSI6IiNmZmZmZmYifV19
- **Edit and save to an account**: https://dashboard.shotstack.io/studio/editor/property-for-sale-template-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 |
| --- | --- |
| `{{ GLOBAL_AGENCY_NAME }}` | Johnny Tess |
| `{{ GLOBAL_AGENT_NAME }}` | Monday and Olu |
| `{{ GLOBAL_AGENT_CONTACT }}` | +123456789 |
| `{{ SLIDE_1_TEXT }}` | Short Property Description |
| `{{ SLIDE_1_IMAGE }}` | https://templates.shotstack.io/property-for-sale-template/e108cfe7-908e-4845-b7f5-088a1a20e3a0/shotstack-proxy.webp |
| `{{ LOGO }}` | https://templates.shotstack.io/property-for-sale-template/179e0e1a-c68c-41e4-a29b-f215f51fa040/source.png |
| `{{ SLIDE_2_TITLE }}` | Luxious & beautiful Flat |
| `{{ SLIDE_2_SUBTITLE }}` | An amazing cool House for family |
| `{{ SLIDE_3_TITLE }}` | A Beautiful Outdoor space |
| `{{ SLIDE_3_SUBTITLE }}` | Enjoy nature in your private garden |
| `{{ SLIDE_3_TEXT }}` | "Interested? Schedule a Visit Today!" |
| `{{ IMAGE-TO-VIDEO_SRC }}` | https://templates.shotstack.io/property-for-sale-template/ace6ae95-a5dc-413c-ad15-11d564cdad45/shotstack-proxy.webp |
| `{{ IMAGE-TO-VIDEO_SRC_2 }}` | https://templates.shotstack.io/property-for-sale-template/ba97ebfc-9c64-4fab-b584-5ee63ab0e551/shotstack-proxy.webp |
| `{{ TEXT_FONT_COLOR }}` | #042387 |
| `{{ TEXT_FONT_COLOR_2 }}` | #ffffff |
## Template JSON
```json
{
"timeline": {
"background": "#FFFFFF",
"tracks": [
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": "{{SLIDE_1_TEXT}}",
"font": {
"family": "Didact Gothic",
"size": 20,
"weight": 400,
"color": "#042387",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
}
},
"start": 9.8,
"length": 2.2,
"transition": {
"in": "fade"
},
"offset": {
"y": -0.361,
"x": 0
},
"position": "center",
"width": 600,
"height": 75
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": "{{GLOBAL_AGENT_CONTACT}}",
"font": {
"family": "Didact Gothic",
"size": 20,
"weight": 400,
"color": "{{ TEXT_FONT_COLOR }}",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
}
},
"start": 9.6,
"length": 2.4,
"transition": {
"in": "slideLeft"
},
"offset": {
"y": -0.25,
"x": 0
},
"position": "center",
"width": 600,
"height": 75
}
]
},
{
"clips": [
{
"length": 2.5,
"asset": {
"type": "image",
"src": "{{ LOGO }}"
},
"start": 9.5,
"scale": 1,
"fit": "contain",
"transition": {
"in": "fade"
},
"offset": {
"x": 0,
"y": -0.02864583333333337
},
"position": "center",
"width": 239,
"height": 180
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": "{{GLOBAL_AGENT_NAME}}",
"font": {
"family": "Didact Gothic",
"size": 25,
"weight": 400,
"color": "{{ TEXT_FONT_COLOR }}",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
}
},
"start": 9.2,
"length": 2.8,
"transition": {
"in": "slideRight"
},
"offset": {
"y": -0.17,
"x": 0
},
"position": "center",
"width": 600,
"height": 75
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": "{{GLOBAL_AGENCY_NAME}}",
"font": {
"family": "Didact Gothic",
"size": 30,
"weight": 400,
"color": "{{ TEXT_FONT_COLOR }}",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
}
},
"start": 8.98,
"length": 3,
"transition": {
"in": "fade"
},
"offset": {
"y": 0.35,
"x": 0
},
"position": "center",
"width": 600,
"height": 75
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": " {{SLIDE_3_TEXT}}",
"font": {
"family": "Montserrat ExtraBold",
"size": 45,
"weight": 800,
"color": "{{ TEXT_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": 9,
"length": "auto",
"offset": {
"x": 0,
"y": 0.174
},
"position": "center",
"transition": {
"in": "slideRight"
},
"width": 600,
"height": 150
}
]
},
{
"clips": [
{
"asset": {
"type": "svg",
"src": ""
},
"start": 9,
"length": "auto",
"offset": {
"x": 0.025,
"y": 0
},
"position": "center",
"width": 1920,
"height": 1080
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": " {{SLIDE_3_SUBTITLE}}",
"font": {
"family": "Didact Gothic",
"size": 21,
"weight": 400,
"color": "{{ TEXT_FONT_COLOR_2 }}",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
},
"background": {
"color": "#042387",
"opacity": 1,
"borderRadius": 14
}
},
"start": 6.5,
"length": 2.5,
"offset": {
"y": -0.34,
"x": 0
},
"transition": {
"in": "fade"
},
"position": "center",
"width": 400,
"height": 50
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": " {{SLIDE_3_TITLE}}",
"font": {
"family": "Montserrat ExtraBold",
"size": 21,
"weight": 800,
"color": "{{ TEXT_FONT_COLOR }}",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
},
"background": {
"color": "#ffffff",
"opacity": 1,
"borderRadius": 14
}
},
"start": 6,
"length": "auto",
"offset": {
"y": -0.253,
"x": 0
},
"transition": {
"in": "fade"
},
"position": "center",
"width": 400,
"height": 50
}
]
},
{
"clips": [
{
"length": 3,
"fit": "contain",
"asset": {
"type": "image-to-video",
"src": "https://templates.shotstack.io/property-for-sale-template/7910018a-af3e-4f44-828e-b1099f8d02e4/source.jpg",
"prompt": "Slowly orbit left around the object",
"aspectRatio": "16:9"
},
"start": 6,
"scale": 1,
"width": 1030,
"height": 756,
"offset": {
"x": 0,
"y": 0
}
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": " {{SLIDE_2_SUBTITLE}}",
"font": {
"family": "Didact Gothic",
"size": 39,
"weight": 400,
"color": "{{ TEXT_FONT_COLOR_2 }}",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
},
"animation": {
"preset": "fadeIn",
"style": "word"
}
},
"start": 3.5,
"length": 2.5,
"offset": {
"x": 0,
"y": -0.055
},
"position": "center",
"transition": {
"in": "fade"
},
"width": 700,
"height": 100
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": " {{SLIDE_2_TITLE}}",
"font": {
"family": "Montserrat ExtraBold",
"size": 34,
"weight": 800,
"color": "{{ TEXT_FONT_COLOR_2 }}",
"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.98,
"length": 3,
"offset": {
"x": 0,
"y": 0.055
},
"position": "center",
"transition": {
"in": "fade"
},
"width": 700,
"height": 100
}
]
},
{
"clips": [
{
"length": 3,
"fit": "contain",
"asset": {
"type": "image-to-video",
"src": "https://templates.shotstack.io/property-for-sale-template/fcb3e9d9-2a82-416e-976d-76087b3f93aa/source.jpg",
"prompt": "Slowly orbit left around the object",
"aspectRatio": "16:9"
},
"start": 3,
"width": 1067,
"height": 718,
"offset": {
"x": 0,
"y": 0
}
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": "{{SLIDE_1_TEXT}}",
"font": {
"family": "Didact Gothic",
"size": 20,
"weight": 400,
"color": "{{ TEXT_FONT_COLOR }}",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
}
},
"start": 0.75,
"length": 2.25,
"transition": {
"in": "fade"
},
"offset": {
"y": -0.361,
"x": 0
},
"position": "center",
"width": 600,
"height": 75
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": "{{GLOBAL_AGENT_CONTACT}}",
"font": {
"family": "Didact Gothic",
"size": 20,
"weight": 400,
"color": "{{ TEXT_FONT_COLOR }}",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
}
},
"start": 0.7,
"length": 2.3,
"transition": {
"in": "fade"
},
"offset": {
"y": -0.25,
"x": 0
},
"position": "center",
"width": 600,
"height": 75
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": "{{GLOBAL_AGENT_NAME}}",
"font": {
"family": "Montserrat SemiBold",
"size": 25,
"weight": 600,
"color": "{{ TEXT_FONT_COLOR }}",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
}
},
"start": 0.5,
"length": 2.5,
"transition": {
"in": "fade"
},
"offset": {
"y": -0.17,
"x": 0
},
"position": "center",
"width": 600,
"height": 75
}
]
},
{
"clips": [
{
"length": 2.8,
"asset": {
"type": "image",
"src": "{{ LOGO }}"
},
"start": 0.2,
"scale": 1,
"fit": "contain",
"transition": {
"in": "fade"
},
"offset": {
"x": 0,
"y": 0.05434027777777778
},
"width": 256,
"height": 283
}
]
},
{
"clips": [
{
"asset": {
"type": "rich-text",
"text": "{{GLOBAL_AGENCY_NAME}}",
"font": {
"family": "Montserrat SemiBold",
"size": 36,
"weight": 600,
"color": "{{ TEXT_FONT_COLOR }}",
"opacity": 1
},
"style": {
"letterSpacing": 0,
"wordSpacing": 0,
"lineHeight": 1,
"textTransform": "none",
"textDecoration": "none"
},
"align": {
"horizontal": "center",
"vertical": "middle"
}
},
"start": 0,
"length": 3,
"transition": {
"in": "fade"
},
"offset": {
"y": 0.3,
"x": 0
},
"position": "center",
"width": 600,
"height": 75
}
]
},
{
"clips": [
{
"asset": {
"type": "svg",
"src": ""
},
"start": 0,
"length": "auto",
"position": "center",
"width": 1920,
"height": 1080
}
]
},
{
"clips": [
{
"length": "auto",
"asset": {
"type": "image",
"src": "https://templates.shotstack.io/property-for-sale-template/ba4ef85b-5969-41be-8220-7a735259e191/source.jpg"
},
"start": 0,
"fit": "contain",
"width": 1025,
"height": 736,
"offset": {
"x": 0,
"y": 0
}
}
]
}
],
"fonts": [
{
"src": "https://fonts.gstatic.com/s/didactgothic/v21/ahcfv8qz1zt6hCC5G4F_P4ASpUySp0LlcyQ.ttf"
}
]
},
"output": {
"format": "mp4",
"fps": 25,
"size": {
"width": 1024,
"height": 576
},
"destinations": [
{
"provider": "shotstack"
}
]
},
"merge": [
{
"find": "GLOBAL_AGENCY_NAME",
"replace": "Johnny Tess"
},
{
"find": "GLOBAL_AGENT_NAME",
"replace": "Monday and Olu "
},
{
"find": "GLOBAL_AGENT_CONTACT",
"replace": "+123456789"
},
{
"find": "SLIDE_1_TEXT",
"replace": "Short Property Description"
},
{
"find": "SLIDE_1_IMAGE",
"replace": "https://templates.shotstack.io/property-for-sale-template/e108cfe7-908e-4845-b7f5-088a1a20e3a0/shotstack-proxy.webp"
},
{
"find": "LOGO",
"replace": "https://templates.shotstack.io/property-for-sale-template/179e0e1a-c68c-41e4-a29b-f215f51fa040/source.png"
},
{
"find": "SLIDE_2_TITLE",
"replace": "Luxious & beautiful Flat"
},
{
"find": "SLIDE_2_SUBTITLE",
"replace": "An amazing cool House for family"
},
{
"find": "SLIDE_3_TITLE",
"replace": "A Beautiful Outdoor space"
},
{
"find": "SLIDE_3_SUBTITLE",
"replace": "Enjoy nature in your private garden"
},
{
"find": "SLIDE_3_TEXT",
"replace": "\"Interested? Schedule a Visit Today!\" "
},
{
"find": "IMAGE-TO-VIDEO_SRC",
"replace": "https://templates.shotstack.io/property-for-sale-template/ace6ae95-a5dc-413c-ad15-11d564cdad45/shotstack-proxy.webp"
},
{
"find": "IMAGE-TO-VIDEO_SRC_2",
"replace": "https://templates.shotstack.io/property-for-sale-template/ba97ebfc-9c64-4fab-b584-5ee63ab0e551/shotstack-proxy.webp"
},
{
"find": "TEXT_FONT_COLOR",
"replace": "#042387"
},
{
"find": "TEXT_FONT_COLOR_2",
"replace": "#ffffff"
}
]
}
```
## 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