AllKeyShop APIallkeyshop.com ↗
Search games, compare CD key prices from multiple sellers, track price history, and retrieve store ratings via the AllKeyShop API.
What is the AllKeyShop API?
The AllKeyShop API exposes 5 endpoints covering game search, per-seller offer listings, historical price tracking, game metadata, and store information from AllKeyShop.com. The get_game_offers endpoint alone returns over 8 fields per offer including store rating, region, edition, coupon code, and payment fees, giving developers everything needed to surface real-time CD key price comparisons programmatically.
curl -X GET 'https://api.parse.bot/scraper/1b3e62ce-11d2-4455-939a-032fd4e952a6/search_games?query=Elden+Ring' \ -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 allkeyshop-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.
from parse_apis.allkeyshop_game_price_api import AllKeyShop, OfferSort, Game, GameInfo, PriceHistoryResult
client = AllKeyShop()
# Search for games by title
for game in client.games.search(query="Elden Ring"):
print(game.title, game.slug, game.price)
# Construct a game by slug and get detailed metadata
elden_ring = client.game(slug="buy-elden-ring-cd-key-compare-prices")
info = elden_ring.get_info()
print(info.title, info.product_id, info.rating.rating_value, info.rating.rating_count)
# Get offers sorted by price with fees
offers_result = elden_ring.get_offers(sort_by=OfferSort.PRICE_WITH_FEES)
print(offers_result.product_id, offers_result.slug)
for offer in offers_result.offers:
print(offer.store_name, offer.price, offer.coupon_code, offer.payment_fees.paypal.price)
# Get store info via sub-resource
store = elden_ring.stores.get(store_id="61")
print(store.name, store.official, store.rating.score, store.rating.count)
# Get price history from game info
history_result = info.price_history()
print(history_result.official_merchants, history_result.lower_official_price.price)
for entry in history_result.history:
print(entry.last_price, entry.merchant_id, entry.start, entry.region)
Full-text search over AllKeyShop's game catalog by title. Returns matching games with slugs usable as identifiers for detail/offers endpoints, platform tags, current best price, and thumbnail images. Results are server-ranked by relevance; no pagination — the response is a single page of top matches.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Game title to search for |
{
"type": "object",
"fields": {
"items": "array of game objects with title, slug, url, platforms, info, price, and image"
},
"sample": {
"data": {
"items": [
{
"url": "https://www.allkeyshop.com/blog/buy-elden-ring-cd-key-compare-prices/",
"info": "PC - 2022",
"slug": "buy-elden-ring-cd-key-compare-prices",
"image": "https://cdn.allkeyshop.com/images/catalog/000/029/109/catalog.jpg",
"price": "32.51",
"title": "Elden Ring",
"platforms": [
"pc"
]
}
]
},
"status": "success"
}
}About the AllKeyShop API
Game Search and Product Metadata
The search_games endpoint accepts a query string and returns an array of matching games, each with a slug, url, platform list, and optional title, price, and image fields. The slug value is the key identifier used by most other endpoints. To retrieve deeper metadata — including the product_id needed for price history — use get_game_info with the same slug. That endpoint returns title, description (HTML), image, price_range, and a rating object with ratingValue, ratingCount, bestRating, and worstRating.
Seller Offers and Price Comparison
get_game_offers takes a game slug and returns an offers array where each entry includes store_name, store_id, store_rating, price, original_price, coupon_code, region, edition, and activation platform. The optional sort_by parameter accepts price or price_with_fees, letting you order results by the raw price or the total cost after payment processing fees. The response also contains editions and merchants maps that provide structured detail for each offer's edition and seller, plus the numeric product_id string.
Price History
get_game_price_history accepts a numeric product_id (retrieved from get_game_offers or get_game_info) and returns a history array. Each entry records merchant_id, edition, region, last_price, min_discount_price, and best_discount_code, making it straightforward to track how prices and discount codes have changed over time. The response also includes officialMerchants, a comma-separated string of IDs identifying which merchants are flagged as official sellers.
Store Information
get_store_info retrieves merchant-level details. Pass a store_id to target a specific seller, or omit it to return all merchants associated with the given slug. Each returned record includes name, logo, rating (with score, count, and maximum), official flag, card and paypal booleans for accepted payment methods, and a review_link URL. If slug is omitted, the endpoint falls back to a default product page.
The AllKeyShop API is a managed, monitored endpoint for allkeyshop.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when allkeyshop.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 allkeyshop.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 price alert tool that monitors
get_game_offersfor drops below a targetprice_with_feesthreshold - Populate a game deal aggregator by combining
search_gamesslugs withget_game_offerscoupon codes and regional pricing - Visualize CD key price trends over time using
get_game_price_historymin_discount_priceandbest_discount_codefields - Rank sellers by trust score using
store_ratingfromget_game_offersor therating.scorefield fromget_store_info - Filter offers by activation region using the
regionfield inget_game_offersto surface region-specific pricing differences - Display game metadata including aggregate user
ratingCountandratingValuefromget_game_infoon a review dashboard - Identify official vs. third-party sellers using the
officialboolean inget_store_infobefore presenting offers to end users
| 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 AllKeyShop have an official developer API?+
What does `get_game_offers` return and how can I sort results?+
get_game_offers returns an offers array with fields like store_name, store_rating, price, original_price, coupon_code, region, edition, and activation platform per seller. Use the sort_by parameter with value price to sort by the listed price, or price_with_fees to account for payment processing costs. The response also includes editions and merchants lookup maps.Can I retrieve user reviews or review text for individual sellers?+
get_store_info returns a rating object with score, count, and maximum, plus a review_link URL pointing to the store's review page. Individual review text and per-review content are not currently returned. You can fork this API on Parse and revise it to add an endpoint that fetches review detail from the linked review pages.Does the API cover DLC, expansions, or in-game currency listings — not just base games?+
search_games and get_game_offers endpoints return results for whatever AllKeyShop indexes under a given query or slug, which may include DLC and currency packs if they have product pages on the site. There is no dedicated filter parameter to restrict or target only DLC vs. base game listings. You can fork this API on Parse and revise it to add filtering logic over the returned edition field.Are there any known data gaps or null fields I should handle?+
search_games endpoint documents that title, price, info, and image fields may be null depending on the search result format, so defensive null-checking is necessary. The price_range field in get_game_info is also returned as null when not available. Build your integration to tolerate missing values in these fields.