A product video API is one of the most practical video APIs for ecommerce teams because it lets you create videos from structured product data instead of editing every SKU by hand. To create product videos from a CSV or product feed, take each row of product data, map it into a reusable video layout, submit one REST API render payload per product, and poll the render jobs until the files are ready. That is the core pattern whether you are generating one launch video, one hundred catalog promos, or channel-specific variations for paid social and marketplaces. The important shift is that your feed becomes the source of truth for video generation. Instead of rebuilding timelines manually, you define where the product title, price, CTA, brand colors, and product media should appear in a Zvid render payload. Once that mapping exists, you can render consistent product videos whenever your catalog changes. If you are new to the platform, start with the Getting Started guide , the Authentication guide , and the JSON Structure overview so your feed pipeline matches the public API model from the beginning. A reusable product-video template turns feed rows into consistent campaign creative. If you already have a feed export, the first working version can be simple. A CSV row with title , price , salePrice , cta , brandColor , backgroundColor , and productImageUrl is enough to generate a solid promo video when each field maps to a known place in the scene. Here is the API shape most teams start with when they want to generate videos programmatically and on-demand: export ZVID_API_BASE_URL = https://api.zvid.io
curl -X POST " ZVID_API_KEY " \ -d @render-job.json Then poll the job until it completes: curl " JOB_ID " \ -H "x-api-key: ZVID_API_KEY " That flow is the same one described in the Getting Started guide . The difference for product feeds is how you generate render-job.json : you build it from structured catalog data instead of hand-authoring every scene. Why feed-driven product video works Feed-driven video works because product marketing is already structured. Your catalog already knows the product name, price, availability, category, promo language, and image URLs. The video layer should reuse that structure rather than forcing your team to recreate it in an editor for every SKU. This approach is especially useful when you need: One branded template for many products Fast refreshes for sales, pricing, and inventory changes Different aspect ratios for paid social, marketplace ads, and PDP video slots Consistent CTA placement and visual hierarchy across the whole catalog It is also easier to maintain. Your engineering or automation team can version the mapping logic, while marketing keeps control over the copy fields and brand rules that live in the feed itself. Product video API workflow The cleanest video workflow is: ingest feed rows, normalize the fields, map each row to a Zvid payload, submit render jobs through the endpoint, and save the resulting video URL or CDN URL back to your CMS, PIM, Shopify catalog, or ad pipeline. This is the practical difference between a one-off video editing project and video automation that can run every time product details change. A product-feed pipeline separates data cleanup, template mapping, and rendering into repeatable steps. In practice, the product video API pipeline looks like this: Parse the CSV or pull the product feed from your source system. Normalize fields so your template logic gets predictable values. Map each normalized row to scene text, colors, media, and timing. Submit one render job per video variation through the API. Poll job status and store the completed video URL where the business needs it. If you want to use real product photos in production, the Image Elements reference shows how remote image sources work, while the Text Elements reference explains the text layer behavior you will use for titles, prices, and CTAs. What is a product video API for video creation? A product video API is a creation API for rendering product videos from structured inputs such as product details, image URLs, prices, badges, and calls to action. Unlike a hosting API from a platform such as Vimeo, or live streaming and transcoding APIs for uploaded media, a product video API generates new product video content from a payload. For ecommerce teams, the key use case is repeatable video production at scale. Developers send one API call per output, track the job state, and store the finished video URL. That makes it possible to create videos for TikTok ads, marketplace listings, PDP modules, short-form explainers, thumbnails, GIFs, and localized campaign variants without rebuilding the same timeline in a UI. REST API pipeline and API key setup A reliable REST API implementation keeps auth, payload creation, rendering, and storage separate. First, keep your API key in server-side configuration. Next, build a payload from the product row. Then send it via API to the render endpoint and save the returned job identifier. When the job completes, write the final URL back to your product system. That single API loop is small enough to test in a few lines of code, but it can expand into high-volume automated workflows with webhooks, retries, queue monitoring, and per render cost controls. Zvid focuses on rendering videos from templates and structured JSON rather than text prompts, avatar generation, native audio synthesis, or image-to-video generation. Map feed columns into a reusable Zvid template The template is the durable asset. The feed row is the changing input. For example, a row like this: { "sku" : "BAG-204" , "title" : "Transit Weekender Bag" , "price" : "129" , "salePrice" : "99" , "cta" : "Shop the drop" , "brandColor" : "#5B3DF5" , "accentColor" : "#F5C94A" , "productImageUrl" : "https://cdn.example.com/products/transit-weekender-bag.jpg" } can be mapped into a render payload with a function like this: function buildRenderJob ( row ) { return { payload : { name : `product-video- { row . sku } , resolution : " instagram-story " , duration : 10 , frameRate : 30 , outputFormat : " mp4 " , backgroundColor : " #0D1020 " , visuals : [ { type : " IMAGE " , src : row . productImageUrl , x : 260 , y : 960 , width : 520 , height : 760 , anchor : " center-center " , resize : " contain " }, { type : " TEXT " , x : 760 , y : 520 , width : 520 , anchor : " center-center " , html :


