# Halooglasi — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and filter property listings across Serbia's largest real estate classifieds platform by price, location, rooms, and category. Retrieve detailed information about specific properties including full descriptions, pricing, amenities, and location data, with pagination support.

**Category:** Real Estate | **Website:** [www.halooglasi.com/nekretnine/prodaja-stanova/beograd](https://www.halooglasi.com/nekretnine/prodaja-stanova/beograd) | **Docs:** [parse.bot/marketplace/f6e82929-cda8-49c1-a965-4b6cef5dd0ad/halooglasi-com-api](https://parse.bot/marketplace/f6e82929-cda8-49c1-a965-4b6cef5dd0ad/halooglasi-com-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/halooglasi/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get listing detail

Get full details for a specific property listing including amenities, heating, geo coordinates, full description, all images, and advertiser info. The listing_url comes from the url field of search_listings results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `listing_url` | string | Yes | Full URL or relative path of the listing (e.g., from search_listings url field) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/halooglasi/get-listing-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"listing_url":"<string>"}'
```

### Search listings

Search property listings with filters and pagination. Returns listing cards with key metadata (price, area, rooms, floor, location, description, images). Paginates via integer page counter. Default sort is newest-first; price sorting available ascending/descending.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category` | string | No | Property category slug. |
| `location` | string | No | Location slug for URL taxonomy (e.g., 'beograd', 'novi-sad') |
| `location_id` | string | No | Numeric location ID for filtering (e.g., '35112' for Beograd). Get from get_listing_detail city_id/municipality_id fields. |
| `max_area` | string | No | Maximum area in m² |
| `max_price` | string | No | Maximum price in EUR |
| `min_area` | string | No | Minimum area in m² |
| `min_price` | string | No | Minimum price in EUR |
| `page` | integer | No | Page number (1-based) |
| `per_page` | integer | No | Results per page (max 50) |
| `rooms` | string | No | Room count filter, comma-separated (e.g., '2,3,4') |
| `sort_by` | string | No | Sort order. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/halooglasi/search-listings \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"<string>","location":"<string>","location_id":"<string>","max_area":"<string>","max_price":"<string>","min_area":"<string>","min_price":"<string>","page":"<integer>","per_page":"<integer>","rooms":"<string>","sort_by":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.