# Rentals — 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 browse rental listings across Canada by city or neighbourhood, and view detailed property information including prices, amenities, and availability. Find your next home by filtering thousands of rental properties on Rentals.ca in real-time.

**Category:** Real Estate | **Website:** [rentals.ca/](https://rentals.ca/) | **Docs:** [parse.bot/marketplace/60b0be15-dd58-4a79-8a6f-3ebd66fdeb69/rentals-ca-api](https://parse.bot/marketplace/60b0be15-dd58-4a79-8a6f-3ebd66fdeb69/rentals-ca-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/rentals/`
**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 details

Retrieve full details for a specific rental listing by its base64-encoded ID. Returns comprehensive property information including floor plans with rent/size/availability, amenities grouped by category, contact details, building info, parking options, and property image URLs. The listing_id comes from search_listings or get_listings_by_city results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `listing_id` | string | Yes | Base64-encoded listing ID from search_listings results (e.g., 'cmVudGFsbGlzdGluZzoxMDQzMTc2'). |

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

### Get listings by city

Get rental listings for a specific Canadian city. Returns paginated listing summaries identical in shape to search_listings but without price/bed/bath filters. Use this for browsing all listings in a city without narrowing criteria.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `city` | string | Yes | City slug (e.g., 'toronto', 'montreal', 'vancouver', 'calgary', 'ottawa'). |
| `limit` | integer | No | Number of results per page. |
| `page` | integer | No | Page number for pagination. |

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

### Search listings

Search for rental listings in a specific Canadian city with optional filters for bedrooms, bathrooms, and price range. Returns paginated results with listing summaries including rent range, bed/bath counts, and location coordinates. The city parameter accepts slugs like 'toronto', 'montreal', 'vancouver'. Pagination advances via the page parameter; total_count in the response gives the full result set size.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `bathrooms` | number | No | Filter by minimum number of bathrooms. |
| `bedrooms` | integer | No | Filter by number of bedrooms. |
| `city` | string | No | City slug for the search area (e.g., 'toronto', 'montreal', 'vancouver', 'calgary', 'ottawa'). |
| `limit` | integer | No | Number of results per page. |
| `max_price` | number | No | Maximum rent price filter. |
| `min_price` | number | No | Minimum rent price filter. |
| `page` | integer | No | Page number for pagination. |

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

### Search listings full

Search for rental listings with full detail for every result. Accepts the same filter parameters as search_listings (city, bedrooms, bathrooms, price range, date range) but returns comprehensive property information for each listing including description, structured address, images, contact, amenities, floor plans, parking, and more. Each listing includes concrete floor_plans[] records rather than aggregate ranges. Makes a single expanded GraphQL query per page. Pagination advances via the page parameter; total_count gives the full result set size.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `bathrooms` | number | No | Filter by minimum number of bathrooms. |
| `bedrooms` | integer | No | Filter by number of bedrooms. |
| `city` | string | No | City slug for the search area (e.g., 'toronto', 'montreal', 'vancouver', 'calgary', 'ottawa'). |
| `created_after` | string | No | ISO 8601 datetime string. Returns listings updated/modified on or after this datetime (e.g., '2026-08-07T00:00:00Z'). |
| `created_before` | string | No | ISO 8601 datetime string. Filters results to only include listings originally created before this datetime. Applied client-side on the listing's creation timestamp. |
| `limit` | integer | No | Number of results per page. |
| `max_price` | number | No | Maximum rent price filter. |
| `min_price` | number | No | Minimum rent price filter. |
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/rentals/search-listings-full \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"bathrooms":"<number>","bedrooms":"<integer>","city":"<string>","created_after":"<string>","created_before":"<string>","limit":"<integer>","max_price":"<number>","min_price":"<number>","page":"<integer>"}'
```

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