# GoCollect Scraper: CGC/CBCS/PSA/BGS Census, Sold Prices & More (`getascraper/gocollect-scraper`) Actor

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.

- **URL**: https://apify.com/getascraper/gocollect-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 item records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## GoCollect Scraper: CGC/CBCS/PSA/BGS Census, Sold Prices & More

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#EAF7EF;border:1px solid #BBE5C8;border-top:4px solid #16A34A;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Get the population data other GoCollect scrapers can't load</span><br>
<span style="font-size:15px;color:#374151;line-height:1.6">CGC, CBCS, PSA, and BGS graded population census, sold price ranges, and 5-state change tracking, across comics, Pok&eacute;mon cards, MTG cards, magazines, concert posters, and video games.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBE5C8;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#16A34A">🔬 Census data others skip</span><br>
<span style="font-size:12px;color:#57534E">Graded population by grade for CGC, CBCS, PSA, and BGS. Two other GoCollect scrapers on Apify either drop this data or make you run a second actor for it.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBE5C8;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#16A34A">🗂️ Six categories, one actor</span><br>
<span style="font-size:12px;color:#57534E">Comics, Pok&eacute;mon cards, MTG cards, magazines, concert posters, and video games, all on the same run.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBE5C8;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#16A34A">🔔 Automatic change tracking</span><br>
<span style="font-size:12px;color:#57534E">Turn on Monitor Mode and every run tells you what's NEW, UPDATED, or EXPIRED instead of making you compare exports by hand.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBE5C8;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#16A34A">💲 Real sold price ranges</span><br>
<span style="font-size:12px;color:#57534E">Historical low/high sold price and how many sold records back it, not just today's asking prices.</span>
</td>
</tr>
</table>

### 🔍 What does GoCollect Scraper do?

