{
  "openapi": "3.0.1",
  "info": {
    "title": "TCGplayer Price Trends & Sales Velocity Tracker",
    "description": "TCGplayer card and sealed product prices with 30 and 90 day price change, sales velocity and days of supply per printing.",
    "version": "0.2",
    "x-build-id": "epqeT9jJefGcIaXJj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datagrit~tcgplayer-price-trend-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datagrit-tcgplayer-price-trend-tracker",
        "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/datagrit~tcgplayer-price-trend-tracker/runs": {
      "post": {
        "operationId": "runs-sync-datagrit-tcgplayer-price-trend-tracker",
        "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/datagrit~tcgplayer-price-trend-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-datagrit-tcgplayer-price-trend-tracker",
        "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": "Search terms",
            "type": "array",
            "description": "Card or product names to search on TCGplayer, for example charizard or booster box. Every term is searched separately and a product found twice is returned once. Leave empty to read a whole product line or set.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "productLine": {
            "title": "Game (product line)",
            "enum": [
              "all",
              "pokemon",
              "pokemon-japan",
              "magic",
              "yugioh",
              "lorcana-tcg",
              "one-piece-card-game",
              "flesh-and-blood-tcg",
              "star-wars-unlimited",
              "dragon-ball-super-fusion-world",
              "dragon-ball-super-ccg",
              "digimon-card-game",
              "weiss-schwarz",
              "cardfight-vanguard",
              "union-arena",
              "gundam-card-game",
              "riftbound-league-of-legends-trading-card-game",
              "sorcery-contested-realm",
              "grand-archive",
              "final-fantasy-tcg",
              "universus",
              "force-of-will",
              "shadowverse-evolve",
              "wixoss",
              "metazoo",
              "funko"
            ],
            "type": "string",
            "description": "Limit the search to one trading card game. Choose All games to search every line, which works best together with a search term or a set.",
            "default": "pokemon"
          },
          "setNames": {
            "title": "Sets",
            "type": "array",
            "description": "Optional. Keep only products from these sets, for example Base Set or swsh-crown-zenith. Use the set name as shown on TCGplayer or the last part of the set URL. A set that does not exist in the chosen game stops the run with an error that lists similar names.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "rarities": {
            "title": "Rarities",
            "type": "array",
            "description": "Optional. Keep only these rarities, for example Secret Rare or Special Illustration Rare. Names follow TCGplayer and differ by game.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "productType": {
            "title": "Cards or sealed products",
            "enum": [
              "all",
              "cards",
              "sealed"
            ],
            "type": "string",
            "description": "Single cards and sealed products (booster boxes, packs, decks) are both in the catalogue. Sealed products are the ones sold as Unopened.",
            "default": "all"
          },
          "printings": {
            "title": "Printings",
            "type": "array",
            "description": "Optional. Keep only these printings, for example Normal, Foil, Holofoil or Reverse Holofoil. Every printing has its own price and sales history.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "title": "Languages",
            "type": "array",
            "description": "Optional. Keep only these languages, for example English or Japanese. Leave empty for all languages.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minMarketPrice": {
            "title": "Minimum market price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Keep only printings whose Near Mint market price (Unopened for sealed products) is at least this amount. 0 disables the filter.",
            "default": 0
          },
          "maxMarketPrice": {
            "title": "Maximum market price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Keep only printings whose market price is at most this amount. 0 disables the filter.",
            "default": 0
          },
          "minSold30d": {
            "title": "Minimum units sold in 30 days",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only printings that sold at least this many units in the last 30 days at the main condition. Use it to drop cards nobody buys. 0 disables the filter.",
            "default": 0
          },
          "minSold90d": {
            "title": "Minimum units sold in 90 days",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only printings that sold at least this many units in the last 90 days at the main condition. 0 disables the filter.",
            "default": 0
          },
          "minPriceChange30dPct": {
            "title": "Minimum 30-day price change (%)",
            "type": "number",
            "description": "Optional. Keep only printings whose market price rose at least this many percent over the last 30 days. Enter 20 to find risers. Negative values are allowed. Printings without a 30-day comparison are skipped."
          },
          "maxPriceChange30dPct": {
            "title": "Maximum 30-day price change (%)",
            "type": "number",
            "description": "Optional. Keep only printings whose market price changed at most this many percent over the last 30 days. Enter -15 to find fallers."
          },
          "sortBy": {
            "title": "Order of products to scan",
            "enum": [
              "relevance",
              "marketPriceDesc",
              "marketPriceAsc"
            ],
            "type": "string",
            "description": "Order in which TCGplayer returns products before they are scanned. Relevance follows TCGplayer popularity. Highest price first is useful with a minimum price.",
            "default": "relevance"
          },
          "maxProductsToScan": {
            "title": "Maximum products to scan",
            "minimum": 1,
            "maximum": 9950,
            "type": "integer",
            "description": "How many products to read the sales history of, per run across all search terms. One product gives one row per printing and language, so you often get more rows than products. TCGplayer search returns at most 9950 products per search.",
            "default": 100
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many rows in total. Each row is one billed result.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy. Leave disabled: the TCGplayer endpoints used here are public and need none.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}