{
  "openapi": "3.0.1",
  "info": {
    "title": "GoCollect Scraper: CGC/CBCS/PSA/BGS Census, Sold Prices & More",
    "description": "Scrapes GoCollect.com for comics, Pokémon cards, MTG cards, magazines, concert posters, and video games: sold price range, item metadata, and CGC/CBCS/PSA/BGS population census data other GoCollect scrapers can't load or skip. Includes 5-state monitor mode for scheduled tracking. $0.004/item.",
    "version": "0.1",
    "x-build-id": "S6hXRgh4n2K0sTwPg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~gocollect-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-gocollect-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/getascraper~gocollect-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-gocollect-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/getascraper~gocollect-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-gocollect-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": {
          "startUrls": {
            "title": "GoCollect Item URLs",
            "type": "array",
            "description": "Direct GoCollect item page URLs to scrape, e.g. https://gocollect.com/comic/spawn-1 or https://gocollect.com/pokemon-card/charizard-4102-base-unlimited. This is the most reliable way to get exactly the items you want. Mix categories freely in one run.",
            "default": [
              {
                "url": "https://gocollect.com/comic/spawn-1"
              },
              {
                "url": "https://gocollect.com/comic/amazing-fantasy-15"
              },
              {
                "url": "https://gocollect.com/pokemon-card/charizard-4102-base-unlimited"
              }
            ],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "categories": {
            "title": "Categories to Auto-Discover From",
            "type": "array",
            "description": "When Item URLs above don't already fill up Max Items, the scraper tops up the list by browsing these category pages. Every other GoCollect scraper on Apify only covers comics; this one covers all six of GoCollect's own categories on the same architecture.",
            "items": {
              "type": "string",
              "enum": [
                "comics",
                "pokemon-cards",
                "mtg-cards",
                "magazines",
                "concert-posters",
                "video-games"
              ],
              "enumTitles": [
                "Comics",
                "Pokémon Cards",
                "MTG Cards",
                "Magazines",
                "Concert Posters",
                "Video Games"
              ]
            },
            "default": [
              "comics"
            ]
          },
          "browseMode": {
            "title": "Browse Mode",
            "enum": [
              "default",
              "hottest",
              "key-issues",
              "new"
            ],
            "type": "string",
            "description": "Which GoCollect listing view to auto-discover items from, instead of the plain category page. \"Most Popular\" works on every category (confirmed live on both Comics and Pokémon Cards). \"Key Issues\" and \"New This Week\" are Comics-only real GoCollect pages - the identical URL on other categories redirects into a part of the site robots.txt disallows, so this Actor automatically falls back to the plain category listing (and logs why) if you pick one of these with a non-Comics category selected above.",
            "default": "default"
          },
          "fetchCensusAndSoldPrices": {
            "title": "Fetch Census & Sold-Price Data",
            "type": "boolean",
            "description": "Fetches the CGC/CBCS/PSA graded-population census and the sold-record count for each item. This is the data other GoCollect scrapers on Apify skip: one competitor's own README says its census panel \"renders as perpetual loading placeholders... not included\", the other only returns prices already sitting in the page and ships a separate actor just for census. Turning this on roughly doubles to quadruples the time per item (it needs 1 extra request per grading company found, plus 2 more for sold-record counts), so lower Max Items below if you raise concurrency elsewhere.",
            "default": true
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of items to scrape in this run, combining Item URLs and category auto-discovery. Kept low by default because Census & Sold-Price fetching above adds several extra requests per item; raise this once you know how long a single item takes for your settings.",
            "default": 10
          },
          "monitorMode": {
            "title": "Monitor Mode",
            "enum": [
              "snapshot",
              "changes"
            ],
            "type": "string",
            "description": "\"Snapshot\" just returns the current data every run. \"Track Changes\" compares each item against the last run with the same settings and labels it NEW, UPDATED (price or census changed), REAPPEARED, UNCHANGED, or EXPIRED, so a scheduled run only shows you what actually moved instead of the full list every time.",
            "default": "snapshot"
          },
          "stateName": {
            "title": "Monitor State Name",
            "type": "string",
            "description": "Optional label for this run's tracked item list, only used when Monitor Mode is \"Track Changes\". Give different want-lists (e.g. \"key-issues\" vs \"pokemon-vault\") different names so their change history doesn't get mixed together.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "GoCollect sits behind Cloudflare in passive mode (no JS challenge observed), so Apify's cheaper datacenter proxy is confirmed sufficient for every request this Actor makes, including the census/sold-price calls. Leave this on the default unless you start seeing blocked requests.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}