# Imovirtual — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://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 browse real estate listings across Portugal, view detailed property information including prices and specifications, and discover new housing developments. Find your ideal home by accessing comprehensive market data all in one place.

**Category:** Real Estate | **Website:** [imovirtual.com/](https://imovirtual.com/) | **Docs:** [parse.bot/marketplace/496712b2-73ad-4cc7-94e1-420381a8beaa/imovirtual-com-api](https://parse.bot/marketplace/496712b2-73ad-4cc7-94e1-420381a8beaa/imovirtual-com-api)

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

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/imovirtual/`
**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 of a single property listing by its slug. Returns comprehensive information including description, characteristics, location coordinates, images, owner/agency details, and property features. The slug is obtained from search_listings results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Listing slug from search_listings results (e.g., 'apartamento-t2-oeiras-ID1hUyk'). |

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

### Search developments

Search for new real estate developments (empreendimentos) on Imovirtual. Returns paginated results of investment/development projects with details like investment state, unit counts, and area ranges. Internally searches for property_type 'empreendimento'.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `location` | string | No | Location path. Use 'todo-o-pais' for all of Portugal or a hierarchical path like 'lisboa/lisboa', 'porto/porto'. |
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/imovirtual/search-developments \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"location":"<string>","page":"<integer>"}'
```

### Search listings

Search for real estate listings on Imovirtual with filters for transaction type, property type, location, price range, area range, typology, and sort order. Returns paginated results with listing summaries. Each page contains up to 36 items. The location path is hierarchical (district/council or 'todo-o-pais' for all Portugal).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area_max` | integer | No | Maximum area in square meters. |
| `area_min` | integer | No | Minimum area in square meters. |
| `location` | string | No | Location path. Use 'todo-o-pais' for all of Portugal or a hierarchical path like 'lisboa/lisboa', 'porto/porto', 'porto/vila-nova-de-gaia'. |
| `page` | integer | No | Page number for pagination. |
| `price_max` | integer | No | Maximum price in euros. |
| `price_min` | integer | No | Minimum price in euros. |
| `property_type` | string | No | Property type to search for. |
| `sort` | string | No | Sorting order. |
| `transaction` | string | No | Transaction type. |
| `typology` | string | No | Comma-separated room typologies (e.g., 'T0,T1,T2,T3,T4,T5'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/imovirtual/search-listings \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"area_max":"<integer>","area_min":"<integer>","location":"<string>","page":"<integer>","price_max":"<integer>","price_min":"<integer>","property_type":"<string>","sort":"<string>","transaction":"<string>","typology":"<string>"}'
```

## Next steps

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