postreef
All schemas

Property Tour

vidextract.predefined.property_tour.v1

A real-estate or home tour extracted from a video — listings, walkthroughs, apartment tours. Captures the property's headline facts plus the rooms and features the creator actually shows. Do not invent square footage, price, or counts that were never stated — omit instead.

Fields

titlerequired
string

Short label for the property, e.g. '2-bed loft in downtown Lisbon'.

propertyType
enum

Type of property. Pick the closest single match.

listingStatus
enum

Whether it is for sale, for rent, already sold, or just a showcase. Omit if unclear.

location
string

City/neighborhood as stated. Do not guess a full address — capture only what's shown.

priceUsd
number

Price in US dollars if clearly stated as USD. Use priceText otherwise.

priceText
string

Price as spoken when not clean USD, e.g. '€450,000', '$2,200/month'. Omit if priceUsd covers it.

bedrooms
number

Number of bedrooms if stated. Omit otherwise.

bathrooms
number

Number of bathrooms if stated (0.5 for a half-bath). Omit otherwise.

areaText
string

Floor area as stated with its unit, e.g. '1,200 sq ft', '110 m²'. Omit if not given.

yearBuilt
integer

Year built if mentioned. Omit otherwise.

rooms
object[]

Rooms or spaces the creator tours, in order shown.

featuresrequired
string[]

Notable selling-point features the creator calls out — e.g. 'floor-to-ceiling windows', 'in-unit laundry', 'parking included'.

pros
string[]

Positive points the creator voices about the property. Short phrases. Omit if none.

cons
string[]

Drawbacks or concerns the creator voices. Short phrases. Omit if none.

neighborhoodNotes
string

What the creator says about the surrounding area, transit, or amenities. Omit if not covered.

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "vidextract.predefined.property_tour.v1",
  "title": "Property Tour",
  "description": "A real-estate or home tour extracted from a video — listings, walkthroughs, apartment tours. Captures the property's headline facts plus the rooms and features the creator actually shows. Do not invent square footage, price, or counts that were never stated — omit instead.",
  "type": "object",
  "required": [
    "title",
    "features"
  ],
  "additionalProperties": false,
  "properties": {
    "title": {
      "type": "string",
      "description": "Short label for the property, e.g. '2-bed loft in downtown Lisbon'."
    },
    "propertyType": {
      "type": "string",
      "enum": [
        "apartment",
        "house",
        "condo",
        "studio",
        "townhouse",
        "villa",
        "cabin",
        "loft",
        "land",
        "commercial",
        "other"
      ],
      "description": "Type of property. Pick the closest single match."
    },
    "listingStatus": {
      "type": "string",
      "enum": [
        "for-sale",
        "for-rent",
        "sold",
        "tour-only"
      ],
      "description": "Whether it is for sale, for rent, already sold, or just a showcase. Omit if unclear."
    },
    "location": {
      "type": "string",
      "description": "City/neighborhood as stated. Do not guess a full address — capture only what's shown."
    },
    "priceUsd": {
      "type": "number",
      "description": "Price in US dollars if clearly stated as USD. Use priceText otherwise."
    },
    "priceText": {
      "type": "string",
      "description": "Price as spoken when not clean USD, e.g. '€450,000', '$2,200/month'. Omit if priceUsd covers it."
    },
    "bedrooms": {
      "type": "number",
      "description": "Number of bedrooms if stated. Omit otherwise."
    },
    "bathrooms": {
      "type": "number",
      "description": "Number of bathrooms if stated (0.5 for a half-bath). Omit otherwise."
    },
    "areaText": {
      "type": "string",
      "description": "Floor area as stated with its unit, e.g. '1,200 sq ft', '110 m²'. Omit if not given."
    },
    "yearBuilt": {
      "type": "integer",
      "description": "Year built if mentioned. Omit otherwise."
    },
    "rooms": {
      "type": "array",
      "description": "Rooms or spaces the creator tours, in order shown.",
      "items": {
        "type": "object",
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Room or space, e.g. 'primary bedroom', 'kitchen', 'rooftop terrace'."
          },
          "highlights": {
            "type": "string",
            "description": "What stands out about this space per the creator. One short sentence. Omit if nothing noted."
          },
          "videoTimestamp": {
            "type": "string",
            "description": "Start timestamp of this room in the video, 'mm:ss' or 'h:mm:ss'. Omit if unknown.",
            "pattern": "^(\\d{1,2}:)?\\d{1,2}:\\d{2}$"
          }
        }
      }
    },
    "features": {
      "type": "array",
      "description": "Notable selling-point features the creator calls out — e.g. 'floor-to-ceiling windows', 'in-unit laundry', 'parking included'.",
      "minItems": 1,
      "items": {
        "type": "string"
      }
    },
    "pros": {
      "type": "array",
      "description": "Positive points the creator voices about the property. Short phrases. Omit if none.",
      "items": {
        "type": "string"
      }
    },
    "cons": {
      "type": "array",
      "description": "Drawbacks or concerns the creator voices. Short phrases. Omit if none.",
      "items": {
        "type": "string"
      }
    },
    "neighborhoodNotes": {
      "type": "string",
      "description": "What the creator says about the surrounding area, transit, or amenities. Omit if not covered."
    }
  }
}

Use it via the API

Pass schemaId: "vidextract.predefined.property_tour.v1" when you submit an extraction. The call returns an id immediately. Poll GET /v1/extractions/{id}/result (or register a webhook) for the structured result.

curl -s -X POST https://postreef.com/v1/extractions \
  -H "x-api-key: $VIDEXTRACT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
       "inputs": ["transcript", "comments"],
       "schemaId": "vidextract.predefined.property_tour.v1"}'

Full request/response shape in the API reference; copy-paste poll loops in the API quickstart.

Pass schemaId: "vidextract.predefined.property_tour.v1" in your request to extract with this schema.