# Geizhals Product Details API Documentation

Scrappa's `GET /api/geizhals/product` endpoint returns rich details for a known Geizhals product id as structured JSON, including merchant offers, availability, specifications, images, test reviews, and price aggregates. Use a product id from a Geizhals product URL such as `...-a2194110.html`, or a `gzhid` from `GET /api/geizhals/search`.

- **Documentation:** [https://scrappa.co/docs/geizhals-api/geizhals_product](https://scrappa.co/docs/geizhals-api/geizhals_product)
- **API group:** Geizhals API
- **Endpoint:** `GET https://scrappa.co/api/geizhals/product`

## 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 |
| --- | --- | --- | --- |
| `product_id` | integer | Yes | Known Geizhals product id from product URLs such as ...-a2194110.html or a search gzhid. |
| `loc` | string | No | Market code: de, at, eu, pl, or uk. Defaults to de. |
| `lang` | string | No | Response language: de or en. Defaults to de. |
| `offers` | integer | No | Maximum number of merchant offers to include (1-100). Defaults to 20. |
| `merchant_details` | boolean | No | Include merchant/shop details on offers. Defaults to true. |
| `reviews` | boolean | No | Include test reviews and review details. Defaults to true. |
| `videos` | boolean | No | Include product videos. Defaults to true. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/geizhals/product?product_id=2194110&loc=de&offers=20"
```

## Example response

```json
{
    "success": true,
    "product_id": 2194110,
    "loc": "de",
    "lang": "de",
    "product": {
        "product": "Samsung 970 Evo Plus 1TB",
        "manufacturer_name": "Samsung",
        "offer_count": 34,
        "prices": {
            "best": 71.9,
            "avg": 84.2
        },
        "offers": [
            {
                "shop": "ExampleShop",
                "price": 71.9,
                "avl": "available"
            }
        ],
        "images": [
            "https://gzhls.at/i/00/00/2194110-n0.jpg"
        ],
        "urls": {
            "overview": "https://geizhals.de/a2194110.html"
        },
        "test_reviews": []
    },
    "meta": {
        "duration_ms": 731,
        "attempts": 1
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | One or more query parameters failed validation. |
| 502 | Bad Gateway | Geizhals returned a non-successful, empty, or malformed response through every attempted proxy. |
| 503 | Upstream Unavailable | No approved proxy path was available or every retry failed before Geizhals returned usable JSON. |

## 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)
