{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Short-Term Rental", "description": "Schema for short-term vacation rental listings (Airbnb, VRBO, etc.).", "type": "object", "properties": { "listing_id": { "type": "string", "description": "Platform-specific listing identifier. Commonly found in: listing URL slug, page metadata, listing ID field." }, "title": { "type": "string", "description": "Title or name of the rental listing. Commonly found in: listing page header, h1 tag, og:title meta tag." }, "platform": { "type": "string", "description": "Platform hosting the listing (e.g., Airbnb, VRBO). Commonly found in: site domain, platform branding, page footer." }, "host_name": { "type": "string", "description": "Name of the property host. Commonly found in: host profile section, listing header, contact info." }, "host_is_superhost": { "type": "boolean", "description": "Whether the host has superhost or equivalent status. Commonly found in: host profile badge, superhost indicator, listing header." }, "property_type": { "type": "string", "enum": ["entire_place", "private_room", "shared_room", "other"], "description": "Type of space offered. Commonly found in: listing header, property type badge, room type indicator." }, "city": { "type": "string", "description": "City where the rental is located. Commonly found in: listing location, breadcrumb, map section." }, "state": { "type": "string", "description": "State or region of the rental. Commonly found in: listing location, breadcrumb, map section." }, "country": { "type": "string", "description": "Country where the rental is located. Commonly found in: listing location, breadcrumb, map section." }, "latitude": { "type": "number", "description": "Geographic latitude coordinate. Commonly found in: map embed data, JSON-LD structured data." }, "longitude": { "type": "number", "description": "Geographic longitude coordinate. Commonly found in: map embed data, JSON-LD structured data." }, "bedrooms": { "type": "number", "description": "Number of bedrooms. Commonly found in: listing specs bar, property details, header stats." }, "bathrooms": { "type": "number", "description": "Number of bathrooms. Commonly found in: listing specs bar, property details, header stats." }, "max_guests": { "type": "number", "description": "Maximum number of guests allowed. Commonly found in: listing specs bar, guest capacity display, header stats." }, "nightly_rate": { "type": "number", "description": "Base nightly rate in the listed currency. Commonly found in: price display, nightly rate box, booking widget." }, "weekend_rate": { "type": "number", "description": "Weekend nightly rate. Commonly found in: pricing details, rate breakdown, booking widget." }, "cleaning_fee": { "type": "number", "description": "One-time cleaning fee per booking. Commonly found in: fee breakdown section, booking summary, pricing details." }, "service_fee": { "type": "number", "description": "Platform service fee per booking. Commonly found in: fee breakdown section, booking summary, pricing details." }, "minimum_nights": { "type": "number", "description": "Minimum number of nights required per booking. Commonly found in: listing policies section, booking widget, availability details." }, "maximum_nights": { "type": "number", "description": "Maximum number of nights allowed per booking. Commonly found in: listing policies section, booking widget, availability details." }, "review_count": { "type": "number", "description": "Total number of guest reviews. Commonly found in: review section header, listing rating display, review count badge." }, "review_rating": { "type": "number", "description": "Average guest review rating. Commonly found in: listing header rating, star rating display, review summary." }, "amenities": { "type": "array", "items": { "type": "string" }, "description": "List of amenities available at the rental. Commonly found in: amenities section, what this place offers, listing features." }, "cancellation_policy": { "type": "string", "enum": ["flexible", "moderate", "strict", "other"], "description": "Cancellation policy for the listing. Commonly found in: cancellation policy section, booking terms, listing policies." }, "images": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs of listing images. Commonly found in: photo gallery, image carousel, og:image meta tag." }, "description": { "type": "string", "description": "Full text description of the rental. Commonly found in: listing description section, about this space, overview text." }, "instant_book": { "type": "boolean", "description": "Whether the listing supports instant booking. Commonly found in: instant book badge, booking widget, listing header indicators." }, "page_title": { "type": "string", "description": "Title of the source page. Tabstack auto-fills this from page metadata when left empty." }, "favicon": { "type": "string", "format": "uri", "description": "Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty." } }, "required": ["title", "platform", "property_type", "city", "country", "bedrooms", "bathrooms", "max_guests", "nightly_rate"] }