{
  "openapi": "3.0.1",
  "info": {
    "title": "Pokemon Cards Scraper - Prices, Population & Grades",
    "description": "Scrape Pokemon card prices by grade (Ungraded, Grade 7 to PSA 10) from PriceCharting.com, plus PSA/CGC population reports, card details, price history and sold comps. Export CSV, Excel, JSON. No login or API key. Maps all 6 real grade prices for every card.",
    "version": "0.1",
    "x-build-id": "Rqyn2YboZMjDJjTvK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~pokemon-cards-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-pokemon-cards-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/recordsdata~pokemon-cards-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-pokemon-cards-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/recordsdata~pokemon-cards-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-pokemon-cards-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": {
          "searchQueries": {
            "title": "Search by card name",
            "type": "array",
            "description": "Card names or keywords, for example \"charizard\", \"pikachu promo\" or \"booster box base set\". Every word must appear in the card name or its set name; set words narrow the search (\"charizard base set\" reads Base Set first). Pokemon only: other PriceCharting categories are never read. PriceCharting's own search page is behind a bot challenge, so the actor reads the set listings instead: searches that name no set read the sets one after another, most popular first, and stop after Results per search, so a very rare name can take a few minutes.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "productIds": {
            "title": "PriceCharting product IDs",
            "type": "array",
            "description": "Numeric PriceCharting IDs of single Pokemon cards or sealed products, as shown in the productId column or in the Details table of a card page (for example 630417 for Charizard #4, Base Set). IDs of other categories are reported as an error row, not charged.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sets": {
            "title": "Sets",
            "type": "array",
            "description": "Pokemon sets to read in full, by name or slug: \"Base Set\", \"Jungle\", \"pokemon-fossil\", \"Scarlet & Violet 151\", or \"all\" for every set (about 300, tens of thousands of cards: set Max Items). When you also fill Search by card name, the searches only look inside these sets.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "PriceCharting Pokemon set pages (for example pricecharting.com/console/pokemon-base-set), single card pages (pricecharting.com/game/pokemon-base-set/charizard-4) or the set index pricecharting.com/category/pokemon-cards. Set pages are scraped card by card with automatic pagination.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxResultsPerQuery": {
            "title": "Results per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many cards each search by name may return (a search stops reading sets once it has this many). Max Items still caps the whole run.",
            "default": 10
          },
          "maxScanSeconds": {
            "title": "Max scan seconds",
            "minimum": 10,
            "maximum": 230,
            "type": "integer",
            "description": "Searches by name find cards by reading PriceCharting set pages one after another. This caps the time spent waiting for those pages (maximum 230 seconds). Every delivered card adds 60 seconds, so a productive search is never cut short. When the cap is hit the run stops, keeps the cards already found and says how many sets it read; for a rare name, narrow the search with Sets instead (a search inside one or a few sets takes seconds). Product IDs, URLs and Sets alone are not affected.",
            "default": 180
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of cards to return across all sources. In monitor mode it is the number of cards looked at, whether delivered or skipped. Free users: limited to 10 items (preview). Paid users: optional, max 1,000,000.",
            "default": 10
          },
          "includePopulation": {
            "title": "Grading population report",
            "type": "boolean",
            "description": "PSA/CGC population count and market price at every grade (1-10), from the card's dedicated population-report page. The richest, most exclusive data point PriceCharting offers per card.",
            "default": false
          },
          "includeCardDetails": {
            "title": "Card details",
            "type": "boolean",
            "description": "Genre, release date, publisher, card number, print run, and eBay/TCGPlayer cross-reference IDs.",
            "default": false
          },
          "includePriceHistory": {
            "title": "Price history",
            "type": "boolean",
            "description": "Full historical monthly price series for every grade (Ungraded through PSA 10).",
            "default": false
          },
          "includeSoldComps": {
            "title": "Sold comps",
            "type": "boolean",
            "description": "Recent eBay/TCGPlayer sold listings, tagged with the grade they sold at (Ungraded through PSA 10), with the listing link and, for best-offer sales, the listed price. Covers the 6 headline grade tabs. Billed as one sold-comps event per listing returned.",
            "default": false
          },
          "includeAllGradeSoldComps": {
            "title": "Sold comps for every grade",
            "type": "boolean",
            "description": "Only works together with Sold comps. Also returns the sold listings of the other grade tabs a card has (Grade 1 to 6, BGS 10, BGS 10 Black, CGC 10, CGC 10 Pristine, SGC 10, TAG 10, ACE 10: up to 13 more tabs, often 100 or more extra listings per card). Off keeps the original 6 tabs. Billed as one sold-comps event per listing returned.",
            "default": false
          },
          "onlyChanged": {
            "title": "Only new or changed cards",
            "type": "boolean",
            "description": "Deliver only cards this same search did not return before, or whose price at any grade moved since. Unchanged cards are skipped and not billed. The memory is kept per search (sources and filters) in a key-value store of your own account.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional label for the monitor memory. Use a different label to run several independent monitors with identical settings. Leave empty to share the memory between runs of the same search.",
            "default": ""
          },
          "resetSeen": {
            "title": "Reset monitor memory",
            "type": "boolean",
            "description": "Clear the stored list of already-seen cards and prices for this search (and Monitor name) before the run starts, so everything counts as new again.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}