Every API here is available over the APIs.io API and to AI agents over MCP.
{"openapi":"3.1.0","info":{"title":"Casafari API","description":"The Casafari API provides clients with methods for manipulating alerts feeds, accounts, and consulting a reference\nof available locations, features and conditions.\n\n# Authentication methods\n\n<!-- ReDoc-Inject: <security-definitions> -->","version":"0.1.0"},"servers":[{"url":"https://api.casafari.com"}],"paths":{"/login":{"post":{"tags":["user-management---authentication"],"summary":"Login","operationId":"user-management__post__login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserManagementLoginRequestSchema"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserManagementJWTTokenResponseSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserManagementHTTPValidationError"}}}}}}},"/refresh-token":{"get":{"tags":["user-management---authentication"],"summary":"Refresh Token","operationId":"user-management__get__refresh-token","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserManagementJWTRefreshTokenResponseSchema"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/references/types":{"get":{"tags":["api---references"],"summary":"Get types (v1)","description":"Returns a list of all possible estate types.","operationId":"api__get__v1__references__types","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiTypesV1"},"type":"array"},"examples":{"0":{"value":{"types":[{"group":"apartment","names":["apartment","studio","duplex","penthouse","dachgeschosswohnung","etagenwohnung","erdgeschosswohnung"]},{"group":"house","names":["country_house","house","palace","townhouse","villa","country_estate","chalet","bungalow","reihenhaus","reihenendhaus","reihenmittelhaus","einfamilienhaus","zweifamilienhaus","landwirtschaftliche_betriebe"]},{"group":"investment","names":["retail","office","industrial","warehouse","hotel","other_commercial","restaurant","werkstatt"]},{"group":"plot","names":["urban_plot","rural_plot"]},{"group":"room","names":["room"]},{"group":"other","names":["other","garage","parking"]},{"group":"building","names":["apartment_building","office_building","mix_use_building"]}],"types_with_countries":[{"name":"apartment","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"studio","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"duplex","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE"]},{"name":"penthouse","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","UAE"]},{"name":"dachgeschosswohnung","countries":["Germany"]},{"name":"etagenwohnung","countries":["Germany"]},{"name":"erdgeschosswohnung","countries":["Germany"]},{"name":"country_house","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE"]},{"name":"house","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"palace","countries":["Portugal","Spain","France","Italy","Switzerland","Austria"]},{"name":"townhouse","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","UAE","Poland"]},{"name":"villa","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE"]},{"name":"country_estate","countries":["Portugal","Spain","France","Italy","Switzerland","Austria"]},{"name":"chalet","countries":["Portugal","Spain","France","Italy","Switzerland","Austria"]},{"name":"bungalow","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece"]},{"name":"reihenhaus","countries":["Germany"]},{"name":"reihenendhaus","countries":["Germany"]},{"name":"reihenmittelhaus","countries":["Germany"]},{"name":"einfamilienhaus","countries":["Germany"]},{"name":"zweifamilienhaus","countries":["Germany"]},{"name":"landwirtschaftliche_betriebe","countries":["Germany"]},{"name":"retail","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"office","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"industrial","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE"]},{"name":"warehouse","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"hotel","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"other_commercial","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"restaurant","countries":["Germany","UAE","Poland"]},{"name":"werkstatt","countries":["Germany"]},{"name":"urban_plot","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"rural_plot","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"room","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","UAE","Poland"]},{"name":"other","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]},{"name":"garage","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Poland"]},{"name":"parking","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece"]},{"name":"apartment_building","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE"]},{"name":"office_building","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","UAE","Poland"]},{"name":"mix_use_building","countries":["Portugal","Spain","France","Italy","Switzerland","Austria","Germany","Greece","UAE","Poland"]}]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]}},"/api/v1/references/features":{"get":{"tags":["api---references"],"summary":"Get features (v1)","description":"Returns a list of all possible property features.","operationId":"api__get__v1__references__features","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiFeaturesV1"},"type":"array"},"examples":{"0":{"value":{"features":[{"group":"floor","names":["no_floor","ground","middle","top"]},{"group":"orientation","names":["exterior","interior"]},{"group":"views","names":["water","landscape","city","golf","park"]},{"group":"directions","names":["north","south","east","west"]},{"group":"characteristics","names":["balcony","elevator","no_elevator","garage","garden","parking","storage","swimming_pool","terrace","rental_license","furniture","rented_out","life_annuity"]}]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]}},"/api/v1/references/locations/by-coordinates":{"get":{"tags":["api---references"],"summary":"Get location by passed coordinates (v1)","description":"Returns a location for the given coordinates with user restrictions.","operationId":"api__get__v1__references__locations__by-coordinates","parameters":[{"description":"The latitude coordinate.","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0},"name":"latitude","in":"query"},{"description":"The longitude coordinate.","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0},"name":"longitude","in":"query"},{"description":"Language to use for the location names in the response. (When the provided language is not supported, the results will be returned in English.)","required":false,"schema":{"type":"string"},"name":"lang","in":"query"}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReferenceLocationV1"},"examples":{"0":{"value":{"location_id":1615,"name":"São Gonçalo de Lagos","parent_id":1611,"administrative_level":"Freguesia","locations_structure":[{"location_id":499,"name":"Portugal","administrative_level":"País","zip_codes":[],"level":1},{"location_id":1597,"name":"Faro","administrative_level":"Distrito","zip_codes":[],"level":2},{"location_id":1611,"name":"Lagos","administrative_level":"Concelho","zip_codes":[],"level":3},{"location_id":1615,"name":"São Gonçalo de Lagos","administrative_level":"Freguesia","zip_codes":["8600-532","8600-302","8600-537"],"level":4}]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]}},"/api/v1/references/conditions":{"get":{"tags":["api---references"],"summary":"Get conditions (v1)","description":"Returns a list of all possible estate conditions.","operationId":"api__get__v1__references__conditions","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiConditionsV1"},"type":"array"},"examples":{"0":{"value":{"conditions":["used","ruin","very-good","new","other"]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]}},"/api/v1/references/agencies":{"get":{"tags":["api---references"],"summary":"Get agencies (v1)","description":"Returns a list of all possible agencies with user restrictions.","operationId":"api__get__v1__references__agencies","parameters":[{"description":"A name of the agency to search.","required":true,"schema":{"type":"string"},"name":"name","in":"query"}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiAgenciesV1"},"type":"array"},"examples":{"0":{"value":{"agencies":[{"name":"ComprarCasa Guimarães & Guimarães Centro","agency_type":"company","source_ids":[1616,2492]},{"name":"ComprarCasa Setúbal Estádio","agency_type":"company","source_ids":[1616]}]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]}},"/api/v1/references/agents":{"get":{"tags":["api---references"],"summary":"Get agents (v1)","description":"Returns a list of all possible agents with user restrictions.","operationId":"api__get__v1__references__agents","parameters":[{"description":"A name of the agent to search.","required":true,"schema":{"type":"string"},"name":"name","in":"query"}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiAgentsV1"},"type":"array"},"examples":{"0":{"value":{"agents":["Paulo Diogo","Paulo Costa"]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]}},"/api/v1/references/sources":{"get":{"tags":["api---references"],"summary":"Get sources (v1)","description":"Returns a list of all domains for the requested location.","operationId":"api__get__v1__references__sources","parameters":[{"description":"The location ID to search sources for.","required":true,"schema":{"type":"integer"},"name":"locationId","in":"query"}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiSourcesV1"},"type":"array"},"examples":{"0":{"value":{"domains":["barnes-portugal.com"]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]}},"/api/v1/listing-alerts/feeds":{"get":{"tags":["api---alerts"],"summary":"Get feeds list (v1)","description":"Returns all alerts feeds for currently authenticated user.","operationId":"api__get__v1__listing-alerts__feeds","parameters":[{"description":"Whether to include information about feed filters in the response.","required":false,"schema":{"type":"boolean"},"name":"filter","in":"query"},{"description":"Indicates if manager user wants to see only own feeds.","required":false,"schema":{"type":"boolean"},"name":"only_self","in":"query"}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiAlertsFeedV1"},"type":"array"},"examples":{"0":{"value":[{"id":887,"user":"user@email.com","name":"Apartments for sale"},{"id":888,"user":"user@email.com","name":"Houses for sale"}]}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]},"post":{"tags":["api---alerts"],"summary":"Create feed (v1)","description":"Create alerts feed for currently authenticated user.<br/>\n Feed is a predefined set of conditions to filter alerts by.<br/>\n The `id` of created feed then should be used as URL parameter for\n [get alerts by feed](/#operation/getAlertsFeed) endpoint\n to get alerts filtered by feed filter conditions.","operationId":"api__post__v1__listing-alerts__feeds","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAlertsFeedV1"},"examples":{"0":{"value":{"name":"Apartments for sale in Cascais, Oeiras, Lisbon","filter":{"operation":"sale","types":["apartment","studio","duplex","penthouse"],"location_ids":[2942,1861,1600],"conditions":["used","very-good","new"],"statuses":["active","reserved"],"price_from":150000,"price_to":800000,"price_per_sqm_from":2000,"price_per_sqm_to":8000,"bedrooms_from":1,"bedrooms_to":3,"total_area_from":30,"total_area_to":130,"construction_year_from":1950,"floors":["middle","top"],"views":["city"],"directions":["west","south"],"characteristics":["balcony","elevator","parking"],"private":false,"new_development":false,"has_agency_name":true,"has_email":false,"without_agencies":["Airbnb","Casa.Sapo"]}}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAlertsFeedV1"},"examples":{"0":{"value":{"id":887,"user":"user@email.com","name":"Apartments for sale in Cascais, Oeiras, Lisbon","filter":{"operation":"sale","types":["apartment","studio","duplex","penthouse"],"location_ids":[2942,1861,1600],"conditions":["used","very-good","new"],"statuses":["active","reserved"],"price_from":150000,"price_to":800000,"price_per_sqm_from":2000,"price_per_sqm_to":8000,"bedrooms_from":1,"bedrooms_to":3,"total_area_from":30,"total_area_to":130,"construction_year_from":1950,"floors":["middle","top"],"views":["city"],"directions":["west","south"],"characteristics":["balcony","elevator","parking"],"private":false,"new_development":false,"has_agency_name":true,"has_email":false,"without_agencies":["Airbnb","Casa.Sapo"]}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errors":{"type":"object","description":"Description of the errors encountered."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]}},"/api/v1/listing-alerts/feeds/{id}":{"get":{"tags":["api---alerts"],"summary":"Get alerts by feed (v1)","description":"Returns paginated list of alerts (by feed ID) for currently authenticated user.","operationId":"api__get__v1__listing-alerts__feeds__{id}","parameters":[{"description":"A unique integer value identifying this alerts feed.","required":true,"schema":{"type":"string"},"name":"id","in":"path"},{"description":"Number of results to return per page.","required":false,"schema":{"type":"integer"},"name":"limit","in":"query"},{"description":"Offset from which to start the search. Maximum value is 50000.","required":false,"schema":{"type":"integer"},"name":"offset","in":"query"},{"description":"The field by which to sort the results.","required":false,"schema":{"type":"string","enum":["alert_date","-alert_date","alert_id","-alert_id","created_at","-created_at","updated_at","-updated_at"],"default":"-alert_date"},"name":"order_by","in":"query"},{"description":"Start date (in the format `YYYY-MM-DD`) of the period for alerts of interest.<br/>Overrides `alert_date_from` value if it was specified in the feed filter.<br/>Invalid values are ignored.","required":false,"schema":{"type":"string","format":"date"},"name":"alert_date_from","in":"query"},{"description":"End date (in the format `YYYY-MM-DD`) of the period for alerts of interest.<br/>Overrides `alert_date_to` value if it was specified in the feed filter.<br/>Invalid values are ignored.","required":false,"schema":{"type":"string","format":"date"},"name":"alert_date_to","in":"query"},{"description":"Start date and time (in the format `YYYY-MM-DDTHH:mm:ss`) to filter alerts by their creation in the database (UTC). Useful for incremental sync to avoid fetching already fetched data.<br/>Overrides `created_at_from` value if it was specified in the feed filter.<br/>Invalid values are ignored.","required":false,"schema":{"type":"string","format":"date-time"},"name":"created_at_from","in":"query"},{"description":"End date and time (in the format `YYYY-MM-DDTHH:mm:ss`) to filter alerts by their creation in the database (UTC). Useful for incremental sync to avoid fetching already fetched data.<br/>Overrides `created_at_to` value if it was specified in the feed filter.<br/>Invalid values are ignored.","required":false,"schema":{"type":"string","format":"date-time"},"name":"created_at_to","in":"query"},{"description":"Start date and time (in the format YYYY-MM-DDTHH:mm:ss) to filter alerts by their creation in the database (UTC), only including alerts for which photo processing has been completed. Use it to fetch alerts with already assigned photos.\nNote: Some alerts may still not have photos if the original listing did not include any.<br/>Overrides `created_at_with_photos_from` value if it was specified in the feed filter.<br/>Invalid values are ignored.","required":false,"schema":{"type":"string","format":"date-time"},"name":"created_at_with_photos_from","in":"query"},{"description":"End date and time (in the format YYYY-MM-DDTHH:mm:ss) to filter alerts by their creation in the database (UTC), only including alerts for which photo processing has been completed. Use it to fetch alerts with already assigned photos.\nNote: Some alerts may still not have photos if the original listing did not include any.<br/>Overrides `created_at_with_photos_to` value if it was specified in the feed filter.<br/>Invalid values are ignored.","required":false,"schema":{"type":"string","format":"date-time"},"name":"created_at_with_photos_to","in":"query"},{"description":"Get only alerts of the specific subtype (for the requested feed).<br/>Invalid values are ignored.<br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `alert_subtypes` field in the feed.filter instead.</strong>","required":false,"schema":{"type":"string","enum":["new","price_up","price_down","reserved","delisted","sold"]},"name":"alert_subtype","in":"query"}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"items":{"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","format":"uri","example":"http://api.example.org/accounts/?offset=400&limit=100","nullable":true},"previous":{"type":"string","format":"uri","example":"http://api.example.org/accounts/?offset=200&limit=100","nullable":true},"results":{"$ref":"#/components/schemas/ApiAlertDocumentsV1"}},"type":"object"},"type":"array"},"examples":{"0":{"value":{"count":79,"next":"http://api.casafari.com/v1/listing-alerts/feeds/887?alert_date_from=2021-09-01&limit=50&offset=50","results":[{"alert_id":412269711,"listing_id":110358519,"title":"Apartamento T2 em Santa Engracia","ref":"ID-124021076-47","alert_type":"sale_price","alert_subtype":"price_down","old_value":"549000","new_value":"545000","alert_date":"2021-10-24","alert_date_and_time":"2021-10-24T05:37:09","created_at":"2021-10-24T05:38:53.273581","created_at_with_photos":"2021-10-24T05:43:27.622175","updated_at":"2021-04-05T17:47:19.191211","property_url":"https://www.casafari.com/home-sale/property-51277418","listing_url":"https://www.idealista.pt/imovel/31407575/","listing_uid":"1054046","property_id":51277418,"type":"apartment","type_group":"apartment","location":{"location_id":28649,"name":"Santa Engrácia","administrative_level":"Localidade","zip_codes":[]},"locations_structure":[{"location_id":499,"name":"Portugal","administrative_level":"País","zip_codes":["1200-224"]},{"location_id":1599,"name":"Lisbon","administrative_level":"Distrito","zip_codes":[]},{"location_id":1600,"name":"Lisbon","administrative_level":"Concelho","zip_codes":[]},{"location_id":1760,"name":"São Vicente","administrative_level":"Freguesia","zip_codes":[]},{"location_id":28649,"name":"Santa Engrácia","administrative_level":"Localidade","zip_codes":[]}],"address":"","zip_code":"80804","cadastral_reference":"2181605VK4728A0001TA","coordinates":{"latitude":38.7194,"longitude":-9.12209},"condition":"used","contacts_info":{"phone":"215551538"},"total_area":130,"living_area":128,"plot_area":0,"terrace_area":15,"bedrooms":3,"rooms":0,"bathrooms":2,"features":{"floor":"middle","views":["city","landscape"],"directions":["west","south"],"characteristics":["balcony","elevator","garage","parking","storage"]},"construction_year":2015,"operations":["sale"],"is_bank_property":false,"is_auction_property":false,"is_new_development_property":false,"is_private_property":false,"sale_status":"active","sale_currency":"EUR","sale_price":545000,"sale_price_base":545000,"sale_price_per_sqm":4192.0,"sale_price_per_sqm_base":4192.0,"rent_status":"none","rent_currency":"EUR","rent_price":0,"rent_price_base":0,"rent_price_per_sqm":0.0,"rent_price_per_sqm_base":0.0,"rent_period":"none","agency_legal_id":"402016653","agency":"Helena Almeida Pires","agent":"","source_name":"Idealista","description":"O apartamento é composto de sala de estar e jantar ampla, com janelas de vidro duplo que dão enorme luminosidade, ao ambiente.","thumbnails":["https://st2.retelligence.co/c/2875/4/7f/5a0fc6ebf8e4e41d062342a29b50647f350.jpg","https://st2.retelligence.co/c/2875/c/f0/b0c609e7e242f55b2fb02efd33258cf0350.jpg"],"pictures":["https://media.casasapo.pt/Z1140x855/Wnone/S5/C2729/P20091734/Tphoto/ID56933201-0000-0500-0000-00000d1ffcdc.jpg","https://media.casasapo.pt/Z1140x855/Wnone/S5/C2729/P20091734/Tphoto/ID56933201-0000-0500-0000-00000d1ffcd5.jpg"],"energy_certificate":"B","energy_rating":"B","heating_type":"Central heating","available_from":"2026-07-01","available_to":"2027-06-30"}]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"properties":{"errors":{"type":"object","description":"Description of the errors encountered."}},"type":"object"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"errors":{"type":"object","description":"Description of the errors encountered."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]},"delete":{"tags":["api---alerts"],"summary":"Delete feed (v1)","description":"Delete alerts feed (by feed ID) for currently authenticated user.","operationId":"api__delete__v1__listing-alerts__feeds__{id}","parameters":[{"description":"A unique integer value identifying this alerts feed.","required":true,"schema":{"type":"string"},"name":"id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"success":{"type":"boolean","description":"Boolean indicating whether the delete action was successful.","example":true}},"type":"object"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"Authentication credentials were not provided."}},"type":"object"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"detail":{"type":"string","description":"Description of the error encountered.","example":"You do not have permission to perform this action."}},"type":"object"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"properties":{"errors":{"type":"object","description":"Description of the errors encountered."}},"type":"object"}}}}},"security":[{"HTTPBearer":[]},{"OAuth2ClientCredentials":[]}]}},"/api/v1/properties/search/{property_id}":{"get":{"tags":["api---properties"],"summary":"Get property by ID (v1)","description":"Returns a property object.","operationId":"api__get__v1__properties__search__{property_id}","parameters":[{"description":"","required":true,"schema":{"type":"string"},"name":"property_id","in":"path"},{"description":"Number of results to return per page.","required":false,"schema":{"type":"integer"},"name":"limit","in":"query"},{"description":"Offset from which to start the search. Maximum value is 50000.","required":false,"schema":{"type":"integer"},"name":"offset","in":"query"}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"items":{"properties":{"count":{"type":"integer","example":123},"next":{"type":"string","format":"uri","example":"http://api.example.org/accounts/?offset=400&limit=100","nullable":true},"previous":{"type":"string","format":"uri","example":"http://api.example.org/accounts/?offset=200&limit=100","nullable":true},"results":{"$ref":"#/components/schemas/ApiPropertyDetailResponseV1"}},"type":"object"},"type":"array"},"examples":{"0":{"value":{"property_id":6256230,"primary_listing_id":23587829,"type":"other","type_group":"other","operations":["rent"],"location":{"location_id":5699,"name":"Laranjeiras","administrative_level":"Localidade","zip_codes":["3250-151"]},"locations_structure":[{"location_id":499,"name":"Portugal","administrative_level":"Pais","zip_codes":["1200-224"]},{"location_id":1599,"name":"Lisbon","administrative_level":"Distrito","zip_codes":["1000-017"]},{"location_id":1600,"name":"Lisbon","administrative_level":"Concelho","zip_codes":["1000-017"]},{"location_id":2818,"name":"Sao Domingos De Benfica","administrative_level":"Freguesia","zip_codes":["1500-561"]},{"location_id":5699,"name":"Laranjeiras","administrative_level":"Localidade","zip_codes":["3250-151"]}],"coordinates":{"latitude":38.7482,"longitude":-9.17304},"total_area":0,"living_area":0,"plot_area":0,"terrace_area":0,"bathrooms":0,"rooms":0,"number_of_parkings":1,"rent_currency":"EUR","rent_period":"none","rent_price":75,"rent_status":"rented","sale_currency":"EUR","sale_price":0,"sale_status":"none","is_private_property":true,"features":{"floor":"no_floor","orientation":"exterior","view":"city","views":["city"],"direction":"south","directions":["east","north","south","west"],"characteristics":["balcony","elevator","garage","garden","parking","swimming_pool"]},"condition":"other","rent_time_on_market":{"date_start":"2020-06-12","date_end":"2020-06-24","days_on_market":13,"has_untracked_period":false},"listings":[{"listing_id":23587829,"total_area":0,"plot_area":0,"terrace_area":0,"bathrooms":0,"rooms":0,"sale_status":"none","sale_currency":"EUR","sale_price":0,"sale_price_base":0,"rent_status":"hold","rent_currency":"EUR","rent_price":75,"rent_price_base":75,"agency_legal_id":"402016653","agency":"Susana Pires","listing_old_url":"https://www.idealista.pt/imovel/31407575/","description":"Temos disponível para aluguer ...","listing_uid":"595677247","construction_year":0,"source_name":"OLX","contacts_info":{"email":"test@email.com","phone":"+0 123456789"},"energy_certificate":"Unknown","energy_rating":"Unknown","ceiling_label":"3.0 m","commission":3.57,"min_rent_area":50,"heating_type":"Central heating","companies":[{"name":"Company name","casafari_connect_on":true}],"created_at":"2020-06-25T00:00:00","floor_number":5,"is_private":true,"casafari_connect":true,"thumbnails":["ht
# --- truncated at 32 KB (402 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/casafari/refs/heads/main/openapi/_original/casafari-api-openapi.json