Goldin Auctions Scraper — Sports Cards, TCG & Sold Comps
Pricing
from $0.69 / 1,000 lot results
Goldin Auctions Scraper — Sports Cards, TCG & Sold Comps
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.
Pricing
from $0.69 / 1,000 lot results
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
7
Monthly active users
3 days ago
Last modified
Categories
Share
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by Goldin or eBay or its affiliates. Data is read from publicly accessible pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
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.
Collectibles suite
| Actor | Role |
|---|---|
| TCGPlayer Listings Scraper | US TCG seller listings and shops |
| Cardmarket Listings Scraper | EU TCG seller offers and shops |
| Fanatics Collect Scraper | Weekly / Premier auctions, Buy Now, sold comps |
| Goldin Auctions Scraper ◄── you are here | High-end auction live lots & sold comps |
| Heritage Auctions Scraper | Heritage live bids and archive cards |
| PSA Population Report Scraper | Set-level PSA pop census and gem rate |
| Whatnot Listings Scraper | Live-commerce listings and shops |
| PriceCharting Scraper | Guide prices for games, TCG, and comics |
| eBay Sold Listings Scraper | Marketplace completed sales |
| eBay Active Listings Scraper | Live asking prices |
| eBay Sold Price Intelligence | Aggregate comps & pricing stats |
Suite next step: after Goldin sold comps, run Fanatics Collect Scraper for weekly-volume hammer on the same titles, then PSA Population Report Scraper for gem rate vs elite price. Volume marketplace still goes to eBay Sold Listings Scraper.
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: Fanatics Collect weekly volume auctions — use Fanatics Collect Scraper. Low-volume eBay-only comps — use eBay Sold Listings Scraper. Live TCG seller books — use TCGPlayer Listings Scraper or Cardmarket Listings Scraper. 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_Soldcomps - Buyer's premium aware —
buyersPremiumPct+priceWithPremiumon every row - Grade parsing — PSA / BGS / SGC / CGC / HGA / TAG from titles → label + numeric
- Title fields — card year, rookie, autograph, and serial (
12/99,/99,1/1) parsed from the lot title. Description text is not in the search response - Keyword + filters — sport, category, grader, year range, price range, auction ID
- Sold-date window —
soldAfter/soldBeforeon completed lots. This endpoint ignores sort and is not date-ordered, so the Actor keeps scanning up tomaxScan - HTTP-first —
curl_cffiChrome TLS against Goldin's lots search API; retries when search returns 503; 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 / categories | Category facet; single field and list are combined |
sport / sports | Sport facet; single field and list are combined |
grader / graders | PSA/BGS/… A lot matches any selected grader |
grade | Grade substring (e.g. 10, GEM) |
minGrade / maxGrade | Numeric grade window. Lots with no numeric grade are dropped when either is set |
yearMin / yearMax | Card year, sent to Goldin as yearRange |
soldAfter / soldBefore | Inclusive sale dates (YYYY-MM-DD or 30 days) on sold/completed lots only |
rookiesOnly / autographedOnly | Title flags (Rookie / RC / 1st Bowman / Bowman 1st; Auto / Signed / Signature) |
priceMin / priceMax | USD price window. Sent to Goldin as priceRange with only the sides you set. Positive prices outside the window are dropped. A lot still at $0 (no bids) is kept only when priceMin is empty or 0. That scan counts toward maxScan |
maxScan | Raw hits scanned per query when a client-side filter is on, including the price window (default 2000) |
maxItems | Saved rows (0 = unlimited). Does not cap the raw scan |
proxyConfiguration | Optional; default off |
There is no sort option. Goldin's lots search ignores sortOrder and does not return description text.
Example — Goldin sold comps (sports cards)
{"mode": "sold","searchQueries": ["charizard psa 10"],"auctionType": "Elite","maxItems": 50}
Example — 1986–87 Jordan rookies, PSA 8–10, sold in 2025
Sold comps for 1986–87 Jordan rookies graded PSA 8 through 10 that closed in 2025. Year is filtered on Goldin's side. Sale date, rookie, and grade range are applied while scanning (maxScan). categories, sports, and autographedOnly are included so every added filter is in one input.
{"mode": "sold","searchQueries": ["michael jordan rookie"],"soldAfter": "2025-01-01","soldBefore": "2025-12-31","maxScan": 2000,"yearMin": 1986,"yearMax": 1987,"grader": "PSA","graders": ["PSA"],"category": "Sport","categories": ["Sport"],"sport": "Basketball","sports": ["Basketball"],"rookiesOnly": true,"autographedOnly": false,"minGrade": 8,"maxGrade": 10,"maxItems": 100}
Example — live Weekly lots
{"mode": "live","auctionType": "Weekly","grader": "PSA","maxItems": 100}
Example — marketplace Fixed Price
{"mode": "marketplace","searchQueries": ["michael jordan"],"maxItems": 50}
Example — specific lot URLs
{"mode": "lot_urls","startUrls": [{ "url": "https://goldin.co/item/1999-pokemon-base-set-holo-4-charizard-psa-mint-9fcmjr" }]}
Monitor new lots, price drops and bids
Schedule this Actor to watch a saved search and get only deltas: new lots, price drops, and bid increases since the last run. Turn on monitorMode, pick a distinct monitorStoreName per watch, and use the same keywords and filters each time.
The first run is the baseline: it still emits rows (up to maxItems) while remembering every scanned lot’s price and bid count. Later runs skip unchanged lots and charge only when something changed. monitorMaxScan controls how deep each run reads; maxItems caps how many changed rows are pushed per run.
{"mode": "live","searchQueries": ["charizard psa 10"],"monitorMode": true,"monitorStoreName": "goldin-charizard-psa10","maxItems": 50,"monitorMaxScan": 1000}
Tip: pair monitorMode with an Apify Schedule (hourly or daily) so you get a small dataset of fresh activity without re-scraping the full catalog.
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 |
year | First card year in the title (1986-87 → 1986) |
isRookie / isAutographed | Rookie and autograph flags from the title |
serialNumber / serialLimit | Print run (12/99 → 12 and 99; /99 sets the limit only) |
itemType / companyId | Present when the search hit includes them |
allowOffers / vaultable | Listing flags when present |
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
{"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,"year": 2009,"isRookie": true,"isAutographed": false,"serialNumber": 71,"serialLimit": 500,"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
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
from apify_client import ApifyClientclient = 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
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. 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 Fanatics Collect 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.
Can I filter Goldin sold prices by date?
Yes. Set soldAfter and soldBefore to YYYY-MM-DD (or a relative window such as 30 days). Both days are inclusive. The filter uses endAt on sold/completed lots and leaves live lots unchanged. Goldin has no sold-date parameter and does not return this endpoint in date order, so there is no sort option — the Actor keeps scanning up to maxScan raw hits per query and keeps the matches. maxItems still caps saved rows.
Can I filter by card year / rookie / autograph?
yearMin and yearMax are sent as a server-side year range (1986–1987 for a 1986-87 card). rookiesOnly matches Rookie, a standalone RC, 1st Bowman, First Bowman, and Bowman 1st. autographedOnly matches Auto, Autograph, Signed, and Signature, and does not match Automobile. minGrade / maxGrade use the numeric grade parsed from the title. Description text is not included in search results, so these flags come from the title only.
What happens when Goldin search is down?
The lots search sometimes returns HTTP 503 search_unavailable for several seconds. The Actor retries 429 and 5xx responses and network errors with backoff (8 attempts by default, waits about 1, 2, 4, 8, 15, 20, and 20 seconds). If a later page still fails after some rows were saved, that query stops, the next query continues, and the run finishes succeeded with the status Goldin search was temporarily unavailable — returned N partial results. If nothing could be fetched, the run fails with Goldin search is temporarily unavailable (HTTP 503). Please retry in a few minutes. When that request included filters, the message also says If this persists, a filter combination may be unsupported by Goldin search. A monitor run that was cut short does not treat unseen lots as removed and does not replace the baseline.
Related Actors
| Actor | Role |
|---|---|
| Goldin Auctions Scraper ◄── you are here | High-end sports cards / TCG hammer + sold |
| Heritage Auctions Scraper | Heritage live bids and archive cards |
| Fanatics Collect Scraper | Weekly / Premier auctions + sold |
| PSA Population Report Scraper | PSA pop census and gem rate |
| TCGPlayer Listings Scraper | US TCG listings and shops |
| Cardmarket Listings Scraper | EU TCG listings and shops |
| eBay Sold Listings Scraper | Marketplace sold prices |
| eBay Active Listings Scraper | Live asking prices |
| eBay Sold Price Intelligence | Aggregated sold stats |