Discover/OBI API
live

OBI APIobi.de

Search OBI Germany's product catalog, retrieve pricing and product details, and check branch-level stock availability at nearby stores by postal code.

This API takes change requests — .
Endpoint health
verified 1h ago
search_products
get_product_detail
check_store_availability
3/3 passing latest checkself-healing
Endpoints
3
Updated
46m ago

What is the OBI API?

The OBI.de API covers 3 endpoints for querying the OBI Germany hardware and home improvement catalog. Use search_products to run full-text searches returning article IDs, names, and URLs across the entire catalog; then feed those IDs into get_product_detail for pricing, brand, GTIN, energy class, and ratings, or into check_store_availability to see stock quantities and opening hours at up to 10 nearby OBI branches.

This call costs3 credits / call— charged only on success
Try it
Search keyword(s) in German, e.g. 'mobiles Klimagerät', 'Ventilator', 'Klimaanlage'.
api.parse.bot/scraper/a41d44df-0bce-46cc-b9ee-4295beefe6d0/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/a41d44df-0bce-46cc-b9ee-4295beefe6d0/search_products?query=mobiles+Klimager%C3%A4t' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 obi-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: OBI Germany SDK — bounded, re-runnable; every call capped."""
from parse_apis.OBI_Germany_API import Obi, ProductNotFound

client = Obi()

# Search for mobile air conditioners
for product in client.product_summaries.search(query="mobiles Klimagerät", limit=3):
    print(product.name, product.article_id, product.is_marketplace)

# Drill down: get full details for the first result via navigation
item = client.product_summaries.search(query="Klimagerät", limit=1).first()
try:
    detail = item.details()
    print(detail.name, detail.price, detail.currency, detail.is_marketplace, detail.merchant_name)
except ProductNotFound as e:
    print(f"not found: {e.article_id}")

# Check store availability near Leipzig (04103)
for store in detail.check_availability(postal_code="04103", limit=3):
    print(store.store_name, store.city, store.distance_km, store.in_stock, store.available_quantity)

print("exercised: product_summaries.search / product_summary.details / product.check_availability")
All endpoints · 3 totalmissing one? ·

Full-text search across the OBI product catalog. Returns matching products with article IDs, names, URLs, and marketplace indicators. Results are auto-iterated; the SDK walks all pages. Each product exposes an article_id usable with get_product_detail and check_store_availability. Marketplace status (is_marketplace, merchant_name) is null in search results; use get_product_detail for definitive seller identification.

Input
ParamTypeDescription
queryrequiredstringSearch keyword(s) in German, e.g. 'mobiles Klimagerät', 'Ventilator', 'Klimaanlage'.
Response
{
  "type": "object",
  "fields": {
    "query": "the search query that was submitted",
    "total": "total number of matching products across all pages",
    "products": "array of product summaries with article_id, name, url, is_marketplace, and merchant_name"
  },
  "sample": {
    "data": {
      "query": "mobiles Klimagerät",
      "total": 125,
      "products": [
        {
          "url": "https://www.obi.de/p/6795504/mobiles-klimageraet-kgm-7000-35-eek-a-inkl-fernbedienung-mit-wifi-funktion",
          "name": "Mobiles Klimagerät KGM 7000-35 EEK: A inkl. Fernbedienung mit WiFi-Funktion",
          "article_id": "6795504"
        },
        {
          "url": "https://www.obi.de/p/8620890/midea-mobile-split-klimaanlage-portasplit",
          "name": "Midea mobile Split-Klimaanlage PortaSplit",
          "article_id": "8620890"
        }
      ]
    },
    "status": "success"
  }
}

About the OBI API

Product Search and Details

search_products accepts German-language keywords (e.g. 'mobiles Klimagerät', 'Ventilator') and returns the total match count plus a full list of products, each with an article_id, name, and url. Results are paginated automatically, so you receive the complete result set without managing page offsets manually. The article_id from these results is the key input for the other two endpoints.

get_product_detail accepts a single article_id and returns a 10-field response covering the canonical url, gtin (GTIN-13 barcode), name, brand, price (EUR), rating, category, currency, image_url, and article_id. This is the right endpoint when you need machine-readable pricing or want to match OBI products to barcodes in an external system.

Branch-Level Stock Availability

