# Casavo — 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 property listings across Italy on Casavo.it, access detailed information including photos, locations, and property valuations. Find your next home or investment property by searching specific cities or exploring all available listings with comprehensive details.

**Category:** Real Estate | **Website:** [casavo.it/](https://casavo.it/) | **Docs:** [parse.bot/marketplace/c5f8d1c6-fb62-4dcc-b952-a78f46697010/casavo-it-api](https://parse.bot/marketplace/c5f8d1c6-fb62-4dcc-b952-a78f46697010/casavo-it-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/casavo/`
**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 all listings

Browse the entire catalogue of listings across all cities. Returns paginated results sorted by publication date. Each page contains up to 18 listings.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-based). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/casavo/get-all-listings \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### Get listing detail

Get full details for a single property listing by its ID. Returns comprehensive property information including description, location coordinates, features, photos, and agent details. The listing ID is obtainable from search_listings results via the objectID field.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `listing_id` | string | Yes | The unique numeric ID of the listing (e.g. '60301'). Obtainable from search_listings results via objectID field. |

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

### Get listing photos

Get all photos for a single property listing. Returns full-size image URLs for every photo associated with the listing. The listing ID is obtainable from search_listings results via the objectID field.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `listing_id` | string | Yes | The unique numeric ID of the listing (e.g. '60301'). Obtainable from search_listings results via objectID field. |

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

### Get property valuation

Search for location IDs, coordinates, and boundary polygons for a given location name. Works with city names and municipality names. Returns municipality and submunicipality matches with encoded polygon geometries.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address` | string | Yes | Location name to search for (e.g. 'Milano', 'Roma', 'Bologna'). Works best with city or municipality names. |

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

### Search listings

Search for property listings with optional city filter and pagination. Returns paginated results sorted by publication date. Each page contains up to 18 listings. When city is omitted, returns listings from all cities.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `city` | string | No | City slug in lowercase (e.g. 'milano', 'roma', 'bologna'). Omitting returns listings from all cities. |
| `page` | integer | No | Page number for pagination (1-based). |

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

### Search listings by city

Search for listings in a specific city. Returns paginated results for the given city sorted by publication date. Each page contains up to 18 listings.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `city` | string | Yes | City name or slug in lowercase (e.g. 'milano', 'roma', 'bologna', 'genova'). |
| `page` | integer | No | Page number for pagination (1-based). |

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

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