{
  "openapi": "3.0.1",
  "info": {
    "title": "VideoIntel - Universal Video Metadata Extractor",
    "description": "Check video URL support and extract metadata, thumbnails, metrics, formats and permitted downloads from YouTube, TikTok, Instagram, Facebook, X/Twitter, Vimeo, Twitch, Kick, SoundCloud and 1,500+ sites.",
    "version": "0.1",
    "x-build-id": "zBLDMofGUbmFVG4og"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/upworkprashantp~videointel-video-metadata-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-upworkprashantp-videointel-video-metadata-extractor",
        "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/upworkprashantp~videointel-video-metadata-extractor/runs": {
      "post": {
        "operationId": "runs-sync-upworkprashantp-videointel-video-metadata-extractor",
        "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/upworkprashantp~videointel-video-metadata-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-upworkprashantp-videointel-video-metadata-extractor",
        "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": {
          "urls": {
            "title": "Video URLs",
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "description": "One or more video URLs for quick runs. For very large batches, use the Input Dataset field instead of pasting thousands of URLs here.",
            "items": {
              "type": "string"
            }
          },
          "urlsDatasetId": {
            "title": "Input Dataset",
            "type": "string",
            "description": "Optional. Select an Apify Dataset containing URL rows for large runs such as 10,000 or 100,000 videos. Each row should contain a URL field."
          },
          "datasetUrlField": {
            "title": "Dataset URL field",
            "type": "string",
            "description": "Field name in the input Dataset that contains the video URL. If missing, the Actor also tries url, sourceUrl, videoUrl, and webpageUrl.",
            "default": "url"
          },
          "datasetStartOffset": {
            "title": "Dataset start offset",
            "minimum": 0,
            "type": "integer",
            "description": "Start reading the input Dataset from this row offset. Useful for splitting or resuming very large jobs.",
            "default": 0
          },
          "operation": {
            "title": "Operation",
            "enum": [
              "metadata",
              "download"
            ],
            "type": "string",
            "description": "Use metadata for fast structured data extraction. Use download only for videos you have rights/permission to download.",
            "default": "metadata"
          },
          "preferredQuality": {
            "title": "Preferred download quality",
            "enum": [
              "360p",
              "480p",
              "720p",
              "best"
            ],
            "type": "string",
            "description": "Used only when operation is download.",
            "default": "480p"
          },
          "includeFormats": {
            "title": "Include available formats",
            "type": "boolean",
            "description": "When true, returns selected available format metadata. Keep false for cheaper/faster bulk runs.",
            "default": false
          },
          "includeDirectMediaUrls": {
            "title": "Include direct media URLs",
            "type": "boolean",
            "description": "When true, includes temporary direct media URLs in formats. These URLs can expire and may be very large. Disabled by default.",
            "default": false
          },
          "includeSubtitles": {
            "title": "Include subtitle metadata",
            "type": "boolean",
            "description": "Includes subtitle and automatic caption language metadata when available. Does not download subtitle files.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Use Apify Proxy or custom proxies for cloud runs. Rotating proxies are recommended for YouTube, TikTok, Instagram, Facebook, and other platforms that block datacenter traffic. Residential proxies usually work better for strict platforms but may cost more.",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Number of URLs processed in parallel. Keep low for download mode.",
            "default": 3
          },
          "maxUrls": {
            "title": "Max URLs to process",
            "minimum": 0,
            "type": "integer",
            "description": "Optional safety limit across direct URLs and Dataset URLs. Use 0 to process all available input URLs.",
            "default": 0
          },
          "maxRetries": {
            "title": "Max retries per URL",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Retries metadata extraction with a fresh proxy session for transient proxy or YouTube bot-check failures. Download mode does not retry to avoid duplicate traffic and charges.",
            "default": 2
          },
          "timeoutSecs": {
            "title": "Timeout per URL in seconds",
            "minimum": 10,
            "maximum": 300,
            "type": "integer",
            "description": "Network timeout passed to yt-dlp.",
            "default": 60
          },
          "maxFileSizeMb": {
            "title": "Max file size MB",
            "minimum": 1,
            "maximum": 2048,
            "type": "integer",
            "description": "Download mode guardrail. Files larger than this are skipped after detection to control storage/traffic costs.",
            "default": 100
          },
          "failOnUnsupported": {
            "title": "Fail run on unsupported URLs",
            "type": "boolean",
            "description": "When false, unsupported/error URLs are returned as dataset rows instead of failing the whole run.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}