# Billiger.de Search API Documentation

Search Billiger.de by keyword. Results include canonical Billiger identifiers, typed hits, pagination metadata, spelling metadata, and facets with their current values and counts. Apply returned facets with filters[key]=value. External identifier lookup is not supported.

- **Documentation:** [https://scrappa.co/docs/billiger-api/billiger_search](https://scrappa.co/docs/billiger-api/billiger_search)
- **API group:** Billiger.de API
- **Endpoint:** `GET https://scrappa.co/api/billiger/search`

## 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 |
| --- | --- | --- | --- |
| `query` | string | Yes | Search text. Alias: q. |
| `page` | integer | No | 1-based page number. Defaults to 1. |
| `page_size` | integer | No | Results per page. Defaults to 20, maximum 50. |
| `sort` | string | No | relevance, clickout_relevance, price, price_rev, rating, or disjunctive. |
| `cat` | integer | No | Billiger category ID. |
| `doctype` | string | No | auto, offer, product, or product_offer. |
| `filters` | array | No | Associative facet values returned by a previous search, for example filters[brand]=2220. |
| `fuzzy` | boolean | No | Enable fuzzy matching. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/billiger/search?query=iphone&page=1&page_size=20&sort=relevance"
```

## Example response

```json
{
    "success": true,
    "data": {
        "total_hits": 100,
        "hits": [],
        "filters": []
    },
    "meta": {
        "pagination": {
            "page": 1,
            "page_size": 20,
            "total": 100,
            "total_pages": 5,
            "has_more": true
        }
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | Returned when required identifiers, query text, pagination, or numeric offer condition parameters are invalid. |
| 502 | Invalid Upstream Response | Returned as a non-billable failure when Billiger returns an unsuccessful, malformed, or incomplete response. |
| 503 | Service Unavailable | Returned as a non-billable failure when private configuration or a healthy proxy path is unavailable. |

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