{
  "openapi": "3.0.1",
  "info": {
    "title": "PrizePicks Player Props Scraper - Lines & Line Moves",
    "description": "For DFS and betting models: every PrizePicks player prop as a row - player, team, stat, line, standard/demon/goblin, over-only or both sides, start time. 9,455 lines in 23 leagues in one request (2026-09-28). Monitoring returns only lines that moved, with the earlier value.",
    "version": "0.1",
    "x-build-id": "WBI4r0N6AJqXYx5L5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~prizepicks-player-props-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-prizepicks-player-props-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/neverempty~prizepicks-player-props-scraper/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-prizepicks-player-props-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/neverempty~prizepicks-player-props-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-prizepicks-player-props-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": {
          "leagues": {
            "title": "Only these leagues",
            "type": "array",
            "description": "PrizePicks league names, as PrizePicks writes them - for example NFL, NBA, MLB, WNBA, NHL, SOCCER, TENNIS, CS2, VAL, NFL1H, NFL1Q, NBASZN. Case does not matter. Leave empty for every league on the board. Each name is checked against PrizePicks' own league list before anything is asked; a name PrizePicks does not have comes back as a free row that lists the leagues with lines right now. On 2026-09-28, 24 of PrizePicks' 138 leagues carried lines.",
            "items": {
              "type": "string"
            }
          },
          "players": {
            "title": "Only these players",
            "type": "array",
            "description": "Keep a line only if the player's name contains one of these (case-insensitive, partial). Example: Saquon Barkley, Hurts.",
            "items": {
              "type": "string"
            }
          },
          "stats": {
            "title": "Only these stats",
            "type": "array",
            "description": "Keep a line only if the stat contains one of these (case-insensitive, partial). Examples: Pass Yards, Anytime TDs, Shots On Target, Total Bases, Pts+Rebs+Asts.",
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "title": "Only these teams",
            "type": "array",
            "description": "Keep a line only if the player's team, team name or market, PrizePicks' description (usually the opponent) or the game's home or away team contains one of these (case-insensitive, partial). Examples: PHI, Eagles, Dallas. Lines with no team information at all are dropped when this is set.",
            "items": {
              "type": "string"
            }
          },
          "oddsTypes": {
            "title": "Only these odds types",
            "type": "array",
            "description": "standard, demon (harder to hit, higher payout) or goblin (easier to hit, lower payout). Leave empty for all three. On 2026-09-28: 6,525 demon, 1,646 goblin and 1,284 standard of 9,455 lines.",
            "items": {
              "type": "string",
              "enum": [
                "standard",
                "demon",
                "goblin"
              ],
              "enumTitles": [
                "Standard",
                "Demon",
                "Goblin"
              ]
            }
          },
          "onlyBothSides": {
            "title": "Only lines that offer both More and Less",
            "type": "boolean",
            "description": "Keep only lines PrizePicks marks as under_or_over. Lines marked over-only are dropped, and so are lines where PrizePicks does not say (1,291 of 9,455 on 2026-09-28), because unknown is not the same as both sides.",
            "default": false
          },
          "excludeLiveLines": {
            "title": "Leave out live lines",
            "type": "boolean",
            "description": "Drop lines PrizePicks marks as live (18 of 9,455 on 2026-09-28).",
            "default": false
          },
          "excludeCombos": {
            "title": "Leave out combo lines",
            "type": "boolean",
            "description": "Drop lines that add up two or more players (for example 'Jalen Hurts + Case Keenum'; 75 of 9,455 on 2026-09-28).",
            "default": false
          },
          "startsWithinHours": {
            "title": "Only games starting within this many hours",
            "minimum": 0,
            "maximum": 8760,
            "type": "integer",
            "description": "Keep a line only if its game starts within this many hours from now. 0 = no limit. In monitoring mode, lines outside the window are not remembered, so a line is offered as new on the first run in which its game enters the window. Lines with no start time are kept.",
            "default": 0
          },
          "maxLines": {
            "title": "Maximum lines to return",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "How many rows this run may return and charge for. The whole board was 9,455 to 9,636 lines on 2026-09-28, so raise this to receive all of it. When more lines match, a free row says how many were left; in monitoring mode the lines that were not returned are not remembered, so they are offered again next time.",
            "default": 1000
          },
          "monitoringMode": {
            "title": "Monitoring mode: return only lines that changed",
            "type": "boolean",
            "description": "Off = return the board as it stands now. On = remember the line, odds type, sides, status, flash-sale line and start time already returned for this input and, on later runs, return a line again only when one of them has actually changed - with the previous value, the first value ever seen and the difference in the same row. Measured on 2026-09-28: 15 minutes apart, 140 of 9,455 lines (1.5%) were new or had changed.",
            "default": false
          },
          "resetMonitoringState": {
            "title": "Forget what was already returned",
            "type": "boolean",
            "description": "Clear the remembered values for this exact input before the run, so every line counts as new again.",
            "default": false
          },
          "onlyLineMoves": {
            "title": "Only lines whose number moved",
            "type": "boolean",
            "description": "Monitoring mode only. Drop changes where only the odds type, sides, status or start time changed, and keep the ones where the line itself moved (for example 169.5 to 179.5). Lines seen for the first time are kept. A change held back this way is not recorded as delivered, so the line comes back when its number does move.",
            "default": false
          },
          "minLineMove": {
            "title": "Minimum line move",
            "minimum": 0,
            "maximum": 10000,
            "type": "number",
            "description": "Monitoring mode only. Keep a line only if it has moved at least this far from the value returned last time, in either direction. 0 = no limit. Lines with no previous value are kept. A line held back because it has not moved far enough is not recorded as delivered, so its movement keeps adding up until it passes this number.",
            "default": 0
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep a line only if one (Any) or all (All) of these appear in the player, team, description, stat, league, position, period or home/away team.",
            "items": {
              "type": "string"
            }
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "Any = at least one keyword. All = every keyword.",
            "default": "any"
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop a line if any of these appear in the same fields.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}