{
  "openapi": "3.0.1",
  "info": {
    "title": "Fox News Videos Scraper",
    "description": "Collects Fox News video metadata: title, description, duration, publish date, thumbnail, direct content URL, expiry and optional topic tags. Reads Fox's own video sitemaps, about 670,000 videos in 140 partitions, with date, duration and keyword filters.",
    "version": "0.1",
    "x-build-id": "pi02GkdwUsdFjHQKS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapyx~foxnews-videos-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapyx-foxnews-videos-scraper",
        "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/scrapyx~foxnews-videos-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapyx-foxnews-videos-scraper",
        "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/scrapyx~foxnews-videos-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapyx-foxnews-videos-scraper",
        "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": {
          "maxItems": {
            "title": "Max videos",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many videos to return, newest first, after the date, duration and keyword filters. The video sitemap carries every field of a video's record inline, so a run of any size here costs one request per roughly 4,825 videos unless 'Include topic tags' is on.",
            "default": 50
          },
          "includeArchive": {
            "title": "Include archive",
            "type": "boolean",
            "description": "Walk Fox's older video sitemap partitions as well as the newest one. The archive holds about 670,000 videos in 140 partitions of roughly 4,825, newest first. Each partition is a multi-megabyte download, so one is only fetched when the newest partition cannot already fill your request, and partitions falling entirely before 'Published from' end the walk.",
            "default": false
          },
          "maxArchivePages": {
            "title": "Max archive partitions",
            "minimum": 1,
            "maximum": 140,
            "type": "integer",
            "description": "How many sitemap partitions to download when 'Include archive' is on, newest first. This is the real cost control for deep runs.",
            "default": 1
          },
          "includeTopics": {
            "title": "Include topic tags",
            "type": "boolean",
            "description": "Fetch each video's own page to add its topic and show tags (for example 'U.S.', 'Shows', 'On Air') and its embed URL. These exist only on the video page, not in the sitemap, so this costs one request per video and is off by default. Everything else about a video is returned either way.",
            "default": false
          },
          "dateFrom": {
            "title": "Published from",
            "type": "string",
            "description": "Optional lower bound on the publish date, inclusive, as YYYY-MM-DD. Videos with no usable date are excluded whenever a bound is set."
          },
          "dateTo": {
            "title": "Published to",
            "type": "string",
            "description": "Optional upper bound on the publish date, inclusive, as YYYY-MM-DD."
          },
          "minDurationSeconds": {
            "title": "Min duration (seconds)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keep only videos at least this long. Duration is supplied by Fox for every video in the sitemap, so this filter is exact rather than estimated. Use it to separate short clips from full episodes."
          },
          "maxDurationSeconds": {
            "title": "Max duration (seconds)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keep only videos no longer than this."
          },
          "keywords": {
            "title": "Keyword filter",
            "type": "array",
            "description": "Optional. Keep only videos whose title, description or topic tags contain one of these words, matched case-insensitively. This is filtering done by this Actor after fetching, not a search sent to Fox News, which offers no video search parameter. To search wider, widen the run with 'Include archive'.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxConcurrency": {
            "title": "Max concurrent requests",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Upper bound on requests in flight at once.",
            "default": 5
          },
          "minRequestInterval": {
            "title": "Min seconds between request starts",
            "minimum": 0,
            "type": "number",
            "description": "Shared pacing floor across every request this run makes. Fox News sets no Crawl-delay in robots.txt, so this default is this portfolio's own politeness baseline rather than a site requirement.",
            "default": 0.25
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy on the shared datacenter pool. That is the default because it is included in your plan at no extra cost and this target needs nothing more: no bot-mitigation gate was seen on any Fox News surface during testing. Switch the group here to Residential only if you start seeing blocks, since Apify bills residential traffic per gigabyte.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}