{
  "openapi": "3.0.1",
  "info": {
    "title": "Video Ad Analyzer: Facebook & TikTok Ad Transcripts & Hooks",
    "description": "Analyse video ads from Facebook Ads Library, Meta Ad Library and TikTok Ads scrapers, or direct video links: timed transcript, on-screen timeline, 3-second hook, spoken CTAs, brand mentions and pacing per ad creative. From $0.02 per ad.",
    "version": "0.1",
    "x-build-id": "NHgFIKVEg8yEZedZI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deapi~video-ad-analyzer/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deapi-video-ad-analyzer",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/deapi~video-ad-analyzer/runs": {
      "post": {
        "operationId": "runs-sync-deapi-video-ad-analyzer",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/deapi~video-ad-analyzer/run-sync": {
      "post": {
        "operationId": "run-sync-deapi-video-ad-analyzer",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "datasetId": {
            "title": "Dataset of ads",
            "type": "string",
            "description": "The dataset of an ad-library scraper run — for example **Facebook Ads Library Scraper**, Meta Ad Library, TikTok Ads Library or any scraper whose results contain video file links. **How:** run the scraper, open its run, and pick its dataset here (or paste the dataset ID from the run's Storage tab). The Actor finds every ad video in it and keeps each ad's ID, advertiser, call to action, landing page and text next to the analysis. You can also connect this Actor as an integration that runs after the scraper. **Run it soon after the scraper: ad-library video links expire after a few days.**"
          },
          "videoUrls": {
            "title": "Video URLs",
            "type": "array",
            "description": "Direct links to video files (MP4, MOV, WebM, MKV, AVI, MPEG), one per line — for example the `videoHdUrl` of an ad in a scraper's results. The prefilled link is a public-domain U.S. Army TV ad, so you can see the output before using your own ads. Links to a post or an ad page cannot be analysed. Videos up to **5 minutes** and 150 MB (free plan: up to 60 seconds and 50 MB). Files over 48 MB are converted first, for a conversion fee from November 11, 2026: 1080p ads of up to about 4 minutes and 4K ads of up to about 1 minute are taken.",
            "items": {
              "type": "string"
            }
          },
          "preset": {
            "title": "On-screen reading",
            "enum": [
              "balanced",
              "detail"
            ],
            "type": "string",
            "description": "**Standard** describes what happens on screen, moment by moment — people, products, actions, settings — and reads larger text and brand names. **Detailed** reads the picture at a higher resolution in shorter windows, catching small text, labels and logos, for a surcharge per 10 seconds of video.",
            "default": "balanced"
          },
          "language": {
            "title": "Spoken language",
            "pattern": "^([a-zA-Z]{2,3})?$",
            "type": "string",
            "description": "Two-letter code of the language spoken in the ads (`en`, `es`, `de`, `fr`, `pt`…). Leave empty to detect it per video.",
            "default": ""
          },
          "analyzeAllVariants": {
            "title": "Analyse every version of a creative",
            "type": "boolean",
            "description": "Ad libraries often list one creative several times — for example in 9:16 and 1:1. By default videos of the same length (within half a second) but a different shape count as one creative, and only the vertical version is analysed and charged; the others get a free `skipped` row pointing to it. Videos of the same length and shape are different cards and are all analysed. Turn this on to analyse and pay for every version.",
            "default": false
          },
          "maxAds": {
            "title": "Maximum ads with video",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many video ads to take from the dataset, in its order. Ads without a video are listed as skipped and do not count.",
            "default": 50
          },
          "maxConcurrency": {
            "title": "Ads in parallel",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Ads analysed at the same time. No effect on price.",
            "default": 3
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}