{
  "openapi": "3.0.1",
  "info": {
    "title": "CNN Galleries & Live Stories Scraper",
    "description": "Collects CNN photo galleries with every image, caption and credit, and live blogs with their full timeline of updates, from CNN US, International and en Espanol -- including an archive of 1,587 gallery and 546 live-story monthly partitions back to 2015.",
    "version": "0.1",
    "x-build-id": "EsNr95T78vNgguFJ1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapyx~cnn-galleries-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapyx-cnn-galleries-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~cnn-galleries-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapyx-cnn-galleries-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~cnn-galleries-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapyx-cnn-galleries-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": {
          "editions": {
            "title": "CNN editions",
            "type": "array",
            "description": "Only CNN US, International and en Espanol publish photo galleries or live stories. The other nine editions are listed here so that asking for one returns a clear ERROR row naming why, rather than a silent miss.",
            "items": {
              "type": "string",
              "enum": [
                "us",
                "intl",
                "espanol",
                "arabic",
                "brasil",
                "indonesia",
                "chile",
                "greece",
                "czech",
                "portugal",
                "japan",
                "turkiye"
              ],
              "enumTitles": [
                "CNN US (has galleries)",
                "CNN International (has galleries)",
                "CNN en Espanol (has galleries)",
                "CNN Arabic (NONE)",
                "CNN Brasil (NONE)",
                "CNN Indonesia (NONE)",
                "CNN Chile (NONE)",
                "CNN Greece (NONE)",
                "CNN Prima News (NONE)",
                "CNN Portugal (NONE)",
                "CNN.co.jp (NONE)",
                "CNN Turk (NONE)"
              ]
            },
            "default": [
              "us"
            ]
          },
          "contentKinds": {
            "title": "What to collect",
            "type": "array",
            "description": "Photo galleries, live blogs, or both in one run. Each gets its own SEARCH_SUMMARY row and its own record type, because their fields do not overlap: a gallery carries a photo list, a live story carries a timeline of updates.",
            "items": {
              "type": "string",
              "enum": [
                "gallery",
                "liveStory"
              ],
              "enumTitles": [
                "Photo galleries",
                "Live stories / live blogs"
              ]
            },
            "default": [
              "gallery"
            ]
          },
          "sections": {
            "title": "Sections",
            "type": "array",
            "description": "Optional. Narrows which archive partitions are read -- CNN partitions galleries and live stories by section and month (world, politics, style and so on). Run the CNN Sections Scraper to list the valid values for an edition.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keyword filter (client-side)",
            "type": "array",
            "description": "Optional. Keep only items whose title, description, photo captions or live-blog update text contains one of these words (case-insensitive, OR-combined). Applied after fetching.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItemsPerEdition": {
            "title": "Max items per edition",
            "minimum": 0,
            "type": "integer",
            "description": "Cap on galleries or live stories returned per edition per kind. Each item costs one detail request, and a single live story can carry 40+ updates, so keep this modest. Set to 0 for unlimited.",
            "default": 15
          },
          "includeArchive": {
            "title": "Include archive (older items)",
            "type": "boolean",
            "description": "Read more archive partitions per edition. CNN US partitions galleries into 1,587 monthly files and live stories into 546, back to 2015. Off by default, which reads only the three newest partitions.",
            "default": false
          },
          "maxArchivePartitions": {
            "title": "Max archive partitions per edition",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many partition files to read per edition when 'Include archive' is on, newest first. Ignored when it is off.",
            "default": 12
          },
          "dateFrom": {
            "title": "Published from (YYYY-MM-DD)",
            "type": "string",
            "description": "Optional lower bound on publish date, inclusive. Also skips whole archive partitions whose month falls outside the range."
          },
          "dateTo": {
            "title": "Published to (YYYY-MM-DD)",
            "type": "string",
            "description": "Optional upper bound on publish date, inclusive. Same partition-skipping behaviour as 'Published from'."
          },
          "maxConcurrency": {
            "title": "Max concurrent requests",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Upper bound on requests in flight at once across all editions in this run.",
            "default": 5
          },
          "minRequestInterval": {
            "title": "Min seconds between request starts",
            "minimum": 0,
            "type": "number",
            "description": "Shared pacing floor across every request this run makes. Once this cap binds, raising concurrency buys nothing.",
            "default": 0.25
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy on the shared datacenter pool. This is the default because it is included in your plan at no extra cost and this target works through it. If you start seeing blocks, challenges or empty results, switch the group here to Residential -- it uses real consumer IPs and gets through more, but Apify bills residential traffic per gigabyte, so leave it off unless you need it.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}