{
  "openapi": "3.0.1",
  "info": {
    "title": "ReelShort Scraper - Short-Drama Catalog, Cast & Engagement",
    "description": "Scrape the ReelShort vertical short-drama catalog: titles, synopses, themes and full tag taxonomy, episode counts, cast with IMDb links, view and collect counts. Search, curated shelves, genres or paste title links. Resume, incremental updates and MCP export included.",
    "version": "1.0",
    "x-build-id": "zfb9tny86iLJszci1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~reelshort-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-reelshort-com-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/abotapi~reelshort-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-reelshort-com-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/abotapi~reelshort-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-reelshort-com-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "SEARCH",
              "SHELF",
              "GENRE",
              "URLS"
            ],
            "type": "string",
            "description": "How to select titles: keyword SEARCH, curated SHELF walk, GENRE taxonomy walk, or pasted URLS.",
            "default": "SHELF"
          },
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "SEARCH mode only: one or more keywords (e.g. billionaire, werewolf). Each query is walked in order.",
            "items": {
              "type": "string"
            }
          },
          "shelves": {
            "title": "Shelves",
            "type": "array",
            "description": "SHELF mode only: curated homepage shelves to walk. Empty = all ten curated shelves.",
            "items": {
              "type": "string",
              "enum": [
                "new-release",
                "top",
                "reel-original",
                "hidden-identity",
                "love-at-first-sight",
                "second-chance",
                "pregnancy-babies",
                "reelshort-interactives",
                "young-love",
                "reeltalk"
              ]
            }
          },
          "genres": {
            "title": "Genres / tags",
            "type": "array",
            "description": "GENRE mode only: plain genre, trope or actor names (e.g. Affair, Billionaire, Werewolf). Resolved against the site's live tag taxonomy.",
            "items": {
              "type": "string"
            }
          },
          "crawlTagIndex": {
            "title": "Walk the whole tag index",
            "type": "boolean",
            "description": "GENRE mode only: walk every tag in the live taxonomy instead of the genres list above (large crawl — combine with maxTags and maxItems).",
            "default": false
          },
          "maxTags": {
            "title": "Max tags to walk",
            "minimum": 0,
            "type": "integer",
            "description": "GENRE mode with the tag index on: cap how many tags are walked (0 = no cap)."
          },
          "listingUrls": {
            "title": "ReelShort URLs",
            "type": "array",
            "description": "URLS mode only: paste title/episode links (/episodes/...), shelf links (/shelf/...), genre links (/movie-genres/...) or search links (/search?keywords=...). One example of each shape is shown below.",
            "default": [
              "https://www.reelshort.com/episodes/episode-1-daisy-tucker-and-mr-nyc-68955a832bc50c718b009d8d-fxcfjh1dzy",
              "https://www.reelshort.com/shelf/new-release-short-movies-dramas-51003505",
              "https://www.reelshort.com/movie-genres/affair-movies-QWZmYWly",
              "https://www.reelshort.com/search?keywords=billionaire&type=movies",
              "https://www.reelshort.com/movie-genres/all-movies",
              "https://www.reelshort.com/tags/story-beats/affair-movies-676d210e4582b53a14081aeb"
            ],
            "items": {
              "type": "string"
            }
          },
          "fetchDetails": {
            "title": "Enrich each title",
            "type": "boolean",
            "description": "Read every title's page for the full tag taxonomy, cast with IMDb links, video, duration and dates. Off = faster card-only rows.",
            "default": true
          },
          "maxPages": {
            "title": "Max pages per scope",
            "minimum": 0,
            "type": "integer",
            "description": "Cap pages walked per shelf, genre or search (0 = no page cap; maxItems still stops the run)."
          },
          "maxItems": {
            "title": "Max titles",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many titles (0 = no limit). The only cap that stops a run early.",
            "default": 20
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Datacenter connection by default (measured open on every endpoint, works on every plan). Residential is recommended for the most reliable results; the actor escalates to residential automatically when the default is refused (billed to your plan).",
            "default": {
              "useApifyProxy": true
            }
          },
          "resumeFromRunId": {
            "title": "Resume from run",
            "type": "string",
            "description": "Continue an interrupted run: paste its run ID and already-collected titles are skipped."
          },
          "incrementalMode": {
            "title": "Incremental mode",
            "type": "boolean",
            "description": "Track titles across scheduled runs: only NEW, UPDATED and (optionally) EXPIRED rows are emitted.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Custom key for the incremental baseline (empty = derived from the search scope)."
          },
          "emitUnchanged": {
            "title": "Emit unchanged rows",
            "type": "boolean",
            "description": "In incremental mode, also emit rows that did not change since the previous run.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired rows",
            "type": "boolean",
            "description": "In incremental mode, emit a tombstone row for titles that disappeared from the scope.",
            "default": false
          },
          "ignoreFieldsForChanges": {
            "title": "Ignore fields when detecting changes (incremental mode only)",
            "type": "array",
            "description": "Extra field names excluded from incremental change detection (counters and rotations are ignored by default).",
            "items": {
              "type": "string"
            }
          },
          "mcpConnectors": {
            "title": "Export connectors",
            "type": "array",
            "description": "Send collected rows into your apps (Notion and more) after the run. Fail-safe: export never fails the run.",
            "items": {
              "type": "string"
            }
          },
          "notionParentPageUrl": {
            "title": "Notion parent page URL",
            "type": "string",
            "description": "Notion export target: paste the parent page URL."
          },
          "maxNotifyListings": {
            "title": "Max exported listings",
            "minimum": 0,
            "type": "integer",
            "description": "Cap rows sent to connectors per run.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}