**GoCollect Scraper** extracts pricing and population data from [GoCollect.com](https://gocollect.com), the price guide collectors use for comics, Pokémon cards, MTG cards, magazines, concert posters, and video games. For every item you give it, you get the title, publisher or set details, a historical sold price range, and (unlike other GoCollect scrapers on Apify) the actual CGC, CBCS, PSA, or BGS graded population breakdown, grade by grade.

Point it at exact item URLs, or let it browse a category page for you. Run it once for a snapshot, or schedule it and turn on Monitor Mode to get a clean NEW/UPDATED/EXPIRED diff every time, without paying for or rebuilding anything.

### 🤔 Why use GoCollect Scraper?

**If you buy, sell, or grade collectibles**, population data tells you how rare a grade actually is before you pay a premium for it. Both other GoCollect actors on Apify either can't load this panel at all or make you run a second, separate actor just to get it.

**If you price inventory for resale**, you get a real sold price range plus how much sale history backs it, so you can tell a well-supported price from a thin one.

**If you're building your own pricing tool or price-tracking dashboard**, this Actor hands you structured population and price data on a schedule, ready to pipe into a spreadsheet, database, or app through the Apify API.

### ⚙️ How to use GoCollect Scraper

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#EAF7EF;border:1px solid #BBE5C8;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#16A34A;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Add your items</span><br>
<span style="font-size:12px;color:#57534E">Paste GoCollect item URLs, or pick one or more categories and let the Actor find items for you.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EAF7EF;border:1px solid #BBE5C8;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#16A34A;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Click Start</span><br>
<span style="font-size:12px;color:#57534E">The default settings finish well under 5 minutes and already include census and sold-price data.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EAF7EF;border:1px solid #BBE5C8;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#16A34A;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Get your data</span><br>
<span style="font-size:12px;color:#57534E">Download the dataset, or schedule the run and switch on Monitor Mode to track changes automatically.</span>
</td>
</tr>
</table>

1. Open the [GoCollect Scraper Input tab](https://console.apify.com/actors) and paste in exact item URLs (e.g. `https://gocollect.com/comic/spawn-1`), or set **Categories** to auto-discover items.
2. Leave **Fetch Census & Sold-Price Data** on to get the full population breakdown, or turn it off for a faster, metadata-only run.
3. Click **Start**. Results land in the run's dataset as the Actor works.
4. For recurring tracking, save the Actor as a [scheduled task](https://docs.apify.com/platform/schedules) and set **Monitor Mode** to "Track Changes".

### 📥 Input

Configure GoCollect Scraper using the visual Input tab in Apify Console, or pass a raw JSON object via the API.

| Field | Type | Required | Description |
|---|---|---|---|
| `startUrls` | array of URLs | No | Exact GoCollect item URLs to scrape. |
| `categories` | array (enum) | No | Categories to auto-discover items from when `startUrls` doesn't already fill up Max Items: Comics, Pokémon Cards, MTG Cards, Magazines, Concert Posters, Video Games. |
| `browseMode` | enum | No | Which GoCollect listing view to auto-discover from: plain category listing, Most Popular (every category), or Key Issues / New This Week (Comics only - falls back to the plain listing for other categories, since those two views redirect elsewhere on the site). |
| `maxItems` | integer | No | Maximum number of items to scrape in this run. |
| `fetchCensusAndSoldPrices` | boolean | No | Fetches the CGC/CBCS/PSA/BGS graded-population census and sold-records count for each item. |
| `monitorMode` | enum | No | "Snapshot" returns current data only. "Track Changes" labels each item NEW, UPDATED, REAPPEARED, UNCHANGED, or EXPIRED compared to the previous run. |
| `stateName` | string | No | Label for this run's tracked item list, used only with Monitor Mode. |
| `proxyConfiguration` | object | No | Apify Proxy configuration. Datacenter proxy is confirmed to work for every request this Actor makes. |

### 📤 Output

Each dataset item looks like this:

```json
{
    "itemId": "84714",
    "category": "comics",
    "slug": "spawn-1",
    "url": "https://gocollect.com/comic/spawn-1",
    "title": "Spawn #1",
    "properties": {
        "Publisher": "Image",
        "Writer": "Todd McFarlane",
        "Publication Date": "May 10, 1992",
        "Cover Price": "$1.95"
    },
    "soldPriceLow": 63,
    "soldPriceHigh": 425,
    "soldPriceCurrency": "USD",
    "soldOfferCount": 20,
    "soldRecordsCount": 15650,
    "soldRecordsCompany": "CGC",
    "census": [
        {
            "company": "CGC",
            "shared": true,
            "totalGraded": 39503,
            "bySubtype": [
                { "subtype": "Universal", "count": 33841, "percentOfPop": 85.7 }
            ],
            "byGrade": [
                { "grade": "9.8", "universal": 620, "signature": 41, "qualified": 2, "cgcxjsa": 0, "restored": 1, "total": 664 }
            ]
        },
        { "company": "PSA", "shared": false, "totalGraded": null, "bySubtype": null, "byGrade": null }
    ],
    "scrapedAt": "2026-09-17T14:35:23.000Z"
}
```

You can download results in JSON, CSV, Excel, XML, HTML, or RSS from the dataset's Export tab.

### 📊 Data table

| Field | Type | Description |
|---|---|---|
| `itemId` | string | GoCollect's internal item ID. |
| `category` | string | Which of the six categories this item belongs to. |
| `title` | string | Item title. |
| `properties` | object | Publisher, artist, set, rarity, and other category-specific details, straight from GoCollect's own listing. |
| `soldPriceLow` / `soldPriceHigh` | number | Historical sold price range. |
| `soldOfferCount` | number | Number of sales GoCollect's price range is based on. |
| `soldRecordsCount` | number | Number of individual sold records GoCollect has for this item, for the grading company named in `soldRecordsCompany`. |
| `census` | array | Graded population breakdown per grading company (CGC, CBCS, PSA, or BGS depending on category), with totals by grade and by subtype (Universal, Signature, Qualified, Restored, etc.). `shared: false` means that company hasn't published census data for this item. |
| `changeType` | string | Only present with Monitor Mode on: NEW, UPDATED, REAPPEARED, UNCHANGED, or EXPIRED. |

### 💰 Pricing

GoCollect Scraper uses Apify's pay-per-result pricing: $0.004 per item returned (that's $4 per 1,000 results), including full census and sold-price data. You only pay for items successfully returned; an empty run costs nothing. There's no subscription.

Free plan runs are limited to 25 items per run, 3 runs per day, and a short wait between runs. Upgrade to any paid Apify plan to remove these limits.

### ⭐ Enjoying GoCollect Scraper?

If this Actor saved you from checking census panels by hand, please leave a review on the [Apify Store listing](https://apify.com/getascraper/gocollect-scraper). It helps other collectors and resellers find it, and tells us what to build next.

### ❓ FAQ

**Does this Actor need a GoCollect account or login?**
No. Every field this Actor returns is read anonymously, the same way a public visitor sees GoCollect's pages.

**Why is population data missing for some items or grading companies?**
Not every item has a published census with every grading company. When GoCollect itself hasn't shared that data, `census` for that company comes back with `shared: false` rather than a fake zero.

**Does this include every individual sale, not just a price range?**
No. GoCollect gates itemized sale-by-sale history behind a login on its own site, so this Actor reports the historical sold price range and a total sold-records count instead of fabricating individual sale rows.

**Can I track price and population changes over time?**
Yes. Set **Monitor Mode** to "Track Changes" and schedule the Actor. Each run compares against the last one on the same item list and labels every item NEW, UPDATED, REAPPEARED, UNCHANGED, or EXPIRED.

Found a bug or want a feature? Open an issue on the Actor's Issues tab, or reach out for a custom solution built around your specific collection.

### 🔗 Other actors

- [MySlabs Graded Card Scraper: Sold Comps & Listings](https://apify.com/getascraper/myslabs-graded-cards-scraper) ↗ - graded trading-card listings from MySlabs, with grade and price parsed from every listing.
- [Buyee Scraper: Yahoo Auctions & Mercari Japan Data](https://apify.com/getascraper/buyee-scraper) ↗ - Japanese auction and marketplace listings via Buyee.
- [Bonanza marketplace scraper](https://apify.com/getascraper/bonanza-marketplace-scraper) ↗ - collectibles and general marketplace listings, prices, and seller ratings from Bonanza.
- [2GIS Reviews Scraper](https://apify.com/getascraper/2gis-reviews-scraper) ↗ - business reviews and ratings from 2GIS, useful for researching graded-card and comic shops.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/gocollect-scraper/changelog.md

# Actor input Schema

## `startUrls` (type: `array`):

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.

## `categories` (type: `array`):

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.

## `browseMode` (type: `string`):

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.

## `fetchCensusAndSoldPrices` (type: `boolean`):

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.

## `maxItems` (type: `integer`):

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.

## `monitorMode` (type: `string`):

"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.

## `stateName` (type: `string`):

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.

## `proxyConfiguration` (type: `object`):

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.

## Actor input object example

```json
{
  "startUrls": [
    {
      "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"
    }
  ],
  "categories": [
    "comics"
  ],
  "browseMode": "default",
  "fetchCensusAndSoldPrices": true,
  "maxItems": 10,
  "monitorMode": "snapshot",
  "stateName": "",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "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"
        }
    ],
    "categories": [
        "comics"
    ],
    "browseMode": "default",
    "fetchCensusAndSoldPrices": true,
    "maxItems": 10,
    "monitorMode": "snapshot",
    "stateName": "",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/gocollect-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [
        { "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" },
    ],
    "categories": ["comics"],
    "browseMode": "default",
    "fetchCensusAndSoldPrices": True,
    "maxItems": 10,
    "monitorMode": "snapshot",
    "stateName": "",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/gocollect-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "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"
    }
  ],
  "categories": [
    "comics"
  ],
  "browseMode": "default",
  "fetchCensusAndSoldPrices": true,
  "maxItems": 10,
  "monitorMode": "snapshot",
  "stateName": "",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/gocollect-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/gocollect-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/F7tcXhLLqUnyU9kz1/builds/S6hXRgh4n2K0sTwPg/openapi.json
