toom APItoom.de ↗
Search toom Baumarkt's product catalog, fetch full product details with specs and pricing, and check branch-level stock near any German postal code.
What is the toom API?
The toom.de API gives developers access to toom Baumarkt's product catalog through 3 endpoints covering search, product detail, and store-level availability. search_products returns paginated results with prices and availability status. get_product_detail exposes 10 structured fields per article including energy rating, brand, characteristics, and image URLs. check_store_availability locates up to 10 nearby branches by postal code and reports click-and-collect or reserve-and-collect options per store.
curl -X GET 'https://api.parse.bot/scraper/07096e07-60a8-4535-831f-a4f78dfbd17e/search_products?page=1&query=Klimageraet' \ -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 toom-de-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: toom Baumarkt SDK — bounded, re-runnable; every call capped."""
from parse_apis.toom_Baumarkt_API import Toom, ProductNotFound
client = Toom()
# Search for mobile air conditioners
for product in client.product_summaries.search(query="mobiles Klimageraet", limit=3):
print(product.title, product.price, product.store_status)
# Drill-down: get full details for the first result via navigation
hit = client.product_summaries.search(query="Klimageraet", limit=1).first()
if hit:
try:
full = hit.details()
print(full.title, full.brand, full.price, full.energy_rating)
except ProductNotFound as e:
print("not found:", e.article_id)
# Check store availability near Leipzig
if hit:
for store in full.stores.nearby(postal_code="04103", limit=3):
print(store.name, store.city, store.stock_status, store.in_stock)
print("exercised: product_summaries.search / hit.details / product.stores.nearby")
Full-text search across toom Baumarkt product catalog. Returns paginated product listings with prices and basic availability status ordered by relevance.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| queryrequired | string | Search term for products. |
{
"type": "object",
"fields": {
"page": "current page number",
"query": "the search term used",
"products": "array of product summaries",
"total_results": "total number of matching products"
},
"sample": {
"data": {
"page": 1,
"query": "Klimageraet",
"products": [
{
"url": "https://toom.de/p/flexible-luftleitung-125-mm-x-25-m/3400932",
"slug": "flexible-luftleitung-125-mm-x-25-m",
"brand": "toom",
"price": 21.99,
"title": "Flexible Luftleitung 125 mm x 2,5 m",
"article_id": "3400932",
"store_status": "available",
"delivery_available": true
}
],
"total_results": 53
},
"status": "success"
}
}About the toom API
Product Search
The search_products endpoint accepts a query string and an optional page integer for pagination. It returns a products array of summaries alongside total_results and the current page, so you can iterate through a full result set. Results are ordered by relevance to the search term.
Product Detail
The get_product_detail endpoint takes a numeric article_id (obtainable from search results) and returns a detailed record: title, brand, price in EUR, description, energy_rating (EU efficiency class where applicable), characteristics as a flat key-value object of product specifications, images as an array of URLs, availability with an online_status field, and a canonical url. The characteristics object varies by product category — a power drill will expose different keys than a bag of cement.
Store Availability
The check_store_availability endpoint accepts an article_id and a 5-digit German postal_code. It returns a nearby_stores array of up to 10 toom branches sorted by proximity, each annotated with supported services such as click-and-collect and reserve-and-collect. The response also includes the current price, online_delivery_available flag, and a product_url for the article. This is useful for building store-locator features or confirming in-store pickup options before directing a user to a branch.
The toom API is a managed, monitored endpoint for toom.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when toom.de 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 toom.de 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-tracking tool for building materials and home improvement supplies sold at toom Baumarkt.
- Create a store-finder widget that checks which toom branches near a given postal code have a specific product in stock.
- Aggregate EU energy efficiency ratings from
get_product_detailto compare appliances across listings. - Populate a product catalog with structured specs from the
characteristicsobject for power tools, paint, or plumbing supplies. - Monitor click-and-collect and reserve-and-collect service availability across branches for a specific article.
- Index toom product images and descriptions for a German home improvement comparison site.
- Automate availability alerts when a searched product appears in stock at a nearby toom location.
| 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 toom Baumarkt have an official developer API?+
What does check_store_availability return for each store in the nearby_stores array?+
nearby_stores includes the store's location details and the services it supports for the queried article — specifically whether click-and-collect or reserve-and-collect is available. Stores are sorted by proximity to the supplied postal code, and the response covers up to 10 branches.Does get_product_detail return customer reviews or ratings?+
Is there a way to browse products by category or filter by brand rather than a text query?+
search_products endpoint currently accepts only a free-text query parameter. Category browsing and brand-level filtering are not covered. You can fork this API on Parse and revise it to add a category-browse or filtered-search endpoint.How many products can a single search_products call return, and how should pagination be handled?+
total_results and the current page number, so you can calculate how many pages exist and iterate by incrementing the page parameter until all results are retrieved.