{ "$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#", "title": "IFP Public JSON Advert Schema", "description": "The public JSON schema of property adverts within the IFP systems. Currently supports sale properties only. Use this schema to send us your property adverts", "self": { "vendor": "com.french-property.schemas.json", "name": "public_sale_property_advert", "format": "jsonschema", "version": "1-0-0" }, "type": "object", "properties": { "advert": { "type": "object", "properties": { "agency_name": { "type": "string" }, "agency_phone": { "type": [ "null", "string" ] }, "agency_email": { "type": [ "null", "string" ] }, "agency_website": { "type": [ "null", "string" ] }, "agency_branch_name": { "type": [ "null", "string" ] }, "agency_branch_code": { "type": [ "string", "null" ] }, "agency_branch_phone": { "type": [ "null", "string" ] }, "agency_branch_email": { "type": [ "null", "string" ] }, "agency_branch_website": { "type": [ "null", "string" ] }, "agent_name": { "type": [ "null", "string" ] }, "agent_phone": { "type": [ "null", "string" ] }, "agent_email": { "type": [ "null", "string" ] }, "agent_website": { "type": [ "null", "string" ] }, "reference": { "type": [ "null", "string" ] }, "status": { "type": [ "null", "string" ], "enum": [ "offline", "online" ], "default": "online" }, "url": { "type": [ "null", "string" ] }, "created_at": { "type": [ "null", "string" ], "format": "date-time" }, "updated_at": { "type": [ "null", "string" ], "format": "date-time" } }, "required": [ "agency_name", "agency_phone", "agency_email", "agency_website", "agency_microsite", "agency_branch_name", "agency_branch_code", "agency_branch_phone", "agency_branch_email", "agent_name", "agent_phone", "agent_email", "reference", "status", "url", "created_at", "updated_at" ], "additionalProperties": false }, "property": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "for_sale", "let", "sold", "sold_subject_to_contract", "to_let", "under_offer", "withdrawn" ], "default": "for_sale" }, "title_en": { "type": "string" }, "title_fr": { "type": [ "null", "string" ] }, "description_en": { "type": "string" }, "description_fr": { "type": [ "null", "string" ] }, "highlights": { "type": "array", "items": { "type": [ "string" ] }, "minItems": 0, "uniqueItems": true }, "geo": { "$ref": "https://raw.githubusercontent.com/ifp/schemas/master/json/public/geo-public-schema_v1.0.0.json" }, "price": { "type": "object", "properties": { "amount": { "type": "number" }, "currency": { "type": "string", "enum": [ "EUR" ] }, "comment": { "type": [ "null", "string" ] }, "tenure": { "type": "string", "enum": [ "fractional", "freehold", "leasehold", "life_annuity" ], "default": "freehold" }, "qualifier": { "type": "string", "enum": [ "asking_price", "auction_guide_price", "offers_in_excess_of", "offers_in_region_of", "price_from", "price_on_application" ], "default": "asking_price" } }, "required": [ "amount", "currency", "comment", "tenure", "qualifier" ], "additionalProperties": false }, "room_counts": { "type": "object", "properties": { "total_rooms": { "type": [ "integer", "null" ] }, "total_bathrooms": { "type": [ "integer", "null" ] }, "bathrooms": { "type": [ "integer", "null" ] }, "bedrooms": { "type": [ "integer", "null" ] }, "reception_rooms": { "type": [ "integer", "null" ] }, "shower_rooms": { "type": [ "integer", "null" ] }, "water_closets": { "type": [ "integer", "null" ] } }, "required": [ "total_rooms", "total_bathrooms", "bathrooms", "bedrooms", "reception_rooms", "shower_rooms", "water_closets" ], "additionalProperties": false }, "floor_area": { "type": "object", "properties": { "size": { "type": [ "null", "number" ] } }, "required": [ "size" ], "additionalProperties": false }, "land_area": { "type": "object", "properties": { "size": { "type": [ "null", "number" ] } }, "required": [ "size" ], "additionalProperties": false }, "energy_certificates": { "type": "object", "properties": { "dpe": { "type": "object", "properties": { "number": { "type": [ "null", "number" ] }, "letter": { "type": [ "null", "string" ], "enum": [ null, "A", "B", "C", "D", "E", "F", "G" ] }, "date": { "type": [ "null", "string" ], "format": "date-time" } }, "required": [ "number", "letter", "date" ], "additionalProperties": false }, "ges": { "type": "object", "properties": { "number": { "type": [ "null", "number" ] }, "letter": { "type": [ "null", "string" ], "enum": [ null, "A", "B", "C", "D", "E", "F", "G" ] }, "date": { "type": [ "null", "string" ], "format": "date-time" } }, "required": [ "number", "letter", "date" ], "additionalProperties": false } }, "required": [ "dpe", "ges" ], "additionalProperties": false }, "attributes": { "type": "object", "properties": { "types": { "type": "array", "items": { "type": [ "string" ], "enum": [ "residential", "business", "apartment", "apartment_building", "bar", "barn", "bed_and_breakfast", "cafe", "campsite", "chateau", "farm", "gite", "gite_complex", "hotel", "house", "house_boat", "lake", "land", "mobile_home", "office", "restaurant", "shop", "vineyard" ] }, "minItems": 1, "uniqueItems": true }, "features": { "type": "array", "items": { "type": [ "string" ], "enum": [ "balcony", "central_heating", "double_glazing", "en_suite", "lake", "outbuildings", "pond", "swimming_pool", "tennis_court", "terrace", "vineyard" ] }, "minItems": 0, "uniqueItems": true } }, "required": [ "types", "features" ], "additionalProperties": false }, "images": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": [ "null", "string" ] }, "original_url": { "type": [ "null", "string" ] } }, "required": [ "title", "original_url" ], "additionalProperties": false }, "minItems": 0, "uniqueItems": true }, "floor_plans": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": [ "null", "string" ] }, "original_url": { "type": [ "null", "string" ] } }, "required": [ "title", "original_url" ], "additionalProperties": false }, "minItems": 0, "uniqueItems": true }, "virtual_tours": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": [ "null", "string" ] }, "original_url": { "type": [ "null", "string" ] } }, "required": [ "title", "original_url" ], "additionalProperties": false }, "minItems": 0, "uniqueItems": true } }, "required": [ "status", "title_en", "title_fr", "description_en", "description_fr", "highlights", "geo", "price", "room_counts", "floor_area", "land_area", "energy_certificates", "attributes", "images", "floor_plans", "virtual_tours" ], "additionalProperties": false } }, "required": [ "advert", "property" ], "additionalProperties": false }