Gamma APIgamma.be ↗
Access Gamma.be product data via API: search listings with prices, retrieve detailed specs, browse the full category tree, and get autocomplete suggestions.
What is the Gamma API?
The Gamma.be API provides 4 endpoints for accessing product and category data from Belgium's Gamma home improvement store. Use search_products to query the catalog and receive paginated results with prices, dimensions, brand, stock status, and variant data. get_product_details returns the full record for a single product including description, multiple images, delivery info, and store availability count.
curl -X GET 'https://api.parse.bot/scraper/ef576313-3d76-42a4-95f2-6f9790ea6378/search_products?page=1&limit=5&query=verf&include_prices=true' \ -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 gamma-be-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.
"""Gamma.be product search and detail workflow — bounded, re-runnable."""
from parse_apis.gamma_be_product_api import Gamma, ProductNotFound
client = Gamma()
# Search for paint products — limit caps total items fetched across pages.
for product in client.productsummaries.search(query="verf", limit=3):
print(product.name, product.price, product.in_stock)
# Drill into the first result for full detail (description, images, store count).
summary = client.productsummaries.search(query="hout", limit=1).first()
if summary:
detail = summary.details()
print(detail.name, detail.description, len(detail.images), detail.stores_available_count)
# Direct point-lookup by product ID.
try:
product = client.products.get(product_id="224235")
print(product.name, product.brand, product.price)
except ProductNotFound as exc:
print(f"Product gone: {exc.product_id}")
# Browse the category tree — single-page list of top-level categories.
for cat in client.categories.list(limit=5):
print(cat.name, cat.uid, len(cat.sub_categories))
# Autocomplete suggestions for a partial query.
for suggestion in client.suggestions.search(query="tuin", limit=3):
print(suggestion.query, suggestion.popularity)
print("exercised: productsummaries.search / details / products.get / categories.list / suggestions.search")
Full-text search over Gamma.be product catalog. Returns paginated product listings with metadata including prices, dimensions, materials, reviews, stock info, and variants. Pagination via page number; each page returns up to `limit` items. Price fetching adds a secondary tile request per batch — set include_prices to 'false' for faster, price-less results.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-indexed) |
| limit | integer | Results per page (max 50) |
| query | string | Search query for products |
| include_prices | string | Whether to fetch prices. Accepted values: 'true', 'false'. Set to 'false' for faster results. |
{
"type": "object",
"fields": {
"query": "search query used",
"products": "array of product summary objects with product_id, name, brand, price, dimensions, reviews, stock, variants",
"total_pages": "total number of pages available",
"current_page": "current page number (1-indexed)",
"total_results": "total number of matching products",
"results_per_page": "number of results requested per page"
}
}About the Gamma API
Endpoints and Response Fields
The search_products endpoint accepts a query string and returns an array of product objects containing product_id, name, brand, price, dimensions, reviews, stock, and variants. Pagination is controlled with page (1-indexed) and limit (max 50). The response also includes total_results, total_pages, and results_per_page for cursor management. Setting include_prices to 'false' skips price resolution, which reduces response latency when price data is not needed.
Product Details and Variants
get_product_details takes a product_id (the B prefix is stripped automatically) and returns the full product record: name, brand, price, old_price, promotion label, description, images array, url_fr (French-language page URL), and a variants array. Each variant object includes its own product_id, feature, value, and url, making it straightforward to enumerate size, color, or configuration options for a given item.
Category Tree and Autocomplete
get_categories returns the complete category hierarchy as a nested structure. Each node carries name, categoryUrl, uid, and a subCategories array that recurses to arbitrary depth, covering the full taxonomy from top-level departments down to leaf categories. The search_suggestions endpoint accepts a partial query and an optional limit, returning suggestion objects with query, nb_hits, and popularity scores — useful for building search interfaces or understanding query volume distribution across the catalog.
The Gamma API is a managed, monitored endpoint for gamma.be — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when gamma.be 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 gamma.be 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?+
- Monitoring price changes on Gamma.be products by polling
search_productsorget_product_detailsfor updatedpriceandold_pricefields. - Building a home improvement product comparison tool using brand, dimensions, and variant data from
get_product_details. - Mapping the Gamma.be category hierarchy for SEO or navigation purposes using the nested
subCategoriestree fromget_categories. - Powering autocomplete in a third-party search UI using
nb_hitsandpopularityscores fromsearch_suggestions. - Tracking promotional activity across the catalog by extracting
promotionlabel text andold_pricefrom product records. - Syncing Gamma.be stock and delivery information into an internal procurement or inventory system using
stockand delivery fields.
| 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 Gamma.be have an official public developer API?+
What does `search_products` return that `get_product_details` does not?+
search_products returns paginated batch results with total_results and total_pages metadata, suited for browsing or bulk collection. get_product_details returns fields not available in search results — specifically description, the full images array, url_fr, store availability count, and delivery information — for a single product identified by product_id.Does the API cover Gamma.nl (Netherlands) as well as Gamma.be?+
Are customer review details such as review text or individual ratings returned?+
reviews field on product objects from search_products, but full review text and per-reviewer breakdowns are not currently included in the exposed fields. The API covers aggregate review metadata. You can fork it on Parse and revise to add an endpoint that returns individual review content.What is the maximum number of results returnable per search request?+
limit parameter on search_products accepts a maximum of 50 results per page. For larger result sets, use the total_pages value in the response to iterate through subsequent pages with the page parameter.