# idealo Shop Products API Documentation

List the products a shop offers in one category, with the same product cards, facets and totals as search. A shop ID that idealo does not know returns an empty result.

- **Documentation:** [https://scrappa.co/docs/idealo-api/idealo_shop_products](https://scrappa.co/docs/idealo-api/idealo_shop_products)
- **API group:** idealo API
- **Endpoint:** `GET https://scrappa.co/api/idealo/shop_products`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `shop_id` | string | Yes | idealo shop ID from an offer. |
| `category_id` | string | Yes | idealo category ID, for example 19116. |
| `page` | integer | No | 1-based page number. A page holds 36 products. Maximum 112. Defaults to 1. |
| `sort` | string | No | RELEVANCE_DESC (default), PRICE_ASC, PRICE_DESC, DISCOUNT_DESC or CREATION_DATE_DESC. |
| `filters` | array | No | Facet IDs from a previous response, comma separated or as filters[]. Filters from different groups narrow the result. |
| `item_states` | array | No | BARGAIN, SHORT_TERM_BARGAIN, EXCLUDE_USED or FAST_DELIVERABLE, comma separated. |
| `price_min` | number | No | Lowest product price in euros. |
| `price_max` | number | No | Highest product price in euros. |

## Example response

```json
{
    "meta": {
        "duration_ms": 1500,
        "upstream_calls": 2
    },
    "sort": "RELEVANCE_DESC",
    "facets": [],
    "results": [
        {
            "id": "209770533",
            "url": "https://www.idealo.de/preisvergleich/OffersOfProduct/209770533_-galaxy-a57-samsung.html",
            "type": "PRODUCT",
            "price": 327.9,
            "title": "Samsung Galaxy A57",
            "rating": {
                "test_rating": "2,0",
                "score_percent": 90,
                "user_review_count": 72
            },
            "currency": "EUR",
            "image_url": "https://cdn.idealo.com/folder/Product/209770/5/209770533/s1_produktbild_mittelgross/samsung-galaxy-a57.jpg",
            "subheading": "5G Handy",
            "category_id": "19116",
            "offer_count": 555,
            "is_sponsored": false,
            "is_bestseller": false,
            "cheapest_offer": {
                "shop_id": "338630",
                "offer_key": "7ffeb4fd636feef0ce8a1219f9f5ae09",
                "shop_name": "smartport.de (Marktplatzh\u00e4ndler)",
                "shipping_costs": "0,00 \u20ac"
            },
            "characteristics": [
                "5G Handy",
                "6,7 Zoll",
                "5.000 mAh"
            ],
            "price_formatted": "327,90 \u20ac",
            "has_pros_and_cons": true
        }
    ],
    "shop_id": "338630",
    "success": true,
    "pagination": {
        "page": 1,
        "has_more": true,
        "page_size": 36,
        "total_pages": 2,
        "total_results": 53
    },
    "category_id": "19116"
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | Returned when a required parameter is missing or a value is out of range. No credits are charged. |
| 404 | Not Found | Returned when idealo does not know the product, shop or page. No credits are charged. |
| 503 | Service Unavailable | Returned when idealo could not be read after several attempts. Failed requests are not charged. Try again. |
| 502 | Unexpected Response | Returned when idealo answers with a page this API cannot read. Failed requests are not charged. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
