aponeo.de APIaponeo.de ↗
Access product data, PZN lookups, pricing, availability, and deals from Aponeo.de via 8 structured API endpoints covering search, categories, and promotions.
curl -X GET 'https://api.parse.bot/scraper/9fe92eb8-fe22-4dbc-9f98-fd5b679b2a7c/search_products?page=1&query=ibuprofen' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword with pagination support. Returns products from the dataLayer including name, PZN, pricing, brand, and manufacturer.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| queryrequired | string | Search keyword (e.g., 'aspirin', 'ibuprofen') |
{
"type": "object",
"fields": {
"page": "integer — current page number",
"query": "string — the search query used",
"products": "array of product objects with name, pzn, price_b, base_price, brand, manufacturer",
"total_results": "integer — total number of results found"
},
"sample": {
"data": {
"page": 1,
"query": "aspirin",
"products": [
{
"pzn": "03464237",
"gtin": "03464237",
"name": "Aspirin Plus C Brausetabletten",
"brand": "Aspirin",
"price_b": 17.94,
"category": [
"9426",
"9542",
"12155"
],
"basePrice": 24.5,
"base_price": 24.5,
"grossPrice": 17.94,
"categoryIds": [
"9426",
"9542",
"12155"
],
"manufacturer": "Bayer Vital GmbH",
"promotionKey": "",
"manufacturerid": "2958"
}
],
"total_results": 28
},
"status": "success"
}
}About the aponeo.de API
The Aponeo.de API provides access to product data from one of Germany's online pharmacies across 8 endpoints, covering search, PZN-based product lookups, category browsing, and promotional listings. The get_product_detail endpoint returns JSON-LD structured data, stock availability, ingredient/attribute maps, and descriptive text sections for any product identified by its PZN. Pricing fields include price_b and base_price, enabling direct comparison across catalog entries.
Product Lookup and Search
The search_products endpoint accepts a query string (for example, 'ibuprofen' or 'vitamin d') and an optional page integer for pagination. It returns a products array where each item carries name, pzn, price_b, base_price, brand, and manufacturer, along with a total_results count. For direct PZN-based access, get_product_by_pzn and get_product_detail both resolve a product by its German pharmacy number. When a slug is also supplied to get_product_detail, the lookup goes directly to the product page; without it, the API searches by PZN first.
Product Detail Fields
get_product_detail returns the most granular data available. The json_ld field is an array of JSON-LD structured data objects that typically include a Product schema with offers, aggregate ratings, and reviews. The attributes field is a key-value map of label-to-value pairs (e.g., dosage form, pack size, active ingredients). descriptions maps section titles to text content such as usage instructions or warnings. The availability boolean indicates current stock status.
Category Browsing and Promotions
get_category_products takes a category path string matching the site's URL structure — values like 'arzneimittel', 'sport-fitness', or 'koerperpflege-kosmetik' — and returns paginated product listings with name, pzn, url, price, and an optional discount field. Three no-parameter endpoints cover curated product sets: get_deals returns discounted products from the Schnäppchen promotions page, get_new_products returns items from the Neuheiten listing, and get_topseller_products returns the current top sellers. get_apo_cash_deals returns products enrolled in Aponeo's APO Cash bonus program, also with optional discount fields.
Data Shape Notes
The data field in product detail responses reflects ecommerce detail objects and may be empty for some products — the json_ld array is the more reliable source for structured product metadata in those cases. Category endpoint products include a url field not present in search results, while search results include brand and manufacturer fields not always present in category listings. Pagination is zero- or one-indexed depending on the endpoint; the page return field confirms which page was actually served.
- Monitor price changes for specific PZN-identified medications across time using
price_bandbase_pricefields - Build a German pharmacy product catalog with availability flags by iterating
get_category_productsacross category paths - Track current promotional deals by polling
get_dealsandget_apo_cash_dealsfor discounted and bonus products - Aggregate product metadata including ratings and reviews via the
json_ldfield inget_product_detail - Cross-reference newly listed items with
get_new_productsto identify recent additions to the Aponeo catalog - Compare ingredient attributes by extracting the
attributesmap from multiple PZN lookups - Identify top-selling OTC and healthcare products using
get_topseller_productsfor market trend analysis
| 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 | 250 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 Aponeo.de have an official developer API?+
What does `get_product_detail` return that `search_products` does not?+
get_product_detail returns the full json_ld array (including Product schema with offers, ratings, and reviews), the attributes map of label-value pairs, free-text descriptions sections, and a boolean availability field. search_products returns only name, pzn, price_b, base_price, brand, and manufacturer per product — sufficient for catalog scanning but not for detailed product pages.Does the API expose prescription-only medication data or require any special filtering to separate OTC from Rx products?+
attributes objects may contain prescription status where Aponeo surfaces it, but there is no top-level filter parameter for this distinction. You can fork the API on Parse and revise it to add a filtered endpoint that parses prescription indicators from the attributes map.Are customer reviews or ratings returned as structured data?+
json_ld array returned by get_product_detail and get_product_by_pzn, as part of the JSON-LD Product schema. Individual review text is not broken out into a separate field or endpoint. The API covers aggregate rating data but not paginated individual review listings. You can fork the API on Parse and revise it to add an endpoint that extracts individual review entries.How does pagination work across endpoints that support it?+
search_products and get_category_products both accept an optional page integer input. The response includes a page field confirming the current page served, and search_products also returns total_results so you can calculate the number of pages. Endpoints like get_deals, get_new_products, get_topseller_products, and get_apo_cash_deals do not accept pagination parameters and return a single result set.