---
title: "Get property by ID (v1)"
method: GET
path: "/api/v1/properties/search/{property_id}"
tags: ["api---properties"]
---

# Get property by ID (v1)

`GET /api/v1/properties/search/{property_id}`

## Request

- Base URL: `https://api.casafari.com`
- URL: `https://api.casafari.com/api/v1/properties/search/{property_id}`
- Auth: HTTP bearer

Returns a property object.

## Path parameters

- `property_id` string, required

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

- object[]
  - `count` integer
  - `next` string, uri, nullable
  - `previous` string, uri, nullable
  - `results` ApiPropertyDetailResponseV1
    - `property_id` integer, required: ID of the property.
    - `primary_listing_id` integer, required: Primary listing (ad) ID of the property which is defined after the matching into property.
    - `type` 'apartment' | 'studio' | 'duplex' | 'penthouse' | 'dachgeschosswohnung' | 'etagenwohnung' | 'erdgeschosswohnung' | 'country_house' | 'house' | 'palace' | 'townhouse' | 'villa' | 'country_estate' | 'chalet' | 'bungalow' | 'family_house' | 'reihenhaus' | 'reihenendhaus' | 'reihenmittelhaus' | 'einfamilienhaus' | 'zweifamilienhaus' | 'landwirtschaftliche_betriebe' | 'retail' | 'office' | 'industrial' | 'warehouse' | 'hotel' | 'other_commercial' | 'restaurant' | 'werkstatt' | 'plot' | 'urban_plot' | 'rural_plot' | 'room' | 'other' | 'garage' | 'parking' | 'apartment_building' | 'office_building' | 'mix_use_building', required: Property type, as returned by the [GET /api/v1/references/types](/#operation/api__get__v1__references__types) endpoint.
    - `type_group` string, required: Property type group, as returned by the [GET /api/v1/references/types](/#operation/api__get__v1__references__types) endpoint.
    - `operations` string[], required: Operation types for which property is available.
    - `location` object, required: Information about property location.
      - `location_id` integer, required: ('Location ID, as returned by the [POST /api/v1/references/locations](/#operation/api__post__v1__references__locations) endpoint.',)
      - `name` string, required: Location name.
      - `administrative_level` string, required: Location administrative level.
      - `zip_codes` string[]: The location zip codes.
    - `locations_structure` object[], required: Information about all the parent locations (including property location) up to the country.
      - `location_id` integer, required: ('Location ID, as returned by the [POST /api/v1/references/locations](/#operation/api__post__v1__references__locations) endpoint.',)
      - `name` string, required: Location name.
      - `administrative_level` string, required: Location administrative level.
      - `zip_codes` string[]: The location zip codes.
    - `coordinates` object, nullable, required: Property coordinates.
      - `latitude` number, required: Latitude.
      - `longitude` number, required: Longitude.
    - `total_area` integer, required: Total area.
    - `living_area` integer, required: Living area.
    - `plot_area` integer, required: Plot area.
    - `terrace_area` integer, required: Terrace area.
    - `bathrooms` integer, required: Number of bathrooms.
    - `bedrooms` integer, nullable, required: Number of bedrooms.
    - `rooms` integer, required: Number of rooms.
    - `number_of_parkings` integer, nullable: Number of parking spaces.
    - `floor_number` integer, nullable, required: Exact floor number. Negative values indicate underground floors (e.g. basements).
    - `rent_currency` string, required: Rent price currency code.
    - `rent_period` 'day' | 'week' | 'fortnight' | 'month' | 'year' | 'none', required: Rent period.
    - `rent_price` integer, required: Current rent price, in the currency of the listings (specified by the `rent_currency` field).
    - `rent_status` 'active' | 'reserved' | 'hold' | 'rented' | 'none', required: Current rent status of the property.
    - `sale_currency` string, required: Sale price currency code.
    - `sale_price` integer, required: Current sale price, in the currency of the listings (specified by the `sale_currency` field).
    - `sale_status` 'active' | 'reserved' | 'hold' | 'sold' | 'none', required: Current sale status of the property.
    - `is_private_property` boolean, required: Whether the property is listed by a private individual, as opposed to an agent or a professional.
    - `features` object, required: Property features, as returned by the [GET /api/v1/references/features](/#operation/api__get__v1__references__features) endpoint.
      - `floor` 'no_floor' | 'ground' | 'middle' | 'top', nullable, required: Floor type.
      - `orientation` 'exterior' | 'interior', nullable, required: Property view orientation.
      - `view` 'water' | 'landscape' | 'city' | 'golf' | 'park', nullable, required: View from the property. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `views` field instead.</strong>
      - `views` string[], nullable, required: List of views from the property.
      - `direction` 'north' | 'south' | 'east' | 'west', nullable, required: Cardinal direction the property faces. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `directions` field instead.</strong>
      - `directions` string[], nullable, required: List of cardinal directions the property faces.
      - `characteristics` string[], nullable, required: Property characteristics.
    - `condition` 'used' | 'ruin' | 'very-good' | 'new' | 'other', required: Property condition, as returned by the [GET /api/v1/references/conditions](/#operation/api__get__v1__references__conditions) endpoint.
    - `sale_time_on_market` object, nullable, required: Information about the property last activity on the sales market.
      - `date_start` string, date, required: Start date of activity on the market.
      - `date_end` string, date, nullable, required: End date of activity on the market.
      - `days_on_market` integer, required: Number of days property was / is on the market.
      - `has_untracked_period` boolean, required: Whether the property was already on the market when it started being tracked.
    - `rent_time_on_market` object, nullable, required: Information about the property last activity on the rental market.
      - `date_start` string, date, required: Start date of activity on the market.
      - `date_end` string, date, nullable, required: End date of activity on the market.
      - `days_on_market` integer, required: Number of days property was / is on the market.
      - `has_untracked_period` boolean, required: Whether the property was already on the market when it started being tracked.
    - `listings` object[], required: The list of listings related to the property.
      - `listing_id` integer, required: ID of the listing (ad).
      - `total_area` integer, required: Total area.
      - `plot_area` integer, required: Plot area.
      - `terrace_area` integer, required: Terrace area.
      - `bedrooms` integer, nullable, required: Number of bedrooms.
      - `bathrooms` integer, required: Number of bathrooms.
      - `rooms` integer, required: Number of rooms.
      - `sale_status` 'active' | 'reserved' | 'hold' | 'sold' | 'none', required: Current sale status of the listing.
      - `sale_currency` string, required: Sale price currency code.
      - `sale_price` integer, required: Current sale price, in the currency of the listing (specified by the `sale_currency` field).
      - `sale_price_base` integer, required: Current sale price, in Euros.
      - `rent_status` 'active' | 'reserved' | 'hold' | 'rented' | 'none', required: Current rent status of the listing.
      - `rent_currency` string, required: Rent price currency code.
      - `rent_price` integer, required: Current rent price, in the currency of the listing (specified by the `rent_currency` field).
      - `rent_price_base` integer, required: Current rent price, in Euros.
      - `agency_legal_id` string, required: Agency legal identifier specified on the source. Only for France and its overseas territories(DROM and COM).
      - `agency` string, required: The company that manages the listing.
      - `listing_url` string, nullable: URL of the listing. Available only for currently active listings.
      - `listing_old_url` string, nullable: Old URL of the listing. Available only for currently inactive listings.
      - `description` string, required: Property description.
      - `listing_uid` string, required: Unique ID of the listing on the source site.
      - `construction_year` integer, required: Construction year.
      - `source_name` string, required: The name of the source where the listing is displayed.
      - `contacts_info` object, required: Information about listing contacts.
        - `name` string, nullable, required: The owner name. Only for FSBO listings.
        - `email` string, email, nullable, required: The email contact.
        - `phone` string, nullable, required: The phone contact.
      - `energy_certificate` string, required: Energy certificate classification that attests to the energy efficiency of a property. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `energy_rating` field instead.</strong>
      - `energy_rating` string, required: Energy rating that attests to the energy efficiency of a property.
      - `heating_type` string, required: Type of heating.
      - `ceiling_label` string, nullable, required: Ceiling height in meters.<br><span style="color:red">Available only for Germany.</span>
      - `commission` number, nullable, required: Commission percentage.<br><span style="color:red">Available only for Germany.</span>
      - `min_rent_area` integer, nullable, required: Minimum rental area in square meters (mainly applicable to commercial properties).<br><span style="color:red">Available only for Germany.</span>
      - `companies` object[], required: Companies to which the listing belongs.
        - `name` string, required: Company name.
        - `casafari_connect_on` boolean, required: Whether the company is connected to Casafari Connect.
      - `created_at` string, date, required: The datetime when the listing was added.
      - `floor_number` integer, nullable, required: Exact floor number. Negative values indicate underground floors (e.g. basements).
      - `is_private` boolean, required: Whether the listing is listed by a private individual, as opposed to an agent or a professional.
      - `casafari_connect` boolean, nullable, required: Whether the company is connected to Casafari Connect.
      - `thumbnails` string[]: List of the thumbnail image URLs.
      - `pictures` string[]: List of the original picture image URLs.
      - `ref_numbers` string[]: List of reference numbers.
      - `is_private_property` boolean, required: Whether the listing is listed by a private individual, as opposed to an agent or a professional.
      - `is_auction_property` boolean, required: Whether the listing is an auction property.
      - `is_bank_property` boolean, required: Whether the listing is a bank property.
    - `history` object[]: ('List of sale and rent price history data. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `sale_price_history and rent_price_history` field instead.</strong>',)
      - `sale_price` integer, required: Sale price, in the currency of the listings (specified by the `sale_currency` field).
      - `sale_currency` string, required: Sale price currency code.
      - `rent_price` integer, required: Rent price, in the currency of the listings (specified by the `rent_currency` field).
      - `rent_currency` string, required: Rent price currency code.
      - `changed_at` string, date, required: Date when the estate was last updated.
    - `sale_price_history` object[]: List of sale price history data.
      - `date_start` string, date, required: Start date when the change was applied.
      - `date_end` string, date, required: End date when the change was applied.
      - `sale_price_old` integer, required: Old sale price, in the currency of the listings.
      - `sale_price_new` integer, required: New sale price, in the currency of the listings.
    - `rent_price_history` object[]: List of rent price history data.
      - `date_start` string, date, required: Start date when the change was applied.
      - `date_end` string, date, required: End date when the change was applied.
      - `rent_price_old` integer, required: Old rent price, in the currency of the listings.
      - `rent_price_new` integer, required: New rent price, in the currency of the listings.
    - `sale_status_history` object[]: List of sale status history data.
      - `date_start` string, date, required: Start date when the change was applied.
      - `date_end` string, date, required: End date when the change was applied.
      - `sale_status_old` string, required: Old sale status, in the currency of the listings.
      - `sale_status_new` string, required: New sale status, in the currency of the listings.
    - `rent_status_history` object[]: List of rent status history data.
      - `date_start` string, date, required: Start date when the change was applied.
      - `date_end` string, date, required: End date when the change was applied.
      - `rent_status_old` string, required: Old rent status, in the currency of the listings.
      - `rent_status_new` string, required: New rent status, in the currency of the listings.
    - `property_url` string, nullable: URL of the property in the CASAFARI website.
    - `address` string, required: Property address.
    - `zip_code` string, nullable, required: The location zip code.
    - `distance` number, nullable: Distance in kilometers from target point to the property.Available only when the `custom_location_boundary.circle` field is defined in the request.
    - `description` string, required: Property description.
    - `construction_year` integer, required: Construction year.
    - `rent_price_base` integer, required: Current rent price, in Euros.
    - `rent_price_per_sqm` number, required: Current rent price per square meter, in the currency of the listings (specified by the `rent_currency` field).
    - `rent_price_per_sqm_base` number, required: Current rent price per square meter, in Euros.
    - `sale_price_base` integer, required: Current sale price, in Euros.
    - `sale_price_per_sqm` number, required: Current sale price per square meter, in the currency of the listings (specified by the `sale_currency` field).
    - `sale_price_per_sqm_base` number, required: Current sale price per square meter, in Euros.
    - `is_auction_property` boolean, required: Whether the property is an auction property.
    - `is_bank_property` boolean, required: Whether the property is a bank property.
    - `changed_at` string, date, required: The date and time when the property was last updated.
    - `sale_price_last_change` object, nullable, required: Information about the last change of sale price.
      - `change_date` string, date, required: Date of the change.
      - `old_value` integer, required: Value before change.
      - `new_value` integer, required: Value after change.
    - `rent_price_last_change` object, nullable, required: Information about the last change of rent price.
      - `change_date` string, date, required: Date of the change.
      - `old_value` integer, required: Value before change.
      - `new_value` integer, required: Value after change.
    - `thumbnails` string[]: List of the thumbnail image URLs.
    - `pictures` string[]: List of the original picture image URLs.
    - `gross_yield` number, required: Gross yield in percentage.
    - `title` string, required: Property title.
    - `energy_certificate` string, required: Energy certificate classification that attests to the energy efficiency of a property. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `energy_rating` field instead.</strong>
    - `energy_rating` string, required: Energy rating that attests to the energy efficiency of a property.
    - `ceiling_label` string, nullable, required: Ceiling height in meters.<br><span style="color:red">Available only for Germany.</span>
    - `min_rent_area` integer, nullable, required: Minimum rental area in square meters (mainly applicable to commercial properties).<br><span style="color:red">Available only for Germany.</span>
    - `ref_numbers` string[]: List of reference numbers from listings.
    - `casafari_connect` boolean, nullable, required: Whether the company is connected to Casafari Connect.
    - `source_floor_numbers` integer[]: List of property floor numbers based on listings data. Negative values indicate underground floors (e.g. basements).
    - `retail_data` object, nullable: Retail-related attributes of the property. Null for non-commercial properties or if the retail data is not available.
      - `facade_measurements` object, nullable, required: Facade measurements of the commercial property (height, length, surface in meters).
        - `height` number, nullable, required: Facade height in meters.
        - `length` number, nullable, required: Facade length in meters.
        - `surface` number, nullable, required: Facade surface area in square meters.
      - `transfer_price_range` object, nullable, required: Price range if the property is available for transfer.
        - `gte` integer, nullable, required: Lower bound of the transfer price range.
        - `lte` integer, nullable, required: Upper bound of the transfer price range.
      - `is_street_level` boolean, nullable, required: Whether the commercial entrance is situated at the street level, without having to go upstairs/downstairs to reach it.
      - `number_of_floors` integer, nullable, required: The number of commercial property floors.
      - `number_of_premises` integer, nullable, required: The number of property usable rooms/premises.
      - `possible_business_types` string[], nullable, required: What kind of business can/did run in this commercial property (e.g. cafe, restaurant, grocery store, dental clinic).

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found

---

[API](https://skmtc.dev/casafari/apis/casafari-api.md) · [All operations](https://skmtc.dev/casafari/apis/casafari-api/llms.txt) · [OpenAPI document](https://skmtc.dev/casafari/apis/casafari-api/revisions/6743b99d4bf9?raw)
