# Property Listing Template - Make Your Real Estate Stand Out (video template) > Highlight your property with this customizable listing template, designed to capture attention and provide essential details effectively. ## Overview - **Page**: https://shotstack.io/studio/templates/property-listing-template/ - **Output**: MP4, 1920x1920 (1:1), 25 fps - **Length**: 10s - **Timeline**: 30 clips on 28 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=eyJ0aW1lbGluZSI6eyJiYWNrZ3JvdW5kIjoiI0ZGRkZGRiIsInRyYWNrcyI6W3siY2xpcHMiOlt7Imxlbmd0aCI6ImVuZCIsImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9wcm9wZXJ0eS1saXN0aW5nLXRlbXBsYXRlL2U1NzY4ZmNkLTJkYjItNDA2NS05OGZhLTc5YzNmYTk0YjI3MC9zb3VyY2UucG5nIn0sInN0YXJ0Ijo1LjA0NjE2MDcwNDk4NTExNywic2NhbGUiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuMDEsImZyb20iOjAuNCwidG8iOjAuNCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMDEsImxlbmd0aCI6MC43LCJmcm9tIjowLjQsInRvIjowLjQsImludGVycG9sYXRpb24iOiJsaW5lYXIifV0sIm9mZnNldCI6eyJ5IjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjAxLCJmcm9tIjotMC43MiwidG8iOi0wLjcyLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIiwiZWFzaW5nIjoibGluZWFyIn0seyJzdGFydCI6MC4wMSwibGVuZ3RoIjowLjcsImZyb20iOi0wLjcyLCJ0byI6LTAuMywiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XSwieCI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4wMSwiZnJvbSI6LTAuMDMyLCJ0byI6MCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMDEsImxlbmd0aCI6MC43LCJmcm9tIjowLCJ0byI6LTAuMDMyLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dfSwicG9zaXRpb24iOiJjZW50ZXIiLCJvcGFjaXR5IjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjAxLCJmcm9tIjoxLCJ0byI6MCwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMDEsImxlbmd0aCI6MC43LCJmcm9tIjowLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XSwidHJhbnNmb3JtIjp7InJvdGF0ZSI6eyJhbmdsZSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4wMSwiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIiLCJlYXNpbmciOiJsaW5lYXIifSx7InN0YXJ0IjowLjAxLCJsZW5ndGgiOjAuNywiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIifV19fSwiZml0IjoiY3JvcCJ9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIHt7bkFNRU5BTUV9fSIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUiB9fSIsImZhbWlseSI6Ik1vbnRzZXJyYXQgRXh0cmFCb2xkIiwic2l6ZSI6NzIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6ODAwLCJoZWlnaHQiOjIwMH0sInN0YXJ0Ijo2LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6MC4yNjMsInkiOi0wLjQxN30sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIge3tXRUJTSVRFfX0iLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJmYW1pbHkiOiJBcmFwZXkiLCJzaXplIjoiNDUiLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjgwMCwiaGVpZ2h0Ijo1MH0sInN0YXJ0Ijo1LjcwODUsImxlbmd0aCI6ImVuZCIsIm9mZnNldCI6eyJ4IjowLjI1LCJ5IjotMC4zNDN9LCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9LCJwb3NpdGlvbiI6ImNlbnRlciJ9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0Ijoie3tFTUFJTH19IiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SIH19IiwiZmFtaWx5IjoiQXJhcGV5Iiwic2l6ZSI6IjQ1IiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo4MDAsImhlaWdodCI6NTB9LCJzdGFydCI6NS41NiwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAuMjU1LCJ5IjotMC4zMDh9LCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9LCJwb3NpdGlvbiI6ImNlbnRlciJ9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0Ijoie3tQSE9ORX19IiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SIH19IiwiZmFtaWx5IjoiQXJhcGV5Iiwic2l6ZSI6IjQ1IiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo4MDAsImhlaWdodCI6NTB9LCJzdGFydCI6NS41LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6MC4yNDcsInkiOi0wLjI3MX0sInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIHt7RFJFfX0iLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJmYW1pbHkiOiJBcmFwZXkiLCJzaXplIjoiNDUiLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjEyMDAsImhlaWdodCI6NTB9LCJzdGFydCI6NS40LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieSI6LTAuMjM5LCJ4IjowLjI0N30sInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sInBvc2l0aW9uIjoiY2VudGVyIn1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiJ7e1JFQUxUT1J9fSIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUiB9fSIsImZhbWlseSI6IkFyYXBleSIsInNpemUiOiI0NSIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6MTIwMCwiaGVpZ2h0Ijo1MH0sInN0YXJ0Ijo1LjMzOTQzMzMzMzMzMzMzMywibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7InkiOi0wLjIwMywieCI6MC4yNDd9LCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9LCJwb3NpdGlvbiI6ImNlbnRlciJ9XX0seyJjbGlwcyI6W3sibGVuZ3RoIjoiZW5kIiwiYXNzZXQiOnsidHlwZSI6ImltYWdlIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Byb3BlcnR5LWxpc3RpbmctdGVtcGxhdGUvYTc4ZTkyZDQtYTFkNC00Zjk4LWIwOWYtYTY2YjM4ZjJjZThlL3NvdXJjZS5wbmcifSwic3RhcnQiOjUuMiwic2NhbGUiOjAuMTgsIm9mZnNldCI6eyJ4IjowLjI1NSwieSI6LTAuMTMxfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9LCJmaXQiOiJjb250YWluIn1dfSx7ImNsaXBzIjpbeyJsZW5ndGgiOiJlbmQiLCJhc3NldCI6eyJ0eXBlIjoiaW1hZ2UiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vcHJvcGVydHktbGlzdGluZy10ZW1wbGF0ZS80ZmI2NDg1Mi03NjA5LTQ1NTctOTIxMS1lYjg4MjA5MjA2OWUvc291cmNlLnBuZyJ9LCJzdGFydCI6NSwib2Zmc2V0Ijp7IngiOjAuMjUsInkiOi0wLjAyMn0sInBvc2l0aW9uIjoiY2VudGVyIiwic2NhbGUiOjAuMiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwiZml0IjoiY29udGFpbiJ9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoiIzAwMDAwMCIsImZhbWlseSI6Ik1vbnRzZXJyYXQgRXh0cmFCb2xkIiwic2l6ZSI6NzIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6NjAwLCJoZWlnaHQiOjEwLCJiYWNrZ3JvdW5kIjp7ImNvbG9yIjoiI2ZmZmZmZiJ9fSwic3RhcnQiOjQuODM5LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6MC4yNSwieSI6MC4wM30sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiJ7e1NRVUFSRV9GRUVUfX0gU1FVQVJFIEZFRVQgIiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SIH19IiwiZmFtaWx5IjoiQXJhcGV5Iiwic2l6ZSI6IjcyIiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo4MDAsImhlaWdodCI6MjAwfSwic3RhcnQiOjQuNTY4NCwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7InkiOjAuMDgxLCJ4IjowLjI0N30sInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sInBvc2l0aW9uIjoiY2VudGVyIn1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiJ7e0JBVEhST09NfX0gQkFUSFJPT00iLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJmYW1pbHkiOiJBcmFwZXkiLCJzaXplIjoiNzIiLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjgwMCwiaGVpZ2h0IjoyMDB9LCJzdGFydCI6NC4yMjcxLCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6MC4yNDcsInkiOjAuMTQyfSwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwicG9zaXRpb24iOiJjZW50ZXIifV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Int7QkVEUk9PTVN9fSBCRURST09NUyIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUiB9fSIsImZhbWlseSI6IkFyYXBleSIsInNpemUiOiI3MiIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6ODAwLCJoZWlnaHQiOjIwMH0sInN0YXJ0Ijo0LjA2NiwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAuMjQ3LCJ5IjowLjIwMX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIiLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiIjMDAwMDAwIiwiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjo3MiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo2MDAsImhlaWdodCI6MTAsImJhY2tncm91bmQiOnsiY29sb3IiOiIjZmZmZmZmIn19LCJzdGFydCI6My43NSwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAuMjUsInkiOjAuMjQxfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiB7e0FNT1VOVH19IiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SIH19IiwiZmFtaWx5IjoiQXJhcGV5Iiwic2l6ZSI6IjEyMCIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6ODAwLCJoZWlnaHQiOjIwMH0sInN0YXJ0IjozLjUzLCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6MC4yNDcsInkiOjAuMzExfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiB7e0FERFJFU1N9fSIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUiB9fSIsImZhbWlseSI6IkFyYXBleSIsInNpemUiOiI2MCIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6MTIwMCwiaGVpZ2h0IjoyMDB9LCJzdGFydCI6My40MSwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAuMjU1LCJ5IjowLjM4OX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIge3tTVEFUVVN9fSIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUiB9fSIsImZhbWlseSI6Ik1vbnRzZXJyYXQgRXh0cmFCb2xkIiwic2l6ZSI6IjEyMCIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6MTIwMCwiaGVpZ2h0IjoyMDB9LCJzdGFydCI6MywibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOi0wLjI1LCJ5IjowLjI1OX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIiLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiIjMDAwMDAwIiwiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjo3MiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo5NjAsImhlaWdodCI6MzAwLCJiYWNrZ3JvdW5kIjp7ImNvbG9yIjoie3sgVEVYVF9CQUNLR1JPVU5EX0NPTE9SIH19In19LCJzdGFydCI6Mi41LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6LTAuMjUsInkiOjAuMjU5fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9fV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6ImVuZCIsImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9wcm9wZXJ0eS1saXN0aW5nLXRlbXBsYXRlL2M3YzkzNWNjLTU1OTAtNGRkZC1hNDQ3LWQzMzFlZDA0ZDA2MC9zb3VyY2UuanBnIn0sInN0YXJ0IjoxLjUsInNjYWxlIjowLjI1LCJvZmZzZXQiOnsieCI6LTAuMzc1LCJ5IjowfSwicG9zaXRpb24iOiJjZW50ZXIiLCJmaXQiOiJjb3ZlciIsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn19LHsiYXNzZXQiOnsidHlwZSI6Imx1bWEiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vcHJvcGVydHktbGlzdGluZy10ZW1wbGF0ZS9lNDdmMjg1NC05YmMxLTRkNmUtOTUwZS1kZmVhYTFlOWQ4YjUvc291cmNlLnBuZyJ9LCJzdGFydCI6MS41LCJsZW5ndGgiOiJlbmQifV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjQ1MCwiaGVpZ2h0Ijo0NTAsImJhY2tncm91bmQiOnsiY29sb3IiOiIjZmZmZmZmIn19LCJzdGFydCI6MS41LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6LTAuMzc1LCJ5IjowfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9fV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6ImVuZCIsImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Int7IElNQUdFX1NSQ18yIH19In0sInN0YXJ0IjoxLjgsIm9mZnNldCI6eyJ4IjotMC4xMjgsInkiOjB9LCJwb3NpdGlvbiI6ImNlbnRlciIsImZpdCI6ImNvdmVyIiwic2NhbGUiOjAuMjUsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn19LHsiYXNzZXQiOnsidHlwZSI6Imx1bWEiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vcHJvcGVydHktbGlzdGluZy10ZW1wbGF0ZS8xODc5MzBlYS0wZTJlLTQwNzEtOWRmZS0xZjY4ZDJiMTY3YzQvc291cmNlLnBuZyJ9LCJzdGFydCI6MS44LCJsZW5ndGgiOiJlbmQifV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjQ1MCwiaGVpZ2h0Ijo0NTAsImJhY2tncm91bmQiOnsiY29sb3IiOiIjZmZmZmZmIn19LCJzdGFydCI6MS44LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6LTAuMTI4LCJ5IjowfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjE1LCJoZWlnaHQiOjE5MjAsImJhY2tncm91bmQiOnsiY29sb3IiOiIjNmI2YjZiIn19LCJzdGFydCI6MCwibGVuZ3RoIjoiZW5kIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwicG9zaXRpb24iOiJjZW50ZXIifV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjk2MCwiaGVpZ2h0IjoxNSwiYmFja2dyb3VuZCI6eyJjb2xvciI6IiM2YjZiNmIifX0sInN0YXJ0IjowLCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6LTAuMjUsInkiOi0wLjQ5Nn0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIiLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiIjMDAwMDAwIiwiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjo3MiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo5NjAsImhlaWdodCI6MTkyMCwiYmFja2dyb3VuZCI6eyJjb2xvciI6Int7IFRFWFRfQkFDS0dST1VORF9DT0xPUiB9fSJ9fSwic3RhcnQiOjAsImxlbmd0aCI6MTAsIm9mZnNldCI6eyJ4IjowLjI0NywieSI6MH0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIiLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiIjMDAwMDAwIiwiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjo3MiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo5NjAsImhlaWdodCI6MTkyMCwiYmFja2dyb3VuZCI6eyJjb2xvciI6IiNmZmZmZmYifX0sInN0YXJ0IjowLCJsZW5ndGgiOiJhdXRvIiwib2Zmc2V0Ijp7IngiOjAuMjQ3LCJ5IjowfSwicG9zaXRpb24iOiJjZW50ZXIifV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6ImVuZCIsImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9wcm9wZXJ0eS1saXN0aW5nLXRlbXBsYXRlLzRiYmJmNjJjLTFmZWYtNDQ5YS04Y2MwLTMxOGVhY2ExYWM4NS9zb3VyY2UuanBnIn0sInN0YXJ0IjowLCJzY2FsZSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4wMywiZnJvbSI6MC41LCJ0byI6MC41LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIiwiZWFzaW5nIjoibGluZWFyIn0seyJzdGFydCI6MC4wMywibGVuZ3RoIjowLjM1LCJmcm9tIjowLjUsInRvIjowLjUsImludGVycG9sYXRpb24iOiJsaW5lYXIifV0sIm9mZnNldCI6eyJ4IjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjAzLCJmcm9tIjotMC40OTIsInRvIjotMC40OTIsImludGVycG9sYXRpb24iOiJsaW5lYXIiLCJlYXNpbmciOiJsaW5lYXIifSx7InN0YXJ0IjowLjAzLCJsZW5ndGgiOjAuMzUsImZyb20iOi0wLjQ5MiwidG8iOi0wLjI1LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dLCJ5IjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjAzLCJmcm9tIjowLjI1LCJ0byI6MC4yNSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciIsImVhc2luZyI6ImxpbmVhciJ9LHsic3RhcnQiOjAuMDMsImxlbmd0aCI6MC4zNSwiZnJvbSI6MC4yNSwidG8iOjAuMjUsImludGVycG9sYXRpb24iOiJsaW5lYXIifV19LCJwb3NpdGlvbiI6ImNlbnRlciIsIm9wYWNpdHkiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuMDMsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIiwiZWFzaW5nIjoibGluZWFyIn0seyJzdGFydCI6MC4wMywibGVuZ3RoIjowLjM1LCJmcm9tIjowLCJ0byI6MSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XSwidHJhbnNmb3JtIjp7InJvdGF0ZSI6eyJhbmdsZSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC4wMywiZnJvbSI6MCwidG8iOjAsImludGVycG9sYXRpb24iOiJsaW5lYXIiLCJlYXNpbmciOiJsaW5lYXIifSx7InN0YXJ0IjowLjAzLCJsZW5ndGgiOjAuMzUsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dfX19XX0seyJjbGlwcyI6W3sibGVuZ3RoIjoiZW5kIiwiYXNzZXQiOnsidHlwZSI6ImltYWdlIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Byb3BlcnR5LWxpc3RpbmctdGVtcGxhdGUvYWRhZmQwODMtNGIwZS00MGYxLWE2YTctY2IyM2Q0OWEzZTk2L3NvdXJjZS5qcGcifSwic3RhcnQiOjAuMiwic2NhbGUiOlt7InN0YXJ0IjowLCJsZW5ndGgiOjAuNCwiZnJvbSI6MC41LCJ0byI6MC41LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dLCJvZmZzZXQiOnsieCI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC40LCJmcm9tIjotMC40NjIsInRvIjotMC4yNSwiaW50ZXJwb2xhdGlvbiI6ImxpbmVhciJ9XSwieSI6W3sic3RhcnQiOjAsImxlbmd0aCI6MC40LCJmcm9tIjotMC4yNSwidG8iOi0wLjI1LCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dfSwicG9zaXRpb24iOiJjZW50ZXIiLCJvcGFjaXR5IjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjQsImZyb20iOjAsInRvIjoxLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dLCJ0cmFuc2Zvcm0iOnsicm90YXRlIjp7ImFuZ2xlIjpbeyJzdGFydCI6MCwibGVuZ3RoIjowLjQsImZyb20iOjAsInRvIjowLCJpbnRlcnBvbGF0aW9uIjoibGluZWFyIn1dfX19XX1dfSwib3V0cHV0Ijp7ImZvcm1hdCI6Im1wNCIsImZwcyI6MjUsInNpemUiOnsid2lkdGgiOjE5MjAsImhlaWdodCI6MTkyMH19LCJtZXJnZSI6W3siZmluZCI6IlNUQVRVUyIsInJlcGxhY2UiOiJKVVNUIExJU1RFRCJ9LHsiZmluZCI6IkFERFJFU1MiLCJyZXBsYWNlIjoiMTIzIE1haW4gc3RyZWV0LCBjaXR5LCBzdGF0ZSwgWmlwIENvZGUifSx7ImZpbmQiOiJBTU9VTlQiLCJyZXBsYWNlIjoiJDAwMCwwMDAifSx7ImZpbmQiOiJCRURST09NUyIsInJlcGxhY2UiOiIzIn0seyJmaW5kIjoiQkFUSFJPT00iLCJyZXBsYWNlIjoiMiJ9LHsiZmluZCI6IlNRVUFSRV9GRUVUIiwicmVwbGFjZSI6IjAwMDAifSx7ImZpbmQiOiJsT0dPX0lNQUdFX1NSQyIsInJlcGxhY2UiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vcHJvcGVydHktbGlzdGluZy10ZW1wbGF0ZS83NDJmZWE2NS1iMWFhLTQ3MTctOWNhYy1jYzVjMjdjZWZhNjEvc2hvdHN0YWNrLXByb3h5LndlYnAifSx7ImZpbmQiOiJsT0dPX0lNQUdFX1NSQ18yIiwicmVwbGFjZSI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9wcm9wZXJ0eS1saXN0aW5nLXRlbXBsYXRlL2Q4YjQ1MjI3LWUyYjItNGQ4NC1hYmRmLTg5ODBlNjg1YjM5Zi9zaG90c3RhY2stcHJveHkud2VicCJ9LHsiZmluZCI6IlJFQUxUT1IiLCJyZXBsYWNlIjoiUkVBTFRPUkAsIEJyb2tlci1Bc3NvY2lhdGUifSx7ImZpbmQiOiJEUkUiLCJyZXBsYWNlIjoiRFJFIzAxMjM0NTYifSx7ImZpbmQiOiJQSE9ORSIsInJlcGxhY2UiOiJEaXJlY3QgODg5LDMyMiwxMjM0In0seyJmaW5kIjoiRU1BSUwiLCJyZXBsYWNlIjoiTGVvQExlb0tlbnNpbmd0b25jb20ifSx7ImZpbmQiOiJXRUJTSVRFIiwicmVwbGFjZSI6Ind3dy5MZW9LZW5zaW5ndG9ucmVhbGVzdGF0ZS5jb20ifSx7ImZpbmQiOiJuQU1FTkFNRSIsInJlcGxhY2UiOiJMZW8gS2Vuc2luZ3RvbiJ9LHsiZmluZCI6IlRFWFRfRk9OVF9DT0xPUiIsInJlcGxhY2UiOiIjZmZmZmZmIn0seyJmaW5kIjoiVEVYVF9CQUNLR1JPVU5EX0NPTE9SIiwicmVwbGFjZSI6IiM5ODc5NWQifSx7ImZpbmQiOiJJTUFHRV9TUkMiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Byb3BlcnR5LWxpc3RpbmctdGVtcGxhdGUvZmUwMTAxNzctYzBkOC00M2U0LTgxZjEtM2IxMGEwNjdmNmJkL3Nob3RzdGFjay1wcm94eS53ZWJwIn0seyJmaW5kIjoiSU1BR0VfU1JDXzIiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Byb3BlcnR5LWxpc3RpbmctdGVtcGxhdGUvMmUwYTlhZGEtNjMyOS00NDMxLWI3ODgtZWQ1YWJhMmEzZmFmL3Nob3RzdGFjay1wcm94eS53ZWJwIn0seyJmaW5kIjoiSU1BR0VfU1JDXzMiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Byb3BlcnR5LWxpc3RpbmctdGVtcGxhdGUvODA5MWViNDctNDAxYS00NzQzLWE1MGEtNzdiZDY4MzdlNzYxL3Nob3RzdGFjay1wcm94eS53ZWJwIn0seyJmaW5kIjoiSU1BR0VfU1JDXzQiLCJyZXBsYWNlIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL3Byb3BlcnR5LWxpc3RpbmctdGVtcGxhdGUvZGNjZTFlZmEtODUxZC00MzUyLWFmMWQtMmUyMGUxMmQ0OTM3L3Nob3RzdGFjay1wcm94eS53ZWJwIn1dfQ - **Edit and save to an account**: https://dashboard.shotstack.io/studio/editor/property-listing-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 | | --- | --- | | `{{ STATUS }}` | JUST LISTED | | `{{ ADDRESS }}` | 123 Main street, city, state, Zip Code | | `{{ AMOUNT }}` | $000,000 | | `{{ BEDROOMS }}` | 3 | | `{{ BATHROOM }}` | 2 | | `{{ SQUARE_FEET }}` | 0000 | | `{{ lOGO_IMAGE_SRC }}` | https://templates.shotstack.io/property-listing-template/742fea65-b1aa-4717-9cac-cc5c27cefa61/shotstack-proxy.webp | | `{{ lOGO_IMAGE_SRC_2 }}` | https://templates.shotstack.io/property-listing-template/d8b45227-e2b2-4d84-abdf-8980e685b39f/shotstack-proxy.webp | | `{{ REALTOR }}` | REALTOR@, Broker-Associate | | `{{ DRE }}` | DRE#0123456 | | `{{ PHONE }}` | Direct 889,322,1234 | | `{{ EMAIL }}` | Leo@LeoKensingtoncom | | `{{ WEBSITE }}` | www.LeoKensingtonrealestate.com | | `{{ nAMENAME }}` | Leo Kensington | | `{{ TEXT_FONT_COLOR }}` | #ffffff | | `{{ TEXT_BACKGROUND_COLOR }}` | #98795d | | `{{ IMAGE_SRC }}` | https://templates.shotstack.io/property-listing-template/fe010177-c0d8-43e4-81f1-3b10a067f6bd/shotstack-proxy.webp | | `{{ IMAGE_SRC_2 }}` | https://templates.shotstack.io/property-listing-template/2e0a9ada-6329-4431-b788-ed5aba2a3faf/shotstack-proxy.webp | | `{{ IMAGE_SRC_3 }}` | https://templates.shotstack.io/property-listing-template/8091eb47-401a-4743-a50a-77bd6837e761/shotstack-proxy.webp | | `{{ IMAGE_SRC_4 }}` | https://templates.shotstack.io/property-listing-template/dcce1efa-851d-4352-af1d-2e20e12d4937/shotstack-proxy.webp | ## Template JSON ```json { "timeline": { "background": "#FFFFFF", "tracks": [ { "clips": [ { "length": "end", "asset": { "type": "image", "src": "https://templates.shotstack.io/property-listing-template/e5768fcd-2db2-4065-98fa-79c3fa94b270/source.png" }, "start": 5.046160704985117, "scale": [ { "start": 0, "length": 0.01, "from": 0.4, "to": 0.4, "interpolation": "linear", "easing": "linear" }, { "start": 0.01, "length": 0.7, "from": 0.4, "to": 0.4, "interpolation": "linear" } ], "offset": { "y": [ { "start": 0, "length": 0.01, "from": -0.72, "to": -0.72, "interpolation": "linear", "easing": "linear" }, { "start": 0.01, "length": 0.7, "from": -0.72, "to": -0.3, "interpolation": "linear" } ], "x": [ { "start": 0, "length": 0.01, "from": -0.032, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.01, "length": 0.7, "from": 0, "to": -0.032, "interpolation": "linear" } ] }, "position": "center", "opacity": [ { "start": 0, "length": 0.01, "from": 1, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.01, "length": 0.7, "from": 0, "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.7, "from": 0, "to": 0, "interpolation": "linear" } ] } }, "fit": "crop" } ] }, { "clips": [ { "asset": { "type": "text", "text": " {{nAMENAME}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 800, "height": 200 }, "start": 6, "length": "end", "offset": { "x": 0.263, "y": -0.417 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": " {{WEBSITE}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "45", "lineHeight": 1 }, "width": 800, "height": 50 }, "start": 5.7085, "length": "end", "offset": { "x": 0.25, "y": -0.343 }, "transition": { "in": "fade" }, "position": "center" } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{EMAIL}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "45", "lineHeight": 1 }, "width": 800, "height": 50 }, "start": 5.56, "length": "end", "offset": { "x": 0.255, "y": -0.308 }, "transition": { "in": "fade" }, "position": "center" } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{PHONE}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "45", "lineHeight": 1 }, "width": 800, "height": 50 }, "start": 5.5, "length": "end", "offset": { "x": 0.247, "y": -0.271 }, "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": " {{DRE}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "45", "lineHeight": 1 }, "width": 1200, "height": 50 }, "start": 5.4, "length": "end", "offset": { "y": -0.239, "x": 0.247 }, "transition": { "in": "fade" }, "position": "center" } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{REALTOR}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "45", "lineHeight": 1 }, "width": 1200, "height": 50 }, "start": 5.339433333333333, "length": "end", "offset": { "y": -0.203, "x": 0.247 }, "transition": { "in": "fade" }, "position": "center" } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "https://templates.shotstack.io/property-listing-template/a78e92d4-a1d4-4f98-b09f-a66b38f2ce8e/source.png" }, "start": 5.2, "scale": 0.18, "offset": { "x": 0.255, "y": -0.131 }, "position": "center", "transition": { "in": "fade" }, "fit": "contain" } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "https://templates.shotstack.io/property-listing-template/4fb64852-7609-4557-9211-eb882092069e/source.png" }, "start": 5, "offset": { "x": 0.25, "y": -0.022 }, "position": "center", "scale": 0.2, "transition": { "in": "fade" }, "fit": "contain" } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 600, "height": 10, "background": { "color": "#ffffff" } }, "start": 4.839, "length": "end", "offset": { "x": 0.25, "y": 0.03 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{SQUARE_FEET}} SQUARE FEET ", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "72", "lineHeight": 1 }, "width": 800, "height": 200 }, "start": 4.5684, "length": "end", "offset": { "y": 0.081, "x": 0.247 }, "transition": { "in": "fade" }, "position": "center" } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{BATHROOM}} BATHROOM", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "72", "lineHeight": 1 }, "width": 800, "height": 200 }, "start": 4.2271, "length": "end", "offset": { "x": 0.247, "y": 0.142 }, "transition": { "in": "fade" }, "position": "center" } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{BEDROOMS}} BEDROOMS", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "72", "lineHeight": 1 }, "width": 800, "height": 200 }, "start": 4.066, "length": "end", "offset": { "x": 0.247, "y": 0.201 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 600, "height": 10, "background": { "color": "#ffffff" } }, "start": 3.75, "length": "end", "offset": { "x": 0.25, "y": 0.241 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": " {{AMOUNT}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "120", "lineHeight": 1 }, "width": 800, "height": 200 }, "start": 3.53, "length": "end", "offset": { "x": 0.247, "y": 0.311 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": " {{ADDRESS}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "60", "lineHeight": 1 }, "width": 1200, "height": 200 }, "start": 3.41, "length": "end", "offset": { "x": 0.255, "y": 0.389 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": " {{STATUS}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Montserrat ExtraBold", "size": "120", "lineHeight": 1 }, "width": 1200, "height": 200 }, "start": 3, "length": "end", "offset": { "x": -0.25, "y": 0.259 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 960, "height": 300, "background": { "color": "{{ TEXT_BACKGROUND_COLOR }}" } }, "start": 2.5, "length": "end", "offset": { "x": -0.25, "y": 0.259 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "https://templates.shotstack.io/property-listing-template/c7c935cc-5590-4ddd-a447-d331ed04d060/source.jpg" }, "start": 1.5, "scale": 0.25, "offset": { "x": -0.375, "y": 0 }, "position": "center", "fit": "cover", "transition": { "in": "fade" } }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/property-listing-template/e47f2854-9bc1-4d6e-950e-dfeaa1e9d8b5/source.png" }, "start": 1.5, "length": "end" } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 450, "height": 450, "background": { "color": "#ffffff" } }, "start": 1.5, "length": "end", "offset": { "x": -0.375, "y": 0 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "{{ IMAGE_SRC_2 }}" }, "start": 1.8, "offset": { "x": -0.128, "y": 0 }, "position": "center", "fit": "cover", "scale": 0.25, "transition": { "in": "fade" } }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/property-listing-template/187930ea-0e2e-4071-9dfe-1f68d2b167c4/source.png" }, "start": 1.8, "length": "end" } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 450, "height": 450, "background": { "color": "#ffffff" } }, "start": 1.8, "length": "end", "offset": { "x": -0.128, "y": 0 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 15, "height": 1920, "background": { "color": "#6b6b6b" } }, "start": 0, "length": "end", "transition": { "in": "fade" }, "position": "center" } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 960, "height": 15, "background": { "color": "#6b6b6b" } }, "start": 0, "length": "end", "offset": { "x": -0.25, "y": -0.496 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 960, "height": 1920, "background": { "color": "{{ TEXT_BACKGROUND_COLOR }}" } }, "start": 0, "length": 10, "offset": { "x": 0.247, "y": 0 }, "position": "center", "transition": { "in": "fade" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 960, "height": 1920, "background": { "color": "#ffffff" } }, "start": 0, "length": "auto", "offset": { "x": 0.247, "y": 0 }, "position": "center" } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "https://templates.shotstack.io/property-listing-template/4bbbf62c-1fef-449a-8cc0-318eaca1ac85/source.jpg" }, "start": 0, "scale": [ { "start": 0, "length": 0.03, "from": 0.5, "to": 0.5, "interpolation": "linear", "easing": "linear" }, { "start": 0.03, "length": 0.35, "from": 0.5, "to": 0.5, "interpolation": "linear" } ], "offset": { "x": [ { "start": 0, "length": 0.03, "from": -0.492, "to": -0.492, "interpolation": "linear", "easing": "linear" }, { "start": 0.03, "length": 0.35, "from": -0.492, "to": -0.25, "interpolation": "linear" } ], "y": [ { "start": 0, "length": 0.03, "from": 0.25, "to": 0.25, "interpolation": "linear", "easing": "linear" }, { "start": 0.03, "length": 0.35, "from": 0.25, "to": 0.25, "interpolation": "linear" } ] }, "position": "center", "opacity": [ { "start": 0, "length": 0.03, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.03, "length": 0.35, "from": 0, "to": 1, "interpolation": "linear" } ], "transform": { "rotate": { "angle": [ { "start": 0, "length": 0.03, "from": 0, "to": 0, "interpolation": "linear", "easing": "linear" }, { "start": 0.03, "length": 0.35, "from": 0, "to": 0, "interpolation": "linear" } ] } } } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "https://templates.shotstack.io/property-listing-template/adafd083-4b0e-40f1-a6a7-cb23d49a3e96/source.jpg" }, "start": 0.2, "scale": [ { "start": 0, "length": 0.4, "from": 0.5, "to": 0.5, "interpolation": "linear" } ], "offset": { "x": [ { "start": 0, "length": 0.4, "from": -0.462, "to": -0.25, "interpolation": "linear" } ], "y": [ { "start": 0, "length": 0.4, "from": -0.25, "to": -0.25, "interpolation": "linear" } ] }, "position": "center", "opacity": [ { "start": 0, "length": 0.4, "from": 0, "to": 1, "interpolation": "linear" } ], "transform": { "rotate": { "angle": [ { "start": 0, "length": 0.4, "from": 0, "to": 0, "interpolation": "linear" } ] } } } ] } ] }, "output": { "format": "mp4", "fps": 25, "size": { "width": 1920, "height": 1920 } }, "merge": [ { "find": "STATUS", "replace": "JUST LISTED" }, { "find": "ADDRESS", "replace": "123 Main street, city, state, Zip Code" }, { "find": "AMOUNT", "replace": "$000,000" }, { "find": "BEDROOMS", "replace": "3" }, { "find": "BATHROOM", "replace": "2" }, { "find": "SQUARE_FEET", "replace": "0000" }, { "find": "lOGO_IMAGE_SRC", "replace": "https://templates.shotstack.io/property-listing-template/742fea65-b1aa-4717-9cac-cc5c27cefa61/shotstack-proxy.webp" }, { "find": "lOGO_IMAGE_SRC_2", "replace": "https://templates.shotstack.io/property-listing-template/d8b45227-e2b2-4d84-abdf-8980e685b39f/shotstack-proxy.webp" }, { "find": "REALTOR", "replace": "REALTOR@, Broker-Associate" }, { "find": "DRE", "replace": "DRE#0123456" }, { "find": "PHONE", "replace": "Direct 889,322,1234" }, { "find": "EMAIL", "replace": "Leo@LeoKensingtoncom" }, { "find": "WEBSITE", "replace": "www.LeoKensingtonrealestate.com" }, { "find": "nAMENAME", "replace": "Leo Kensington" }, { "find": "TEXT_FONT_COLOR", "replace": "#ffffff" }, { "find": "TEXT_BACKGROUND_COLOR", "replace": "#98795d" }, { "find": "IMAGE_SRC", "replace": "https://templates.shotstack.io/property-listing-template/fe010177-c0d8-43e4-81f1-3b10a067f6bd/shotstack-proxy.webp" }, { "find": "IMAGE_SRC_2", "replace": "https://templates.shotstack.io/property-listing-template/2e0a9ada-6329-4431-b788-ed5aba2a3faf/shotstack-proxy.webp" }, { "find": "IMAGE_SRC_3", "replace": "https://templates.shotstack.io/property-listing-template/8091eb47-401a-4743-a50a-77bd6837e761/shotstack-proxy.webp" }, { "find": "IMAGE_SRC_4", "replace": "https://templates.shotstack.io/property-listing-template/dcce1efa-851d-4352-af1d-2e20e12d4937/shotstack-proxy.webp" } ] } ``` ## 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