Eneba APIeneba.com ↗
Access Eneba product listings, seller offers, pricing, and platform filters via 5 structured endpoints. Search games, DLC, gift cards, and more.
What is the Eneba API?
The Eneba API gives developers structured access to digital game key marketplace data across 5 endpoints, covering product search, filtered browsing, detailed product metadata, and per-product seller offers. The get_product_offers endpoint, for example, returns a ranked list of seller offers with price, merchant details, MSRP, discount percentage, cashback, and stock status — all for a given product slug.
curl -X GET 'https://api.parse.bot/scraper/f819ae34-69c3-4bce-9faa-0f123f99cbe1/search_products?page=0&limit=5&query=Elden+Ring®ion=global' \ -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 eneba-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.eneba_marketplace_api import Eneba, ProductSummary, Product, Platform, ProductType
eneba = Eneba()
# Search for products by keyword
for item in eneba.products.search(query="Elden Ring", region="global", limit=3):
print(item.name, item.price, item.currency, item.platform)
# Browse Steam games using enum filters
for item in eneba.products.browse(platform=Platform.STEAM, product_type=ProductType.GAME, limit=5):
print(item.name, item.slug, item.price)
# Get full product details
product = eneba.products.get(slug="steam-arc-raiders-steam-key-pc-global")
print(product.name, product.released_at, product.drm.name)
for genre in product.genres:
print(genre.name, genre.value)
# Navigate from summary to detail
for summary in eneba.products.search(query="ARC Raiders", limit=1):
detail = summary.details()
print(detail.name, detail.languages, detail.developers)
# List offers for a product
product = eneba.products.get(slug="steam-arc-raiders-steam-key-pc-global")
for offer in product.offers.list():
print(offer.merchant.displayname, offer.price.amount, offer.price.currency, offer.is_in_stock)
# List all store categories
for cat in eneba.categories.list():
print(cat.name, cat.slug)
Full-text search over Eneba's product catalog. Returns paginated results with pricing and platform information. Pagination is 0-indexed. Each product includes its lowest USD price, platform/DRM, region availability, and wishlist popularity.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-indexed) |
| limit | integer | Number of results per page |
| queryrequired | string | Search keyword |
| region | string | Region filter (e.g., 'global', 'united_states', 'north_america', 'europe', 'lithuania') |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"total": "integer, total number of results",
"nb_pages": "integer, total number of pages",
"products": "array of product summary objects with name, slug, image, price, currency, regions, platform, product_type, wishlist_count"
},
"sample": {
"data": {
"page": 0,
"total": 207,
"nb_pages": 42,
"products": [
{
"name": "Elden Ring Steam Key (PC) UNITED STATES",
"slug": "steam-elden-ring-pc-steam-key-united-states",
"image": "https://imgproxy.eneba.games/example.jpg",
"price": 53.72,
"regions": [
"united_states"
],
"currency": "USD",
"platform": "steam",
"product_type": "game",
"wishlist_count": 2018
}
]
},
"status": "success"
}
}About the Eneba API
Search and Browse Products
The search_products endpoint accepts a query string and optional page, limit, and region parameters, returning paginated results with product name, slug, price, currency, platform, product_type, and wishlist_count. The list_products endpoint layers in additional filters: type (e.g., game, dlc, giftcard, top_up, emoney_prepaid) and platform (e.g., steam, xbox, psn, nintendo). Both endpoints share the same paginated response shape — page, total, nb_pages, and a products array — and use 0-indexed page numbers.
Product Details and Metadata
get_product_details takes a product slug and returns the full metadata record: DRM information (including name, slug, and an activation guide article slug), genres, regions (as code/name pairs), languages, developers, releasedAt (ISO 8601), and a description object that includes an HTML text field and meta content. Slugs are sourced from search_products or list_products results.
Seller Offers and Pricing
get_product_offers returns all available seller offers for a given slug, sorted by price ascending. Each offer object includes id, price, merchant info, msrp, msrpDiscountPercent, isInStock, isPreOrder, and cashback. The response also surfaces total_offers and a has_next_page boolean for pagination awareness. This makes it straightforward to compare the cheapest available key across multiple merchants for any product.
Categories
list_categories requires no parameters and returns the top-level category taxonomy — an array of objects with name, slug, and url. This is useful for building navigation or mapping Eneba's category structure to your own classification system.
The Eneba API is a managed, monitored endpoint for eneba.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when eneba.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 eneba.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?+
- Track price drops on Steam game keys across multiple Eneba sellers using
get_product_offers - Build a game price comparison tool that surfaces lowest-price and in-stock offers with MSRP discount data
- Aggregate Eneba listings by platform (e.g., PSN, Nintendo) using the
platformfilter inlist_products - Populate a game database with developer credits, genre tags, supported languages, and release dates from
get_product_details - Monitor which regions a product is available in by inspecting the
regionsarray returned byget_product_details - Identify pre-order listings and cashback-eligible offers for upcoming game releases via
get_product_offers - Map Eneba's full category taxonomy for classification or navigation using
list_categories
| 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 Eneba have an official public developer API?+
What does `get_product_offers` return, and how are offers ordered?+
price, merchant details, msrp, msrpDiscountPercent, isInStock, isPreOrder, and cashback. The response also includes total_offers and a has_next_page boolean so you can detect when additional pages of offers exist.Are there any known limitations with the `region` parameter?+
search_products and list_products, certain region values like europe may return errors rather than filtered results. Reliable region values include global, united_states, and country-level codes such as lithuania. Testing your specific region value before relying on it in production is advisable.