# OLX Poland Search API Documentation

<p><strong>OLX Poland Search API</strong> searches public olx.pl ads by keyword, category, region, city, district and price range. Each ad carries id, url, title, description, ISO 8601 creation, refresh and expiry times, a numeric PLN price with currency and label, parsed parameters, seller type (private or business), location names with ids, and photo urls. Pagination uses offset and limit (up to 50). <code>total</code> is the real number of matching ads; OLX makes at most 1000 rows reachable per query, so <code>next_offset</code> stops at offset 1000. Search is fuzzy and not exhaustive. Seller names, phone numbers and contact data are never returned. A valid empty result is billed; every failure is not.</p>

- **Documentation:** [https://scrappa.co/docs/olx-pl-api/olx_pl_search](https://scrappa.co/docs/olx-pl-api/olx_pl_search)
- **API group:** OLX Poland API
- **Endpoint:** `GET https://scrappa.co/api/olx-pl/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 | No | Search keywords. Required unless category_id, region_id or city_id is set. Example: rower. |
| `category_id` | integer | No | OLX category id. Example: 84. |
| `region_id` | integer | No | Region id from the regions endpoint. Example: 2. |
| `city_id` | integer | No | City id from the cities or locations endpoint. Example: 17871. |
| `district_id` | integer | No | District id from the districts endpoint. Needs city_id. Example: 367. |
| `distance` | integer | No | Radius in km around city_id, 1-100. Needs city_id. Example: 10. |
| `price_from` | number | No | Minimum price in PLN. Example: 500. |
| `price_to` | number | No | Maximum price in PLN. Example: 1500. |
| `owner_type` | string | No | private or business. |
| `sort_by` | string | No | relevance:desc (default), created_at:desc, filter_float_price:asc or filter_float_price:desc. |
| `offset` | integer | No | Rows to skip, 0-1000. Defaults to 0. |
| `limit` | integer | No | Rows per page, 1-50. Defaults to 40. |

## Example response

```json
{
    "data": {
        "limit": 3,
        "total": 67118,
        "offset": 0,
        "results": [
            {
                "id": 1105127075,
                "url": "https://www.olx.pl/d/oferta/lekki-rower-rozmiar-m-CID767-ID1cN02f.html",
                "price": {
                    "label": "500 z\u0142",
                    "value": 500,
                    "currency": "PLN"
                },
                "title": "Lekki rower rozmiar M",
                "params": [
                    {
                        "key": "state",
                        "name": "Stan",
                        "value": "U\u017cywane"
                    },
                    {
                        "key": "gender",
                        "name": "P\u0142e\u0107",
                        "value": "Uniseks"
                    },
                    {
                        "key": "equipment",
                        "name": "Wyposa\u017cenie dodatkowe",
                        "value": "Lusterko, Elementy odblaskowe, Licznik"
                    },
                    {
                        "key": "brand",
                        "name": "Marka",
                        "value": "Giant"
                    },
                    {
                        "key": "braketype",
                        "name": "Typ hamulca",
                        "value": "Tarczowe hydrauliczne"
                    },
                    {
                        "key": "framematerial",
                        "name": "Materia\u0142 ramy",
                        "value": "Karbon"
                    }
                ],
                "photos": [
                    "https://ireland.apollo.olxcdn.com/v1/files/2pz255v2pf7a2-PL/image;s=800x600"
                ],
                "location": {
                    "city": "Krosno",
                    "region": "Podkarpackie",
                    "city_id": 9359,
                    "region_id": 17
                },
                "created_at": "2026-10-15T13:26:07Z",
                "category_id": 1650,
                "description": "U\u017cywany rower giant informacje pod nr tel 79*****47",
                "seller_type": "private",
                "valid_until": "2026-11-14T13:28:11Z",
                "refreshed_at": "2026-10-15T13:30:49Z"
            }
        ],
        "next_offset": 3
    },
    "meta": {
        "billable": true,
        "endpoint_family": "search"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 500 | Parser Drift | OLX answered with a response shape this parser does not recognise. Never charged. |
| 503 | Upstream Unavailable | The upstream service is temporarily unavailable. Please retry shortly. |

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