> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ask-wire.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List properties

> Returns a paginated list of public, live properties — listings and foreclosures.

## Overview

The properties endpoint returns all public, live property records from the Ask Wire database. Results include both listings and foreclosures by default. Use `polymorphic_type` to restrict to one type.

All responses are paginated. The default page size is `100`, with a maximum of `300`.

***

## Query parameters

### Pagination

| Parameter   | Type    | Default | Description                         |
| ----------- | ------- | ------- | ----------------------------------- |
| `page`      | integer | `1`     | Page number within the result set.  |
| `page_size` | integer | `100`   | Results per page. Maximum is `300`. |

***

### Property type

| Parameter          | Type   | Values                         | Description                                                               |
| ------------------ | ------ | ------------------------------ | ------------------------------------------------------------------------- |
| `polymorphic_type` | string | `listing`, `foreclosure`       | Restrict results to a single property type.                               |
| `listing_type`     | string | `sale`, `rent`, `sold`         | Filter by listing type.                                                   |
| `listing_types`    | array  | `sale`, `rent`, `sold`, `null` | Filter by multiple listing types. Comma-separated.                        |
| `property_type`    | array  | string                         | Filter by property category (e.g. `apartment`, `house`). Comma-separated. |

***

### Identifiers

| Parameter            | Type    | Description                                                |
| -------------------- | ------- | ---------------------------------------------------------- |
| `ids`                | array   | Filter by specific property IDs. Comma-separated integers. |
| `reference_id`       | string  | Filter by the source system's reference ID.                |
| `seller`             | integer | Filter by seller ID.                                       |
| `master_property_id` | integer | Filter duplicates by their master property ID.             |
| `polymorphic_ctype`  | integer | Internal content type ID.                                  |

***

### Price

| Parameter       | Type   | Description                   |
| --------------- | ------ | ----------------------------- |
| `price`         | number | Exact price match.            |
| `price_min`     | number | Minimum price.                |
| `price_max`     | number | Maximum price.                |
| `price_per_sqm` | number | Exact price per square meter. |

***

### Size & area

| Parameter                | Type   | Description                    |
| ------------------------ | ------ | ------------------------------ |
| `build_area`             | number | Exact build area in sqm.       |
| `build_area_min`         | number | Minimum build area.            |
| `build_area_max`         | number | Maximum build area.            |
| `land_area`              | number | Exact land area in sqm.        |
| `land_area_min`          | number | Minimum land area.             |
| `land_area_max`          | number | Maximum land area.             |
| `covered_veranda_area`   | float  | Covered veranda area in sqm.   |
| `uncovered_veranda_area` | float  | Uncovered veranda area in sqm. |

***

### Rooms & layout

| Parameter              | Type    | Description                   |
| ---------------------- | ------- | ----------------------------- |
| `number_of_bedrooms`   | integer | Exact number of bedrooms.     |
| `bedrooms_min`         | integer | Minimum number of bedrooms.   |
| `bedrooms_max`         | integer | Maximum number of bedrooms.   |
| `number_of_bathrooms`  | integer | Number of bathrooms.          |
| `floor_number`         | integer | Floor the property is on.     |
| `building_floor_count` | integer | Total floors in the building. |

***

### Building details

| Parameter               | Type    | Values                                                        | Description                                 |
| ----------------------- | ------- | ------------------------------------------------------------- | ------------------------------------------- |
| `construction_year`     | integer |                                                               | Exact construction year.                    |
| `construction_year_min` | integer |                                                               | Minimum construction year.                  |
| `construction_year_max` | integer |                                                               | Maximum construction year.                  |
| `renovated`             | boolean | `true`, `false`                                               | Whether the property has been renovated.    |
| `renovation_year`       | integer |                                                               | Year of renovation.                         |
| `energy_class`          | string  | `A`, `B`, `C`, `D`, `E`, `F`, `G`, `Exempt`, `Under issuance` | Energy performance certificate rating.      |
| `heating_type`          | string  |                                                               | Type of heating system.                     |
| `view`                  | string  |                                                               | View type (e.g. `sea`, `city`, `mountain`). |
| `garage`                | boolean | `true`, `false`                                               | Has a garage.                               |
| `garden`                | boolean | `true`, `false`                                               | Has a garden.                               |
| `swimming_pool`         | boolean | `true`, `false`                                               | Has a swimming pool.                        |

