Humble Bundle APIhumblebundle.com ↗
Access Humble Bundle store products, active bundle tiers, Humble Choice games, and free game listings via 6 structured API endpoints.
What is the Humble Bundle API?
The Humble Bundle API provides 6 endpoints covering store search, product detail, active bundle listings, per-bundle tier breakdowns, Humble Choice monthly games, and free game discovery. The get_bundle_detail endpoint returns full tier structures including per-item machine names, pricing labels, and charity information for any live bundle. Use search_store with genre, platform, and sort parameters to page through the full Humble Store catalog.
curl -X GET 'https://api.parse.bot/scraper/ddefcc32-cd81-406c-9ba8-7f18abdc11d5/search_store?page=0&sort=bestselling&genre=indie&query=puzzle&filter=all&platform=windows' \ -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 humblebundle-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.humble_bundle_api import HumbleBundle, StoreFilter, BundleCategory
humble = HumbleBundle()
# Search for on-sale indie games
for product in humble.products.search(genre="indie", filter=StoreFilter.ON_SALE, limit=5):
print(product.human_name, product.current_price.amount, product.platforms)
# Get detailed info for a specific product by machine_name
detail = humble.products.get(machine_name="timberborn_storefront")
print(detail.human_name, detail.description)
# Browse active game bundles and drill into the first one
for bundle in humble.bundles.list(category=BundleCategory.GAMES):
detail = bundle.details()
print(detail.title, detail.charity_name, detail.end_date)
for tier in detail.tiers:
print(f" {tier.price_label}")
for item in tier.items:
print(f" - {item.human_name} ({item.content_type})")
break
# Get this month's Humble Choice selection
choice = humble.choicemonths.get_current()
print(choice.url)
for title in choice.games:
print(title)
Search for products in the Humble Store with filters and sorting. Returns paginated results (20 per page) of games and software available for purchase. Supports filtering by genre, platform, sale status, and text search. Results include pricing, platform availability, and delivery methods.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-indexed). |
| sort | string | Sort order for results. |
| genre | string | Genre filter (e.g. indie, strategy, simulation, action, adventure, rpg, puzzle). |
| query | string | Search keyword to filter results by name. |
| filter | string | Sale filter. |
| platform | string | Platform filter (e.g. windows, mac, linux). |
{
"type": "object",
"fields": {
"results": "array of product objects with machine_name, human_name, current_price, full_price, platforms, delivery_methods",
"num_pages": "integer total number of pages",
"num_results": "integer total number of matching results"
},
"sample": {
"data": {
"results": [
{
"cta_badge": null,
"platforms": [
"linux",
"mac",
"windows"
],
"full_price": {
"amount": 19.99,
"currency": "USD"
},
"human_name": "Mina the Hollower",
"machine_name": "minathehollower_storefront",
"current_price": {
"amount": 19.99,
"currency": "USD"
},
"delivery_methods": [
"download_drm",
"steam"
]
}
],
"num_pages": 795,
"num_results": 15882
},
"status": "success"
}
}About the Humble Bundle API
Store Search and Product Detail
The search_store endpoint accepts query, genre, platform, sort, and filter parameters and returns paginated results — each product object includes machine_name, human_name, current_price, full_price, platforms, and delivery_methods. Pagination is zero-indexed via the page parameter, and num_pages / num_results in the response let you walk the full result set. Text search via query is supported but performs slower than browsing with sort or genre filters. Once you have a machine_name, pass it as product_slug to get_store_product to retrieve HTML description, developer and publisher arrays, system requirements, and both current_price and full_price as currency-aware objects.
Bundle Listings and Tier Data
get_active_bundles accepts an optional category parameter (games, books, or software) and returns an array of live bundles with name, url, slug, category, end_date, and description. Pass a bundle_slug from that result set to get_bundle_detail to get the full tier breakdown: each tier includes a price_label, a tier_id, and an items array where every entry carries machine_name, human_name, and content_type. The response also exposes charity_name, num_purchases, and an ISO end_date. If the slug refers to a bundle that has expired or does not exist, the endpoint returns a stale_input indicator rather than an error.
Humble Choice and Free Games
get_choice_monthly takes no parameters and returns the current month's Humble Choice game titles as a string array alongside the canonical membership page URL. get_free_games also takes no parameters and returns a results array of currently free titles in the Humble Store, structured the same way as search_store results. Both endpoints reflect the current state of the respective offerings at the time of the request.
The Humble Bundle API is a managed, monitored endpoint for humblebundle.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when humblebundle.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 humblebundle.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 Humble Bundle deal expiration dates and alert users before a bundle's
end_datepasses - Build a game library enrichment tool that resolves
machine_nameslugs to developer, publisher, and platform data viaget_store_product - Monitor Humble Choice monthly lineup changes to notify subscribers when new titles appear in the
gamesarray - Aggregate charity beneficiaries across active bundles using the
charity_namefield fromget_bundle_detail - Filter Humble Store inventory by platform and genre using
search_storeto power a cross-store deal comparison feed - Surface currently free Humble Store games via
get_free_gamesin a daily digest or Slack bot - Analyze bundle tier pricing and content counts to identify which tiers offer the most titles per dollar
| 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 Humble Bundle have an official public developer API?+
What does `get_bundle_detail` return if a bundle slug has expired?+
bundle_slug refers to a bundle that is no longer active or does not exist, the endpoint returns a stale_input indicator in the response rather than a structured bundle object. This lets callers detect stale slugs without catching HTTP errors. Only currently active bundles return full tier and charity data.Does the API cover historical or past bundles?+
get_active_bundles and get_bundle_detail only cover bundles currently live on Humble Bundle. Past or archived bundles are not accessible. The API covers current store products, active bundle tiers, the current Humble Choice lineup, and present-state free games. You can fork the API on Parse and revise it to add an endpoint targeting historical bundle data if a suitable data source becomes available.Can I retrieve user account data, purchase history, or library contents?+
How does the `search_store` `filter` parameter behave compared to `genre`?+
filter parameter accepts all or onsale and controls whether results are restricted to discounted items. The genre parameter is a separate dimension and accepts string values like indie, strategy, or simulation. Both can be combined in a single request along with platform and sort. Note that using the query text search parameter is documented to run slower than filtering by sort or genre alone.