## Basic tool info Model name: wiro/Product Ads with Caption Model description: Combine product images with custom captions into stunning animated video ads. 42 creative presets featuring sales promotions, seasonal themes, and dynamic text animations. Model cover: https://cdn.wiro.ai/uploads/models/wiro-product-ads-with-caption-cover.mp4 Model categories: - tool - use-agent - quick-showcase - wiroEcommerce - wiroEntertainment - fast-inference - image-to-video - product-ads Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/wiro/product-ads-with-caption Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: Input Image help: Required: Product photo type: combinefileinput default: input-product-7.jpg - name: caption label: caption help: Short promotional text (1-2 words recommended, e.g., SALE, New Arrival). type: textarea default: New Arrival - name: videoMode label: Video Mode help: Required. type: select default: std options: - value: "std" label: Standard - value: "pro" label: Pro - name: effectType label: Effect Type help: Required type: selectwithcover default: product-with-text-product-beach-banner options: - value: "christmas-presets-product-with-santa-hat" label: Product With Santa Hat - value: "scene-morphs-storefront-to-display" label: Storefront To Display - value: "scene-morphs-package-to-product-with-confetti" label: Package To Product With Confetti - value: "christmas-presets-christmas-snow-globe-mountains" label: Christmas Snow Globe Mountains - value: "christmas-presets-polaroid-with-santa" label: Polaroid With Santa - value: "christmas-presets-holiday-card" label: Holiday Card - value: "christmas-presets-letters-to-santa" label: Letters To Santa - value: "black-friday-sales-black-friday-claw-machine" label: Black Friday Claw Machine - value: "black-friday-sales-black-cover-to-white-spotlights-black-friday" label: Black Cover To White Spotlights Black Friday - value: "black-friday-sales-black-friday-elevator" label: Black Friday Elevator - value: "black-friday-sales-gift-to-product-with-confetti-black" label: Gift To Product With Confetti Black - value: "black-friday-sales-snow-black-friday" label: Snow Black Friday - value: "black-friday-sales-plane-city-product-black-friday" label: Plane City Product Black Friday - value: "black-friday-sales-black-background-red-neon-text" label: Black Background Red Neon Text - value: "black-friday-sales-black-friday-vending-machine" label: Black Friday Vending Machine - value: "black-friday-sales-dome-product-black-friday" label: Dome Product Black Friday - value: "black-friday-sales-black-friday-display-window" label: Black Friday Display Window - value: "black-friday-sales-gift-storefront-to-product" label: Gift Storefront To Product - value: "black-friday-sales-black-pedestal-smoke-red-neon-text" label: Black Pedestal Smoke Red Neon Text - value: "product-with-text-package-confetti-product-text" label: Package Confetti Product Text - value: "product-with-text-product-beach-banner" label: Product Beach Banner - value: "product-with-text-mojito-happy-hour" label: Mojito Happy Hour - value: "product-with-text-black-pedestal-smoke-neon-text" label: Black Pedestal Smoke Neon Text - value: "product-with-text-rustic-table-menu-item-text" label: Rustic Table Menu Item Text - value: "product-with-text-3d-cloud-font-product-pedestal" label: 3d Cloud Font Product Pedestal - value: "product-with-text-chrome-font-product-in-sky" label: Chrome Font Product In Sky - value: "product-with-text-space-orbit-product-sale" label: Space Orbit Product Sale - value: "product-with-text-product-sliced-to-jello" label: Product Sliced To Jello - value: "product-with-text-animal-coiling-around-product" label: Animal Coiling Around Product - value: "product-with-text-conveyor-belt-neon-text-product" label: Conveyor Belt Neon Text Product - value: "product-with-text-product-in-greek-heaven" label: Product In Greek Heaven - value: "product-with-text-colorful-balloons-text-product" label: Colorful Balloons Text Product - value: "product-with-text-product-in-melting-ice-cube" label: Product In Melting Ice Cube - value: "product-with-text-3d-waterdrop-in-grassy-field" label: 3d Waterdrop In Grassy Field - value: "product-with-text-3d-waterdrop-product-in-bubble" label: 3d Waterdrop Product In Bubble - value: "product-with-text-lipstick-on-sale-today" label: Lipstick On Sale Today - value: "product-with-text-ice-cream-cosmetics" label: Ice Cream Cosmetics - value: "product-with-text-product-in-goo" label: Product In Goo - value: "product-with-text-product-in-clear-capsule" label: Product In Clear Capsule - value: "product-with-text-handbag-skyscraper-sunset" label: Handbag Skyscraper Sunset - value: "product-with-text-butterfly-holding-product-iridescent-text" label: Butterfly Holding Product Iridescent Text - value: "product-with-text-hot-deal-lava-product" label: Hot Deal Lava Product ## Integration Header Prepare ```bash # Sign up Wiro dashboard and create project export YOUR_API_KEY="{{useSelectedProjectAPIKey}}"; export YOUR_API_SECRET="XXXXXXXXX"; # unix time or any random integer value export NONCE=$(date +%s); # hmac-SHA256 (YOUR_API_SECRET+Nonce) with YOUR_API_KEY export SIGNATURE="$(echo -n "${YOUR_API_SECRET}${NONCE}" | openssl dgst -sha256 -hmac "${YOUR_API_KEY}")"; ``` ## Run Command - Make HTTP Post Request ```bash curl -X POST "https://api.wiro.ai/v1/Run/wiro/product-ads-with-caption" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImage": "input-product-7.jpg", "caption": "New Arrival", "videoMode": "std", "effectType": "product-with-text-product-beach-banner", "callbackUrl": "You can provide a callback URL; Wiro will send a POST request to it when the task is completed." }'; ``` ## Run Command - Response ```json { "errors": [], "taskid": "2221", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "result": true } ``` ## Get Task Detail - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "2221" }'; ``` ## Get Task Detail - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "tasktoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt" }'; ``` ## Get Task Detail - Response ```json { "total": "1", "errors": [], "tasklist": [ { "id": "2221", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "parameters": {}, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_postprocess_end", "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Kill Task - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "534574" }'; ``` ## Kill Task - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE" }'; ``` ## Kill Task - Response ```json { "errors": [], "tasklist": [ { "id": "534574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Cancel Task - Make HTTP Post Request (For tasks on queue) ```bash curl -X POST "https://api.wiro.ai/v1/Task/Cancel" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "634574" }'; ``` ## Cancel Task - Response ```json { "errors": [], "tasklist": [ { "id": "634574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Task Status Information This section defines the possible task status values returned by the API when polling for task completion. ### Completed Task Statuses (Polling can stop) These indicate that the task has reached a terminal state — either success or failure. Once any of these is received, polling should stop. - task_postprocess_end : Task completed successfully and post-processing is done. - task_cancel : Task was cancelled by the user or system. ### Running Task Statuses (Continue polling) These statuses indicate that the task is still in progress. Polling should continue if one of these is returned. - task_queue : Task is waiting in the queue. - task_accept : Task has been accepted for processing. - task_assign : Task is being assigned to a worker. - task_preprocess_start : Preprocessing is starting. - task_preprocess_end : Preprocessing is complete. - task_start : Task execution has started. - task_output : Output is being generated.