{
  "openapi": "3.0.1",
  "info": {
    "title": "Covers.com Odds, Line History & Betting Trends Scraper",
    "description": "Scrapes Covers.com games for NFL, NBA, MLB, NHL and college leagues: odds from many sportsbooks (spread, total, moneyline), opening lines, line movement history, public betting percentages, trends, injuries and standings.",
    "version": "1.0",
    "x-build-id": "Vatv09VjPfz1FaPpw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/confidential_gnat~covers-odds-trends-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-confidential_gnat-covers-odds-trends-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/confidential_gnat~covers-odds-trends-scraper/runs": {
      "post": {
        "operationId": "runs-sync-confidential_gnat-covers-odds-trends-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/confidential_gnat~covers-odds-trends-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-confidential_gnat-covers-odds-trends-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": {
          "startUrls": {
            "title": "Covers.com page URLs",
            "type": "array",
            "description": "Covers.com league odds pages (https://www.covers.com/sport/football/nfl/odds), game pages (https://www.covers.com/sport/football/nfl/matchup/379626), schedule pages (https://www.covers.com/sports/nfl/matchups?selectedDate=2026-10-11) or standings pages. Leave empty to use the leagues below.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "cacheProjectName": {
            "title": "Cache project name",
            "type": "string",
            "description": "Only affects finished games (past dates, schedule pages, game pages of games already played). Games finished and scraped under this project name are skipped, not charged and not counted towards Max items, and new ones get changeType: new. Live odds are never cached. Leave empty to scrape everything."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum games per start URL, or per league when searching by league. Standings always return the full table.",
            "default": 5
          },
          "leagues": {
            "title": "Leagues",
            "type": "array",
            "description": "Leagues to scrape upcoming games for (or the dates below). Leave empty to use NFL when no start URL is given.",
            "items": {
              "type": "string",
              "enum": [
                "nfl",
                "ncaaf",
                "cfl",
                "nba",
                "ncaab",
                "wnba",
                "mlb",
                "nhl",
                "premier-league",
                "mls",
                "champions-league"
              ],
              "enumTitles": [
                "NFL",
                "NCAA football",
                "CFL",
                "NBA",
                "NCAA basketball",
                "WNBA",
                "MLB",
                "NHL",
                "Premier League (odds only)",
                "MLS (odds only)",
                "Champions League (odds only)"
              ]
            },
            "default": []
          },
          "dateFrom": {
            "title": "Schedule date from",
            "type": "string",
            "description": "First day (YYYY-MM-DD) to read the game schedule for, for example 2026-10-11. Past days return finished games with final scores. Without a date, the current odds page is used."
          },
          "dateTo": {
            "title": "Schedule date to",
            "type": "string",
            "description": "Last day (YYYY-MM-DD), at most 31 days after the start date. Defaults to the start date."
          },
          "dataTypes": {
            "title": "Data types",
            "type": "array",
            "description": "What each game contains: odds (prices per sportsbook and opening lines), consensus (public betting percentages), lineHistory (every line change per book), trends, injuries, weather (hourly forecast for NFL, NCAAF, CFL and MLB), headToHead (series record and last meetings), playerProps (Covers projections for player props, spread and total with best odds per book; NFL, NCAAF, NBA, NCAAB, MLB, NHL). standings, futures (title and division odds per team and book) and leagueTrends (season ATS, straight-up and over/under records) add league-level rows for each league. Leave empty for odds only.",
            "items": {
              "type": "string",
              "enum": [
                "odds",
                "consensus",
                "lineHistory",
                "trends",
                "injuries",
                "standings",
                "weather",
                "headToHead",
                "playerProps",
                "futures",
                "leagueTrends"
              ],
              "enumTitles": [
                "Odds and opening lines",
                "Consensus / public betting %",
                "Line movement history",
                "Betting trends",
                "Injuries",
                "Standings",
                "Weather forecast (outdoor leagues)",
                "Head-to-head history",
                "Player props and projections",
                "Futures odds (league level)",
                "League betting trends (league level)"
              ]
            },
            "default": []
          },
          "countryCode": {
            "title": "Proxy country",
            "enum": [
              "US",
              "CA",
              "GB"
            ],
            "type": "string",
            "description": "Covers.com shows different sportsbooks depending on the visitor country. US shows DraftKings, FanDuel, BetMGM, Caesars, bet365 and more; other countries show their local books. Applies when Apify Proxy is enabled.",
            "default": "US"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy with a US IP is on by default because the list of sportsbooks depends on the visitor country, not because the site blocks scrapers. Without a proxy only your own country's books are returned.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}