Skip to main content

Introduction

Transform product URLs or descriptions into professional marketing videos automatically. JoggAI analyzes your product, generates AI scripts, and creates complete videos with avatars and voiceovers.

Key Features

URL Analysis

Extract product info from any URL automatically

AI Scripts

Generate marketing scripts with AI

Visual Styles

Choose from 50+ professional templates

Multi-Language

Create videos in 40+ languages

Workflow Overview

Product video generation is a 3-step asynchronous process:
1

Create Product

Submit product URL or manual details
2

Generate Video

Select avatar, voice, visual style, and script
3

Get Result

Retrieve video via webhook or polling (5-10 minutes)
The entire process can take 5-10 minutes depending on video complexity. Use webhooks for best experience.

Quick Start

EndpointPurposeDocumentation
POST /v2/productCreate product entryAPI Reference
GET /v2/avatars/publicGet avatar listAPI Reference
GET /v2/voicesGet voice listAPI Reference
GET /v2/visual_stylesGet visual stylesAPI Reference
POST /v2/create_video_from_product/preview_listGenerate previewsAPI Reference
POST /v2/create_video_from_product/render_single_previewRender final video from previewAPI Reference
POST /v2/create_video_from_productGenerate video directlyAPI Reference
GET /v2/product_video/{product_video_id}Check statusAPI Reference

Key Parameters

Create Product (Step 1):
ParameterTypeRequiredDescription
urlstring*Product URL (required if no name)
namestring*Product name (required if no URL)
descriptionstringProduct description
target_audiencestringTarget audience description
mediaarrayProduct images/videos array
Generate Video (Step 2):
ParameterTypeRequiredDescription
product_idstringProduct ID from Step 1
aspect_ratiostringportrait/landscape/square
video_lengthstring“15”/“30”/“60” seconds
languagestringScript language (e.g., “english”)
avatar_idintegerAvatar ID
avatar_typeinteger0=Public, 1=Custom
script_stylestringScript style (see Script Styles below)
visual_stylestringVisual template name
voice_idstringVoice ID for TTS
music_idintegerBackground music ID
override_scriptstringCustom script to override AI-generated
template_idintegerCustom template ID
template_typestring“custom” or “public”
captionbooleanEnable subtitles (default: false)
Product Creation: You must provide either url OR name (at least one is required). Providing both is also valid.

Code Examples

Step 1: Create Product Entry

Option A: From Product URL
curl --request POST \
  --url 'https://api.jogg.ai/v2/product' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "url": "https://www.amazon.com/dp/B0BX7CVAPM"
  }'
Response:
{
  "code": 0,
  "msg": "Success",
  "data": {
    "product_id": "NTIzMzc0NjI5",
    "name": "Owala FreeSip Water Bottle",
    "description": "Insulated stainless steel water bottle...",
    "media": [
      {
        "type": 1,
        "url": "https://m.media-amazon.com/images/I/61wvLrf8ekL._AC_SL1500_.jpg"
      }
    ]
  }
}
Option B: Manual Product Details
curl --request POST \
  --url 'https://api.jogg.ai/v2/product' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "Premium Yoga Mat",
    "description": "Eco-friendly yoga mat with superior grip and cushioning. Perfect for all yoga styles.",
    "target_audience": "Yoga enthusiasts and fitness lovers",
    "media": [
      {
        "type": 1,
        "name": "product-image.jpg",
        "url": "https://example.com/yoga-mat.jpg",
        "description": "Main product image"
      }
    ]
  }'
Save the product_id from the response - you’ll need it for video generation!

Step 2: Generate Video

Create video with AI-generated script:
curl --request POST \
  --url 'https://api.jogg.ai/v2/create_video_from_product' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "product_id": "NTIzMzc0NjI5",
    "visual_style": "Simple Product Switch",
    "video_spec": {
      "aspect_ratio": "portrait",
      "length": "30",
      "caption": true
    },
    "avatar": {
      "id": 81,
      "type": 0
    },
    "voice": {
      "id": "en-US-ChristopherNeural"
    },
    "audio": {},
    "script": {
      "style": "Storytime",
      "language": "english"
    }
  }'
Response:
{
  "code": 0,
  "msg": "Success",
  "data": {
    "product_video_id": "pv_123456"
  }
}
Save the product_video_id to check status later!

Step 3: Check Video Status

Poll to check if video is ready:
curl --request GET \
  --url 'https://api.jogg.ai/v2/product_video/pv_123456' \
  --header 'x-api-key: YOUR_API_KEY'
Response (Processing):
{
  "code": 0,
  "msg": "Success",
  "data": {
    "id": "pv_123456",
    "status": "processing"
  }
}
Response (Completed):
{
  "code": 0,
  "msg": "Success",
  "data": {
    "id": "pv_123456",
    "status": "completed",
    "video_url": "https://res.jogg.ai/videos/pv_123456.mp4",
    "cover_url": "https://res.jogg.ai/covers/pv_123456.jpg",
    "duration": 30
  }
}
Instead of polling, use [Webhooks](/api-reference/v2/API Documentation/WebhookIntegration) to get notified instantly when videos are ready!

Advanced Examples

Custom Script Override