***

### Geographic filters

#### Administrative boundaries

Use these to filter by region in the Ask Wire geographic hierarchy (region → regional unit → municipality → municipal unit → neighborhood).

| Parameter        | Type   | Description                                   |
| ---------------- | ------ | --------------------------------------------- |
| `region`         | array  | Comma-separated region IDs (level 3).         |
| `regional_unit`  | array  | Comma-separated regional unit IDs (level 4).  |
| `municipality`   | array  | Comma-separated municipality IDs (level 5).   |
| `municipal_unit` | array  | Comma-separated municipal unit IDs (level 6). |
| `neighborhood`   | array  | Comma-separated neighborhood IDs.             |
| `country`        | string | Country name (e.g. `greece`).                 |
| `address`        | string | Filter by address string.                     |

#### Radius search

Search properties within a circular area. All three parameters are required together.

| Parameter   | Type   | Description                  |
| ----------- | ------ | ---------------------------- |
| `lat`       | number | Latitude of center point.    |
| `lng`       | number | Longitude of center point.   |
| `radius_km` | number | Search radius in kilometers. |

#### Bounding box

Filter by exact coordinate ranges.

| Parameter       | Type   | Description        |
| --------------- | ------ | ------------------ |
| `latitude`      | number | Exact latitude.    |
| `latitude_min`  | number | Minimum latitude.  |
| `latitude_max`  | number | Maximum latitude.  |
| `longitude`     | number | Exact longitude.   |
| `longitude_min` | number | Minimum longitude. |
| `longitude_max` | number | Maximum longitude. |

#### Polygon / WKT

For complex shape queries, pass a geometry directly.

| Parameter | Type   | Description                                                          |
| --------- | ------ | -------------------------------------------------------------------- |
| `polygon` | string | Comma-separated `lng lat` pairs forming a closed polygon.            |
| `wkt`     | string | WKT geometry string. Example: `POLYGON((23.7 37.9, 23.8 37.9, ...))` |

***

### Source

| Parameter      | Type   | Description                                |
| -------------- | ------ | ------------------------------------------ |
| `source`       | string | Source platform (e.g. `spitogatos`, `xe`). |
| `source_type`  | string | Source category (e.g. `broker`, `owner`).  |
| `source_types` | array  | Multiple source types. Comma-separated.    |

***

### Status & data quality flags

These boolean flags let you filter based on the property's processing state and data quality.

| Parameter                    | Type    | Description                                                 |
| ---------------------------- | ------- | ----------------------------------------------------------- |
| `is_live`                    | boolean | Property is currently active on its source platform.        |
| `is_public`                  | boolean | Property is publicly visible.                               |
| `is_modified`                | boolean | Property data has been modified since first ingestion.      |
| `is_manually_updated`        | boolean | A human has manually updated this property's data.          |
| `is_ai_updated`              | boolean | AI has updated this property's data.                        |
| `is_ai_processed`            | boolean | Property has been processed by the AI pipeline.             |
| `is_ai_mismatched`           | boolean | AI found a discrepancy in this property's data.             |
| `comparable`                 | boolean | Property is suitable for use as a comparable in valuations. |
| `outlier`                    | boolean | Property is flagged as a statistical outlier.               |
| `is_duplicated`              | boolean | Property is a duplicate of another record.                  |
| `is_master_property`         | boolean | Property is the canonical record in a duplicate group.      |
| `is_leader`                  | boolean | Property is the current active leader in a duplicate group. |
| `is_deduplication_processed` | boolean | Deduplication has been run on this property.                |

