{
  "openapi": "3.0.1",
  "info": {
    "title": "FantasyPros NFL Projections, ADP & Rankings Scraper",
    "description": "Scrape FantasyPros consensus NFL projections, ADP (Average Draft Position), and expert consensus rankings for all positions and scoring formats. Collect weekly projected stats, projected fantasy points, ADP across draft formats, and tier-based rankings with best/worst/std-dev expert spread.",
    "version": "0.1",
    "x-build-id": "zhnztbJpSgVzJcwXg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jungle_synthesizer~fantasypros-nfl-projections-adp-rankings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jungle_synthesizer-fantasypros-nfl-projections-adp-rankings-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/jungle_synthesizer~fantasypros-nfl-projections-adp-rankings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-jungle_synthesizer-fantasypros-nfl-projections-adp-rankings-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/jungle_synthesizer~fantasypros-nfl-projections-adp-rankings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-jungle_synthesizer-fantasypros-nfl-projections-adp-rankings-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",
        "required": [
          "maxItems"
        ],
        "properties": {
          "sp_intended_usage": {
            "title": "What is the intended usage of this data?",
            "minLength": 1,
            "type": "string",
            "description": "What will this data feed? E.g. lead lists, KYB checks, price tracking."
          },
          "sp_improvement_suggestions": {
            "title": "How can we improve this crawler for you?",
            "minLength": 1,
            "type": "string",
            "description": "Provide any feedback or suggestions for improvements."
          },
          "sp_contact": {
            "title": "Contact email (optional)",
            "minLength": 1,
            "type": "string",
            "description": "We'll personally help with your use case. No spam."
          },
          "resumeCursor": {
            "title": "Resume cursor (continue a previous run)",
            "type": "string",
            "description": "Leave empty for a fresh crawl. To CONTINUE a previous run where it stopped — without paying again for records you already received — paste the `resumeCursor` value from that run's Output (the run's OUTPUT key). Resume promptly: the previous run's data expires with your account's retention window (free tier: your ~10 most recent runs)."
          },
          "maxItems": {
            "title": "Max Items",
            "type": "integer",
            "description": "Maximum number of records to scrape (0 = unlimited). This is an upper bound only — it cannot raise the yield above what FantasyPros serves. Logged-out projections pages are capped at 10 players per position and ADP boards at 5 rows by a site-side registration fence; rankings are unaffected and return the full board."
          },
          "fantasyProsApiKey": {
            "title": "FantasyPros API Key (optional)",
            "type": "string",
            "description": "Your own FantasyPros API key. Supply one to pull the FULL projections and ADP boards from the official FantasyPros API instead of the public pages, which FantasyPros caps at 10 projections rows per position and 5 ADP rows for signed-out visitors. A FantasyPros HOF subscription includes a personal production key; free keys return only a sample slice. Leave blank to use the public pages. Get a key at https://www.fantasypros.com/api-data/"
          },
          "season": {
            "title": "Season",
            "minimum": 2015,
            "maximum": 2100,
            "type": "integer",
            "description": "Season year, used only when an API key is supplied. Defaults to the current NFL season (the league year rolls over in March, so January and February resolve to the previous year)."
          },
          "dataType": {
            "title": "Data Type",
            "enum": [
              "projections",
              "adp",
              "rankings"
            ],
            "type": "string",
            "description": "Which data to scrape: \"projections\" (weekly player projections), \"adp\" (average draft position), or \"rankings\" (consensus expert rankings). Defaults to \"projections\"."
          },
          "positions": {
            "title": "Positions",
            "type": "array",
            "description": "Player positions to include. Valid values: QB, RB, WR, TE, K, DST. Defaults to all positions. Not used for ADP (covers all positions).",
            "items": {
              "type": "string"
            }
          },
          "scoringFormat": {
            "title": "Scoring Format",
            "enum": [
              "STD",
              "HALF",
              "PPR"
            ],
            "type": "string",
            "description": "Scoring format: \"STD\" (standard), \"HALF\" (half-PPR), or \"PPR\" (full PPR). Defaults to \"STD\". Used for projections and rankings."
          },
          "week": {
            "title": "Week",
            "minimum": 0,
            "maximum": 18,
            "type": "integer",
            "description": "NFL week number (1-18) for projections and rankings. Defaults to current week. Set to 0 for season-long (rest-of-season) projections."
          },
          "adpFormat": {
            "title": "ADP Format",
            "enum": [
              "overall",
              "ppr-overall",
              "half-point-ppr-overall",
              "dynasty-overall",
              "half-ppr-overall"
            ],
            "type": "string",
            "description": "ADP draft board: \"overall\" (standard), \"ppr-overall\" (full PPR), \"half-point-ppr-overall\" (half PPR), or \"dynasty-overall\". Defaults to \"overall\". \"half-ppr-overall\" is the legacy name for \"half-point-ppr-overall\" and is still accepted. Note: FantasyPros serves only a 5-row preview of ADP boards to logged-out clients — the full board is account-gated."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}