# Realtor (Canada) — 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 Canadian real estate listings and retrieve detailed property information including photos, prices, descriptions, and agent details from REALTOR.ca. Browse available properties with comprehensive listing data across Canada.

**Category:** Real Estate | **Website:** [realtor.ca/](https://realtor.ca/) | **Docs:** [parse.bot/marketplace/bcbfac1c-0e74-4882-bccb-9a0cf6ea74a7/realtor-ca-api](https://parse.bot/marketplace/bcbfac1c-0e74-4882-bccb-9a0cf6ea74a7/realtor-ca-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-realtor-ca-api-bcbfac1c/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_listing_details

Get detailed information for a specific listing by its MLS number. MLS numbers expire when listings are removed; source fresh IDs from search_listings results. Returns stale_input with kind input_not_found for expired or invalid MLS numbers. Each response includes full property specs, photos, media tours, agent contact details, and brokerage information.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `property_id` | string | Yes | MLS number of the listing (e.g. W13040146). Source from search_listings results[*].mls_number. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-realtor-ca-api-bcbfac1c/get_listing_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"property_id":"<string>"}'
```

### search_listings

Search for property listings within a geographic bounding box with price and property filters. Returns paginated results ordered by the sort parameter. The bounding box coordinates define the search area; omitting them searches across all of Canada. Each listing in the response carries an mls_number usable with get_listing_details for full property information.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `bedrooms_min` | string | No | Minimum number of bedrooms. Omitting returns all bedroom counts. |
| `building_type_id` | string | No | Building type filter ID. Omitting returns all building types. |
| `current_page` | integer | No | Page number for pagination (1-based) |
| `latitude_max` | string | No | Maximum latitude of search bounding box |
| `latitude_min` | string | No | Minimum latitude of search bounding box |
| `longitude_max` | string | No | Maximum longitude of search bounding box |
| `longitude_min` | string | No | Minimum longitude of search bounding box |
| `price_max` | string | No | Maximum price filter. Omitting returns all prices above price_min. |
| `price_min` | string | No | Minimum price filter |
| `property_search_type_id` | string | No | Property search type: 1 (residential), 0 (all) |
| `property_type_group_id` | string | No | Property type group: 1 (residential) |
| `records_per_page` | string | No | Number of results per page (max 50) |
| `sort` | string | No | Sort order for results |
| `transaction_type_id` | string | No | Transaction type filter |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-realtor-ca-api-bcbfac1c/search_listings \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bedrooms_min":"<string>","building_type_id":"<string>","current_page":"<integer>","latitude_max":"<string>","latitude_min":"<string>","longitude_max":"<string>","longitude_min":"<string>","price_max":"<string>","price_min":"<string>","property_search_type_id":"<string>","property_type_group_id":"<string>","records_per_page":"<string>","sort":"<string>","transaction_type_id":"<string>"}'
```