***

### Tags

| Parameter | Type  | Description                           |
| --------- | ----- | ------------------------------------- |
| `tags`    | array | Comma-separated tag IDs to filter by. |

***

### Dates

All date filters accept ISO 8601 datetime strings (e.g. `2025-01-01`).

| Parameter       | Description                                  |
| --------------- | -------------------------------------------- |
| `created_at`    | When the record was created in the database. |
| `modified_at`   | When the record was last modified.           |
| `first_seen_at` | When the property was first observed live.   |
| `last_seen_at`  | When the property was last observed live.    |
| `delisted_at`   | When the property was taken off market.      |

***

## Example requests

**List sale apartments in Athens:**

```bash theme={null}
curl -X GET "https://pandora.ask-wire.com/api/properties/?polymorphic_type=listing&listing_type=sale&property_type=apartment&municipality=1" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

**Radius search around a coordinate:**

```bash theme={null}
curl -X GET "https://pandora.ask-wire.com/api/properties/?lat=37.9838&lng=23.7275&radius_km=5" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

**Only comparable, non-outlier properties with 3 bedrooms:**

```bash theme={null}
curl -X GET "https://pandora.ask-wire.com/api/properties/?comparable=true&outlier=false&number_of_bedrooms=3" \
  -H "Authorization: Bearer YOUR_TOKEN"
```


## OpenAPI

````yaml GET /api/properties/
openapi: 3.1.0
info:
  title: Properties API
  version: 1.0.0
  description: Public properties and foreclosure listings API
servers:
  - url: https://pandora.ask-wire.com
    description: Main API (Properties)
  - url: https://zeus.ask-wire.com
    description: Auth API
security:
  - bearerAuth: []
