> ## Documentation Index
> Fetch the complete documentation index at: https://sage.ask-wire.com/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

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.