# Goldin Auctions Scraper — Sports Cards, TCG & Sold Comps (`crawloop/goldin-scraper`) Actor

Scrape Goldin Auctions for live lots, sold comps, and Fixed Price marketplace. Get hammer price, buyer's premium, bid counts, Weekly/Elite tier, PSA/BGS/SGC grades, and images as JSON — dealers, consignors, and pricing apps.

- **URL**: https://apify.com/crawloop/goldin-scraper.md
- **Developed by:** [Andrej Kiva](https://apify.com/crawloop) (community)
- **Categories:** E-commerce, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.69 / 1,000 lot results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Goldin Auctions Scraper — Sports Cards, TCG & Sold Comps

> Unofficial community Actor. Not affiliated with Goldin or eBay.

**Goldin Auctions scraper** for high-end **sports cards**, **TCG / Pokémon**, and memorabilia. Pull **live lots**, **sold comps** (past auction results), and Fixed Price marketplace listings into JSON — hammer price, buyer's premium, bid counts, Weekly / Elite tier, and PSA / BGS / SGC / CGC grades. Works as a **Goldin API alternative** via HTTP search (Python / Node.js / MCP) — no headless browser.

### Resale suite

| Actor | Role |
| --- | --- |
| Goldin Auctions Scraper ◄── you are here | High-end auction live lots & sold comps |
| [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper) | Marketplace completed sales |
| [eBay Active Listings Scraper](https://apify.com/crawloop/ebay-active-listings-scraper) | Live asking prices |
| [eBay Sold Price Intelligence](https://apify.com/crawloop/ebay-sold-price-intelligence) | Aggregate comps & pricing stats |

**Suite next step:** after Goldin sold comps, run [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper) on the same titles for volume marketplace comps vs high-end hammer.

### When to use

- Pull **Goldin sold prices** from Weekly / Elite auctions to set reserves and consignment floors
- Monitor **live Goldin lots** by player, set, or grader (PSA 10, BGS Black Label)
- Browse **Fixed Price / marketplace** buy-it-now inventory
- Resolve specific lot URLs into structured rows for sheets or warehouses
- Feed apps that need hammer + buyer's premium (true all-in buyer cost)

**When not to use:** low-volume eBay-only comps — use [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper) instead. Lot-detail fields gated behind login are not scraped.

### Key features

- **Four modes** — `live`, `sold`, `marketplace`, `lot_urls` (+ `auto`)
- **Auction tiers** — Weekly, Elite, Thematic, Fixed\_Price
- **Sold archive** — hundreds of thousands of `Completed_Sold` comps
- **Buyer's premium aware** — `buyersPremiumPct` + `priceWithPremium` on every row
- **Grade parsing** — PSA / BGS / SGC / CGC / HGA / TAG from titles → label + numeric
- **Keyword + filters** — sport, category, grader, price range, auction ID
- **HTTP-first** — `curl_cffi` Chrome TLS against Goldin's lots search API; proxy optional

### Input

| Field | Description |
| --- | --- |
| `mode` | `live` / `sold` / `marketplace` / `lot_urls` / `auto` |
| `searchQueries` | Keywords (player, set, card). Empty = browse all in mode |
| `startUrls` | Lot URLs or slugs (`lot_urls` mode) |
| `auctionType` | `All` / `Weekly` / `Elite` / `Thematic` / `Fixed_Price` |
| `auctionId` | Optional parent auction UUID |
| `soldOnly` | Force sold archive even outside `sold` mode |
| `category` / `sport` | Optional facet filters |
| `grader` / `grade` | PSA/BGS/… filter and grade substring |
| `priceMin` / `priceMax` | USD price window |
| `maxItems` | Cap (`0` = unlimited) |
| `proxyConfiguration` | Optional; default off |

#### Example — Goldin sold comps (sports cards)

```json
{
  "mode": "sold",
  "searchQueries": ["charizard psa 10"],
  "auctionType": "Elite",
  "maxItems": 50
}
```

#### Example — live Weekly lots

```json
{
  "mode": "live",
  "auctionType": "Weekly",
  "grader": "PSA",
  "maxItems": 100
}
```

#### Example — marketplace Fixed Price

```json
{
  "mode": "marketplace",
  "searchQueries": ["michael jordan"],
  "maxItems": 50
}
```

#### Example — specific lot URLs

```json
{
  "mode": "lot_urls",
  "startUrls": [
    { "url": "https://goldin.co/item/1999-pokemon-base-set-holo-4-charizard-psa-mint-9fcmjr" }
  ]
}
```

### Output

| Field | Description |
| --- | --- |
| `lotId` / `lotNumber` / `metaSlug` / `url` | Identifiers & page URL |
| `title` / `status` | Title and Live / Completed\_Sold / … |
| `auctionId` / `auctionType` | Parent auction + tier |
| `grader` / `grade` / `gradeNumeric` | Parsed grading |
| `currentPrice` / `finalPrice` / `minBidPrice` | USD prices |
| `buyersPremiumPct` / `priceWithPremium` | Premium % and all-in cost |
| `reserveAmount` / `reserveMet` / `bidCount` | Reserve & bidding |
| `startAt` / `endAt` / `soldAt` | Timestamps |
| `primaryImageUrl` / `imageUrls` | CloudFront images |
| `searchQuery` / `mode` / `scrapedAt` | Run metadata |

#### Sample record

```json
{
  "lotId": "202607-2314-0801-5f728d9d-0d42-4245-9805-84d252329706",
  "title": "2009-10 Topps Chrome Refractor #101 Stephen Curry Rookie Card (#071/500) - BGS GEM MINT 9.5",
  "status": "Live",
  "auctionType": "Elite",
  "grader": "BGS",
  "grade": "BGS GEM MINT 9.5",
  "gradeNumeric": 9.5,
  "currentPrice": 34000,
  "buyersPremiumPct": 22,
  "priceWithPremium": 41480,
  "bidCount": 23,
  "currency": "USD",
  "url": "https://goldin.co/item/2009-10-topps-chrome-refractor-101-stephen-curry-rookie-card-071-500-bgzew9",
  "primaryImageUrl": "https://d2tt46f3mh26nl.cloudfront.net/public/Lots/example/image@1x"
}
```

### Use cases

- **Consignment pricing** — Elite sold comps before setting reserves
- **Dealer watchlists** — Weekly live lots filtered by PSA / BGS
- **High-end vs eBay** — Goldin hammer vs marketplace sold volume
- **TCG / Pokémon comps** — sold archive search by set and grade
- **Marketplace scan** — Fixed Price buy-now lots
- **Automation / MCP** — scheduled sold pulls into sheets or warehouses

### Integration examples

#### Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/goldin-scraper').call({
  mode: 'sold',
  searchQueries: ['jordan psa 10'],
  maxItems: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 3));
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("crawloop/goldin-scraper").call(run_input={
    "mode": "live",
    "auctionType": "Weekly",
    "maxItems": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item.get("currentPrice"))
```

#### cURL

```bash
curl "https://api.apify.com/v2/acts/crawloop~goldin-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"sold","searchQueries":["charizard"],"maxItems":20}'
```

### MCP and AI assistants

Use this Actor from AI tools via [Apify MCP](https://docs.apify.com/platform/integrations/mcp).
Connect your Apify account, then call this Actor by its Store ID / name.

Example prompts:

- "Run Goldin Auctions Scraper in sold mode for 'Shohei Ohtani PSA 10' and return the top 20 comps as JSON"
- "Scrape live Weekly Goldin lots graded PSA and summarize average bid and buyer's premium"
- "Chain Goldin sold comps then eBay Sold Listings Scraper for the same Charizard titles"

### FAQ

**Is this a Goldin API alternative?**\
Yes for public lot search: live, sold, and marketplace rows via Goldin's search endpoint — no official developer API key required.

**Does the Goldin scraper need a proxy?**\
Usually no. Enable Apify Proxy only if you hit rate limits.

**What is `priceWithPremium`?**\
Goldin adds a buyer's premium on top of hammer (often ~22%). `priceWithPremium = currentPrice × (1 + buyersPremiumPct/100)`.

**Can I scrape all Goldin sold results?**\
Yes — `mode: sold` with empty `searchQueries` and `maxItems: 0`. The archive is large; use keywords and PPE limits for focused comps.

**How do I get sports card or Pokémon comps?**\
Use `mode: sold` with queries like `mantle psa 8` or `charizard psa 10`, optionally `auctionType: Elite` or `grader: PSA`.

**Why is grade sometimes null?**\
Grades are parsed from titles. Ungraded memorabilia may not match; use `grader` when titles include PSA/BGS/etc.

### Related Actors

| Actor | Role |
| --- | --- |
| [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper) | Marketplace sold prices |
| [eBay Active Listings Scraper](https://apify.com/crawloop/ebay-active-listings-scraper) | Live asking prices |
| [eBay Sold Price Intelligence](https://apify.com/crawloop/ebay-sold-price-intelligence) | Aggregated sold stats |

# Actor input Schema

## `mode` (type: `string`):

What to scrape. live = active auction lots; sold = completed sales archive (comps); marketplace = Fixed Price / private sales; lot\_urls = resolve specific lot URLs; auto picks from inputs.

## `searchQueries` (type: `array`):

Keywords to search (player, set, card, grade). Leave empty to browse all lots in the selected mode. Each query runs separately.

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

Goldin lot URLs or meta-slugs for lot\_urls mode. Example: https://goldin.co/item/1999-pokemon-base-set-holo-4-charizard-psa-mint-9fcmjr

## `auctionType` (type: `string`):

Filter by Goldin auction tier. Marketplace mode forces Fixed\_Price.

## `auctionId` (type: `string`):

Optional Goldin auction UUID to scope lots to one sale.

## `soldOnly` (type: `boolean`):

When true, only Completed\_Sold lots (overrides live mode). Useful with marketplace or keyword search.

## `category` (type: `string`):

Optional Algolia category facet (e.g. Sport, Non-Sport).

## `sport` (type: `string`):

Optional sport facet (e.g. Baseball, Basketball, Pokemon).

## `grader` (type: `string`):

Filter by grading company parsed from titles (and certification facet when available).

## `grade` (type: `string`):

Optional substring filter on parsed grade (e.g. 10, 9.5, GEM).

## `priceMin` (type: `number`):

Minimum current / sale price. 0 or empty = no floor.

## `priceMax` (type: `number`):

Maximum current / sale price. 0 or empty = no ceiling.

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

Maximum lot records to output across all queries. 0 = unlimited.

## `requestDelaySecs` (type: `number`):

Throttle between API calls.

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

Optional. Goldin search API usually works without a proxy. Enable Apify Proxy only if you hit rate limits.

## Actor input object example

```json
{
  "mode": "live",
  "searchQueries": [],
  "startUrls": [],
  "auctionType": "All",
  "auctionId": "",
  "soldOnly": false,
  "category": "",
  "sport": "",
  "grader": "",
  "grade": "",
  "priceMin": 0,
  "priceMax": 0,
  "maxItems": 100,
  "requestDelaySecs": 0.12,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Default dataset lot records.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/goldin-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("crawloop/goldin-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 '{}' |
apify call crawloop/goldin-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,crawloop/goldin-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/TxObDOIid3xI9aZJl/builds/w71B1GCs9GBTxBolh/openapi.json
