# HouseSigma Market Summary API Documentation

Scrappa's `GET /api/housesigma/market` returns the current market summary of one city on HouseSigma.

## What you get

`municipality` (id, name, province, slug, location), `period`, `median_sold_price_90_days`, `active_listings`, `average_days_on_market`, `sold_count`, `new_listings`, `median_sold_price` and `price_change` (month, year, five years, ten years). A figure that HouseSigma does not publish for the city is `null`. `property_types` shows the active listings per property type with their share. `highlights` holds the monthly market text of the site and `summary` its one-line summary. `nearby_municipalities` lists other cities with their ids.

## Input

`municipality_id` comes from `/api/housesigma/locations`. Use the matching `province`. An unknown id returns a non-billable `422` (`unknown_location`). The summary covers the whole city and all property types.

- **Documentation:** [https://scrappa.co/docs/housesigma-api/housesigma_market](https://scrappa.co/docs/housesigma-api/housesigma_market)
- **API group:** HouseSigma API
- **Endpoint:** `GET https://scrappa.co/api/housesigma/market`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `municipality_id` | integer | Yes | City id from /api/housesigma/locations (cities.municipality_id), for example 10343 for Toronto. |
| `province` | string | No | ON (default), BC or AB. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/housesigma/market?municipality_id=10343"
```

## Example response

```json
{
    "success": true,
    "municipality": {
        "id": 10343,
        "name": "Toronto",
        "province": "ON",
        "slug": "/on/toronto-real-estate",
        "location": {
            "lon": -79.3831843,
            "lat": 43.653226
        }
    },
    "period": "October 2026",
    "median_sold_price_90_days": 830000,
    "active_listings": 4977,
    "average_days_on_market": 32,
    "sold_count": null,
    "new_listings": null,
    "median_sold_price": null,
    "price_change": {
        "month": null,
        "year": null,
        "five_years": null,
        "ten_years": null
    },
    "property_types": [
        {
            "code": "C.",
            "label": "Condo Apt",
            "listings": 37048,
            "share": 0.61
        }
    ],
    "highlights": [
        {
            "title": "September 2026 Toronto Median Rental Price",
            "text": "In September 2026, Toronto had a median rental price of $2,600."
        }
    ],
    "summary": "There are 5145 real estate and homes for sale in Toronto, ON for sale.",
    "nearby_municipalities": [
        {
            "municipality_id": 10343,
            "name": "Toronto",
            "slug": "/on/toronto-real-estate"
        }
    ],
    "meta": {
        "endpoint_family": "market",
        "billable": true,
        "attempts": 1
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Unknown Location | HouseSigma does not know the `municipality_id` (`unknown_location`). Take the id from `/api/housesigma/locations`. Non-billable. |
| 422 | Validation Error | A query parameter is missing, unknown or unusable, for example `page` above 200. Unknown parameters are rejected, never ignored. Non-billable. |
| 503 | Upstream Unavailable | HouseSigma could not be reached after retries, answered with an error, or returned an unexpected answer (`upstream_unavailable`, `upstream_blocked`, `token_unavailable`, `upstream_changed`). Retryable and never billed. Clients are never rate limited. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