check_store_availability takes an article_id and a 5-digit German postal code (postal_code). It returns stores, an array of up to 10 nearest OBI branches, each with stock quantity, reserve-and-collect eligibility, street address, distance from the postal code, and current opening hours. The response also includes delivery_available (a boolean for home delivery to that postal code) and a delivery_info array listing seller, price, and delivery cost details. This makes it possible to distinguish between click-and-collect and direct-to-door fulfilment in a single call.

Reliability & maintenanceVerified

The OBI API is a managed, monitored endpoint for obi.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when obi.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 obi.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.

Last verified
1h ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a price-tracking tool that monitors EUR prices for specific OBI article IDs over time.
  • Create a store-picker widget that shows which nearby OBI branches have a product in stock before a customer drives to the store.
  • Match OBI products to a barcode database using the GTIN-13 field returned by get_product_detail.
  • Aggregate product ratings and categories from OBI to feed into a home improvement product comparison site.
  • Check reserve-and-collect eligibility across multiple postal codes for a given article to support regional inventory dashboards.
  • Query delivery_available and delivery_info to surface shipping options for customers in specific German regions.
  • Search OBI's catalog by German-language keyword to build a translated or categorised product index for downstream apps.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does OBI have an official public developer API?+
OBI does not publish a public developer API or developer portal for third-party access to its product catalog or store data.
What does check_store_availability return beyond a simple in-stock/out-of-stock flag?+
The endpoint returns up to 10 stores sorted by proximity to the supplied postal code. Each store entry includes the exact stock quantity, whether reserve-and-collect is available, the store address, distance, and current opening hours. The response also includes delivery_available (boolean) and a delivery_info array with seller, price, and cost details for home delivery.
Does search_products return product descriptions or only summary fields?+
search_products returns article_id, name, and url per product — summary fields only. Full details including brand, price, rating, GTIN, and image_url are available by passing the article_id to get_product_detail.
Does the API cover OBI stores outside Germany?+
The API covers obi.de, which serves the German market. OBI operates stores in other countries (Austria, Poland, etc.), but those regional sites are not covered by these endpoints. You can fork the API on Parse and revise it to target a different OBI country domain if needed.
Can I retrieve customer review text or individual review comments?+
Not currently. get_product_detail returns the aggregate customer rating (1–5 scale) but not individual review text or review counts. You can fork the API on Parse and revise it to add an endpoint that returns per-review content.
Page content last updated . Spec covers 3 endpoints from obi.de.
Related APIs in EcommerceSee all →
bauhaus.info API
Search for hardware products and check real-time availability across BAUHAUS Germany store locations to find exactly what you need and where to get it. View detailed product information including specifications and pricing to make informed purchasing decisions before visiting a store.
hornbach.de API
Search for building and home improvement products at HORNBACH Germany and instantly access detailed pricing, delivery information, and real-time stock availability across all store locations. Check which items are in stock near you and get complete product specifications to make informed purchasing decisions.
globus-baumarkt.de API
Search for DIY and building materials across Globus Baumarkt's product catalog, view detailed product information including prices and specifications, and instantly check which nearby branches have items in stock for pickup or reservation. Never waste time calling stores again—find exactly what you need and where to get it, all in one place.
toom.de API
Search for products across toom Baumarkt's catalog and instantly access detailed pricing, specifications, and real-time stock levels at branches near your German postal code. Find exactly what you need and discover where to pick it up locally in just a few clicks.
hagebau.de API
Browse Hagebau's complete product catalog, search across thousands of items by category and brand, and check real-time store availability for building materials and home improvement products. Access detailed product specifications, filter by brand, and discover what's in stock at your nearest location.
mediamarkt.de API
Search for products on MediaMarkt Germany and retrieve detailed information including seller identification and real-time availability across different store locations. Check which stores have specific items in stock before making a purchase decision.
hood.de API
Browse and search thousands of products on hood.de, view detailed product information, explore categories, and discover current deals—all with autocomplete suggestions to help you find exactly what you're looking for. Get real-time access to pricing, availability, and special offers from Germany's popular online marketplace.
saturn.de API
Monitor real-time product availability, pricing, and seller information across Saturn.de locations, with the ability to check pickup options at specific stores by postal code. Search for products and retrieve detailed information to make informed purchasing decisions based on current stock and pricing data.