{
  "openapi": "3.0.1",
  "info": {
    "title": "Video Ad Analyzer API – Competitor Ads: Hook, Angle & Script",
    "description": "Analyze competitors' video ads from a brand name or domain, or from ad video links. Returns hook, angle, offer, CTA, script and shot list per ad, pulled from Meta Ad Library or Google Ads Transparency (YouTube). No analysis fee on failure; Actor Start and Meta fetching fees may apply. · by TubeText",
    "version": "1.0",
    "x-build-id": "p0e9NyqUeecDafXvi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tubetext~video-ad-analyzer/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tubetext-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/tubetext~video-ad-analyzer/runs": {
      "post": {
        "operationId": "runs-sync-tubetext-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/tubetext~video-ad-analyzer/run-sync": {
      "post": {
        "operationId": "run-sync-tubetext-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": {
          "advertisers": {
            "title": "Brands, domains or Google advertiser IDs",
            "type": "array",
            "description": "Provide at least one of: advertisers / metaBrands / adUrls / datasetId. Competitors to research in the Google Ads Transparency Center (YouTube video ads): a brand name (HelloFresh), a domain (grammarly.com), an advertiser ID (AR…) or an adstransparency.google.com advertiser link.",
            "items": {
              "type": "string"
            }
          },
          "maxAdsPerAdvertiser": {
            "title": "Max ads per brand / dataset",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Video ads analyzed per brand, newest first as listed by Google. For a dataset, the maximum number of ads read from it is 20× this value.",
            "default": 10
          },
          "region": {
            "title": "Region (Google Ads Transparency)",
            "enum": [
              "anywhere",
              "US",
              "GB",
              "CA",
              "AU",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "BR",
              "MX",
              "IN",
              "JP",
              "KR",
              "SG",
              "AE",
              "SA",
              "TR",
              "PL",
              "SE",
              "ID",
              "PH",
              "VN",
              "TH",
              "ZA",
              "NG",
              "AR",
              "CO",
              "CL"
            ],
            "type": "string",
            "description": "Only ads shown in this country.",
            "default": "anywhere"
          },
          "metaBrands": {
            "title": "Brands or Facebook pages (Meta Ad Library)",
            "type": "array",
            "description": "Competitors to research in the Meta Ad Library (Facebook & Instagram video ads): a brand name (HelloFresh), a Facebook page link (facebook.com/HelloFreshUS) or a numeric page ID. Only the brand's own active video ads are used; ads by other advertisers that mention the brand are left out.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "metaCountry": {
            "title": "Country (Meta Ad Library)",
            "type": "string",
            "description": "Two-letter country code where the Meta ads ran (US, GB, DE…).",
            "default": "US"
          },
          "adUrls": {
            "title": "Ad video URLs",
            "type": "array",
            "description": "Optional: ad videos you already have – YouTube, TikTok, Instagram, Facebook links or direct .mp4 links (e.g. video URLs from the Meta Ad Library).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "datasetId": {
            "title": "Dataset ID of an ad library scraper run",
            "type": "string",
            "description": "Optional: chain an ad library scraper (Meta / Facebook Ad Library, TikTok ads, Google transparency). We find each row's video, advertiser, ad copy, CTA, landing page and dates automatically. Image and text ads are skipped for free. Pick the dataset (or paste its ID via API); read-only access to this one dataset is requested."
          },
          "outputLanguage": {
            "title": "Output language",
            "enum": [
              "English",
              "Same as video",
              "Spanish",
              "Portuguese",
              "French",
              "German",
              "Italian",
              "Dutch",
              "Polish",
              "Turkish",
              "Russian",
              "Arabic",
              "Hindi",
              "Indonesian",
              "Vietnamese",
              "Thai",
              "Japanese",
              "Korean",
              "Chinese (Simplified)",
              "Chinese (Traditional)"
            ],
            "type": "string",
            "description": "Language of the analysis.",
            "default": "English"
          },
          "translateQuotes": {
            "title": "Translate spoken words and on-screen text",
            "type": "boolean",
            "description": "Off: quotes stay in the ad's original language. On: they are translated into the output language too.",
            "default": false
          },
          "includeTranscript": {
            "title": "Include full transcript",
            "type": "boolean",
            "description": "Adds the ad's spoken words as plain and timestamped text.",
            "default": true
          },
          "maxVideoMinutes": {
            "title": "Max ad length (minutes)",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Longer videos are skipped (free).",
            "default": 10
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Ads analyzed in parallel.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}