{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/airbnb/refs/heads/main/json-schema/airbnb-listing-schema.json", "title": "Listing", "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the listing." }, "name": { "type": "string", "description": "The display name of the listing." }, "description": { "type": "string", "description": "The full description of the property." }, "property_type": { "type": "string", "description": "The type of property being listed.", "enum": [ "apartment", "house", "secondary_unit", "unique_space", "bed_and_breakfast", "boutique_hotel" ] }, "room_type": { "type": "string", "description": "The type of room or space being offered.", "enum": [ "entire_home", "private_room", "shared_room" ] }, "status": { "type": "string", "description": "The current status of the listing on the platform.", "enum": [ "active", "inactive", "pending", "unlisted" ] }, "address": { "$ref": "#/components/schemas/Address" }, "bedrooms": { "type": "integer", "description": "The number of bedrooms in the property.", "minimum": 0 }, "bathrooms": { "type": "number", "description": "The number of bathrooms in the property.", "minimum": 0 }, "beds": { "type": "integer", "description": "The total number of beds in the property.", "minimum": 0 }, "max_guests": { "type": "integer", "description": "The maximum number of guests allowed.", "minimum": 1 }, "amenities": { "type": "array", "description": "The list of amenity identifiers available at the property.", "items": { "type": "string" } }, "house_rules": { "type": "string", "description": "The house rules and guidelines for guests." }, "check_in_time": { "type": "string", "description": "The earliest check-in time in HH:MM format.", "pattern": "^[0-2][0-9]:[0-5][0-9]$" }, "check_out_time": { "type": "string", "description": "The latest check-out time in HH:MM format.", "pattern": "^[0-2][0-9]:[0-5][0-9]$" }, "pricing": { "$ref": "#/components/schemas/Pricing" }, "photos": { "type": "array", "description": "The photos associated with the listing.", "items": { "$ref": "#/components/schemas/Photo" } }, "cancellation_policy": { "type": "string", "description": "The cancellation policy applied to the listing.", "enum": [ "flexible", "moderate", "strict", "strict_14_with_grace_period", "super_strict_30", "super_strict_60" ] }, "created_at": { "type": "string", "format": "date-time", "description": "The timestamp when the listing was created." }, "updated_at": { "type": "string", "format": "date-time", "description": "The timestamp when the listing was last updated." } } }