Base Path /api/ai-for-videos
GET

List Video AI Tools

â–ļ
GET /api/ai-for-videos

Returns a paginated list of video AI tools filtered by generation method, use case, production stage, and pricing.

Query Parameters
ParamTypeDefaultDescription
pagenumber1Page number
limitnumber20Results per page (max 100)
searchstring—Search in name or description
generationMethodstring—See generation method values below
useCasestring—See use case values below
productionStagestring—See production stage values below
pricingModelenum—free | freemium | paid | enterprise
sortByenumcreatedAtcreatedAt | rating | viewCount | reviewCount | name
sortOrderenumdescasc | desc
topRatedboolean—Shortcut: sort by rating desc
Response
200 — Tool list
{
  "success": true,
  "data": {
    "tools": [
      {
        "id": "tool_vid1",
        "slug": "synthesia-ai",
        "name": "Synthesia AI",
        "singleLineDescription": "Create AI avatar videos from text",
        "logoUrl": "https://synthesia.io/logo.png",
        "toolType": "video",
        "pricingModel": "paid",
        "startingPrice": 30,
        "rating": 4.6,
        "reviewCount": 215,
        "verified": true,
        "featured": true,
        "typeMetadata": {
          "generationMethods": ["text-to-video", "avatar-videos"],
          "useCases": ["corporate", "elearning", "marketing-ads"],
          "productionStages": ["production", "post-production"],
          "maxResolution": "1080p",
          "maxDuration": "30 minutes",
          "outputFormats": ["MP4"],
          "inputTypes": ["Text", "Script"]
        },
        "user": { "id": "usr_admin", "username": "admin" }
      }
    ],
    "pagination": { "total": 64, "page": 1, "limit": 20, "totalPages": 4 }
  }
}
GET

Filter Options

â–ļ
GET /api/ai-for-videos/filters

Returns all valid filter values for building the sidebar. Cached for 24 hours (Cache-Control: public, max-age=86400).

Response
200 — Filter options
{
  "success": true,
  "data": {
    "generationMethods": [
      "text-to-video",
      "image-to-video",
      "avatar-videos",
      "style-transfer",
      "motion-capture",
      "beat-sync"
    ],
    "useCases": [
      "youtube-content",
      "social-media",
      "marketing-ads",
      "elearning",
      "filmmaking",
      "corporate"
    ],
    "productionStages": [
      "pre-production",
      "production",
      "post-production",
      "distribution"
    ],
    "pricingModels": ["free", "freemium", "paid", "enterprise"],
    "sortFields": ["createdAt", "rating", "viewCount", "reviewCount", "name"]
  }
}

Video Metadata Schema

When creating a tool of toolType: "video", pass these fields in typeMetadata.

typeMetadata — Video Tool
{
  // Filterable fields — these map to typeFilters slugs
  "generationMethods": ["text-to-video", "avatar-videos"],
  // → typeFilters: ["gen:text-to-video", "gen:avatar-videos"]

  "useCases": ["corporate", "elearning"],
  // → typeFilters: ["uc:corporate", "uc:elearning"]

  "productionStages": ["production", "post-production"],
  // → typeFilters: ["stage:production", "stage:post-production"]

  // Display-only fields (shown on tool detail page, not filterable)
  "maxResolution": "4K",
  "maxDuration": "30 minutes",
  "outputFormats": ["MP4", "GIF", "WebM"],
  "inputTypes": ["Text", "Image", "Script"]
}

All Filter Values

Generation Methods
"text-to-video"   "image-to-video"  "avatar-videos"
"style-transfer"  "motion-capture"  "beat-sync"
Use Cases
"youtube-content"  "social-media"  "marketing-ads"
"elearning"        "filmmaking"    "corporate"
Production Stages
"pre-production"  "production"  "post-production"  "distribution"
â„šī¸ The AI for Videos module only exposes list and filters endpoints. Individual tool pages are served via the general Tools API using GET /api/tools/slug/:slug.