Skip to main content
GET
/
api
/
properties
/
:id
Get Property
curl --request GET \
  --url https://api.example.com/api/properties/:id
{
  "success": true,
  "data": {
    "id": "<string>",
    "slug": "<string>",
    "title": "<string>",
    "description": "<string>",
    "price": 123,
    "originalPrice": {},
    "expenses": {},
    "currency": "<string>",
    "currency_id": 123,
    "propertyType": "<string>",
    "property_type_id": 123,
    "propertySubtype": "<string>",
    "property_subtype_id": 123,
    "listingType": "<string>",
    "operation_type_id": 123,
    "status": "<string>",
    "surfaceCoveredM2": {},
    "surfaceUncoveredM2": {},
    "lotSize": {},
    "rooms": {},
    "bedrooms": {},
    "bathrooms": {},
    "yearBuilt": {},
    "floor": {},
    "condition": "<string>",
    "has_balcony": true,
    "has_terrace": true,
    "has_laundry": true,
    "has_garden": true,
    "pets_allowed": true,
    "garage_spaces": 123,
    "youtube_video_url": {},
    "oportunidad": true,
    "credito_hipotecario": true,
    "apto_profesional": true,
    "acepta_permuta": true,
    "amoblado": true,
    "duenio_directo": true,
    "features": [
      "<string>"
    ],
    "images": [
      "<string>"
    ],
    "imagesMeta": [
      {}
    ],
    "location": {},
    "latitude": {},
    "longitude": {},
    "contactPhone": "<string>",
    "contactEmail": "<string>",
    "viewsCount": 123,
    "createdAt": "<string>",
    "updatedAt": "<string>"
  }
}

Overview

Retrieve detailed information about a specific property by its numeric ID or SEO-friendly URL slug. View count is automatically incremented for non-owner views.
This API supports two endpoints:
  • GET /api/properties/:id - Get property by numeric ID
  • GET /api/properties/slug/:slug - Get property by URL slug
Both endpoints return the same response format.

Authentication

Authorization
string
Optional. Bearer token for authenticated requests. Owners and admins can view paused properties.

Path Parameters

Get by ID

id
number
required
The numeric property ID. Used with /api/properties/:id

Get by Slug

slug
string
required
The SEO-friendly URL slug. Used with /api/properties/slug/:slug. Example: hermoso-departamento-palermo-4d

Response

Returns the same property object structure as the list endpoint, with all fields populated.
success
boolean
Indicates if the request was successful.
data
object
Property details object.
id
string
Property ID.
slug
string
SEO-friendly URL slug.
title
string
Property title.
description
string
Property description.
price
number
Property price.
originalPrice
number | undefined
Original price before discount.
expenses
number | undefined
Monthly expenses.
currency
string
Currency code.
currency_id
number
Currency ID.
propertyType
string
Property type slug.
property_type_id
number
Property type ID.
propertySubtype
string
Property subtype slug.
property_subtype_id
number
Property subtype ID.
listingType
string
Operation type slug.
operation_type_id
number
Operation type ID.
status
string
Property status slug.
surfaceCoveredM2
number | undefined
Covered surface in m².
surfaceUncoveredM2
number | undefined
Uncovered surface in m².
lotSize
number | undefined
Lot size in m².
rooms
number | undefined
Number of rooms.
bedrooms
number | undefined
Number of bedrooms.
bathrooms
number | undefined
Number of bathrooms.
yearBuilt
number | undefined
Year built.
floor
number | undefined
Floor number.
condition
string
Property condition.
has_balcony
boolean
Has balcony.
has_terrace
boolean
Has terrace.
has_laundry
boolean
Has laundry.
has_garden
boolean
Has garden.
pets_allowed
boolean
Pets allowed.
garage_spaces
number
Garage spaces.
youtube_video_url
string | null
YouTube video URL.
oportunidad
boolean
Opportunity listing.
credito_hipotecario
boolean
Mortgage credit available.
apto_profesional
boolean
Suitable for professional use.
acepta_permuta
boolean
Accepts property exchange.
amoblado
boolean
Furnished.
duenio_directo
boolean
Direct from owner.
features
string[]
Unified feature labels.
images
string[]
Image URLs.
imagesMeta
array
Image metadata with IDs and order.
location
object | undefined
Full location object with coordinates.
latitude
number | undefined
Latitude coordinate.
longitude
number | undefined
Longitude coordinate.
contactPhone
string
Contact phone.
contactEmail
string
Contact email.
viewsCount
number
Total view count.
createdAt
string
ISO 8601 timestamp.
updatedAt
string
ISO 8601 timestamp.

Example Requests

By ID

curl -X GET "https://api.example.com/api/properties/123" \
  -H "Authorization: Bearer YOUR_TOKEN"

By Slug

curl -X GET "https://api.example.com/api/properties/slug/hermoso-departamento-palermo-4d" \
  -H "Authorization: Bearer YOUR_TOKEN"

Example Response

{
  "success": true,
  "data": {
    "id": "123",
    "slug": "hermoso-departamento-palermo-4d",
    "title": "Hermoso departamento en Palermo",
    "description": "Excelente departamento de 2 ambientes...",
    "price": 250000,
    "currency": "USD",
    "propertyType": "departamento",
    "listingType": "venta",
    "status": "activo",
    "surfaceCoveredM2": 65,
    "bedrooms": 2,
    "bathrooms": 1,
    "has_balcony": true,
    "garage_spaces": 1,
    "features": ["Balcón", "Luminoso", "Cerca del subte"],
    "images": ["https://..."],
    "imagesMeta": [
      {
        "id": 456,
        "url": "https://...",
        "orderIndex": 0,
        "isMain": true
      }
    ],
    "location": {
      "id": 789,
      "street": "Av. Santa Fe",
      "streetNumber": "3500",
      "neighborhood": "Palermo",
      "city": "Buenos Aires",
      "province": "CABA",
      "country": "Argentina",
      "latitude": -34.5891,
      "longitude": -58.4198,
      "showExactAddress": false
    },
    "contactPhone": "+54 11 1234-5678",
    "contactEmail": "[email protected]",
    "viewsCount": 153,
    "createdAt": "2026-03-01T10:30:00Z",
    "updatedAt": "2026-03-02T15:20:00Z"
  }
}

Error Responses

Not Found (404)

{
  "success": false,
  "message": "Property not found"
}
Returned when:
  • Property ID doesn’t exist
  • Property is paused and user is not the owner or admin

Invalid ID (400)

{
  "success": false,
  "message": "Invalid property ID"
}

Notes

  • View count is incremented automatically for each GET request (except for property owners)
  • Paused properties are only visible to owners and admins
  • All price and surface fields are returned as numbers (converted from stored decimals)
  • Features include both boolean flags (converted to Spanish labels) and custom features

Build docs developers (and LLMs) love