{
  "openapi": "3.0.1",
  "info": {
    "title": "Cardmarket Listings Scraper - Live Offers, Stock & Prices",
    "description": "Cardmarket listings scraper and deal finder in one: every live offer of the cards you search (price, condition, language, ship-from country), or only offers 25%+ under the official trend price - condition- and language-aware. Pokémon, Magic, Yu-Gi-Oh!, Lorcana and 11 more. No seller data.",
    "version": "0.1",
    "x-build-id": "f2TDKeBRC6kpxmlnv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lowlanddata~cardmarket-deal-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lowlanddata-cardmarket-deal-finder",
        "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/lowlanddata~cardmarket-deal-finder/runs": {
      "post": {
        "operationId": "runs-sync-lowlanddata-cardmarket-deal-finder",
        "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/lowlanddata~cardmarket-deal-finder/run-sync": {
      "post": {
        "operationId": "run-sync-lowlanddata-cardmarket-deal-finder",
        "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": [
          "searchQuery"
        ],
        "properties": {
          "game": {
            "title": "Game",
            "enum": [
              "pokemon",
              "magic",
              "yugioh",
              "lorcana",
              "onepiece",
              "digimon",
              "fleshandblood",
              "starwarsunlimited",
              "dragonballsuper",
              "finalfantasy",
              "weissschwarz",
              "cardfightvanguard",
              "battlespiritssaga",
              "riftbound",
              "forceofwill",
              "dragoborne",
              "cyberpunk"
            ],
            "type": "string",
            "description": "Which trading card game to hunt deals in.",
            "default": "pokemon"
          },
          "searchQuery": {
            "title": "Card search",
            "type": "string",
            "description": "<b>Required.</b> One or two distinctive words work best. For single cards: \"charizard\", \"umbreon vmax\", \"black lotus\". For sealed products, search the <b>set name as Cardmarket writes it</b> - it often differs from the name on the box (Disney Lorcana's first set is \"The First Chapter\", not \"Chapter 1\"). If nothing matches, the run tells you the closest names it found."
          },
          "productType": {
            "title": "Products",
            "enum": [
              "cards",
              "sealed",
              "both"
            ],
            "type": "string",
            "description": "Single cards, or the sealed products Cardmarket lists in the same catalogue: booster boxes (displays), boosters, elite trainer boxes, tins, box sets and more. Sealed offers carry no condition, so the minimum condition below is ignored for them.",
            "default": "cards"
          },
          "minDiscountPct": {
            "title": "Min discount vs trend (%)",
            "minimum": 0,
            "maximum": 90,
            "type": "integer",
            "description": "An offer counts as a deal when it undercuts the card's trend price by at least this much. Set 0 for listings mode: every offer of the matched products, like a classic Cardmarket scraper (minus seller data).",
            "default": 25
          },
          "minCondition": {
            "title": "Minimum condition",
            "enum": [
              "MT",
              "NM",
              "EX",
              "GD",
              "LP",
              "PL",
              "PO"
            ],
            "type": "string",
            "description": "Ignore offers below this condition - a cheap damaged card is not a deal.",
            "default": "EX"
          },
          "languages": {
            "title": "Card languages",
            "type": "array",
            "description": "Only count offers in these languages. Japanese and Korean prints trade far below the trend price, so mixing them in fakes discounts. Empty = all languages.",
            "default": [
              "English",
              "German",
              "French",
              "Italian",
              "Spanish"
            ]
          },
          "priceMinEur": {
            "title": "Min trend price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip cards whose trend price is below this - filters bulk noise.",
            "default": 2
          },
          "priceMaxEur": {
            "title": "Max trend price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip cards whose trend price is above this."
          },
          "maxProducts": {
            "title": "Products to check",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many candidate products to open and inspect per run.",
            "default": 10
          },
          "maxItems": {
            "title": "Max deals",
            "minimum": 1,
            "type": "integer",
            "description": "Upper bound on delivered deal rows.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Cardmarket requires Apify's Site Unblocker proxy (the UNBLOCKER group, preset here).",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "UNBLOCKER"
              ]
            }
          },
          "reportFailures": {
            "title": "Report failures to the developer",
            "type": "boolean",
            "description": "When a run fails, send the developer the actor name and build, an error category, the error message (truncated) and a one-way hash of your input - so a bug can be fixed without anyone asking you to reproduce it. <b>Your input itself, your results and your identity are never sent, and successful runs send nothing at all.</b> Switch this off and the actor behaves exactly the same.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}