# Halo Oglasi Agency Ads API Documentation

<p><strong>Halo Oglasi Agency Ads API</strong> lists the ads of one advertiser, 20 per page, in the same item shape as the search route. Filter by listing type, property type, price, area, rooms and the other search filters, sort and page through the results. Without a listing type the result covers sale and rent. The total equals the count on the public profile.</p><p>Filters are never ignored and a page is never labelled as another page. Failed requests are not billed.</p>

- **Documentation:** [https://scrappa.co/docs/halooglasi-api/halooglasi_agency_ads](https://scrappa.co/docs/halooglasi-api/halooglasi_agency_ads)
- **API group:** Halo Oglasi API
- **Endpoint:** `GET https://scrappa.co/api/halooglasi/agency-ads`

## 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 |
| --- | --- | --- | --- |
| `advertiser_id` | integer | Yes | Advertiser id from the agency route. |
| `listing_type` | string | No | sale or rent. Omit for both. |
| `property_type` | string | No | flat, house, land, garage, shop, warehouse or room (rent only). Omit for all types. |
| `min_price` | number | No | Minimum price in EUR (rent: per month). |
| `max_price` | number | No | Maximum price in EUR. |
| `min_area` | number | No | Minimum area in square meters. |
| `max_area` | number | No | Maximum area in square meters. |
| `min_rooms` | number | No | Minimum number of rooms, in steps of 0.5. |
| `max_rooms` | number | No | Maximum number of rooms, in steps of 0.5. |
| `advertiser_type` | string | No | owner, agency or investor. |
| `building_type` | string | No | old or new. |
| `condition_ids` | string | No | Comma separated condition ids from data.facets.condition. |
| `furnishing_ids` | string | No | Comma separated furnishing ids from data.facets.furnishing (rent). |
| `heating_ids` | string | No | Comma separated heating ids from data.facets.heating. |
| `feature_ids` | string | No | Comma separated ids from data.facets.additional and data.facets.extras. |
| `sort` | string | No | newest (default), oldest, price_asc, price_desc, area_asc or area_desc. |
| `page` | integer | No | One-based page number, 1 to 5000 (default 1). |

## Example response

```json
{
    "data": {
        "items": [
            {
                "id": "5425642675010",
                "url": "https://www.halooglasi.com/nekretnine/prodaja-stanova/garazno-mesto-u-kraljevim-cardacima/5425642675010",
                "path": "/nekretnine/prodaja-stanova/garazno-mesto-u-kraljevim-cardacima/5425642675010",
                "floor": null,
                "price": {
                    "amount": 20000,
                    "currency": "EUR"
                },
                "rooms": 1,
                "title": "Gara\u017eno mesto u Kraljevim \u010cardacima",
                "area_m2": 13,
                "location": {
                    "area": "Planina",
                    "city": "Kopaonik",
                    "places": [
                        "Kopaonik",
                        "Planina",
                        "Kraljevi \u010dardaci",
                        "Stefana Prvoven\u010danog"
                    ],
                    "street": "Stefana Prvoven\u010danog",
                    "micro_location": "Kraljevi \u010dardaci"
                },
                "thumbnail": "https://img.halooglasi.com/slike/oglasi/Thumbs/231026/m/garazno-mesto-u-kraljevim-cardacima-5425642675010-71806144963.jpg",
                "floor_label": null,
                "image_count": 2,
                "price_per_m2": {
                    "amount": 1538,
                    "currency": "EUR"
                },
                "published_at": "2026-10-19",
                "total_floors": null,
                "advertiser_type": "owner",
                "has_map_position": true,
                "short_description": "Parking mesto je uknjizeno i odmah spremno za preuzimanje. Mogu\u0107 je i godi\u0161nji zakup parking mesta. U ponudi je dostupno vise parking mesta."
            }
        ],
        "pagination": {
            "page": 1,
            "per_page": 20,
            "total_count": 14100,
            "total_pages": 705,
            "filtered_out": 0,
            "has_next_page": true,
            "duplicates_removed": 0
        },
        "advertiser_id": "20668",
        "applied_filters": {
            "sort": "newest",
            "max_area": null,
            "min_area": null,
            "max_price": null,
            "max_rooms": null,
            "min_price": null,
            "min_rooms": null,
            "feature_ids": null,
            "heating_ids": null,
            "listing_type": "sale",
            "location_ids": null,
            "building_type": null,
            "condition_ids": null,
            "property_type": "flat",
            "furnishing_ids": null,
            "advertiser_type": null
        }
    },
    "meta": {
        "billable": true,
        "endpoint_family": "agency_ads"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required parameter, a range or a combination is invalid. This response is not billable. |
| 503 | Upstream Unavailable | Halo Oglasi could not be reached or returned data that does not match the request. This response is not billable and is retryable. |

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