# Contemporary Elegance – Stylish Homes for Sale (video template) > Promote modern homes for sale with a sleek design, showcasing price, features, and stylish interiors. ## Overview - **Page**: https://shotstack.io/studio/templates/contemporary-elegance-stylish-homes-for-sale/ - **Output**: MP4, 1080x1920 (9:16), 25 fps - **Length**: 10s - **Timeline**: 37 clips on 26 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=eyJ0aW1lbGluZSI6eyJiYWNrZ3JvdW5kIjoiI0ZGRkZGRiIsInRyYWNrcyI6W3siY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Int7QlJBTkRfTkFNRX19IiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgQkFDS0dST1VORF9DT0xPUiB9fSIsImZhbWlseSI6Ik1vbnRzZXJyYXQgRXh0cmFCb2xkIiwic2l6ZSI6IjI4IiwibGluZUhlaWdodCI6MX0sIndpZHRoIjoyMDAsImhlaWdodCI6MTAwfSwic3RhcnQiOjAuMTUsImxlbmd0aCI6ImVuZCIsIm9mZnNldCI6eyJ4IjotMC4yODksInkiOjAuNDA4fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJsdW1hIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL2NvbnRlbXBvcmFyeS1lbGVnYW5jZS1zdHlsaXNoLWhvbWVzLWZvci1zYWxlL2Q4ODYwMTI0LTcxMGYtNGI5Zi04NjZmLTcyYmRkOTNmZjNjMy9zb3VyY2UucG5nIn0sInN0YXJ0IjowLjIsImxlbmd0aCI6ImVuZCJ9LHsiYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoiIzAwMDAwMCIsImZhbWlseSI6Ik1vbnRzZXJyYXQgRXh0cmFCb2xkIiwic2l6ZSI6NzIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6NDUsImhlaWdodCI6NDUsInN0cm9rZSI6eyJjb2xvciI6IiNmZmZmZmYifSwiYmFja2dyb3VuZCI6eyJjb2xvciI6Int7IFlFTExPV19FTEVNRU5UX0NPTE9SIH19In19LCJzdGFydCI6MC4xLCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6MC4zODYsInkiOjAuNDU3fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6ImVuZCIsImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Int7IExPR08gfX0ifSwic3RhcnQiOjAuMSwic2NhbGUiOjAuMDYsIm9mZnNldCI6eyJ4IjotMC4yODksInkiOjAuNDZ9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVVwIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imx1bWEiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vY29udGVtcG9yYXJ5LWVsZWdhbmNlLXN0eWxpc2gtaG9tZXMtZm9yLXNhbGUvYjQwMzk1ZjEtMzU2ZS00MzVjLTg1NzAtY2M5Mzg0NTlhZmVjL3NvdXJjZS5wbmcifSwic3RhcnQiOjAuMiwibGVuZ3RoIjoiZW5kIn0seyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIiLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiIjMDAwMDAwIiwiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjo3MiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo1MCwiaGVpZ2h0Ijo1MCwiYmFja2dyb3VuZCI6eyJjb2xvciI6Int7IFlFTExPV19FTEVNRU5UX0NPTE9SIH19In19LCJzdGFydCI6MC4xNSwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAuMzg4LCJ5IjowLjQxfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Int7QUREUkVTU319IiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJyaWdodCIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOiIyOSIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6NTAwLCJoZWlnaHQiOjExMH0sInN0YXJ0IjowLjE1LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6MC4xLCJ5IjowLjQxfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Int7UEhPTkV9fSIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoicmlnaHQiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SIH19IiwiZmFtaWx5IjoiTW9udHNlcnJhdCBTZW1pQm9sZCIsInNpemUiOiIzMyIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6MzAwLCJoZWlnaHQiOjUwfSwic3RhcnQiOjAuMSwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAuMjA0LCJ5IjowLjQ1OH0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlVXAifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiJ7e1MyX0RFU0NSSVBUSU9OXzN9fSIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoibGVmdCIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOiIzMyIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6MjMwLCJoZWlnaHQiOjUwfSwic3RhcnQiOjIuMiwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAuMzM3LCJ5IjotMC40MzR9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVVwIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0Ijoie3tTMl9ERVNDUklQVElPTl8yfX0iLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImxlZnQiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgVEVYVF9GT05UX0NPTE9SIH19IiwiZmFtaWx5IjoiTW9udHNlcnJhdCBTZW1pQm9sZCIsInNpemUiOiIzMyIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6MjMwLCJoZWlnaHQiOjUwfSwic3RhcnQiOjIsImxlbmd0aCI6ImVuZCIsIm9mZnNldCI6eyJ4IjowLjA1MiwieSI6LTAuNDM0fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6Int7UzJfREVTQ1JJUFRJT05fMX19IiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJsZWZ0IiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6Int7IFRFWFRfRk9OVF9DT0xPUiB9fSIsImZhbWlseSI6Ik1vbnRzZXJyYXQgU2VtaUJvbGQiLCJzaXplIjoiMzMiLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjIzMCwiaGVpZ2h0Ijo1MH0sInN0YXJ0IjoxLjgsImxlbmd0aCI6ImVuZCIsIm9mZnNldCI6eyJ4IjotMC4yMzYsInkiOi0wLjQzNH0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlVXAifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIiLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiIjMDAwMDAwIiwiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjo3MiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo0NSwiaGVpZ2h0Ijo0NSwiYmFja2dyb3VuZCI6eyJjb2xvciI6Int7IFlFTExPV19FTEVNRU5UX0NPTE9SIH19In19LCJzdGFydCI6Mi4yLCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6MC4xOTEsInkiOi0wLjQzNH0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlVXAifX0seyJhc3NldCI6eyJ0eXBlIjoibHVtYSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9jb250ZW1wb3JhcnktZWxlZ2FuY2Utc3R5bGlzaC1ob21lcy1mb3Itc2FsZS8zZTBmNDRmYy05NzdlLTQzNWItOGVjZS1kZDFlNTA2YmQ5NzIvc291cmNlLnBuZyJ9LCJzdGFydCI6Mi4yLCJsZW5ndGgiOiJlbmQifV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJsdW1hIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL2NvbnRlbXBvcmFyeS1lbGVnYW5jZS1zdHlsaXNoLWhvbWVzLWZvci1zYWxlLzM0MjFjNTFhLWM4MGUtNDk3MS05NjRlLWU4ZGQ1MjA2YzY3My9zb3VyY2UucG5nIn0sInN0YXJ0IjoyLCJsZW5ndGgiOiJlbmQifSx7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjQ1LCJoZWlnaHQiOjQ1LCJiYWNrZ3JvdW5kIjp7ImNvbG9yIjoie3sgWUVMTE9XX0VMRU1FTlRfQ09MT1IgfX0ifX0sInN0YXJ0IjoyLCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6LTAuMDg1LCJ5IjotMC40MzR9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVVwIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoiIzAwMDAwMCIsImZhbWlseSI6Ik1vbnRzZXJyYXQgRXh0cmFCb2xkIiwic2l6ZSI6NzIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6ODAwLCJoZWlnaHQiOjIsImJhY2tncm91bmQiOnsiY29sb3IiOiJ7eyBZRUxMT1dfRUxFTUVOVF9DT0xPUiB9fSJ9fSwic3RhcnQiOjIuNCwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAsInkiOi0wLjQ2OH0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlVXAifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIiLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiIjMDAwMDAwIiwiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjo3MiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo4MDAsImhlaWdodCI6MiwiYmFja2dyb3VuZCI6eyJjb2xvciI6Int7IFlFTExPV19FTEVNRU5UX0NPTE9SIH19In19LCJzdGFydCI6MS42LCJsZW5ndGgiOiJlbmQiLCJvZmZzZXQiOnsieCI6MCwieSI6LTAuMzk3fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjQ1LCJoZWlnaHQiOjQ1LCJiYWNrZ3JvdW5kIjp7ImNvbG9yIjoie3sgWUVMTE9XX0VMRU1FTlRfQ09MT1IgfX0ifX0sInN0YXJ0IjoxLjgsImxlbmd0aCI6ImVuZCIsIm9mZnNldCI6eyJ4IjotMC4zNywieSI6LTAuNDM0fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fSx7ImFzc2V0Ijp7InR5cGUiOiJsdW1hIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL2NvbnRlbXBvcmFyeS1lbGVnYW5jZS1zdHlsaXNoLWhvbWVzLWZvci1zYWxlL2EwYjgxMTUyLTUyZDktNGE0YS1hODg3LWRmZDI3Njc2Nzg5OC9zb3VyY2UucG5nIn0sInN0YXJ0IjoxLjgsImxlbmd0aCI6ImVuZCJ9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0Ijoie3tBTU9VTlR9fSIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiNmZmZmZmYiLCJmYW1pbHkiOiJNb250c2VycmF0IFNlbWlCb2xkIiwic2l6ZSI6IjQ1IiwibGluZUhlaWdodCI6MX0sIndpZHRoIjozMDAsImhlaWdodCI6MTAwLCJiYWNrZ3JvdW5kIjp7ImNvbG9yIjoie3sgWUVMTE9XX0VMRU1FTlRfQ09MT1IgfX0iLCJib3JkZXJSYWRpdXMiOjIyfX0sInN0YXJ0IjowLjYsImxlbmd0aCI6ImVuZCIsIm9mZnNldCI6eyJ4IjotMC4yNTYsInkiOjAuMDcyfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjI1MCwiaGVpZ2h0IjozMDAsImJhY2tncm91bmQiOnsiY29sb3IiOiIjZmZmZmZmIiwiYm9yZGVyUmFkaXVzIjo0MX19LCJzdGFydCI6MCwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOi0wLjI4OSwieSI6MC40NTV9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVVwIn19XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0Ijoie3tERVNDUklQVElPTn19IiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoie3sgWUVMTE9XX0VMRU1FTlRfQ09MT1IgfX0iLCJmYW1pbHkiOiJBcmFwZXkiLCJzaXplIjoiMTk2IiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo4ODgsImhlaWdodCI6MTY1fSwic3RhcnQiOjEuNCwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAsInkiOi0wLjM0MX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlVXAifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiJ7e1RJVExFfX0iLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiJ7eyBURVhUX0ZPTlRfQ09MT1IgfX0iLCJmYW1pbHkiOiJBcmFwZXkiLCJzaXplIjoiMTMxIiwibGluZUhlaWdodCI6MX0sIndpZHRoIjo5MDAsImhlaWdodCI6MTUwfSwic3RhcnQiOjEuMiwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAuMDEyLCJ5IjotMC4yNjl9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVVwIn19XX0seyJjbGlwcyI6W3sibGVuZ3RoIjoiZW5kIiwiYXNzZXQiOnsidHlwZSI6ImltYWdlIiwic3JjIjoie3sgSU1BR0VfU1JDXzMgfX0ifSwic3RhcnQiOjAuOCwic2NhbGUiOjAuMjIsIm9mZnNldCI6eyJ4IjowLjIwNCwieSI6LTAuMTEzfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fSx7ImFzc2V0Ijp7InR5cGUiOiJsdW1hIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL2NvbnRlbXBvcmFyeS1lbGVnYW5jZS1zdHlsaXNoLWhvbWVzLWZvci1zYWxlLzY4NmMzNmU5LTAyOTctNDg4Yi1hMmVlLTVhMmU4YjQ1NzViMy9zb3VyY2UucG5nIn0sInN0YXJ0IjoxLCJsZW5ndGgiOiJlbmQifV19LHsiY2xpcHMiOlt7Imxlbmd0aCI6ImVuZCIsImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Int7IElNQUdFX1NSQ18yIH19In0sInN0YXJ0IjowLjgsInNjYWxlIjowLjIyLCJvZmZzZXQiOnsieCI6LTAuMjA0LCJ5IjotMC4xMTN9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVVwIn19LHsiYXNzZXQiOnsidHlwZSI6Imx1bWEiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vY29udGVtcG9yYXJ5LWVsZWdhbmNlLXN0eWxpc2gtaG9tZXMtZm9yLXNhbGUvOWYzNjQ3ZWMtZDY2Ny00NTZlLWFiNzUtNjdmYzIwOGFjZmQ0L3NvdXJjZS5wbmcifSwic3RhcnQiOjEsImxlbmd0aCI6ImVuZCJ9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imx1bWEiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vY29udGVtcG9yYXJ5LWVsZWdhbmNlLXN0eWxpc2gtaG9tZXMtZm9yLXNhbGUvMmMzNGYzOWUtOGYzMC00ZGViLWFjODgtMGRiMTcxMWI3NjdlL3NvdXJjZS5wbmcifSwic3RhcnQiOjAuNSwibGVuZ3RoIjoiZW5kIn0seyJsZW5ndGgiOiJlbmQiLCJhc3NldCI6eyJ0eXBlIjoiaW1hZ2UiLCJzcmMiOiJ7eyBJTUFHRV9TUkMgfX0ifSwic3RhcnQiOjAuNSwic2NhbGUiOjAuMywib2Zmc2V0Ijp7IngiOjAsInkiOjAuMTU0fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjQ1MCwiaGVpZ2h0Ijo0NTAsImJhY2tncm91bmQiOnsiY29sb3IiOiJ7eyBZRUxMT1dfRUxFTUVOVF9DT0xPUiB9fSJ9fSwic3RhcnQiOjAuOCwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOjAuMjA0LCJ5IjotMC4xMTN9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVVwIn19LHsiYXNzZXQiOnsidHlwZSI6Imx1bWEiLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vY29udGVtcG9yYXJ5LWVsZWdhbmNlLXN0eWxpc2gtaG9tZXMtZm9yLXNhbGUvODRkMmI5MjEtNWFkZS00NjQ1LWE1ZTctZmQzNGI3ZjQ0ZGFhL3NvdXJjZS5wbmcifSwic3RhcnQiOjAuOCwibGVuZ3RoIjoiZW5kIn1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoibHVtYSIsInNyYyI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9jb250ZW1wb3JhcnktZWxlZ2FuY2Utc3R5bGlzaC1ob21lcy1mb3Itc2FsZS9iM2MxMTAxOS03MjA3LTQ5ZWMtODQxZS04MTU3NzE1NGJkZGMvc291cmNlLnBuZyJ9LCJzdGFydCI6MC44LCJsZW5ndGgiOiJlbmQifSx7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjQ1MCwiaGVpZ2h0Ijo0NTAsImJhY2tncm91bmQiOnsiY29sb3IiOiJ7eyBZRUxMT1dfRUxFTUVOVF9DT0xPUiB9fSJ9fSwic3RhcnQiOjAuOCwibGVuZ3RoIjoiZW5kIiwib2Zmc2V0Ijp7IngiOi0wLjIwNCwieSI6LTAuMTEzfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiIsImFsaWdubWVudCI6eyJob3Jpem9udGFsIjoiY2VudGVyIiwidmVydGljYWwiOiJjZW50ZXIifSwiZm9udCI6eyJjb2xvciI6IiMwMDAwMDAiLCJmYW1pbHkiOiJNb250c2VycmF0IEV4dHJhQm9sZCIsInNpemUiOjcyLCJsaW5lSGVpZ2h0IjoxfSwid2lkdGgiOjEwODAsImhlaWdodCI6MjAwLCJiYWNrZ3JvdW5kIjp7ImNvbG9yIjoie3sgWUVMTE9XX0VMRU1FTlRfQ09MT1IgfX0ifX0sInN0YXJ0IjoxLjIsImxlbmd0aCI6ImVuZCIsIm9mZnNldCI6eyJ5IjotMC4xMTN9LCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJsdW1hIiwic3JjIjoiaHR0cHM6Ly90ZW1wbGF0ZXMuc2hvdHN0YWNrLmlvL2NvbnRlbXBvcmFyeS1lbGVnYW5jZS1zdHlsaXNoLWhvbWVzLWZvci1zYWxlLzRkY2E1NzA0LTg0YjktNDk2OC1hNTUzLTJmODVhYTRkNjRkMC9zb3VyY2UucG5nIn0sInN0YXJ0IjowLjUsImxlbmd0aCI6ImVuZCJ9LHsiYXNzZXQiOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIiwiYWxpZ25tZW50Ijp7Imhvcml6b250YWwiOiJjZW50ZXIiLCJ2ZXJ0aWNhbCI6ImNlbnRlciJ9LCJmb250Ijp7ImNvbG9yIjoiIzAwMDAwMCIsImZhbWlseSI6Ik1vbnRzZXJyYXQgRXh0cmFCb2xkIiwic2l6ZSI6NzIsImxpbmVIZWlnaHQiOjF9LCJ3aWR0aCI6ODkwLCJoZWlnaHQiOjYwMCwiYmFja2dyb3VuZCI6eyJjb2xvciI6Int7IFlFTExPV19FTEVNRU5UX0NPTE9SIH19IiwiYm9yZGVyUmFkaXVzIjowfX0sInN0YXJ0IjowLjUsImxlbmd0aCI6ImVuZCIsIm9mZnNldCI6eyJ4IjowLCJ5IjowLjE1NH0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlVXAifX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIiLCJhbGlnbm1lbnQiOnsiaG9yaXpvbnRhbCI6ImNlbnRlciIsInZlcnRpY2FsIjoiY2VudGVyIn0sImZvbnQiOnsiY29sb3IiOiIjMDAwMDAwIiwiZmFtaWx5IjoiTW9udHNlcnJhdCBFeHRyYUJvbGQiLCJzaXplIjo3MiwibGluZUhlaWdodCI6MX0sIndpZHRoIjoxMDgwLCJoZWlnaHQiOjE5MjAsImJhY2tncm91bmQiOnsiY29sb3IiOiJ7eyBCQUNLR1JPVU5EX0NPTE9SIH19In19LCJzdGFydCI6MCwibGVuZ3RoIjoxMCwicG9zaXRpb24iOiJjZW50ZXIifV19XX0sIm91dHB1dCI6eyJmb3JtYXQiOiJtcDQiLCJmcHMiOjI1LCJzaXplIjp7IndpZHRoIjoxMDgwLCJoZWlnaHQiOjE5MjB9fSwibWVyZ2UiOlt7ImZpbmQiOiJCUkFORF9OQU1FIiwicmVwbGFjZSI6InJlYWxlc3RhdGUgY29tcGFueSJ9LHsiZmluZCI6IlBIT05FIiwicmVwbGFjZSI6IisxMjMtNDU2LTc4OTAifSx7ImZpbmQiOiJBRERSRVNTIiwicmVwbGFjZSI6IjEyMyBBbnl3aGVyZSBTdC4sIEFueSBDaXR5LiBTVCAxMjM0NSJ9LHsiZmluZCI6IkFNT1VOVCIsInJlcGxhY2UiOiIkMSw1MDAifSx7ImZpbmQiOiJUSVRMRSIsInJlcGxhY2UiOiJNb2Rlcm4gSG9tZSJ9LHsiZmluZCI6IkRFU0NSSVBUSU9OIiwicmVwbGFjZSI6IkZPUiBTQUxFIn0seyJmaW5kIjoiUzJfREVTQ1JJUFRJT05fMSIsInJlcGxhY2UiOiIyIEJlZHJvb20ifSx7ImZpbmQiOiJTMl9ERVNDUklQVElPTl8yIiwicmVwbGFjZSI6IjEgQmF0aHJvb20ifSx7ImZpbmQiOiJTMl9ERVNDUklQVElPTl8zIiwicmVwbGFjZSI6IkNhciBHYXJhZ2UifSx7ImZpbmQiOiJURVhUX0ZPTlRfQ09MT1IiLCJyZXBsYWNlIjoiI2ZmZmZmZiJ9LHsiZmluZCI6IllFTExPV19FTEVNRU5UX0NPTE9SIiwicmVwbGFjZSI6IiNmZmMxMDcifSx7ImZpbmQiOiJCQUNLR1JPVU5EX0NPTE9SIiwicmVwbGFjZSI6IiMxNzI1NWUifSx7ImZpbmQiOiJMT0dPIiwicmVwbGFjZSI6Imh0dHBzOi8vdGVtcGxhdGVzLnNob3RzdGFjay5pby9jb250ZW1wb3JhcnktZWxlZ2FuY2Utc3R5bGlzaC1ob21lcy1mb3Itc2FsZS83Yzg4ZmNmMi0xMmY3LTQzNGUtODYxZC1hYTYwMTZmODAwYTgvc291cmNlLnBuZyJ9LHsiZmluZCI6IklNQUdFX1NSQyIsInJlcGxhY2UiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vY29udGVtcG9yYXJ5LWVsZWdhbmNlLXN0eWxpc2gtaG9tZXMtZm9yLXNhbGUvOGZlZWIwOGUtOGU5My00MGM5LTkxNTQtNGY3MWJiYTgwZDY5L3NvdXJjZS5qcGcifSx7ImZpbmQiOiJJTUFHRV9TUkNfMiIsInJlcGxhY2UiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vY29udGVtcG9yYXJ5LWVsZWdhbmNlLXN0eWxpc2gtaG9tZXMtZm9yLXNhbGUvMTQwZmQxYmEtYTg1Ni00MWY0LWE3NzctZGFjM2ZmZGQ5Yzc1L3NvdXJjZS5qcGcifSx7ImZpbmQiOiJJTUFHRV9TUkNfMyIsInJlcGxhY2UiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vY29udGVtcG9yYXJ5LWVsZWdhbmNlLXN0eWxpc2gtaG9tZXMtZm9yLXNhbGUvMmI1ZDVhMzUtZTI4OC00NzhmLWE2N2MtYTg2NjVhNDQxMmE2L3NvdXJjZS5qcGcifV19 - **Edit and save to an account**: https://dashboard.shotstack.io/studio/editor/contemporary-elegance-stylish-homes-for-sale ## How to use this template as a workflow 1. Render it once with the JSON below to confirm the output. 2. Replace the values that change per row of data (merge fields or asset URLs). 3. Loop over your data (CSV, database, webhook payload) and send one render per row. Add a `callback` URL to the request so Shotstack notifies you when each video is ready instead of polling. 4. To keep the JSON out of your app, store it with the Templates endpoint and render by template ID with a `merge` array: https://shotstack.io/docs/guide/architecting-an-application/templates/ ## Customise This template has merge fields. Send a `merge` array with the request to replace them; do not edit the timeline JSON. | Field | Default | | --- | --- | | `{{ BRAND_NAME }}` | realestate company | | `{{ PHONE }}` | +123-456-7890 | | `{{ ADDRESS }}` | 123 Anywhere St., Any City. ST 12345 | | `{{ AMOUNT }}` | $1,500 | | `{{ TITLE }}` | Modern Home | | `{{ DESCRIPTION }}` | FOR SALE | | `{{ S2_DESCRIPTION_1 }}` | 2 Bedroom | | `{{ S2_DESCRIPTION_2 }}` | 1 Bathroom | | `{{ S2_DESCRIPTION_3 }}` | Car Garage | | `{{ TEXT_FONT_COLOR }}` | #ffffff | | `{{ YELLOW_ELEMENT_COLOR }}` | #ffc107 | | `{{ BACKGROUND_COLOR }}` | #17255e | | `{{ LOGO }}` | https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/7c88fcf2-12f7-434e-861d-aa6016f800a8/source.png | | `{{ IMAGE_SRC }}` | https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/8feeb08e-8e93-40c9-9154-4f71bba80d69/source.jpg | | `{{ IMAGE_SRC_2 }}` | https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/140fd1ba-a856-41f4-a777-dac3ffdd9c75/source.jpg | | `{{ IMAGE_SRC_3 }}` | https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/2b5d5a35-e288-478f-a67c-a8665a4412a6/source.jpg | ## Template JSON ```json { "timeline": { "background": "#FFFFFF", "tracks": [ { "clips": [ { "asset": { "type": "text", "text": "{{BRAND_NAME}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ BACKGROUND_COLOR }}", "family": "Montserrat ExtraBold", "size": "28", "lineHeight": 1 }, "width": 200, "height": 100 }, "start": 0.15, "length": "end", "offset": { "x": -0.289, "y": 0.408 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/d8860124-710f-4b9f-866f-72bdd93ff3c3/source.png" }, "start": 0.2, "length": "end" }, { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 45, "height": 45, "stroke": { "color": "#ffffff" }, "background": { "color": "{{ YELLOW_ELEMENT_COLOR }}" } }, "start": 0.1, "length": "end", "offset": { "x": 0.386, "y": 0.457 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "{{ LOGO }}" }, "start": 0.1, "scale": 0.06, "offset": { "x": -0.289, "y": 0.46 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/b40395f1-356e-435c-8570-cc938459afec/source.png" }, "start": 0.2, "length": "end" }, { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 50, "height": 50, "background": { "color": "{{ YELLOW_ELEMENT_COLOR }}" } }, "start": 0.15, "length": "end", "offset": { "x": 0.388, "y": 0.41 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{ADDRESS}}", "alignment": { "horizontal": "right", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Montserrat ExtraBold", "size": "29", "lineHeight": 1 }, "width": 500, "height": 110 }, "start": 0.15, "length": "end", "offset": { "x": 0.1, "y": 0.41 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{PHONE}}", "alignment": { "horizontal": "right", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Montserrat SemiBold", "size": "33", "lineHeight": 1 }, "width": 300, "height": 50 }, "start": 0.1, "length": "end", "offset": { "x": 0.204, "y": 0.458 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{S2_DESCRIPTION_3}}", "alignment": { "horizontal": "left", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Montserrat ExtraBold", "size": "33", "lineHeight": 1 }, "width": 230, "height": 50 }, "start": 2.2, "length": "end", "offset": { "x": 0.337, "y": -0.434 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{S2_DESCRIPTION_2}}", "alignment": { "horizontal": "left", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Montserrat SemiBold", "size": "33", "lineHeight": 1 }, "width": 230, "height": 50 }, "start": 2, "length": "end", "offset": { "x": 0.052, "y": -0.434 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{S2_DESCRIPTION_1}}", "alignment": { "horizontal": "left", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Montserrat SemiBold", "size": "33", "lineHeight": 1 }, "width": 230, "height": 50 }, "start": 1.8, "length": "end", "offset": { "x": -0.236, "y": -0.434 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 45, "height": 45, "background": { "color": "{{ YELLOW_ELEMENT_COLOR }}" } }, "start": 2.2, "length": "end", "offset": { "x": 0.191, "y": -0.434 }, "position": "center", "transition": { "in": "slideUp" } }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/3e0f44fc-977e-435b-8ece-dd1e506bd972/source.png" }, "start": 2.2, "length": "end" } ] }, { "clips": [ { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/3421c51a-c80e-4971-964e-e8dd5206c673/source.png" }, "start": 2, "length": "end" }, { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 45, "height": 45, "background": { "color": "{{ YELLOW_ELEMENT_COLOR }}" } }, "start": 2, "length": "end", "offset": { "x": -0.085, "y": -0.434 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 800, "height": 2, "background": { "color": "{{ YELLOW_ELEMENT_COLOR }}" } }, "start": 2.4, "length": "end", "offset": { "x": 0, "y": -0.468 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 800, "height": 2, "background": { "color": "{{ YELLOW_ELEMENT_COLOR }}" } }, "start": 1.6, "length": "end", "offset": { "x": 0, "y": -0.397 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 45, "height": 45, "background": { "color": "{{ YELLOW_ELEMENT_COLOR }}" } }, "start": 1.8, "length": "end", "offset": { "x": -0.37, "y": -0.434 }, "position": "center", "transition": { "in": "slideUp" } }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/a0b81152-52d9-4a4a-a887-dfd276767898/source.png" }, "start": 1.8, "length": "end" } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{AMOUNT}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#ffffff", "family": "Montserrat SemiBold", "size": "45", "lineHeight": 1 }, "width": 300, "height": 100, "background": { "color": "{{ YELLOW_ELEMENT_COLOR }}", "borderRadius": 22 } }, "start": 0.6, "length": "end", "offset": { "x": -0.256, "y": 0.072 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 250, "height": 300, "background": { "color": "#ffffff", "borderRadius": 41 } }, "start": 0, "length": "end", "offset": { "x": -0.289, "y": 0.455 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{DESCRIPTION}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ YELLOW_ELEMENT_COLOR }}", "family": "Arapey", "size": "196", "lineHeight": 1 }, "width": 888, "height": 165 }, "start": 1.4, "length": "end", "offset": { "x": 0, "y": -0.341 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "{{TITLE}}", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "{{ TEXT_FONT_COLOR }}", "family": "Arapey", "size": "131", "lineHeight": 1 }, "width": 900, "height": 150 }, "start": 1.2, "length": "end", "offset": { "x": 0.012, "y": -0.269 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "{{ IMAGE_SRC_3 }}" }, "start": 0.8, "scale": 0.22, "offset": { "x": 0.204, "y": -0.113 }, "position": "center", "transition": { "in": "slideUp" } }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/686c36e9-0297-488b-a2ee-5a2e8b4575b3/source.png" }, "start": 1, "length": "end" } ] }, { "clips": [ { "length": "end", "asset": { "type": "image", "src": "{{ IMAGE_SRC_2 }}" }, "start": 0.8, "scale": 0.22, "offset": { "x": -0.204, "y": -0.113 }, "position": "center", "transition": { "in": "slideUp" } }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/9f3647ec-d667-456e-ab75-67fc208acfd4/source.png" }, "start": 1, "length": "end" } ] }, { "clips": [ { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/2c34f39e-8f30-4deb-ac88-0db1711b767e/source.png" }, "start": 0.5, "length": "end" }, { "length": "end", "asset": { "type": "image", "src": "{{ IMAGE_SRC }}" }, "start": 0.5, "scale": 0.3, "offset": { "x": 0, "y": 0.154 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "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": "{{ YELLOW_ELEMENT_COLOR }}" } }, "start": 0.8, "length": "end", "offset": { "x": 0.204, "y": -0.113 }, "position": "center", "transition": { "in": "slideUp" } }, { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/84d2b921-5ade-4645-a5e7-fd34b7f44daa/source.png" }, "start": 0.8, "length": "end" } ] }, { "clips": [ { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/b3c11019-7207-49ec-841e-81577154bddc/source.png" }, "start": 0.8, "length": "end" }, { "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": "{{ YELLOW_ELEMENT_COLOR }}" } }, "start": 0.8, "length": "end", "offset": { "x": -0.204, "y": -0.113 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 1080, "height": 200, "background": { "color": "{{ YELLOW_ELEMENT_COLOR }}" } }, "start": 1.2, "length": "end", "offset": { "y": -0.113 }, "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "luma", "src": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/4dca5704-84b9-4968-a553-2f85aa4d64d0/source.png" }, "start": 0.5, "length": "end" }, { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 890, "height": 600, "background": { "color": "{{ YELLOW_ELEMENT_COLOR }}", "borderRadius": 0 } }, "start": 0.5, "length": "end", "offset": { "x": 0, "y": 0.154 }, "position": "center", "transition": { "in": "slideUp" } } ] }, { "clips": [ { "asset": { "type": "text", "text": "", "alignment": { "horizontal": "center", "vertical": "center" }, "font": { "color": "#000000", "family": "Montserrat ExtraBold", "size": 72, "lineHeight": 1 }, "width": 1080, "height": 1920, "background": { "color": "{{ BACKGROUND_COLOR }}" } }, "start": 0, "length": 10, "position": "center" } ] } ] }, "output": { "format": "mp4", "fps": 25, "size": { "width": 1080, "height": 1920 } }, "merge": [ { "find": "BRAND_NAME", "replace": "realestate company" }, { "find": "PHONE", "replace": "+123-456-7890" }, { "find": "ADDRESS", "replace": "123 Anywhere St., Any City. ST 12345" }, { "find": "AMOUNT", "replace": "$1,500" }, { "find": "TITLE", "replace": "Modern Home" }, { "find": "DESCRIPTION", "replace": "FOR SALE" }, { "find": "S2_DESCRIPTION_1", "replace": "2 Bedroom" }, { "find": "S2_DESCRIPTION_2", "replace": "1 Bathroom" }, { "find": "S2_DESCRIPTION_3", "replace": "Car Garage" }, { "find": "TEXT_FONT_COLOR", "replace": "#ffffff" }, { "find": "YELLOW_ELEMENT_COLOR", "replace": "#ffc107" }, { "find": "BACKGROUND_COLOR", "replace": "#17255e" }, { "find": "LOGO", "replace": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/7c88fcf2-12f7-434e-861d-aa6016f800a8/source.png" }, { "find": "IMAGE_SRC", "replace": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/8feeb08e-8e93-40c9-9154-4f71bba80d69/source.jpg" }, { "find": "IMAGE_SRC_2", "replace": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/140fd1ba-a856-41f4-a777-dac3ffdd9c75/source.jpg" }, { "find": "IMAGE_SRC_3", "replace": "https://templates.shotstack.io/contemporary-elegance-stylish-homes-for-sale/2b5d5a35-e288-478f-a67c-a8665a4412a6/source.jpg" } ] } ``` ## 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