# Real Estate Property Teaser Video (video template) > A real estate template video for a real estate agent to highlight a property from images for use with the Shotstack video editor and workflows ## Overview - **Page**: https://shotstack.io/studio/templates/real-estate-listing-2/ - **Output**: MP4, 1024x576 (16:9), 25 fps - **Length**: 29.3s - **Timeline**: 43 clips on 43 tracks; assets: audio, html, image - **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=eyJ0aW1lbGluZSI6eyJmb250cyI6W3sic3JjIjoiaHR0cHM6Ly9zaG90c3RhY2staW5nZXN0LWFwaS12MS1zb3VyY2VzLnMzLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20vemZlMGExNDBmYy96enk5YnFjei0yeTJ3LTZxMDgtdmVwMC0xbWNhNWcxMTgyNXYvc291cmNlLnR0ZiJ9LHsic3JjIjoiaHR0cHM6Ly9zaG90c3RhY2staW5nZXN0LWFwaS12MS1zb3VyY2VzLnMzLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20vemZlMGExNDBmYy96enk5YnE5bS0wYmE3LWZ6MzAtM3c2bi0xYWFxYnYwcHV0YXAvc291cmNlLnR0ZiJ9XSwiYmFja2dyb3VuZCI6IiNmZmZmZmYiLCJ0cmFja3MiOlt7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiYXVkaW8iLCJzcmMiOiJodHRwczovL3RlbXBsYXRlcy5zaG90c3RhY2suaW8vYmFzaWMvYXNzZXQvYXVkaW8vbXVzaWMvdW5taW51cy93aGl0ZS5tcDMiLCJ2b2x1bWUiOjEsImVmZmVjdCI6ImZhZGVJbkZhZGVPdXQifSwic3RhcnQiOjAsImxlbmd0aCI6MjkuM31dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaW1hZ2UiLCJzcmMiOiJodHRwczovL3Nob3RzdGFjay1pbmdlc3QtYXBpLXYxLXNvdXJjZXMuczMuYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbS96ZmUwYTE0MGZjL3p6eTlqcG5jLTRmNWktazgwcC00c25wLTRtYzVtbDJubXZiZi9zb3VyY2UucG5nIn0sImxlbmd0aCI6NS40OSwib2Zmc2V0Ijp7IngiOjAuMzgsInkiOjAuMzc1fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVEb3duIn0sInN0YXJ0IjoyMy43Niwib3BhY2l0eSI6MC45NSwiZml0Ijoibm9uZSIsInNjYWxlIjowLjJ9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imh0bWwiLCJ3aWR0aCI6NTAwLCJoZWlnaHQiOjQwLCJodG1sIjoiPHAgZGF0YS1odG1sLXR5cGU9XCJ0ZXh0XCI-KzAxIDIzNCA1NjcgODkwPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAyMnB4OyBmb250LWZhbWlseTogJ05vdG8gU2FucyBNZWRpdW0nOyB0ZXh0LWFsaWduOiBsZWZ0OyB9In0sImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwib2Zmc2V0Ijp7IngiOjAuMjE2LCJ5IjotMC4zNzd9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVVwIn0sImxlbmd0aCI6NC4yNSwic3RhcnQiOjI1fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Imh0dHBzOi8vc2hvdHN0YWNrLWluZ2VzdC1hcGktdjEtc291cmNlcy5zMy5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL3pmZTBhMTQwZmMvenp5OWs5eXItMzFsOS1sdTB3LWhlaWYtMWNtdmpkMGJxMTZ4L3NvdXJjZS5wbmcifSwibGVuZ3RoIjo0LjI1LCJvZmZzZXQiOnsieCI6LTAuMDcsInkiOi0wLjM3NX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwic2NhbGUiOjAuMDQsInN0YXJ0IjoyNX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjo1MDAsImhlaWdodCI6NDAsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5zYWxlc0BteWVzdGF0ZWFnZW50LmNvbTwvcD4iLCJjc3MiOiJwIHsgY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogMjJweDsgZm9udC1mYW1pbHk6ICdOb3RvIFNhbnMgTWVkaXVtJzsgdGV4dC1hbGlnbjogbGVmdDsgfSJ9LCJmaXQiOiJub25lIiwic2NhbGUiOjEsIm9mZnNldCI6eyJ4IjowLjIxNiwieSI6LTAuMjl9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVVwIn0sImxlbmd0aCI6NC41NSwic3RhcnQiOjI0Ljd9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6ImltYWdlIiwic3JjIjoiaHR0cHM6Ly9zaG90c3RhY2staW5nZXN0LWFwaS12MS1zb3VyY2VzLnMzLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20vemZlMGExNDBmYy96enk5a2E2ci0yaGtlLXdqMWYtandmbi00cGl1NDkxeWoyd2Uvc291cmNlLnBuZyJ9LCJsZW5ndGgiOjQuNTUsIm9mZnNldCI6eyJ4IjotMC4wNjksInkiOi0wLjI5MX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwic2NhbGUiOjAuMDM1LCJzdGFydCI6MjQuN31dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjo1MDAsImhlaWdodCI6NDAsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj53d3cubXllc3RhdGVhZ2VudC5jb208L3A-IiwiY3NzIjoicCB7IGNvbG9yOiAjZmZmZmZmOyBmb250LXNpemU6IDIycHg7IGZvbnQtZmFtaWx5OiAnTm90byBTYW5zIE1lZGl1bSc7IHRleHQtYWxpZ246IGxlZnQ7IH0ifSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieCI6MC4yMTYsInkiOi0wLjIwNn0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlVXAifSwibGVuZ3RoIjo0Ljg1LCJzdGFydCI6MjQuNH1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaW1hZ2UiLCJzcmMiOiJodHRwczovL3Nob3RzdGFjay1pbmdlc3QtYXBpLXYxLXNvdXJjZXMuczMuYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbS96ZmUwYTE0MGZjL3p6eTlrYTdvLTBrcnQtZWw0ZC1mNmhlLTFsbGt3azNkeGR0Ny9zb3VyY2UucG5nIn0sImxlbmd0aCI6NC44NSwib2Zmc2V0Ijp7IngiOi0wLjA2OSwieSI6LTAuMjA3fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9LCJzY2FsZSI6MC4wMzUsInN0YXJ0IjoyNC40fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjU1NywiaGVpZ2h0Ijo1MywiaHRtbCI6IjxwIGRhdGEtaHRtbC10eXBlPVwidGV4dFwiPkRvbid0IG1pc3Mgb3V0PC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiA0NXB4OyBmb250LWZhbWlseTogJ05vdG8gU2FucyBNZWRpdW0nOyB0ZXh0LWFsaWduOiByaWdodDsgfSJ9LCJmaXQiOiJub25lIiwic2NhbGUiOjEsIm9mZnNldCI6eyJ4IjowLjE3OCwieSI6LTAuMDA5fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCJ9LCJsZW5ndGgiOjUuMTUsInN0YXJ0IjoyNC4xfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjU4NywiaGVpZ2h0IjoxMzYsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5Cb29rIHlvdXIgdG91ciBub3cuPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiA2MHB4OyBmb250LWZhbWlseTogJ05vdG8gU2FucyBCbGFjayc7IHRleHQtYWxpZ246IHJpZ2h0OyB9In0sImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwib2Zmc2V0Ijp7IngiOjAuMTY3LCJ5IjowLjE3OX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlTGVmdCJ9LCJsZW5ndGgiOjUuMjUsInN0YXJ0IjoyNH1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjo3MTAsImhlaWdodCI6MSwiYmFja2dyb3VuZCI6IiNmZmZmZmYiLCJodG1sIjoiPHAgZGF0YS1odG1sLXR5cGU9XCJ0ZXh0XCI-TGluZSBob3Jpem9udGFsPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAxcHg7IGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCBFeHRyYUJvbGQnOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0ifSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieCI6MC4yMTIsInkiOi0wLjA5NH0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImNhcm91c2VsTGVmdCJ9LCJsZW5ndGgiOjUuNzUsInN0YXJ0IjoyMy41fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjEsImhlaWdodCI6NjcwLCJiYWNrZ3JvdW5kIjoiI2ZmZmZmZiIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5saW5lIHZlcnRpY2FsPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAxcHg7IGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCBFeHRyYUJvbGQnOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0ifSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieCI6LTAuMTM0LCJ5IjowLjA2N30sInBvc2l0aW9uIjoiY2VudGVyIiwibGVuZ3RoIjo1Ljc1LCJ0cmFuc2l0aW9uIjp7ImluIjoiY2Fyb3VzZWxVcCJ9LCJzdGFydCI6MjMuNX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjo2NTYsImhlaWdodCI6NjA0LCJiYWNrZ3JvdW5kIjoiI2FkYzkwZSIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5ib3g8L3A-IiwiY3NzIjoicCB7IGNvbG9yOiAjZmZmZmZmOyBmb250LXNpemU6IDFweDsgZm9udC1mYW1pbHk6ICdNb250c2VycmF0IEV4dHJhQm9sZCc7IHRleHQtYWxpZ246IGNlbnRlcjsgfSJ9LCJvZmZzZXQiOnsieCI6MC4xODUsInkiOi0wLjAyMn0sImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9LCJvcGFjaXR5IjowLjk3LCJsZW5ndGgiOjUuNzUsInN0YXJ0IjoyMy41fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjY1NSwiaGVpZ2h0Ijo4NzUsImJhY2tncm91bmQiOiIjYWRjOTBlIiwiaHRtbCI6IjxwIGRhdGEtaHRtbC10eXBlPVwidGV4dFwiPndoaXRlX21hdHRlPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAxcHg7IGZvbnQtZmFtaWx5OiAnRnV0dXJhLU1lZGl1bSc7IHRleHQtYWxpZ246IGxlZnQ7IH0ifSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieCI6MC4xODUsInkiOi0wLjAyOX0sInBvc2l0aW9uIjoiY2VudGVyIiwibGVuZ3RoIjo1Ljc1LCJ0cmFuc2l0aW9uIjp7fSwic3RhcnQiOjIzLjV9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6ImltYWdlIiwic3JjIjoie3sgSU1BR0VfMiB9fSJ9LCJsZW5ndGgiOjUuNzUsInN0YXJ0IjoyMy41LCJvZmZzZXQiOnsieCI6LTAuMjUsInkiOjB9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sImVmZmVjdCI6Inpvb21JbiIsInNjYWxlIjoxfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjEwOTksImhlaWdodCI6NjA2LCJiYWNrZ3JvdW5kIjoiI2FkYzkwZSIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5IRUxMTyBXT1JMRDwvcD4iLCJjc3MiOiJwIHsgY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogMXB4OyBmb250LWZhbWlseTogJ01vbnRzZXJyYXQgRXh0cmFCb2xkJzsgdGV4dC1hbGlnbjogY2VudGVyOyB9In0sImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwib2Zmc2V0Ijp7IngiOjAuMDI0LCJ5IjowLjAwNn0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwibGVuZ3RoIjoyLjMzLCJzdGFydCI6MjIuNTF9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imh0bWwiLCJ3aWR0aCI6OTc0LCJoZWlnaHQiOjY4LCJwb3NpdGlvbiI6ImNlbnRlciIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj57eyBIRUFETElORV8zIH19PC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogJ05vdG8gU2FucyBNZWRpdW0nOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHRleHQtc2NhbGU6IHNocmluazsgfSJ9LCJmaXQiOiJub25lIiwic2NhbGUiOjEsIm9mZnNldCI6eyJ4IjowLCJ5IjotMC40MDF9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZVVwIiwib3V0Ijoic2xpZGVMZWZ0In0sImxlbmd0aCI6NS42LCJzdGFydCI6MTh9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imh0bWwiLCJ3aWR0aCI6MTEwMCwiaGVpZ2h0IjoxLCJiYWNrZ3JvdW5kIjoiI2ZmZmZmZiIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5MaW5lIGhvcml6b250YWw8L3A-IiwiY3NzIjoicCB7IGNvbG9yOiAjZmZmZmZmOyBmb250LXNpemU6IDFweDsgZm9udC1mYW1pbHk6ICdNb250c2VycmF0IEV4dHJhQm9sZCc7IHRleHQtYWxpZ246IGNlbnRlcjsgfSJ9LCJmaXQiOiJub25lIiwic2NhbGUiOjEsIm9mZnNldCI6eyJ4IjowLCJ5IjotMC4yOTF9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJjYXJvdXNlbExlZnQifSwic3RhcnQiOjE3LjYsImxlbmd0aCI6Nn1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjoxMDkwLCJoZWlnaHQiOjE4NCwiYmFja2dyb3VuZCI6IiM4Mzc4NTIiLCJodG1sIjoiPHAgZGF0YS1odG1sLXR5cGU9XCJ0ZXh0XCI-IDwvcD4iLCJjc3MiOiJwIHsgY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogMzJweDsgZm9udC1mYW1pbHk6ICdNb250c2VycmF0IEV4dHJhQm9sZCc7IHRleHQtYWxpZ246IGNlbnRlcjsgfSJ9LCJsZW5ndGgiOjYsImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwib2Zmc2V0Ijp7IngiOjAuMDE0LCJ5IjotMC40NX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6e30sInN0YXJ0IjoxNy42fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjEsImhlaWdodCI6NjcwLCJiYWNrZ3JvdW5kIjoiI2ZmZmZmZiIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5saW5lIHZlcnRpY2FsIDM8L3A-IiwiY3NzIjoicCB7IGNvbG9yOiAjZmZmZmZmOyBmb250LXNpemU6IDFweDsgZm9udC1mYW1pbHk6ICdNb250c2VycmF0IEV4dHJhQm9sZCc7IHRleHQtYWxpZ246IGNlbnRlcjsgfSJ9LCJmaXQiOiJub25lIiwic2NhbGUiOjEsIm9mZnNldCI6eyJ5IjowLCJ4IjowLjE3fSwicG9zaXRpb24iOiJjZW50ZXIiLCJsZW5ndGgiOjYsInRyYW5zaXRpb24iOnsiaW4iOiJjYXJvdXNlbFVwIn0sInN0YXJ0IjoxNy42MX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjoxLCJoZWlnaHQiOjY3MCwiYmFja2dyb3VuZCI6IiNmZmZmZmYiLCJodG1sIjoiPHAgZGF0YS1odG1sLXR5cGU9XCJ0ZXh0XCI-bGluZSB2ZXJ0aWNhbCAyPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAxcHg7IGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCBFeHRyYUJvbGQnOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0ifSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieSI6MC4wOCwieCI6LTAuMTd9LCJwb3NpdGlvbiI6ImNlbnRlciIsImxlbmd0aCI6NiwidHJhbnNpdGlvbiI6eyJpbiI6ImNhcm91c2VsRG93biJ9LCJzdGFydCI6MTcuNn1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaW1hZ2UiLCJzcmMiOiJ7eyBJTUFHRV8zIH19In0sIm9mZnNldCI6eyJ4IjowLCJ5IjowLjJ9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sImxlbmd0aCI6NS44NSwic3RhcnQiOjE3Ljc1LCJlZmZlY3QiOiJ6b29tSW5TbG93Iiwic2NhbGUiOjF9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imh0bWwiLCJ3aWR0aCI6MTA5OSwiaGVpZ2h0Ijo2MDYsImJhY2tncm91bmQiOiIjODM3ODUyIiwiaHRtbCI6IjxwIGRhdGEtaHRtbC10eXBlPVwidGV4dFwiPkhFTExPIFdPUkxEPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAxcHg7IGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCBFeHRyYUJvbGQnOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0ifSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieCI6MC4wMDUsInkiOjB9LCJwb3NpdGlvbiI6ImNlbnRlciIsInN0YXJ0IjoxNi42MSwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwibGVuZ3RoIjo3LjE5fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjMwMCwiaGVpZ2h0IjoyNjAsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj57eyBIRUFETElORV8zQiB9fTwvcD4iLCJjc3MiOiJwIHsgY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogNDVweDsgZm9udC1mYW1pbHk6ICdOb3RvIFNhbnMgTWVkaXVtJzsgdGV4dC1hbGlnbjogY2VudGVyOyB0ZXh0LXNjYWxlOiBzaHJpbms7IH0ifSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieCI6MC4zNDIsInkiOi0wLjI0N30sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlUmlnaHQiLCJvdXQiOiJzbGlkZUxlZnQifSwibGVuZ3RoIjo1Ljc5LCJzdGFydCI6MTEuNzV9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imh0bWwiLCJ3aWR0aCI6MzAwLCJoZWlnaHQiOjI2MCwiaHRtbCI6IjxwIGRhdGEtaHRtbC10eXBlPVwidGV4dFwiPnt7IEhFQURMSU5FXzNBIH19PC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiA0NXB4OyBmb250LWZhbWlseTogJ05vdG8gU2FucyBNZWRpdW0nOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHRleHQtc2NhbGU6IHNocmluazsgfSJ9LCJmaXQiOiJub25lIiwic2NhbGUiOjEsIm9mZnNldCI6eyJ4IjowLjM0MiwieSI6MC4yNX0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlTGVmdCIsIm91dCI6InNsaWRlTGVmdCJ9LCJsZW5ndGgiOjUuNzgsInN0YXJ0IjoxMS41fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjEsImhlaWdodCI6NjcwLCJiYWNrZ3JvdW5kIjoiI2ZmZmZmZiIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5saW5lIHZlcnRpY2FsPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAxcHg7IGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCBFeHRyYUJvbGQnOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0ifSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieSI6MC4wNjcsIngiOjAuMTgxfSwicG9zaXRpb24iOiJjZW50ZXIiLCJsZW5ndGgiOjYuNCwidHJhbnNpdGlvbiI6eyJpbiI6ImNhcm91c2VsRG93biJ9LCJzdGFydCI6MTEuMjV9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imh0bWwiLCJ3aWR0aCI6NDAwLCJoZWlnaHQiOjEsImJhY2tncm91bmQiOiIjZmZmZmZmIiwiaHRtbCI6IjxwIGRhdGEtaHRtbC10eXBlPVwidGV4dFwiPkxpbmUgaG9yaXpvbnRhbDwvcD4iLCJjc3MiOiJwIHsgY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogMXB4OyBmb250LWZhbWlseTogJ01vbnRzZXJyYXQgRXh0cmFCb2xkJzsgdGV4dC1hbGlnbjogY2VudGVyOyB9In0sImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwib2Zmc2V0Ijp7InkiOjAsIngiOjAuMzc1fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiY2Fyb3VzZWxSaWdodCJ9LCJsZW5ndGgiOjYuNTYsInN0YXJ0IjoxMS4wNn1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjozMzEsImhlaWdodCI6NTk2LCJiYWNrZ3JvdW5kIjoiIzM3YWNkOSIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5IRUxMTyBXT1JMRDwvcD4iLCJjc3MiOiJwIHsgY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogMXB4OyBmb250LWZhbWlseTogJ01vbnRzZXJyYXQgRXh0cmFCb2xkJzsgdGV4dC1hbGlnbjogY2VudGVyOyB9In0sImxlbmd0aCI6Ni4yNSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieCI6MC4zNDMsInkiOi0wLjAwMn0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6e30sInN0YXJ0IjoxMS40fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Int7IElNQUdFXzEgfX0ifSwib2Zmc2V0Ijp7IngiOi0wLjI1LCJ5IjowfSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiZmFkZSJ9LCJlZmZlY3QiOiJ6b29tT3V0U2xvdyIsInN0YXJ0IjoxMS40LCJsZW5ndGgiOjYuMjUsInNjYWxlIjoxfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjEwOTksImhlaWdodCI6NjA2LCJiYWNrZ3JvdW5kIjoiIzM3YWNkOSIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5IRUxMTyBXT1JMRDwvcD4iLCJjc3MiOiJwIHsgY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogMXB4OyBmb250LWZhbWlseTogJ01vbnRzZXJyYXQgRXh0cmFCb2xkJzsgdGV4dC1hbGlnbjogY2VudGVyOyB9In0sImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwib2Zmc2V0Ijp7IngiOi0wLjAwMiwieSI6LTAuMDAyfSwicG9zaXRpb24iOiJjZW50ZXIiLCJzdGFydCI6MTAuNCwidHJhbnNpdGlvbiI6eyJpbiI6ImZhZGUifSwibGVuZ3RoIjoyfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjkxMSwiaGVpZ2h0Ijo1NCwicG9zaXRpb24iOiJjZW50ZXIiLCJodG1sIjoiPHAgZGF0YS1odG1sLXR5cGU9XCJ0ZXh0XCI-e3sgSEVBRExJTkVfMiB9fTwvcD4iLCJjc3MiOiJwIHsgY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogNTBweDsgZm9udC1mYW1pbHk6ICdOb3RvIFNhbnMgTWVkaXVtJzsgdGV4dC1hbGlnbjogcmlnaHQ7IHRleHQtc2NhbGU6IHNocmluazsgfSJ9LCJmaXQiOiJub25lIiwic2NhbGUiOjEsIm9mZnNldCI6eyJ4IjotMC4wMDEsInkiOi0wLjM4Mn0sInBvc2l0aW9uIjoiY2VudGVyIiwidHJhbnNpdGlvbiI6eyJpbiI6InNsaWRlUmlnaHQiLCJvdXQiOiJzbGlkZUxlZnQifSwibGVuZ3RoIjo2LjI1LCJzdGFydCI6NS4yNX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjoxMTIzLCJoZWlnaHQiOjEsImJhY2tncm91bmQiOiIjZmZmZmZmIiwiaHRtbCI6IjxwIGRhdGEtaHRtbC10eXBlPVwidGV4dFwiPkxpbmUgaG9yaXpvbnRhbDwvcD4iLCJjc3MiOiJwIHsgY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogMXB4OyBmb250LWZhbWlseTogJ01vbnRzZXJyYXQgRXh0cmFCb2xkJzsgdGV4dC1hbGlnbjogY2VudGVyOyB9In0sImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwib2Zmc2V0Ijp7IngiOi0wLjA0MSwieSI6LTAuMjQ5fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiY2Fyb3VzZWxSaWdodFNsb3cifSwibGVuZ3RoIjo2LjI1LCJzdGFydCI6NS4yNX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjoxMDUzLCJoZWlnaHQiOjE1MywiYmFja2dyb3VuZCI6IiM5ZDg1NmEiLCJodG1sIjoiPHAgZGF0YS1odG1sLXR5cGU9XCJ0ZXh0XCI-SEVMTE8gV09STEQ8L3A-IiwiY3NzIjoicCB7IGNvbG9yOiAjZmZmZmZmOyBmb250LXNpemU6IDFweDsgZm9udC1mYW1pbHk6ICdNb250c2VycmF0IEV4dHJhQm9sZCc7IHRleHQtYWxpZ246IGNlbnRlcjsgfSJ9LCJsZW5ndGgiOjYuMSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieCI6MCwieSI6LTAuMzgyfSwicG9zaXRpb24iOiJjZW50ZXIiLCJzdGFydCI6NS40fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJpbWFnZSIsInNyYyI6Imh0dHBzOi8vc2hvdHN0YWNrLWluZ2VzdC1hcGktdjEtc291cmNlcy5zMy5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL3pmZTBhMTQwZmMvenp5OWl4NnQtMnMycS11djNqLW1qZnYtMXJod3FoMGVjcmt6L3NvdXJjZS5qcGcifSwib2Zmc2V0Ijp7IngiOjAsInkiOjAuMjV9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sImVmZmVjdCI6Inpvb21PdXRTbG93Iiwic3RhcnQiOjUuNCwibGVuZ3RoIjo2LjEsInNjYWxlIjoxfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjEwNzAsImhlaWdodCI6NjAwLCJiYWNrZ3JvdW5kIjoiIzlkODU2YSIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5IRUxMTyBXT1JMRDwvcD4iLCJjc3MiOiJwIHsgY29sb3I6ICNmZmZmZmY7IGZvbnQtc2l6ZTogMXB4OyBmb250LWZhbWlseTogJ01vbnRzZXJyYXQgRXh0cmFCb2xkJzsgdGV4dC1hbGlnbjogY2VudGVyOyB9In0sImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwib2Zmc2V0Ijp7IngiOjAuMDAxLCJ5IjowfSwicG9zaXRpb24iOiJjZW50ZXIiLCJzdGFydCI6NSwidHJhbnNpdGlvbiI6eyJpbiI6Inpvb20ifSwibGVuZ3RoIjoyfV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjUxOCwiaGVpZ2h0Ijo2NSwiaHRtbCI6IjxwIGRhdGEtaHRtbC10eXBlPVwidGV4dFwiPnt7IEFERFJFU1MgfX08L3A-IiwiY3NzIjoicCB7IGNvbG9yOiAjZmZmZmZmOyBmb250LXNpemU6IDMxcHg7IGZvbnQtZmFtaWx5OiAnTm90byBTYW5zIE1lZGl1bSc7IHRleHQtYWxpZ246IHJpZ2h0OyB9In0sImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwib2Zmc2V0Ijp7IngiOjAuMTg5LCJ5IjotMC4yNDV9LCJwb3NpdGlvbiI6ImNlbnRlciIsInN0YXJ0IjowLjc1LCJ0cmFuc2l0aW9uIjp7ImluIjoic2xpZGVVcCIsIm91dCI6InNsaWRlVXAifSwibGVuZ3RoIjo1fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjUxOCwiaGVpZ2h0IjoyMzUsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5NeSBFc3RhdGVcbkFnZW50PC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiA4MHB4OyBmb250LWZhbWlseTogJ05vdG8gU2FucyBNZWRpdW0nOyB0ZXh0LWFsaWduOiByaWdodDsgfSJ9LCJmaXQiOiJub25lIiwic2NhbGUiOjEsIm9mZnNldCI6eyJ4IjowLjE4OSwieSI6MC4wOTh9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZUxlZnQiLCJvdXQiOiJzbGlkZUxlZnQifSwic3RhcnQiOjAuNSwibGVuZ3RoIjo1LjI1fV19LHsiY2xpcHMiOlt7ImFzc2V0Ijp7InR5cGUiOiJodG1sIiwid2lkdGgiOjEsImhlaWdodCI6NjcwLCJiYWNrZ3JvdW5kIjoiI2ZmZmZmZiIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj5saW5lIHZlcnRpY2FsPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAxcHg7IGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCBFeHRyYUJvbGQnOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0ifSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJvZmZzZXQiOnsieSI6MC4wNjcsIngiOi0wLjA4fSwicG9zaXRpb24iOiJjZW50ZXIiLCJsZW5ndGgiOjUuNzYsInRyYW5zaXRpb24iOnsiaW4iOiJjYXJvdXNlbFVwU2xvdyJ9LCJzdGFydCI6MH1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjo3MTAsImhlaWdodCI6MSwiYmFja2dyb3VuZCI6IiNmZmZmZmYiLCJodG1sIjoiPHAgZGF0YS1odG1sLXR5cGU9XCJ0ZXh0XCI-TGluZSBob3Jpem9udGFsPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAxcHg7IGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCBFeHRyYUJvbGQnOyB0ZXh0LWFsaWduOiBsZWZ0OyB9In0sInN0YXJ0IjowLjAxLCJmaXQiOiJub25lIiwic2NhbGUiOjEsIm9mZnNldCI6eyJ4IjowLjI2NiwieSI6LTAuMTM5fSwicG9zaXRpb24iOiJjZW50ZXIiLCJ0cmFuc2l0aW9uIjp7ImluIjoiY2Fyb3VzZWxMZWZ0U2xvdyIsIm91dCI6ImNhcm91c2VsTGVmdCJ9LCJsZW5ndGgiOjUuNzV9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6ImltYWdlIiwic3JjIjoiaHR0cHM6Ly9zaG90c3RhY2staW5nZXN0LWFwaS12MS1zb3VyY2VzLnMzLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20vemZlMGExNDBmYy96enk5anB0Zi0xcHFlLXFsNDgtdWlpMC0xcGlnNGExbDd1bjYvc291cmNlLnBuZyJ9LCJzdGFydCI6MCwib2Zmc2V0Ijp7IngiOjAuMzMsInkiOjAuMzgyfSwicG9zaXRpb24iOiJjZW50ZXIiLCJsZW5ndGgiOjUuNzUsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZUxlZnQiLCJvdXQiOiJzbGlkZVJpZ2h0In0sImZpdCI6Im5vbmUiLCJzY2FsZSI6MC4xMn1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaHRtbCIsIndpZHRoIjo2NTYsImhlaWdodCI6NjA0LCJiYWNrZ3JvdW5kIjoiI2I5ODY0MiIsImh0bWwiOiI8cCBkYXRhLWh0bWwtdHlwZT1cInRleHRcIj4gPC9wPiIsImNzcyI6InAgeyBjb2xvcjogI2ZmZmZmZjsgZm9udC1zaXplOiAxcHg7IGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCBFeHRyYUJvbGQnOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0ifSwib2Zmc2V0Ijp7IngiOjAuMjQsInkiOjAuMDE2fSwiZml0Ijoibm9uZSIsInNjYWxlIjoxLCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJmYWRlIn0sIm9wYWNpdHkiOjAuOTcsImxlbmd0aCI6NS43NSwic3RhcnQiOjB9XX0seyJjbGlwcyI6W3siYXNzZXQiOnsidHlwZSI6Imh0bWwiLCJ3aWR0aCI6NjU1LCJoZWlnaHQiOjg3NSwiYmFja2dyb3VuZCI6IiNmZmZmZmYiLCJodG1sIjoiPHAgZGF0YS1odG1sLXR5cGU9XCJ0ZXh0XCI-d2hpdGVfbWF0dGU8L3A-IiwiY3NzIjoicCB7IGNvbG9yOiAjZmZmZmZmOyBmb250LXNpemU6IDMycHg7IGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCBFeHRyYUJvbGQnOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0ifSwic3RhcnQiOjAsImZpdCI6Im5vbmUiLCJzY2FsZSI6MSwib2Zmc2V0Ijp7IngiOjAuMjM5LCJ5IjowLjAzMX0sInBvc2l0aW9uIjoiY2VudGVyIiwibGVuZ3RoIjo1Ljc1LCJ0cmFuc2l0aW9uIjp7fX1dfSx7ImNsaXBzIjpbeyJhc3NldCI6eyJ0eXBlIjoiaW1hZ2UiLCJzcmMiOiJ7eyBNQUlOX0lNQUdFIH19In0sIm9mZnNldCI6eyJ4IjotMC4xODQsInkiOjB9LCJwb3NpdGlvbiI6ImNlbnRlciIsInRyYW5zaXRpb24iOnsiaW4iOiJzbGlkZUxlZnRTbG93Iiwib3V0Ijoic2xpZGVSaWdodCJ9LCJlZmZlY3QiOiJ6b29tT3V0U2xvdyIsInN0YXJ0IjowLCJsZW5ndGgiOjUuNzUsInNjYWxlIjoxfV19XX0sIm91dHB1dCI6eyJmb3JtYXQiOiJtcDQiLCJmcHMiOjI1LCJzaXplIjp7IndpZHRoIjoxMDI0LCJoZWlnaHQiOjU3Nn19LCJtZXJnZSI6W3siZmluZCI6IkFERFJFU1MiLCJyZXBsYWNlIjoiMTkyIFN1bW1lcnMgTGFuZSJ9LHsiZmluZCI6IkhFQURMSU5FXzIiLCJyZXBsYWNlIjoiT3BlbiBwbGFuIGxpdmluZyJ9LHsiZmluZCI6IkhFQURMSU5FXzMiLCJyZXBsYWNlIjoiMyBiZWRyb29tLCAyIGJhdGhyb29tLCAyIGNhcnNwYWNlcyJ9LHsiZmluZCI6IkhFQURMSU5FXzNBIiwicmVwbGFjZSI6Ijh0aCBmbG9vciJ9LHsiZmluZCI6IkhFQURMSU5FXzNCIiwicmVwbGFjZSI6ImNpdHkgdmlld3MifSx7ImZpbmQiOiJJTUFHRV8xIiwicmVwbGFjZSI6Imh0dHBzOi8vc2hvdHN0YWNrLWluZ2VzdC1hcGktdjEtc291cmNlcy5zMy5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL3pmZTBhMTQwZmMvenp5OWl3bjYtMmNidC1qeTB4LWNjaTAtMnV3b2RyMnEyanl3L3NvdXJjZS5qcGcifSx7ImZpbmQiOiJJTUFHRV8yIiwicmVwbGFjZSI6Imh0dHBzOi8vc2hvdHN0YWNrLWluZ2VzdC1hcGktdjEtc291cmNlcy5zMy5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL3pmZTBhMTQwZmMvenp5OWl6eXYtMmR6aC1jZjFuLWJvb2UtMTl5Y2dpM3E2dGlxL3NvdXJjZS5qcGcifSx7ImZpbmQiOiJJTUFHRV8zIiwicmVwbGFjZSI6Imh0dHBzOi8vc2hvdHN0YWNrLWluZ2VzdC1hcGktdjEtc291cmNlcy5zMy5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL3pmZTBhMTQwZmMvenp5OWl6cXMtMWt1di15bTJpLWdtcjMtMHlnM2Z5NGI3bmlpL3NvdXJjZS5qcGcifSx7ImZpbmQiOiJNQUlOX0lNQUdFIiwicmVwbGFjZSI6Imh0dHBzOi8vc2hvdHN0YWNrLWluZ2VzdC1hcGktdjEtc291cmNlcy5zMy5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL3pmZTBhMTQwZmMvenp5OWtuY2ktMmhvay11djBlLWtxZmYtMGZncnpyMmlibnJtL3NvdXJjZS5qcGcifV19 - **Edit and save to an account**: https://dashboard.shotstack.io/studio/editor/real-estate-listing-2 ## 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 | | --- | --- | | `{{ ADDRESS }}` | 192 Summers Lane | | `{{ HEADLINE_2 }}` | Open plan living | | `{{ HEADLINE_3 }}` | 3 bedroom, 2 bathroom, 2 carspaces | | `{{ HEADLINE_3A }}` | 8th floor | | `{{ HEADLINE_3B }}` | city views | | `{{ IMAGE_1 }}` | https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9iwn6-2cbt-jy0x-cci0-2uwodr2q2jyw/source.jpg | | `{{ IMAGE_2 }}` | https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9izyv-2dzh-cf1n-booe-19ycgi3q6tiq/source.jpg | | `{{ IMAGE_3 }}` | https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9izqs-1kuv-ym2i-gmr3-0yg3fy4b7nii/source.jpg | | `{{ MAIN_IMAGE }}` | https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9knci-2hok-uv0e-kqff-0fgrzr2ibnrm/source.jpg | ## Template JSON ```json { "timeline": { "fonts": [ { "src": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9bqcz-2y2w-6q08-vep0-1mca5g11825v/source.ttf" }, { "src": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9bq9m-0ba7-fz30-3w6n-1aaqbv0putap/source.ttf" } ], "background": "#ffffff", "tracks": [ { "clips": [ { "asset": { "type": "audio", "src": "https://templates.shotstack.io/basic/asset/audio/music/unminus/white.mp3", "volume": 1, "effect": "fadeInFadeOut" }, "start": 0, "length": 29.3 } ] }, { "clips": [ { "asset": { "type": "image", "src": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9jpnc-4f5i-k80p-4snp-4mc5ml2nmvbf/source.png" }, "length": 5.49, "offset": { "x": 0.38, "y": 0.375 }, "position": "center", "transition": { "in": "slideDown" }, "start": 23.76, "opacity": 0.95, "fit": "none", "scale": 0.2 } ] }, { "clips": [ { "asset": { "type": "html", "width": 500, "height": 40, "html": "
+01 234 567 890
", "css": "p { color: #ffffff; font-size: 22px; font-family: 'Noto Sans Medium'; text-align: left; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.216, "y": -0.377 }, "position": "center", "transition": { "in": "slideUp" }, "length": 4.25, "start": 25 } ] }, { "clips": [ { "asset": { "type": "image", "src": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9k9yr-31l9-lu0w-heif-1cmvjd0bq16x/source.png" }, "length": 4.25, "offset": { "x": -0.07, "y": -0.375 }, "position": "center", "transition": { "in": "fade" }, "scale": 0.04, "start": 25 } ] }, { "clips": [ { "asset": { "type": "html", "width": 500, "height": 40, "html": "sales@myestateagent.com
", "css": "p { color: #ffffff; font-size: 22px; font-family: 'Noto Sans Medium'; text-align: left; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.216, "y": -0.29 }, "position": "center", "transition": { "in": "slideUp" }, "length": 4.55, "start": 24.7 } ] }, { "clips": [ { "asset": { "type": "image", "src": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9ka6r-2hke-wj1f-jwfn-4piu491yj2we/source.png" }, "length": 4.55, "offset": { "x": -0.069, "y": -0.291 }, "position": "center", "transition": { "in": "fade" }, "scale": 0.035, "start": 24.7 } ] }, { "clips": [ { "asset": { "type": "html", "width": 500, "height": 40, "html": "www.myestateagent.com
", "css": "p { color: #ffffff; font-size: 22px; font-family: 'Noto Sans Medium'; text-align: left; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.216, "y": -0.206 }, "position": "center", "transition": { "in": "slideUp" }, "length": 4.85, "start": 24.4 } ] }, { "clips": [ { "asset": { "type": "image", "src": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9ka7o-0krt-el4d-f6he-1llkwk3dxdt7/source.png" }, "length": 4.85, "offset": { "x": -0.069, "y": -0.207 }, "position": "center", "transition": { "in": "fade" }, "scale": 0.035, "start": 24.4 } ] }, { "clips": [ { "asset": { "type": "html", "width": 557, "height": 53, "html": "Don't miss out
", "css": "p { color: #ffffff; font-size: 45px; font-family: 'Noto Sans Medium'; text-align: right; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.178, "y": -0.009 }, "position": "center", "transition": { "in": "slideUp" }, "length": 5.15, "start": 24.1 } ] }, { "clips": [ { "asset": { "type": "html", "width": 587, "height": 136, "html": "Book your tour now.
", "css": "p { color: #ffffff; font-size: 60px; font-family: 'Noto Sans Black'; text-align: right; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.167, "y": 0.179 }, "position": "center", "transition": { "in": "slideLeft" }, "length": 5.25, "start": 24 } ] }, { "clips": [ { "asset": { "type": "html", "width": 710, "height": 1, "background": "#ffffff", "html": "Line horizontal
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.212, "y": -0.094 }, "position": "center", "transition": { "in": "carouselLeft" }, "length": 5.75, "start": 23.5 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1, "height": 670, "background": "#ffffff", "html": "line vertical
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "x": -0.134, "y": 0.067 }, "position": "center", "length": 5.75, "transition": { "in": "carouselUp" }, "start": 23.5 } ] }, { "clips": [ { "asset": { "type": "html", "width": 656, "height": 604, "background": "#adc90e", "html": "box
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "offset": { "x": 0.185, "y": -0.022 }, "fit": "none", "scale": 1, "position": "center", "transition": { "in": "fade" }, "opacity": 0.97, "length": 5.75, "start": 23.5 } ] }, { "clips": [ { "asset": { "type": "html", "width": 655, "height": 875, "background": "#adc90e", "html": "white_matte
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Futura-Medium'; text-align: left; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.185, "y": -0.029 }, "position": "center", "length": 5.75, "transition": {}, "start": 23.5 } ] }, { "clips": [ { "asset": { "type": "image", "src": "{{ IMAGE_2 }}" }, "length": 5.75, "start": 23.5, "offset": { "x": -0.25, "y": 0 }, "position": "center", "transition": { "in": "fade" }, "effect": "zoomIn", "scale": 1 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1099, "height": 606, "background": "#adc90e", "html": "HELLO WORLD
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.024, "y": 0.006 }, "position": "center", "transition": { "in": "fade" }, "length": 2.33, "start": 22.51 } ] }, { "clips": [ { "asset": { "type": "html", "width": 974, "height": 68, "position": "center", "html": "{{ HEADLINE_3 }}
", "css": "p { color: #ffffff; font-size: 50px; font-family: 'Noto Sans Medium'; text-align: center; text-scale: shrink; }" }, "fit": "none", "scale": 1, "offset": { "x": 0, "y": -0.401 }, "position": "center", "transition": { "in": "slideUp", "out": "slideLeft" }, "length": 5.6, "start": 18 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1100, "height": 1, "background": "#ffffff", "html": "Line horizontal
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "x": 0, "y": -0.291 }, "position": "center", "transition": { "in": "carouselLeft" }, "start": 17.6, "length": 6 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1090, "height": 184, "background": "#837852", "html": "", "css": "p { color: #ffffff; font-size: 32px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "length": 6, "fit": "none", "scale": 1, "offset": { "x": 0.014, "y": -0.45 }, "position": "center", "transition": {}, "start": 17.6 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1, "height": 670, "background": "#ffffff", "html": "
line vertical 3
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "y": 0, "x": 0.17 }, "position": "center", "length": 6, "transition": { "in": "carouselUp" }, "start": 17.61 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1, "height": 670, "background": "#ffffff", "html": "line vertical 2
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "y": 0.08, "x": -0.17 }, "position": "center", "length": 6, "transition": { "in": "carouselDown" }, "start": 17.6 } ] }, { "clips": [ { "asset": { "type": "image", "src": "{{ IMAGE_3 }}" }, "offset": { "x": 0, "y": 0.2 }, "position": "center", "transition": { "in": "fade" }, "length": 5.85, "start": 17.75, "effect": "zoomInSlow", "scale": 1 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1099, "height": 606, "background": "#837852", "html": "HELLO WORLD
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.005, "y": 0 }, "position": "center", "start": 16.61, "transition": { "in": "fade" }, "length": 7.19 } ] }, { "clips": [ { "asset": { "type": "html", "width": 300, "height": 260, "html": "{{ HEADLINE_3B }}
", "css": "p { color: #ffffff; font-size: 45px; font-family: 'Noto Sans Medium'; text-align: center; text-scale: shrink; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.342, "y": -0.247 }, "position": "center", "transition": { "in": "slideRight", "out": "slideLeft" }, "length": 5.79, "start": 11.75 } ] }, { "clips": [ { "asset": { "type": "html", "width": 300, "height": 260, "html": "{{ HEADLINE_3A }}
", "css": "p { color: #ffffff; font-size: 45px; font-family: 'Noto Sans Medium'; text-align: center; text-scale: shrink; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.342, "y": 0.25 }, "position": "center", "transition": { "in": "slideLeft", "out": "slideLeft" }, "length": 5.78, "start": 11.5 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1, "height": 670, "background": "#ffffff", "html": "line vertical
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "y": 0.067, "x": 0.181 }, "position": "center", "length": 6.4, "transition": { "in": "carouselDown" }, "start": 11.25 } ] }, { "clips": [ { "asset": { "type": "html", "width": 400, "height": 1, "background": "#ffffff", "html": "Line horizontal
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "y": 0, "x": 0.375 }, "position": "center", "transition": { "in": "carouselRight" }, "length": 6.56, "start": 11.06 } ] }, { "clips": [ { "asset": { "type": "html", "width": 331, "height": 596, "background": "#37acd9", "html": "HELLO WORLD
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "length": 6.25, "fit": "none", "scale": 1, "offset": { "x": 0.343, "y": -0.002 }, "position": "center", "transition": {}, "start": 11.4 } ] }, { "clips": [ { "asset": { "type": "image", "src": "{{ IMAGE_1 }}" }, "offset": { "x": -0.25, "y": 0 }, "position": "center", "transition": { "in": "fade" }, "effect": "zoomOutSlow", "start": 11.4, "length": 6.25, "scale": 1 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1099, "height": 606, "background": "#37acd9", "html": "HELLO WORLD
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "x": -0.002, "y": -0.002 }, "position": "center", "start": 10.4, "transition": { "in": "fade" }, "length": 2 } ] }, { "clips": [ { "asset": { "type": "html", "width": 911, "height": 54, "position": "center", "html": "{{ HEADLINE_2 }}
", "css": "p { color: #ffffff; font-size: 50px; font-family: 'Noto Sans Medium'; text-align: right; text-scale: shrink; }" }, "fit": "none", "scale": 1, "offset": { "x": -0.001, "y": -0.382 }, "position": "center", "transition": { "in": "slideRight", "out": "slideLeft" }, "length": 6.25, "start": 5.25 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1123, "height": 1, "background": "#ffffff", "html": "Line horizontal
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "x": -0.041, "y": -0.249 }, "position": "center", "transition": { "in": "carouselRightSlow" }, "length": 6.25, "start": 5.25 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1053, "height": 153, "background": "#9d856a", "html": "HELLO WORLD
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "length": 6.1, "fit": "none", "scale": 1, "offset": { "x": 0, "y": -0.382 }, "position": "center", "start": 5.4 } ] }, { "clips": [ { "asset": { "type": "image", "src": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9ix6t-2s2q-uv3j-mjfv-1rhwqh0ecrkz/source.jpg" }, "offset": { "x": 0, "y": 0.25 }, "position": "center", "transition": { "in": "fade" }, "effect": "zoomOutSlow", "start": 5.4, "length": 6.1, "scale": 1 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1070, "height": 600, "background": "#9d856a", "html": "HELLO WORLD
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.001, "y": 0 }, "position": "center", "start": 5, "transition": { "in": "zoom" }, "length": 2 } ] }, { "clips": [ { "asset": { "type": "html", "width": 518, "height": 65, "html": "{{ ADDRESS }}
", "css": "p { color: #ffffff; font-size: 31px; font-family: 'Noto Sans Medium'; text-align: right; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.189, "y": -0.245 }, "position": "center", "start": 0.75, "transition": { "in": "slideUp", "out": "slideUp" }, "length": 5 } ] }, { "clips": [ { "asset": { "type": "html", "width": 518, "height": 235, "html": "My Estate\nAgent
", "css": "p { color: #ffffff; font-size: 80px; font-family: 'Noto Sans Medium'; text-align: right; }" }, "fit": "none", "scale": 1, "offset": { "x": 0.189, "y": 0.098 }, "position": "center", "transition": { "in": "slideLeft", "out": "slideLeft" }, "start": 0.5, "length": 5.25 } ] }, { "clips": [ { "asset": { "type": "html", "width": 1, "height": 670, "background": "#ffffff", "html": "line vertical
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "fit": "none", "scale": 1, "offset": { "y": 0.067, "x": -0.08 }, "position": "center", "length": 5.76, "transition": { "in": "carouselUpSlow" }, "start": 0 } ] }, { "clips": [ { "asset": { "type": "html", "width": 710, "height": 1, "background": "#ffffff", "html": "Line horizontal
", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: left; }" }, "start": 0.01, "fit": "none", "scale": 1, "offset": { "x": 0.266, "y": -0.139 }, "position": "center", "transition": { "in": "carouselLeftSlow", "out": "carouselLeft" }, "length": 5.75 } ] }, { "clips": [ { "asset": { "type": "image", "src": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9jptf-1pqe-ql48-uii0-1pig4a1l7un6/source.png" }, "start": 0, "offset": { "x": 0.33, "y": 0.382 }, "position": "center", "length": 5.75, "transition": { "in": "slideLeft", "out": "slideRight" }, "fit": "none", "scale": 0.12 } ] }, { "clips": [ { "asset": { "type": "html", "width": 656, "height": 604, "background": "#b98642", "html": "", "css": "p { color: #ffffff; font-size: 1px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "offset": { "x": 0.24, "y": 0.016 }, "fit": "none", "scale": 1, "position": "center", "transition": { "in": "fade" }, "opacity": 0.97, "length": 5.75, "start": 0 } ] }, { "clips": [ { "asset": { "type": "html", "width": 655, "height": 875, "background": "#ffffff", "html": "
white_matte
", "css": "p { color: #ffffff; font-size: 32px; font-family: 'Montserrat ExtraBold'; text-align: center; }" }, "start": 0, "fit": "none", "scale": 1, "offset": { "x": 0.239, "y": 0.031 }, "position": "center", "length": 5.75, "transition": {} } ] }, { "clips": [ { "asset": { "type": "image", "src": "{{ MAIN_IMAGE }}" }, "offset": { "x": -0.184, "y": 0 }, "position": "center", "transition": { "in": "slideLeftSlow", "out": "slideRight" }, "effect": "zoomOutSlow", "start": 0, "length": 5.75, "scale": 1 } ] } ] }, "output": { "format": "mp4", "fps": 25, "size": { "width": 1024, "height": 576 } }, "merge": [ { "find": "ADDRESS", "replace": "192 Summers Lane" }, { "find": "HEADLINE_2", "replace": "Open plan living" }, { "find": "HEADLINE_3", "replace": "3 bedroom, 2 bathroom, 2 carspaces" }, { "find": "HEADLINE_3A", "replace": "8th floor" }, { "find": "HEADLINE_3B", "replace": "city views" }, { "find": "IMAGE_1", "replace": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9iwn6-2cbt-jy0x-cci0-2uwodr2q2jyw/source.jpg" }, { "find": "IMAGE_2", "replace": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9izyv-2dzh-cf1n-booe-19ycgi3q6tiq/source.jpg" }, { "find": "IMAGE_3", "replace": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9izqs-1kuv-ym2i-gmr3-0yg3fy4b7nii/source.jpg" }, { "find": "MAIN_IMAGE", "replace": "https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/zfe0a140fc/zzy9knci-2hok-uv0e-kqff-0fgrzr2ibnrm/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