Override the AI-generated script with your own:
curl --request POST \
  --url 'https://api.jogg.ai/v2/create_video_from_product' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "product_id": "NTIzMzc0NjI5",
    "video_spec": {
      "aspect_ratio": "landscape",
      "length": "30",
      "caption": true
    },
    "avatar": {
      "id": 81,
      "type": 0
    },
    "voice": {
      "id": "en-US-ChristopherNeural"
    },
    "audio": {},
    "script": {
      "style": "Storytime",
      "language": "english"
    },
    "override_script": "Check out this amazing water bottle! It keeps your drinks cold for 24 hours and features a unique FreeSip spout. Perfect for the gym or outdoor adventures!"
  }'
Use override_script when you have a specific message or want full control over the narration.

Using Background Music

Add background music to your product video:
curl --request POST \
  --url 'https://api.jogg.ai/v2/create_video_from_product' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "product_id": "NTIzMzc0NjI5",
    "video_spec": {
      "aspect_ratio": "square",
      "length": "15",
      "caption": false
    },
    "avatar": {
      "id": 81,
      "type": 0
    },
    "voice": {
      "id": "en-US-ChristopherNeural"
    },
    "audio": {
      "music_id": 13
    },
    "script": {
      "style": "Discovery",
      "language": "english"
    }
  }'
Get available background music using Get Music API.

Preview Multiple Styles

Generate previews with different visual styles before committing to a final video. This is useful for testing and comparing different styles: Step 1: Submit Preview List Generate multiple previews with different visual styles:
curl --request POST \
  --url 'https://api.jogg.ai/v2/create_video_from_product/preview_list' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "product_id": "NTIzMzc0NjI5",
    "visual_styles": ["Simple Product Switch", "Dynamic Showcase", "Elegant Presentation"],
    "video_spec": {
      "aspect_ratio": "portrait",
      "length": "30",
      "caption": true
    },
    "avatar": {
      "id": 81,
      "type": 0
    },
    "voice": {
      "id": "en-US-ChristopherNeural"
    },
    "audio": {},
    "script": {
      "style": "Storytime",
      "language": "english"
    }
  }'
Response:
{
  "code": 0,
  "msg": "Success",
  "data": {
    "preview_list_id": "pl_123456",
    "previews": [
      {
        "preview_id": "preview_001",
        "visual_style": "Simple Product Switch",
        "status": "processing"
      },
      {
        "preview_id": "preview_002",
        "visual_style": "Dynamic Showcase",
        "status": "processing"
      },
      {
        "preview_id": "preview_003",
        "visual_style": "Elegant Presentation",
        "status": "processing"
      }
    ]
  }
}
Preview generation typically takes 2-3 minutes. Check preview status using the preview_id from the response.
Step 2: Render Final Video from Preview Once previews are ready, select your preferred preview and render the final video:
curl --request POST \
  --url 'https://api.jogg.ai/v2/create_video_from_product/render_single_preview' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "preview_id": "preview_001"
  }'
Response:
{
  "code": 0,
  "msg": "Success",
  "data": {
    "product_video_id": "pv_123456"
  }
}
When to use previews:
  • Testing multiple visual styles before committing to final video
  • Comparing different styles for A/B testing
  • Ensuring quality before generating full video
  • Saving credits by previewing first

Script Styles Reference

Choose the right script style for your product:
StyleBest ForTone
StorytimeNarrative productsEngaging, story-driven
DiscoveryNew productsExciting, exploratory
Don’t WorryProblem-solvingReassuring, helpful
DataTech productsFactual, informative
Top 3 ReasonsFeature-rich productsClear, structured
Light MarketingGeneral productsFriendly, promotional

Use Case Examples

Automate product video creation for online stores:
  • Bulk generate videos for entire catalog
  • Use portrait format for mobile shopping
  • Enable captions for silent browsing
  • Try multiple script styles for A/B testing
Create scroll-stopping ads:
  • Use “Storytime” or “Discovery” styles
  • Keep videos short (15-30 seconds)
  • Choose engaging avatars
  • Add background music for emotion
Enhance Amazon/eBay listings:
  • Extract info directly from product URLs
  • Generate in multiple languages for global markets
  • Use landscape format for desktop viewers
  • Highlight key features with “Top 3 Reasons”
Scale video content creation:
  • Batch process product URLs
  • Customize scripts for your brand voice
  • Generate localized versions
  • Use webhook automation for efficiency

Tips for Best Results

Product Information:
  • Provide detailed product descriptions for better AI script generation
  • Include target audience information for personalized scripts
  • Add high-quality product images for better visual results
  • Use clear, descriptive product names
Script Style Selection:
  • Use “Storytime” for lifestyle products
  • Use “Data” for technical products with specifications
  • Use “Top 3 Reasons” to highlight key features
  • Test different styles to find what works best for your products
Video Configuration:
  • Use portrait format (9:16) for social media platforms
  • Use landscape format (16:9) for YouTube and websites
  • Enable captions for better engagement and accessibility
  • Choose appropriate video length based on platform (15s for TikTok, 30-60s for YouTube)

Troubleshooting

Error: Failed to extract product informationSolutions:
  • Ensure URL is publicly accessible (no login required)
  • Check if URL is from a supported marketplace (Amazon, eBay, etc.)
  • Try providing product details manually instead
  • Verify URL format is correct
Error: Video generation failedSolutions:
  • Verify product_id is correct and product was created successfully
  • Check that all required parameters are provided
  • Ensure avatar_id and script_style are valid
  • Check API quota/credits balance
Issue: Generated script doesn’t match productSolutions:
  • Provide more detailed product description
  • Specify target_audience for better personalization
  • Try different script_style options
  • Use override_script for full control