{
  "openapi": "3.0.1",
  "info": {
    "title": "CheapShark Game Deals Scraper",
    "description": "Search current CheapShark PC game deals across stores and export IDs, regular and sale prices, savings, ratings, timestamps, thumbnails, and deal links.",
    "version": "0.1",
    "x-build-id": "pnsvb8fDYPTNNaowi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation-lab~cheapshark-pc-game-deals/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation-lab-cheapshark-pc-game-deals",
        "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/automation-lab~cheapshark-pc-game-deals/runs": {
      "post": {
        "operationId": "runs-sync-automation-lab-cheapshark-pc-game-deals",
        "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/automation-lab~cheapshark-pc-game-deals/run-sync": {
      "post": {
        "operationId": "run-sync-automation-lab-cheapshark-pc-game-deals",
        "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": {
          "searchQueries": {
            "title": "Game title searches",
            "maxItems": 20,
            "type": "array",
            "description": "Optional CheapShark title searches, processed in order (ANY search may produce a deal). Whitespace is trimmed and duplicate queries removed; title matching follows CheapShark, not exact whole-title equality. Leave empty for the current deal feed. Store and other filters apply in both modes.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "default": []
          },
          "storeIds": {
            "title": "CheapShark store IDs",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional CheapShark store IDs to include, such as 1 for Steam and 7 for GOG. Leave empty for all stores.",
            "items": {
              "type": "string",
              "pattern": "^[0-9]+$"
            },
            "default": []
          },
          "minPrice": {
            "title": "Minimum sale price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Only return deals at or above this sale price."
          },
          "maxPrice": {
            "title": "Maximum sale price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Only return deals at or below this sale price.",
            "default": 50
          },
          "minimumSavings": {
            "title": "Minimum savings (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Minimum percentage discount from the regular price.",
            "default": 0
          },
          "minimumMetacriticScore": {
            "title": "Minimum Metacritic score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Optional minimum Metacritic score from 0 to 100."
          },
          "minimumSteamRating": {
            "title": "Minimum Steam rating (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Optional minimum positive Steam review percentage from 0 to 100."
          },
          "onlyOnSale": {
            "title": "Only active sales",
            "type": "boolean",
            "description": "Return only records where CheapShark marks the game as on sale.",
            "default": true
          },
          "sortBy": {
            "title": "Sort deals by",
            "enum": [
              "Deal Rating",
              "Title",
              "Savings",
              "Price",
              "Metacritic",
              "Reviews",
              "Release",
              "Store",
              "recent"
            ],
            "type": "string",
            "description": "CheapShark ordering applied before maxItems is reached.",
            "default": "Deal Rating"
          },
          "descending": {
            "title": "Descending order",
            "type": "boolean",
            "description": "Reverse the selected CheapShark sort order.",
            "default": false
          },
          "includeCheapestEver": {
            "title": "Include cheapest-ever price",
            "type": "boolean",
            "description": "Optionally add CheapShark's lowest observed USD price and ISO date across its covered stores. Defaults to false (no extra game requests). When true, eligible games are fetched in batches of at most 25 and cached across searches/pages; this adds latency but no new charge event. Absent source values are null; failed requested lookups fail the run. Not a price-history series or guaranteed market-wide minimum.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum deals",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Global maximum unique deal records saved across all searches/pages after filtering and deduplication (1–1000, default 100). May return fewer on source exhaustion or charge-budget limits; no zero/unlimited mode.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}