# Condos — 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 comprehensive condo listings across Canada while accessing detailed building information, neighbourhood statistics, and mortgage calculators to make informed real estate decisions. Get instant market data, compare properties, and estimate mortgage payments all from one integrated platform.

**Category:** Real Estate | **Website:** [condos.ca/](https://condos.ca/) | **Docs:** [parse.bot/marketplace/0f138dfb-3818-4480-bb9d-eb73f551d553/condos-ca-api](https://parse.bot/marketplace/0f138dfb-3818-4480-bb9d-eb73f551d553/condos-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-condos-ca-api-0f138dfb/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### calculate_mortgage

Calculate estimated monthly mortgage payment using the standard Canadian mortgage formula (semi-annual compounding). Returns principal amount, monthly payment, total mortgage cost, and total interest over the amortization period. Computation is local — no upstream API call.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `down_payment` | number | Yes | Down payment amount in dollars. |
| `price` | number | Yes | Property purchase price in dollars. |
| `rate` | number | No | Annual interest rate as a percentage (e.g., 5.0 for 5%). |
| `years` | integer | No | Amortization period in years. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-condos-ca-api-0f138dfb/calculate_mortgage \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"down_payment":"<number>","price":"<number>","rate":"<number>","years":"<integer>"}'
```

### get_building_detail

Retrieve full SSR state data for a condo building page by its URL slug. Returns the complete initial state including lookups (building component info, area type), location path, and areasData (neighbourhood hierarchy). The slug is obtainable from the 'url' field in search_preconstruction results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Building URL slug (e.g., 'toronto/exhibit-residences-200-bloor-st-w'). Obtainable from the 'url' field in search_preconstruction results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-condos-ca-api-0f138dfb/get_building_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### get_listing_detail

Retrieve full SSR state data for a single listing page by its URL slug. Returns the complete initial state including lookups (listing component info, area type), location path, and areasData (neighbourhood hierarchy). The slug is obtainable from the 'url' field in search_listings results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Listing URL slug (e.g., 'toronto/exhibit-residences-200-bloor-st-w/unit-2305-C12817776'). Obtainable from the 'url' field in search_listings results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-condos-ca-api-0f138dfb/get_listing_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### get_mortgage_rates

Retrieve current mortgage rates from Canadian lenders. Returns rates grouped by type (fixed/variable) and term, with lender name, rate percentage, monthly payment estimate, rate hold period, and lender logo URL.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `down_payment` | integer | No | Down payment amount in dollars. Defaults to 160000. |
| `purchase_price` | integer | No | Purchase price in dollars. Defaults to 800000. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-condos-ca-api-0f138dfb/get_mortgage_rates \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"down_payment":"<integer>","purchase_price":"<integer>"}'
```

### get_neighbourhood_stats

Retrieve market statistics for a neighbourhood or locality. Returns historical sold/leased price data by year and bed type, current market insights (average price, PSF, days on market), and area descriptions. At least one of slug, locality_id, or neighbourhood_id should be provided; defaults to Toronto (locality_id=1) if none specified.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `locality_id` | integer | No | Locality ID. Defaults to 1 (Toronto) if neither slug nor neighbourhood_id is provided. |
| `neighbourhood_id` | integer | No | Neighbourhood ID for neighbourhood-level stats. |
| `slug` | string | No | URL slug (e.g., 'toronto' or 'toronto/king-west') to resolve the area for stats. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-condos-ca-api-0f138dfb/get_neighbourhood_stats \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"locality_id":"<integer>","neighbourhood_id":"<integer>","slug":"<string>"}'
```

### search_listings

Search active condo listings via Algolia index. Supports filtering by bedrooms, price range, square footage, and locality/neighbourhood. Returns paginated results sorted by date, price ascending, or price descending. Each hit includes MLS number, asking price, bed type, sqft, neighbourhood, and a URL slug usable with get_listing_detail.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `beds` | string | No | Bedrooms filter in range format: '1-1' for 1BD, '1.1-1.9' for 1+1, '2-2' for 2BD, '3-3' for 3BD. The decimal represents den presence. |
| `limit` | integer | No | Max results per page. |
| `locality_id` | integer | No | Locality ID (1 for Toronto). |
| `max_price` | integer | No | Maximum price filter. |
| `max_sqft` | integer | No | Maximum square footage. |
| `min_price` | integer | No | Minimum price filter. |
| `min_sqft` | integer | No | Minimum square footage. |
| `mode` | string | No | Listing mode. |
| `neighbourhood_id` | integer | No | Neighbourhood ID to filter by. |
| `neighbourhood_slug` | string | No | Neighbourhood URL slug (e.g., 'toronto/king-west') to auto-resolve neighbourhood or locality ID. |
| `page` | integer | No | Page number (0-indexed). |
| `query` | string | No | Text search query. |
| `sort` | string | No | Sort order. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-condos-ca-api-0f138dfb/search_listings \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"beds":"<string>","limit":"<integer>","locality_id":"<integer>","max_price":"<integer>","max_sqft":"<integer>","min_price":"<integer>","min_sqft":"<integer>","mode":"<string>","neighbourhood_id":"<integer>","neighbourhood_slug":"<string>","page":"<integer>","query":"<string>","sort":"<string>"}'
```

### search_preconstruction

Search pre-construction condo developments via Algolia. Returns paginated results of new development buildings with name, construction/sales status, developer names, price range, and average price per square foot. Each hit includes a URL slug usable with get_building_detail.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Max results per page. |
| `locality_id` | integer | No | Locality ID (1 for Toronto). |
| `page` | integer | No | Page number (0-indexed). |
| `query` | string | No | Text search query to filter developments. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-condos-ca-api-0f138dfb/search_preconstruction \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","locality_id":"<integer>","page":"<integer>","query":"<string>"}'
```
