CDKeys APIcdkeys.com ↗
Access CDKeys.com product data via API. Search game keys, browse categories, get pricing in multiple currencies, best sellers, and latest releases.
What is the CDKeys API?
The CDKeys.com API exposes 6 endpoints covering product search, category browsing, best sellers, latest releases, and full product detail for digital game keys. The search_products endpoint lets you query the entire catalog by title, filter by platform and region, and receive paginated results with multi-currency pricing, SKUs, stock status, and localized metadata across thousands of game key listings.
curl -X GET 'https://api.parse.bot/scraper/bc2be754-d386-4b66-a69a-e6e4fc0430e0/search_products?page=0&sort=relevance&query=Elden+Ring®ion=Worldwide&platform=Steam' \ -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 cdkeys-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: CDKeys SDK — search, browse, and inspect game keys."""
from parse_apis.cdkeys_com_api import CDKeys, Sort, ProductNotFound
cdkeys = CDKeys()
# Search for games by title, sorted by price ascending, filtered to Steam
for product in cdkeys.products.search(query="Cyberpunk 2077", sort=Sort.PRICE_ASC, platform="Steam", limit=5):
print(product.name, product.sku, product.platform, product.region, product.release_date)
# Get current best sellers
for product in cdkeys.products.best_sellers(limit=3):
print(product.name, product.delivery_speed, product.qty_ordered_14_days)
# Get full details for a specific product by SKU
try:
detail = cdkeys.products.get(sku="D/ELDRINPC")
print(detail.name, detail.sku, detail.platform, detail.region, detail.in_stock)
except ProductNotFound as exc:
print(f"Product not found: {exc.sku}")
# List available categories, then browse one
for cat in cdkeys.categories.list(limit=5):
print(cat.path, cat.count)
# Browse a category using constructible Category
pc_games = cdkeys.category(path="PC /// Games")
for product in pc_games.products(sort=Sort.RELEASE_DATE, limit=3):
print(product.name, product.release_date, product.delivery_speed)
# Latest releases / pre-orders
latest = cdkeys.products.latest(limit=1).first()
if latest:
print(latest.name, latest.release_date, latest.platform)
print("exercised: products.search / products.best_sellers / products.get / categories.list / category.products / products.latest")
Full-text search over CDKeys product catalog. Matches game titles and keywords. Supports filtering by platform and region, and sorting by relevance, price, or release date. Returns paginated results with 24 items per page. Each product includes localized names, URLs, pricing in 35+ currencies, platform, region, and stock status.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-indexed). |
| sort | string | Sort order for results. |
| queryrequired | string | Search query matching product titles (e.g. 'Elden Ring', 'GTA 5', 'minecraft'). |
| region | string | Region filter (e.g. Worldwide, Europe & UK, Europe Middle East and Africa, North America, UK). |
| platform | string | Platform filter (e.g. Steam, Windows, Xbox Play Anywhere, Rockstar Games, Microsoft, Nintendo). |
{
"type": "object",
"fields": {
"hits": "array of product objects with localized name, url, sku, price (multi-currency), platforms, region, release_date, image_url, and other attributes",
"page": "integer, current page number (0-indexed)",
"nbHits": "integer, total number of matching products",
"nbPages": "integer, total number of pages available"
},
"sample": {
"data": {
"hits": [
{
"dlc": {
"default": "No"
},
"sku": {
"default": "D/ELDRINPC"
},
"url": {
"default": "https://www.loaded.com/elden-ring-pc-steam"
},
"name": {
"default": "Elden Ring PC (EMEA)"
},
"price": {
"EUR": {
"default": 34.79
},
"GBP": {
"default": 29.99
},
"USD": {
"default": 40.79
}
},
"region": {
"default": "Europe Middle East and Africa"
},
"in_stock": 1,
"objectID": "12393",
"image_url": {
"default": "https://cdn.loaded.com/265x265/media/catalog/product/e/l/elden_ring_pc.jpg"
},
"platforms": {
"default": "Steam"
},
"release_date": "2022-02-25",
"delivery_speed": {
"default": "Instant Delivery"
},
"qty_ordered_14_days": 994
}
],
"page": 0,
"nbHits": 64,
"nbPages": 3
},
"status": "success"
}
}About the CDKeys API
Search and Browse Game Keys
The search_products endpoint accepts a free-text query (e.g. 'Elden Ring', 'GTA 5') and optional filters for platform (Steam, Xbox Play Anywhere, Nintendo, etc.) and region (Worldwide, Europe & UK, North America, etc.). Results are paginated at 24 items per page and can be sorted by relevance, price, or release date. Each result in the hits array includes the product name, url, sku, multi-currency price, platforms, region, release_date, and image_url. The nbHits and nbPages fields support building full pagination UIs.
Product Detail and Categories
get_product_detail accepts either a sku (e.g. 'D/ELDRINPC') or a URL slug (e.g. 'elden-ring-pc-steam') and returns the single best-matching product. The response includes localized name and url fields keyed by locale, price keyed by currency code, in_stock status, platforms, region, dlc indicator, and the Algolia objectID. The get_categories endpoint returns a flat object mapping full category path strings like 'PC /// Games' or 'Xbox /// Xbox Games' to integer product counts — these paths are the required input to list_products_by_category.
Trending and Recent Releases
get_best_sellers returns products ordered by 14-day sales volume descending, with a qty_ordered_14_days field per product, making it straightforward to surface trending titles. get_latest_games returns products sorted by release date descending and includes pre-orders, with a delivery_speed field alongside standard pricing and platform metadata. Both endpoints support page and limit parameters for pagination.
The CDKeys API is a managed, monitored endpoint for cdkeys.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cdkeys.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 cdkeys.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 game key price tracker that monitors multi-currency pricing for specific SKUs over time using
get_product_detail. - Power a platform-specific game browser filtered by Steam or Nintendo using
search_productswith theplatformparameter. - Surface trending titles in a gaming deals newsletter by pulling
qty_ordered_14_daysfromget_best_sellers. - Create a release calendar for upcoming and newly added game keys using
release_datefromget_latest_games. - Compare regional pricing differences by querying the same SKU across North America and Europe & UK regions.
- Populate a category navigation menu for a deals site using category paths and product counts from
get_categories. - Flag out-of-stock titles in an inventory dashboard using the
in_stockfield fromget_product_detail.
| 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 CDKeys.com have an official public developer API?+
What currencies does the pricing data cover?+
price field in product responses is keyed by currency code and includes multiple currencies per product. The exact set of currency codes present depends on the individual listing, but results consistently include values across at least three currencies as noted in the endpoint spec.Does the API expose user reviews or ratings for game keys?+
Are there limitations on how categories must be specified for `list_products_by_category`?+
category parameter requires the exact full path string returned by get_categories, such as 'PC /// Games' or 'Xbox /// Xbox Games'. Partial paths or free-text category names are not accepted. Always call get_categories first to retrieve valid path strings and their associated product counts.