{
  "openapi": "3.0.1",
  "info": {
    "title": "PrizePicks Scraper — Player Props, Lines & Projections API",
    "description": "Unofficial PrizePicks API — no key, no login. Scrape live player props, lines, projections, Goblin/Demon odds, flash sales and matchups across NBA, NFL, MLB, NHL, soccer, UFC, esports and every active league. Export to JSON, CSV or Excel for odds models, arbitrage and DFS analytics.",
    "version": "1.0",
    "x-build-id": "2BjI10IRnyefyMiQM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~prizepicks-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-prizepicks-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/logiover~prizepicks-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-prizepicks-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/logiover~prizepicks-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-prizepicks-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": [
              "projections",
              "league",
              "leagues"
            ],
            "type": "string",
            "description": "What to scrape.\n\n• **projections** — the full active PrizePicks board across every league with live lines (highest volume; the default). Rich player-prop rows with lines, odds type, matchup and flash-sale flags.\n• **league** — projections for a single league only (pick from the dropdown or type a league name/id).\n• **leagues** — the leagues catalog: every sport/league PrizePicks offers, with its numeric id, name, rank and current projection count. Handy to discover ids for the `league` mode.",
            "default": "projections"
          },
          "league": {
            "title": "League",
            "enum": [
              "",
              "7",
              "9",
              "2",
              "8",
              "3",
              "6",
              "14",
              "15",
              "20",
              "1",
              "5",
              "4",
              "125",
              "12",
              "42",
              "82",
              "121",
              "124",
              "145",
              "159",
              "161",
              "162",
              "165",
              "174"
            ],
            "type": "string",
            "description": "Restrict **league** mode to one league. Pick a common league here, or use the free-text field below for anything else (e.g. an esports league or a numeric id). Leave empty in `projections` mode to scrape all leagues.",
            "default": ""
          },
          "leagueName": {
            "title": "League name or id (free text)",
            "type": "string",
            "description": "Alternative to the dropdown for **league** mode: type a league name (case-insensitive, e.g. `EuroLeague`, `KBO`, `Champions League`) or a numeric league id. Matched against the live leagues catalog. Leave empty to use the dropdown above."
          },
          "statTypes": {
            "title": "Filter by stat types",
            "type": "array",
            "description": "Keep only projections whose stat type matches one of these (case-insensitive substring), e.g. `Points`, `Rebounds`, `Passing Yards`, `Strikeouts`, `Maps`, `Kills`. Leave empty to keep every stat type. Applies to all projection modes.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "oddsType": {
            "title": "Odds type",
            "enum": [
              "",
              "standard",
              "goblin",
              "demon"
            ],
            "type": "string",
            "description": "Keep only one odds/pick type. Standard = normal line, Goblin = lower/easier line, Demon = higher/harder line (higher payout). Leave as All to keep every type.",
            "default": ""
          },
          "status": {
            "title": "Projection status",
            "enum": [
              "",
              "pre_game",
              "in_progress",
              "final"
            ],
            "type": "string",
            "description": "Keep only projections in this state. `pre_game` = not started, `in_progress` = live, `final` = finished. Leave as All to keep every status.",
            "default": ""
          },
          "promoOnly": {
            "title": "Flash sales / promos only",
            "type": "boolean",
            "description": "When on, keep only promotional projections (flash sales & discounted lines). Great for tracking limited-time boosted picks. Off keeps everything.",
            "default": false
          },
          "includeLiveOnly": {
            "title": "Live projections only",
            "type": "boolean",
            "description": "When on, keep only projections that are currently live / in-game. Off keeps every projection.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Upper bound on rows returned. In `projections` mode this caps how many rows are kept across all leagues; in `league` mode it caps a single league. Raise it to pull the whole board (a busy day yields 1,000–12,000+ projections). `leagues` mode ignores this.",
            "default": 1000
          },
          "perPage": {
            "title": "Per-page size (advanced)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "PrizePicks JSON:API page size used while paginating (1–1000). Larger = fewer requests. Leave at 1000 unless you have a reason to lower it.",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}