{
  "openapi": "3.0.1",
  "info": {
    "title": "BoardGameGeek Scraper",
    "description": "Scrape BoardGameGeek, ratings, mechanics, categories, designers, publishers, weights, ranks. Search games, fetch by ID, browse the hot list, look up user profiles. No login required.",
    "version": "1.0",
    "x-build-id": "kuRy5FIbdSvgviRlC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~boardgamegeek-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-boardgamegeek-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/crawlerbros~boardgamegeek-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-boardgamegeek-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/crawlerbros~boardgamegeek-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-boardgamegeek-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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "byIds",
              "hot",
              "userProfile"
            ],
            "type": "string",
            "description": "What to fetch from BoardGameGeek.",
            "default": "hot"
          },
          "searchQuery": {
            "title": "Search query (mode=search)",
            "type": "string",
            "description": "Free-text keyword (matches game name).",
            "default": "catan"
          },
          "gameIds": {
            "title": "Game IDs (mode=byIds)",
            "type": "array",
            "description": "BGG game IDs (integers or `https://boardgamegeek.com/boardgame/<id>/<slug>` URLs).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "username": {
            "title": "Username (mode=userProfile)",
            "type": "string",
            "description": "BGG username, e.g. `Aldie`, `tomvasel`. Lookup is public.",
            "default": ""
          },
          "enrichHot": {
            "title": "Enrich hot list with full details",
            "type": "boolean",
            "description": "When mode=hot, fetch full game details (ratings/mechanics/etc.) for each hot item. Slower but produces complete records.",
            "default": true
          },
          "gameType": {
            "title": "Game type filter",
            "enum": [
              "boardgame",
              "boardgameexpansion",
              "boardgameaccessory",
              "videogame",
              "rpgitem",
              "rpgissue"
            ],
            "type": "string",
            "description": "Restrict results to a specific BGG game type."
          },
          "minYear": {
            "title": "Minimum year published",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Drop games published before this year."
          },
          "maxYear": {
            "title": "Maximum year published",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Drop games published after this year."
          },
          "minRating": {
            "title": "Minimum average rating (0–10)",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Drop games with average rating below this. BGG ratings are 0–10. Decimals may be entered as integers (e.g. enter 7 for >=7.0)."
          },
          "maxRating": {
            "title": "Maximum average rating (0–10)",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Drop games with average rating above this."
          },
          "minPlayers": {
            "title": "Minimum supported players",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Game must support at least this many players (no overlap with [min,max] excludes)."
          },
          "maxPlayers": {
            "title": "Maximum supported players",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Game must support no more than this many players."
          },
          "minPlaytime": {
            "title": "Minimum playing time (minutes)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Drop games with playing time shorter than this."
          },
          "maxPlaytime": {
            "title": "Maximum playing time (minutes)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Drop games with playing time longer than this."
          },
          "minAge": {
            "title": "Minimum recommended age",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Drop games with recommended age below this."
          },
          "categories": {
            "title": "Categories (match any)",
            "type": "array",
            "description": "Restrict to games tagged with ANY of these categories. Common BGG categories listed. Note: BGG distinguishes Categories (genre tags like \"Wargame\", \"Abstract Strategy\", \"Card Game\") from Families (such as \"Strategy Games\", \"Card Drafting\", \"Cooperative Games\"). Use one of the canonical Categories from the dropdown above. To filter by Family-style genres, leave this empty and use `searchQuery` instead.",
            "items": {
              "type": "string",
              "enum": [
                "Abstract Strategy",
                "Adventure",
                "Age of Reason",
                "American Civil War",
                "American Indian Wars",
                "American Revolutionary War",
                "American West",
                "Ancient",
                "Animals",
                "Arabian",
                "Aviation / Flight",
                "Bluffing",
                "Book",
                "Card Game",
                "Children's Game",
                "City Building",
                "Civil War",
                "Civilization",
                "Collectible Components",
                "Comic Book / Strip",
                "Deduction",
                "Dice",
                "Economic",
                "Educational",
                "Electronic",
                "Environmental",
                "Expansion for Base-game",
                "Exploration",
                "Fantasy",
                "Farming",
                "Fighting",
                "Game System",
                "Horror",
                "Humor",
                "Industry / Manufacturing",
                "Korean War",
                "Mafia",
                "Math",
                "Mature / Adult",
                "Maze",
                "Medical",
                "Medieval",
                "Memory",
                "Miniatures",
                "Modern Warfare",
                "Movies / TV / Radio theme",
                "Murder/Mystery",
                "Mythology",
                "Napoleonic",
                "Nautical",
                "Negotiation",
                "Novel-based",
                "Number",
                "Party Game",
                "Pike and Shot",
                "Pirates",
                "Political",
                "Post-Napoleonic",
                "Prehistoric",
                "Print & Play",
                "Puzzle",
                "Racing",
                "Real-time",
                "Religious",
                "Renaissance",
                "Science Fiction",
                "Space Exploration",
                "Spies/Secret Agents",
                "Sports",
                "Territory Building",
                "Trains",
                "Transportation",
                "Travel",
                "Trivia",
                "Video Game Theme",
                "Vietnam War",
                "Wargame",
                "Word Game",
                "World War I",
                "World War II",
                "Zombies"
              ]
            }
          },
          "mechanics": {
            "title": "Mechanics (match any)",
            "type": "array",
            "description": "Restrict to games with ANY of these mechanics. Common BGG mechanics listed.",
            "items": {
              "type": "string",
              "enum": [
                "Acting",
                "Action Drafting",
                "Action Points",
                "Action Queue",
                "Action Retrieval",
                "Action Timer",
                "Action/Event",
                "Advantage Token",
                "Area Majority / Influence",
                "Area Movement",
                "Area-Impulse",
                "Auction/Bidding",
                "Automatic Resource Growth",
                "Betting and Bluffing",
                "Bias",
                "Bingo",
                "Bribery",
                "Campaign / Battle Card Driven",
                "Card Drafting",
                "Card Play Conflict Resolution",
                "Catch the Leader",
                "Chaining",
                "Chit-Pull System",
                "Closed Drafting",
                "Closed Economy Auction",
                "Commodity Speculation",
                "Communication Limits",
                "Connections",
                "Constrained Bidding",
                "Contracts",
                "Cooperative Game",
                "Crayon Rail System",
                "Critical Hits and Failures",
                "Cube Tower",
                "Deck Construction",
                "Deck, Bag, and Pool Building",
                "Deduction",
                "Delayed Purchase",
                "Dice Rolling",
                "Die Icon Resolution",
                "Drafting",
                "Drawing",
                "Elapsed Real Time Ending",
                "Enclosure",
                "End Game Bonuses",
                "Engine Building",
                "Events",
                "Finale Ending",
                "Flicking",
                "Force Commitment",
                "Grid Coverage",
                "Grid Movement",
                "Hand Management",
                "Hexagon Grid",
                "Hidden Movement",
                "Hidden Roles",
                "Hidden Victory Points",
                "Highest-Lowest Scoring",
                "Hot Potato",
                "I Cut, You Choose",
                "Income",
                "Increase Value of Unchosen Resources",
                "Induction",
                "Investment",
                "Kill Steal",
                "King of the Hill",
                "Ladder Climbing",
                "Layering",
                "Legacy Game",
                "Line Drawing",
                "Line of Sight",
                "Loans",
                "Lose a Turn",
                "Mancala",
                "Map Addition",
                "Map Deformation",
                "Map Reduction",
                "Market",
                "Matching",
                "Measurement Movement",
                "Melding and Splaying",
                "Memory",
                "Minimap Resolution",
                "Modular Board",
                "Move Through Deck",
                "Movement Points",
                "Movement Template",
                "Moving Multiple Units",
                "Multi-Use Cards",
                "Multiple Maps",
                "Narrative Choice / Paragraph",
                "Negotiation",
                "Network and Route Building",
                "Once-Per-Game Abilities",
                "Open Drafting",
                "Order Counters",
                "Ownership",
                "Paper-and-Pencil",
                "Passed Action Token",
                "Pattern Building",
                "Pattern Movement",
                "Pattern Recognition",
                "Physical Removal",
                "Pick-up and Deliver",
                "Pieces as Map",
                "Player Elimination",
                "Player Judge",
                "Point to Point Movement",
                "Predictive Bid",
                "Programmed Movement",
                "Push Your Luck",
                "Race",
                "Random Production",
                "Real-Time",
                "Relative Movement",
                "Re-rolling and Locking",
                "Resource to Move",
                "Rock-Paper-Scissors",
                "Role Playing",
                "Roles with Asymmetric Information",
                "Roll / Spin and Move",
                "Rondel",
                "Scenario / Mission / Campaign Game",
                "Score-and-Reset Game",
                "Secret Unit Deployment",
                "Selection Order Bid",
                "Semi-Cooperative Game",
                "Set Collection",
                "Simulation",
                "Simultaneous Action Selection",
                "Singing",
                "Single Loser Game",
                "Slide/Push",
                "Solo / Solitaire Game",
                "Speed Matching",
                "Spelling",
                "Square Grid",
                "Stacking and Balancing",
                "Stat Check Resolution",
                "Static Capture",
                "Stock Holding",
                "Storytelling",
                "Sudden Death Ending",
                "Take That",
                "Targeted Clues",
                "Team-Based Game",
                "Tech Trees / Tech Tracks",
                "Three Dimensional Movement",
                "Tile Placement",
                "Time Track",
                "Track Movement",
                "Trading",
                "Traitor Game",
                "Trick-taking",
                "Tug of War",
                "Turn Order: Auction",
                "Turn Order: Claim Action",
                "Turn Order: Pass Order",
                "Turn Order: Progressive",
                "Turn Order: Random",
                "Turn Order: Role Order",
                "Turn Order: Stat-Based",
                "Turn Order: Time Track",
                "Variable Phase Order",
                "Variable Player Powers",
                "Variable Set-up",
                "Victory Points as a Resource",
                "Voting",
                "Worker Placement",
                "Worker Placement with Dice Workers",
                "Worker Placement, Different Worker Types",
                "Zone of Control"
              ]
            }
          },
          "containsKeyword": {
            "title": "Contains keyword",
            "type": "string",
            "description": "Drop games whose name, description, or alternate names do not contain this substring (case-insensitive)."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}