Beckett APIbeckett.com ↗
Access Beckett sports card checklists, metadata, price guide search, and news articles via a structured API. Covers baseball, basketball, football, hockey, and more.
What is the Beckett API?
The Beckett API provides 6 endpoints for querying sports card checklist data, article metadata, and pricing information from Beckett.com. Use get_checklist_article_detail to retrieve structured checklist tabs — Base, Autographs, Inserts, and more — along with manufacturer, year, collection name, and sport for any given checklist URL. Two search endpoints cover news articles and the Beckett Online Price Guide, giving developers a single interface for card collection research.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/25ac7096-3092-4807-a4fa-f2a9ac2bf840/get_categories' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace beckett-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Beckett Collectibles SDK — sports card checklists, articles, and metadata."""
from parse_apis.beckett_collectibles_api import Beckett, Sport, ArticleNotFound
client = Beckett()
# List all sport categories available for filtering
for category in client.categories.list(limit=10):
print(category.id, category.name)
# List baseball checklist articles (paginated, capped)
for article in client.articles.list(sport=Sport.BASEBALL, limit=5):
print(article.title, article.url, article.date)
# Search articles by keyword
for result in client.articles.search(query="Topps 2025", limit=3):
print(result.title, result.date)
# Drill into a single article's full checklist detail
article = client.articles.list(sport=Sport.FOOTBALL, limit=1).first()
if article:
try:
detail = article.detail.get()
print(detail.title, detail.url)
print(detail.metadata.sport, detail.metadata.manufacturer, detail.metadata.year)
for tab_name, items in detail.tabs.items():
for item in items[:2]:
print(tab_name, item.type, item.text)
except ArticleNotFound as exc:
print(f"Article gone: {exc}")
# Extract checklist links from a page
for link in client.checklistlinks.extract(url="https://www.beckett.com/news/", limit=5):
print(link.text, link.url)
print("exercised: categories.list / articles.list / articles.search / article.detail.get / checklistlinks.extract")
Returns a static list of sports categories and their IDs used for filtering on the Beckett site. Categories include Baseball, Basketball, Football, Hockey, Non-Sports, Gaming, Soccer, Racing, and Golf.
No input parameters required.
{
"type": "object",
"fields": {
"categories": "array of objects with 'id' (string) and 'name' (string) for each sport category"
},
"sample": {
"data": {
"categories": [
{
"id": "185223",
"name": "Baseball"
},
{
"id": "185226",
"name": "Basketball"
},
{
"id": "185224",
"name": "Football"
},
{
"id": "185225",
"name": "Hockey"
},
{
"id": "468286",
"name": "Non-Sports"
},
{
"id": "499545",
"name": "Gaming"
},
{
"id": "185227",
"name": "Soccer"
},
{
"id": "210408",
"name": "Racing"
},
{
"id": "210409",
"name": "Golf"
}
]
},
"status": "success"
}
}About the Beckett API
Checklist Data
get_checklist_articles returns a paginated list of Beckett News checklist articles filtered by sport slug (baseball, basketball, football, hockey, soccer, beckett-non). Each article object includes title, url, date, and summary. Pass the url field from any result into get_checklist_article_detail to receive the full structured checklist, broken into named tabs (e.g. Base, Autographs, Inserts) and enriched with metadata fields: sport, collection_name, manufacturer, and year.
Search and Discovery
search_checklists accepts a keyword or phrase and returns matching article titles, URLs, and publication dates. extract_checklist_links accepts any Beckett page URL and returns all links whose accessible text or attributes reference a checklist — useful for discovering checklist pages nested within product or set landing pages. Results include text, url, title_attr, and label_attr for each link.
Categories and Price Guide
get_categories returns a static list of sport category objects with id and name fields. These IDs feed directly into search_price_guide, which accepts a term (e.g. 'Topps Baseball') and an optional sport_id to scope results. The price guide endpoint returns a results array and a results_count integer. Note that price guide results reflect dynamic market data and are marked best-effort in the API spec.
The Beckett API is a managed, monitored endpoint for beckett.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when beckett.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official beckett.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a card inventory tool that pulls full checklist tabs (Base, Autographs, Inserts) for any set using
get_checklist_article_detail. - Aggregate Beckett News checklist articles by sport for a collector digest or newsletter, filtered via the
sportparameter inget_checklist_articles. - Search the Beckett Online Price Guide by card name or set to retrieve current pricing data with
search_price_guide. - Discover all checklist pages within a product landing page by scanning links with
extract_checklist_links. - Enrich a card database with manufacturer, year, and collection name by passing checklist URLs into
get_checklist_article_detailand reading themetadataobject. - Build a sport-scoped checklist search tool using
search_checklistscombined with category IDs fromget_categories. - Track new checklist publications across sports by polling
get_checklist_articleswith different sport slugs and comparing article dates.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Beckett have an official developer API?+
What does `get_checklist_article_detail` actually return beyond the card list?+
get_checklist_article_detail returns a tabs object that maps section names — such as Base, Autographs, and Inserts — to arrays of content items, plus a metadata object containing sport, collection_name, manufacturer, and year. This makes it possible to distinguish, for example, autograph parallels from base cards within the same set.Are individual card prices returned by the price guide endpoint?+
search_price_guide endpoint returns a results array and results_count for a given search term, but the spec notes results are dynamic and best-effort. Detailed per-card graded pricing tiers (e.g. PSA 9 vs. PSA 10 values) are not currently part of the structured response. The API covers set-level and article-level data. You can fork it on Parse and revise to add a more granular pricing endpoint if your use case requires graded-card price breakdowns.Is there a way to look up checklists by set ID or product number rather than keyword?+
search_checklists), paginated article listings (get_checklist_articles), and link extraction (extract_checklist_links). Lookup by a structured Beckett set ID or product number is not an exposed parameter. You can fork it on Parse and revise to add an endpoint that accepts a set identifier if that lookup pattern fits your workflow.Does pagination work the same way across all list endpoints?+
get_checklist_articles supports a page integer parameter for pagination. search_checklists and search_price_guide do not currently expose a page parameter in their inputs, so result sets from those endpoints reflect a single page of matches.