paths:
  /api/properties/:
    get:
      summary: List properties
      description: >-
        Returns a paginated list of public, live properties (listings and
        foreclosures). Use `polymorphic_type=listing` or
        `polymorphic_type=foreclosure` to restrict to a single type. Supports
        `page` and `page_size` (default 100, max 300).
      operationId: listProperties
      parameters:
        - name: page
          in: query
          description: Page number within the paginated result set.
          schema:
            type: integer
            default: 1
        - name: page_size
          in: query
          description: Number of results per page (max 300).
          schema:
            type: integer
            default: 100
            maximum: 300
        - name: polymorphic_type
          in: query
          description: Restrict results to a single property type.
          schema:
            type: string
            enum:
              - listing
              - foreclosure
        - name: listing_type
          in: query
          description: Filter by listing type.
          schema:
            type: string
            enum:
              - rent
              - sale
              - sold
        - name: listing_types
          in: query
          description: Filter by multiple listing types. Comma-separated.
          schema:
            type: array
            items:
              type: string
              enum:
                - rent
                - sale
                - sold
          style: form
          explode: false
        - name: ids
          in: query
          description: >-
            Filter by specific property IDs. Multiple values may be separated by
            commas.
          schema:
            type: array
            items:
              type: integer
          style: form
          explode: false
        - name: reference_id
          in: query
          schema:
            type: string
        - name: price_min
          in: query
          schema:
            type: number
        - name: price_max
          in: query
          schema:
            type: number
        - name: price
          in: query
          description: Exact price match.
          schema:
            type: number
        - name: price_per_sqm
          in: query
          schema:
            type: number
        - name: bedrooms_min
          in: query
          schema:
            type: integer
        - name: bedrooms_max
          in: query
          schema:
            type: integer
        - name: number_of_bedrooms
          in: query
          description: Exact number of bedrooms.
          schema:
            type: integer
        - name: number_of_bathrooms
          in: query
          schema:
            type: integer
        - name: property_type
          in: query
          description: Comma-separated property types.
          schema:
            type: array
            items:
              type: string
          style: form
          explode: false
        - name: build_area
          in: query
          description: Exact build area in sqm.
          schema:
            type: number
        - name: build_area_min
          in: query
          schema:
            type: number
        - name: build_area_max
          in: query
          schema:
            type: number
        - name: land_area
          in: query
          description: Exact land area in sqm.
          schema:
            type: number
        - name: land_area_min
          in: query
          schema:
            type: number
        - name: land_area_max
          in: query
          schema:
            type: number
        - name: covered_veranda_area
          in: query
          schema:
            type: number
            format: float
        - name: uncovered_veranda_area
          in: query
          schema:
            type: number
            format: float
        - name: floor_number
          in: query
          schema:
            type: integer
        - name: building_floor_count
          in: query
          schema:
            type: integer
        - name: construction_year
          in: query
          description: Exact construction year.
          schema:
            type: integer
        - name: construction_year_min
          in: query
          schema:
            type: integer
        - name: construction_year_max
          in: query
          schema:
            type: integer
        - name: renovation_year
          in: query
          schema:
            type: integer
        - name: renovated
          in: query
          schema:
            type: boolean
        - name: energy_class
          in: query
          schema:
            type: string
            enum:
              - A
              - B
              - C
              - D
              - E
              - F
              - G
              - Exempt
              - Under issuance
        - name: heating_type
          in: query
          schema:
            type: string
        - name: view
          in: query
          schema:
            type: string
        - name: garage
          in: query
          schema:
            type: boolean
        - name: garden
          in: query
          schema:
            type: boolean
        - name: swimming_pool
          in: query
          schema:
            type: boolean
        - name: municipality
          in: query
          description: Comma-separated municipality IDs.
          schema:
            type: array
            items:
              type: integer
          style: form
          explode: false
        - name: municipal_unit
          in: query
          description: Comma-separated municipal unit IDs.
          schema:
            type: array
            items:
              type: integer
          style: form
          explode: false
        - name: region
          in: query
          description: Comma-separated region IDs.
          schema:
            type: array
            items:
              type: integer
          style: form
          explode: false
        - name: regional_unit
          in: query
          description: Comma-separated regional unit IDs.
          schema:
            type: array
            items:
              type: integer
          style: form
          explode: false
        - name: neighborhood
          in: query
          description: Comma-separated neighborhood IDs.
          schema:
            type: array
            items:
              type: integer
          style: form
          explode: false
        - name: country
          in: query
          schema:
            type: string
        - name: address
          in: query
          schema:
            type: string
        - name: lat
          in: query
          description: Latitude of center point. Use with `lng` and `radius_km`.
          schema:
            type: number
        - name: lng
          in: query
          description: Longitude of center point. Use with `lat` and `radius_km`.
          schema:
            type: number
        - name: radius_km
          in: query
          description: Search radius in kilometers. Use with `lat` and `lng`.
          schema:
            type: number
        - name: latitude
          in: query
          schema:
            type: number
        - name: latitude_min
          in: query
          schema:
            type: number
        - name: latitude_max
          in: query
          schema:
            type: number
        - name: longitude
          in: query
          schema:
            type: number
        - name: longitude_min
          in: query
          schema:
            type: number
        - name: longitude_max
          in: query
          schema:
            type: number
        - name: polygon
          in: query
          description: Comma-separated `lng lat` pairs forming a closed polygon.
          schema:
            type: string
        - name: wkt
          in: query
          description: WKT geometry string (e.g. `POLYGON((lng lat, ...))`).
          schema:
            type: string
        - name: seller
          in: query
          schema:
            type: integer
        - name: source
          in: query
          schema:
            type: string
        - name: source_type
          in: query
          schema:
            type: string
        - name: source_types
          in: query
          description: Comma-separated source types.
          schema:
            type: array
            items:
              type: string
          style: form
          explode: false
        - name: tags
          in: query
          description: Comma-separated tag IDs.
          schema:
            type: array
            items:
              type: integer
          style: form
          explode: false
        - name: comparable
          in: query
          schema:
            type: boolean
        - name: outlier
          in: query
          schema:
            type: boolean
        - name: is_live
          in: query
          schema:
            type: boolean
        - name: is_public
          in: query
          schema:
            type: boolean
        - name: is_modified
          in: query
          schema:
            type: boolean
        - name: is_manually_updated
          in: query
          schema:
            type: boolean
        - name: is_ai_updated
          in: query
          schema:
            type: boolean
        - name: is_ai_processed
          in: query
          schema:
            type: boolean
        - name: is_ai_mismatched
          in: query
          schema:
            type: boolean
        - name: is_duplicated
          in: query
          schema:
            type: boolean
        - name: is_master_property
          in: query
          schema:
            type: boolean
        - name: is_deduplication_processed
          in: query
          schema:
            type: boolean
        - name: is_leader
          in: query
          schema:
            type: boolean
        - name: master_property_id
          in: query
          schema:
            type: integer
        - name: polymorphic_ctype
          in: query
          schema:
            type: integer
        - name: created_at
          in: query
          schema:
            type: string
            format: date-time
        - name: modified_at
          in: query
          schema:
            type: string
            format: date-time
        - name: first_seen_at
          in: query
          schema:
            type: string
            format: date-time
        - name: last_seen_at
          in: query
          schema:
            type: string
            format: date-time
        - name: delisted_at
          in: query
          schema:
            type: string
            format: date-time
        - name: description
          in: query
          schema:
            type: string
        - name: url
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Paginated property results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPropertiesResponse'
              example:
                count: 123
                next: http://api.example.org/accounts/?page=4
                previous: http://api.example.org/accounts/?page=2
                results:
                  - id: 1
                    municipality:
                      id: 1
                      created_at: '2026-05-14T17:34:51.578Z'
                      modified_at: '2026-05-14T17:34:51.578Z'
                      country: greece
                      parent_id: 100
                      name_gr: Αθήνα
                      name_en: Athens
                      level: 1
                      code: ATH
                      parent_code: GR
                    municipal_unit:
                      id: 2
                      created_at: '2026-05-14T17:34:51.578Z'
                      modified_at: '2026-05-14T17:34:51.578Z'
                      country: greece
                      parent_id: 101
                      name_gr: Κέντρο
                      name_en: Center
                      level: 2
                      code: CTR
                      parent_code: ATH
                    seller:
                      id: 5
                      display_name: Example Realty
                    images: https://example.com/image.jpg
                    created_at: '2026-05-14T17:34:51.578Z'
                    modified_at: '2026-05-14T17:34:51.578Z'
                    polymorphic_type: listing
                    country: greece
                    listing_type: sale
                    source_type: broker
                    source: spitogatos
                    price: 250000
                    url: https://example.com/property/1
                    reference_id: PROP-001
                    description: Modern apartment in Athens center
                    address: Athens, Greece
                    latitude: 37.9838
                    longitude: 23.7275
                    coordinates: POINT(23.7275 37.9838)
                    build_area: 120
                    land_area: 150
                    uncovered_veranda_area: 10
                    covered_veranda_area: 20
                    price_per_sqm: 2083
                    building_floor_count: 5
                    construction_year: 2010
                    renovated: true
                    renovation_year: 2022
                    floor_number: 3
                    garage: true
                    garden: false
                    heating_type: autonomous
                    number_of_bedrooms: 3
                    number_of_bathrooms: 2
                    property_type: apartment
                    swimming_pool: false
                    view: city
                    energy_class: A
                    is_live: true
                    is_modified: false
                    is_public: true
                    is_manually_updated: false
                    is_ai_updated: true
                    is_ai_processed: true
                    is_ai_mismatched: false
                    outlier: false
                    comparable: true
                    last_seen_at: '2026-05-14T17:34:51.578Z'
                    first_seen_at: '2026-05-14T17:34:51.578Z'
                    delisted_at: null
                    is_duplicated: false
                    master_property_id: 1
                    is_deduplication_processed: true
                    is_master_property: true
                    is_leader: true
                    polymorphic_ctype: 12
                    regional_unit: 3
                    region: 1
                    neighborhood: 8
                    tags:
                      - 1
                      - 2
                      - 3
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    PaginatedPropertiesResponse:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
            - string
            - 'null'
          format: uri
        previous:
          type:
            - string
            - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/Property'
    Error:
      type: object
      properties:
        error:
          type: integer
        message:
          type: string
    Property:
      type: object
      properties:
        id:
          type: integer
        municipality:
          $ref: '#/components/schemas/GeoEntity'
        municipal_unit:
          $ref: '#/components/schemas/GeoEntity'
        seller:
          $ref: '#/components/schemas/Seller'
        images:
          type: string
        created_at:
          type: string
          format: date-time
        modified_at:
          type: string
          format: date-time
        polymorphic_type:
          type: string
          enum:
            - listing
            - foreclosure
        country:
          type: string
        listing_type:
          type: string
          enum:
            - sale
            - rent
            - sold
        source_type:
          type: string
        source:
          type: string
        price:
          type: number
        url:
          type: string
          format: uri
        reference_id:
          type: string
        description:
          type: string
        address:
          type: string
        latitude:
          type: number
        longitude:
          type: number
        coordinates:
          type: string
        build_area:
          type: number
        land_area:
          type: number
        uncovered_veranda_area:
          type: number
        covered_veranda_area:
          type: number
        price_per_sqm:
          type: number
        building_floor_count:
          type: integer
        construction_year:
          type: integer
        renovated:
          type: boolean
        renovation_year:
          type: integer
        floor_number:
          type: integer
        garage:
          type: boolean
        garden:
          type: boolean
        heating_type:
          type: string
        number_of_bedrooms:
          type: integer
        number_of_bathrooms:
          type: integer
        property_type:
          type: string
        swimming_pool:
          type: boolean
        view:
          type: string
        energy_class:
          type: string
          enum:
            - A
            - B
            - C
            - D
            - E
            - F
            - G
            - Exempt
            - Under issuance
        is_live:
          type: boolean
        is_modified:
          type: boolean
        is_public:
          type: boolean
        is_manually_updated:
          type: boolean
        is_ai_updated:
          type: boolean
        is_ai_processed:
          type: boolean
        is_ai_mismatched:
          type: boolean
        outlier:
          type: boolean
        comparable:
          type: boolean
        last_seen_at:
          type: string
          format: date-time
        first_seen_at:
          type: string
          format: date-time
        delisted_at:
          type:
            - string
            - 'null'
          format: date-time
        is_duplicated:
          type: boolean
        master_property_id:
          type: integer
        is_deduplication_processed:
          type: boolean
        is_master_property:
          type: boolean
        is_leader:
          type: boolean
        polymorphic_ctype:
          type: integer
        regional_unit:
          type: integer
        region:
          type: integer
        neighborhood:
          type: integer
        tags:
          type: array
          items:
            type: integer
    GeoEntity:
      type: object
      properties:
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        modified_at:
          type: string
          format: date-time
        country:
          type: string
        parent_id:
          type: integer
        name_gr:
          type: string
        name_en:
          type: string
        level:
          type: integer
        code:
          type: string
        parent_code:
          type: string
    Seller:
      type: object
      properties:
        id:
          type: integer
        display_name:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

## Related topics

- [Retrieve a property](/docs/api-reference/endpoint/get-by-id.md)
- [Retrieve a property by reference ID](/docs/api-reference/endpoint/get-by-reference-id.md)
- [List municipalities](/docs/api-reference/endpoint/municipalities.md)
- [List regional units](/docs/api-reference/endpoint/regional-units.md)
