{"mock":"https://private-anon-79ae3f25b4-enodo.apiary-mock.com/","production":"https://api.enodoinc.com/","proxy":"https://private-anon-79ae3f25b4-enodo.apiary-proxy.com/"}
FORMAT: 1A
HOST: https://api.enodoinc.com/
# Enodo API
Enodo automates data collection and analysis to deliver meaningful insights to users, greatly accelerating our user's collective ability to understand and act upon market opportunities.
## Amenities [/resources/amenities]
### Parse Amenities API [POST]
Identify and extract a list of amenities from a property website or text document using the Parse Amenities API. Enodo detects over 400 amenities and automatically groups by `neighborhood`, `building`, and `unit`.
The output can be used as an endpoint for the Enodo Similar Properties API or connect to a third-party application.
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{
"text": "Studio and one bedroom apartments feature stainless steel GE Energy Efficient appliances, wood cabinetry, hardwood floors, generous closets, contemporary lighting and electronic keyless entries"
}
+ Response 200 (application/json)
{
"amenities": [
"unit__has_hardwood_floors",
"building__has_non_key_secure_access",
"unit__has_energy_star_certified_appliances",
"unit__has_large_closets",
"unit__has_stainless_steel_appliances"
]
}
## Amenity Pricing [/analytics/amenities{?type}{?lat}{?lon}{?census_tract}]
### Amenity Pricing [GET]
Quantify a rent premium and market frequency for all of Enodo's neighborhood, building and unit amenities.
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ type (string, optional) - Community or Unit amenities
+ Default: null
+ lat (int, optional) - Latitude
+ Default: null
+ lon (int, optional) - Longitude
+ Default: null
+ census_tract (string, optional) - 11 digits Census Tract code
+ Default: null
+ Response 200 (application/json)
{
"amenities": [
"unit__has_hardwood_floors",
"building__has_non_key_secure_access",
"unit__has_energy_star_certified_appliances",
"unit__has_large_closets",
"unit__has_stainless_steel_appliances"
]
}
## Comparables [/analytics/similar_properties]
### Similar Properties API [POST]
Input property information from a subject and populate a list of properties calculated to be similar to the subject. Properties include building-level information, present amenities and unit mix when available. The property similarity is calculated using 6 endpoints to create an overall similarity score.
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{
"amenities": [
"18a242b2-11d8-414a-b901-53dccea2b33f",
"2e071199-18c9-4d8d-afa7-be23640e21d1",
"30c54b1c-a224-4f3b-a336-e5ba83b12b92"
],
"feature_schemes": [
{
"id": "c843ba6a-ffe9-4112-9df1-4cd5a38924ab",
"name": "Base Package",
"amenities": [
"11e9a373-bdb4-4823-ae9d-22746a22f5d8",
"18ddf926-071b-4cd0-a344-73db4e4c2d8c",
"1b524e1e-0596-4a5b-8d99-6cf6c33dcda0",
"1d96215d-16ee-4674-a942-3085430dc0ec"
]
},
{
"id": "d79aacaa-23f7-4696-a7f8-d93736ebb89f",
"name": "Base Package - Copy",
"amenities": [
"11e9a373-bdb4-4823-ae9d-22746a22f5d8",
"18ddf926-071b-4cd0-a344-73db4e4c2d8c",
"1b524e1e-0596-4a5b-8d99-6cf6c33dcda0",
"1d96215d-16ee-4674-a942-3085430dc0ec"
]
}
],
"unit_types": [
{
"id": "77fe514c-e687-4f0d-8559-e5bff5c28d9a",
"market_rent": 1950,
"sqft": 830,
"bed": 1,
"bath": 1,
"count": 5,
"feature_scheme_id": "d79aacaa-23f7-4696-a7f8-d93736ebb89f",
"floorplan": null,
"number_vacant": null
},
{
"id": "f091d6ed-d91b-4d05-bd8c-8856b9066071",
"market_rent": 1850,
"sqft": 700,
"bed": 1,
"bath": 1,
"count": 40,
"feature_scheme_id": "c843ba6a-ffe9-4112-9df1-4cd5a38924ab",
"floorplan": null,
"number_vacant": null
}
],
"profile": {
"census_tract": "17031280100",
"street_address": "226 N Clinton St",
"city": "Chicago",
"state": "IL",
"zip_code": "60661",
"lat": 41.8862901,
"lon": -87.6417042,
"year_built": 1996,
"number_units": 176,
"year_renovated": 2014,
"number_floors": 7,
"is_multifamily": true,
"property_type": "mid_rise"
}
}
+ Response 200 (application/json)
## Enodo Rent [/analytics/enodo_rent]
### Enodo Rent [POST]
Determine an Enodo base rent, community amenities deviation, unit amenities deviation and year deviation for each unit in a subject property.
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{
"amenities": [
"18a242b2-11d8-414a-b901-53dccea2b33f",
"2e071199-18c9-4d8d-afa7-be23640e21d1",
"30c54b1c-a224-4f3b-a336-e5ba83b12b92"
],
"feature_schemes": [
{
"id": "c843ba6a-ffe9-4112-9df1-4cd5a38924ab",
"name": "Base Package",
"amenities": [
"11e9a373-bdb4-4823-ae9d-22746a22f5d8",
"18ddf926-071b-4cd0-a344-73db4e4c2d8c",
"1b524e1e-0596-4a5b-8d99-6cf6c33dcda0",
"1d96215d-16ee-4674-a942-3085430dc0ec"
]
},
{
"id": "d79aacaa-23f7-4696-a7f8-d93736ebb89f",
"name": "Base Package - Copy",
"amenities": [
"11e9a373-bdb4-4823-ae9d-22746a22f5d8",
"18ddf926-071b-4cd0-a344-73db4e4c2d8c",
"1b524e1e-0596-4a5b-8d99-6cf6c33dcda0",
"1d96215d-16ee-4674-a942-3085430dc0ec"
]
}
],
"unit_types": [
{
"id": "77fe514c-e687-4f0d-8559-e5bff5c28d9a",
"market_rent": 1950,
"sqft": 830,
"bed": 1,
"bath": 1,
"count": 5,
"feature_scheme_id": "d79aacaa-23f7-4696-a7f8-d93736ebb89f",
"floorplan": null,
"number_vacant": null
},
{
"id": "f091d6ed-d91b-4d05-bd8c-8856b9066071",
"market_rent": 1850,
"sqft": 700,
"bed": 1,
"bath": 1,
"count": 40,
"feature_scheme_id": "c843ba6a-ffe9-4112-9df1-4cd5a38924ab",
"floorplan": null,
"number_vacant": null
}
],
"profile": {
"census_tract": "17031280100",
"street_address": "226 N Clinton St",
"city": "Chicago",
"state": "IL",
"zip_code": "60661",
"lat": 41.8862901,
"lon": -87.6417042,
"year_built": 1996,
"number_units": 176,
"year_renovated": 2014,
"number_floors": 7,
"is_multifamily": true,
"property_type": "mid_rise"
}
}
+ Response 200 (application/json)
## Operating Expense Prediction [/analytics/financials{?number_units}{?gpr}{?nrsf}{?property_type}{?year_built}{?state}{?census_tract}{?lat}{?lon}{?zip_code}{?occupancy}]
### Operating Expense Prediction [GET]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ number_units (required, int, `181`) ... Number of Units
+ gpr (required, int, `5015928`) ... Gross Potential Rent
+ nrsf (required, int, `158885`) ... Net Rentable SF
+ property_type (required, string, `walkup`) ... Property Type
+ values:
+ `garden`
+ `walkup`
+ `mid_rise`
+ `high_rise`
+ year_built (required, int, `1996`) ... Year built
+ state (required, string, `IL`) ... State Code
+ lat (required, float, `41.9425824`) ... Latitude
+ lon (required, float, `-87.6410274`) ... Longitude
+ zip_code (required, string, `60657`) ... Zip Code
+ census_tract (required, string, `17031061902`) ... Census Tract
+ occupancy (required, int, `95`) ... % Occupancy
+ Response 200 (application/json)
{
"administrative":{
"percentage_per_total_opex":0.035,
"value_per_unit":186,
"value_per_nrsf":0.25,
"standard_error":11179,
"value":-42623,
"category":"Administrative"
},
"contract_services":{
"percentage_per_total_opex":0.0097,
"value_per_unit":51,
"value_per_nrsf":0.07,
"standard_error":4067,
"value":-11812,
"category":"Contract Services"
},
"repair_and_maintenance":{
"percentage_per_total_opex":0.1532,
"value_per_unit":818,
"value_per_nrsf":1.08,
"standard_error":30238,
"value":-186568,
"category":"Repairs & Maintenance"
},
"management_fees":{
"percentage_per_total_opex":0.0962,
"value_per_unit":513,
"value_per_nrsf":0.68,
"standard_error":11021,
"value":-117153,
"category":"Management Fees"
},
"utilities":{
"percentage_per_total_opex":0.0596,
"value_per_unit":318,
"value_per_nrsf":0.42,
"standard_error":9023,
"value":-72581,
"category":"Utilities"
},
"water_sewage":{
"percentage_per_total_opex":0.0861,
"value_per_unit":459,
"value_per_nrsf":0.61,
"standard_error":10400,
"value":-104853,
"category":"Water & Sewage"
},
"salaries_and_personnel":{
"percentage_per_total_opex":0.1679,
"value_per_unit":896,
"value_per_nrsf":1.18,
"standard_error":26706,
"value":-204470,
"category":"Salaries & Personnel"
},
"taxes":{
"percentage_per_total_opex":0.2996,
"value_per_unit":1600,
"value_per_nrsf":2.11,
"standard_error":52511,
"value":-364855,
"category":"Property Taxes"
},
"insurance":{
"percentage_per_total_opex":0.0452,
"value_per_unit":241,
"value_per_nrsf":0.32,
"standard_error":7635,
"value":-55045,
"category":"Insurance"
},
"marketing":{
"percentage_per_total_opex":0.0224,
"value_per_unit":119,
"value_per_nrsf":0.16,
"standard_error":6125,
"value":-27278,
"category":"Marketing & Advertising"
},
"reserves":{
"percentage_per_total_opex":0.025,
"value_per_unit":133,
"value_per_nrsf":0.18,
"standard_error":1217,
"value":-30445,
"category":"Reserves"
},
"vacancy_loss":{
"percentage_per_gpr":0.06555,
"value_per_unit":844,
"value_per_nrsf":1.11,
"standard_error":18383,
"value":-192502,
"category":"Vacancy Loss"
},
"concessions":{
"percentage_per_gpr":0.01633,
"value_per_unit":210,
"value_per_nrsf":0.28,
"standard_error":8105,
"value":-47956,
"category":"Concessions"
},
"collection_loss":{
"percentage_per_gpr":0.00724,
"value_per_unit":93,
"value_per_nrsf":0.12,
"standard_error":2877,
"value":-21261,
"category":"Collection Loss"
},
"other_income":{
"percentage_per_gpr":0.05296,
"value_per_unit":682,
"value_per_nrsf":0.9,
"standard_error":15505,
"value":155528,
"category":"Other Income"
},
"gross_potential_revenue":{
"value":2936724.0,
"category":"Gross Potential Revenue"
}
}
## Market Shape [/analytics/market{?lat}{?lon}]
### Market Shape [GET]
Compute the recommended market for a pair of coordinates. Return a geojson with some unit, building and demographic statistics for the corresponding shape(s).
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ lat (required, float, `41.9425824`) ... Latitude
+ lon (required, float, `-87.6410274`) ... Longitude
+ Response 200 (application/json)
## Market Stats [/public/agg\_properties\_by_polygon]
### Market Stats (using a radius) [POST]
Determine the average rent per bed in a radius (miles) around a location.
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{"lon": -87.64102935791016 , "lat": 41.91147545749747, "radius": 1}
+ Response 200 (application/json)
### Market Stats (using a GeoJSON) [POST]
Determine the average rent per bed in a user-defined GeoJSON. Tested on Polygon objects (http://geojson.org/).
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{
"geojson":{
"type":"Feature",
"properties":{
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
-87.65871047973633,
41.881320144894765
],
[
-87.6211166381836,
41.881320144894765
],
[
-87.6211166381836,
41.9085372185006
],
[
-87.65871047973633,
41.9085372185006
],
[
-87.65871047973633,
41.881320144894765
]
]
]
}
}
}
+ Response 200 (application/json)
# Group Property
How to create a complete property using this API?
1. Follow the example at `Property > Create Private Properties > Create` to create a private property.
2. Follow the example at `Unit Types > Create, Retrieve and Modify Unit Types > Create` to create units. Make sure to associate them with the id returned from the response of step 1.
3. Follow the example at `Feature Schemes > Retrieve and Create Feature Schemes > Create` to create a feature scheme to contain the unit amenities for this property.
4. Follow the example at `Property > Retrieve and Modify Properties > Update` and update the default_scheme of this property to the id in the response of step 3.
5. Follow the example at `Property Amenities > Retrieve and Create Property Amenities > Create` to add amenities to this property.
6. Follow the example at `Feature Schemes > Modify Feature Scheme > Update` to add amenities to the feature scheme associated with this property.
After this, the property should be completed.
If you have any further questions or are in need of further clarification, email me at `tim@enodoinc.com`.
## Create Private Properties [/properties]
### Create [POST]
**property_type**: Can be [garden, walkup, mid_rise, high_rise]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{
"street_address": "111 W Wacker Dr",
"city": "Chicago",
"state": "IL",
"zip_code": "60601",
"lat": 41.8865153,
"lon": -87.6314343,
"year_built": 2014,
"name": "OneEleven",
"company_url": "https://www.oneelevenchicago.com/",
"is_favorite": false,
"cap_rate": 0.02,
"year_renovated": null,
"number_floors": 60,
"is_multifamily": true,
"property_type": "high_rise",
"default_scheme": "ecfd4652-b116-4314-bca3-ce131119ec9b"
}
+ Response 200 (application/json)
+ Body
{
"id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"public_id": "057fe94d-1306-38d9-8c7a-598ea1379a6d",
"place_id": "057fe94d-1306-38d9-8c7a-598ea1379a6d",
"census_tract": "17031839100",
"street_address": "111 W Wacker Dr",
"city": "Chicago",
"state": "IL",
"zip_code": "60601",
"lat": 41.8865153,
"lon": -87.6314343,
"year_built": 2014,
"number_units": null,
"source": null,
"name": "OneEleven",
"company_url": "https://www.oneelevenchicago.com/",
"parcel_id": null,
"created_by": 269,
"modified_on": null,
"is_favorite": false,
"cap_rate": 0.02,
"datatree": null,
"formatted_address": "111 W Wacker Dr, Chicago, IL 60601",
"last_viewed": 1547495092,
"year_renovated": null,
"number_floors": 60,
"is_multifamily": true,
"property_type": "high_rise",
"default_scheme": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"public_data": false,
"deal_type": null
}
## Retrieve and Modify Properties [/properties/{property_id}]
### Retrieve [GET]
+ Request
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
{
"id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"public_id": "057fe94d-1306-38d9-8c7a-598ea1379a6d",
"place_id": "057fe94d-1306-38d9-8c7a-598ea1379a6d",
"census_tract": "17031839100",
"street_address": "111 W Wacker Dr",
"city": "Chicago",
"state": "IL",
"zip_code": "60601",
"lat": 41.8865153,
"lon": -87.6314343,
"year_built": 2014,
"number_units": null,
"source": null,
"name": "OneEleven",
"company_url": "https://www.oneelevenchicago.com/",
"parcel_id": null,
"created_by": 269,
"modified_on": null,
"is_favorite": false,
"cap_rate": 0.02,
"datatree": null,
"formatted_address": "111 W Wacker Dr, Chicago, IL 60601",
"last_viewed": 1547495137,
"year_renovated": null,
"number_floors": 60,
"is_multifamily": true,
"property_type": "high_rise",
"default_scheme": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"public_data": false,
"deal_type": null
}
### Update [PUT]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{
"name" : "New Name",
"created_by": 269
}
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
{
"id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"public_id": "057fe94d-1306-38d9-8c7a-598ea1379a6d",
"place_id": "057fe94d-1306-38d9-8c7a-598ea1379a6d",
"census_tract": "17031839100",
"street_address": "111 W Wacker Dr",
"city": "Chicago",
"state": "IL",
"zip_code": "60601",
"lat": 41.8865153,
"lon": -87.6314343,
"year_built": 2014,
"number_units": null,
"source": null,
"name": "New Name",
"company_url": "https://www.oneelevenchicago.com/",
"parcel_id": null,
"created_by": 269,
"modified_on": 1547495170,
"is_favorite": false,
"cap_rate": 0.02,
"datatree": null,
"formatted_address": "111 W Wacker Dr, Chicago, IL 60601",
"last_viewed": 1547495170,
"year_renovated": null,
"number_floors": 60,
"is_multifamily": true,
"property_type": "high_rise",
"default_scheme": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"public_data": false,
"deal_type": null
}
### Delete [DELETE]
+ Request
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
{
"id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"public_id": "057fe94d-1306-38d9-8c7a-598ea1379a6d",
"place_id": "057fe94d-1306-38d9-8c7a-598ea1379a6d",
"census_tract": "17031839100",
"street_address": "111 W Wacker Dr",
"city": "Chicago",
"state": "IL",
"zip_code": "60601",
"lat": 41.8865153,
"lon": -87.6314343,
"year_built": 2014,
"number_units": null,
"source": null,
"name": "New Name",
"company_url": "https://www.oneelevenchicago.com/",
"parcel_id": null,
"created_by": 269,
"modified_on": 1547495170,
"is_favorite": false,
"cap_rate": 0.02,
"datatree": null,
"formatted_address": "111 W Wacker Dr, Chicago, IL 60601",
"last_viewed": 1547495170,
"year_renovated": null,
"number_floors": 60,
"is_multifamily": true,
"property_type": "high_rise",
"default_scheme": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"public_data": false,
"deal_type": null
}
# Group Unit Types
## Create, Retrieve and Modify Unit Types [/properties/{property_id}/unit_types]
### Create [POST]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{"bed":1,"bath":1,"count":1,"feature_scheme_id":null,"floorplan":null,"in_place_rent":1111,"market_rent":1111,"sqft":1111,"number_vacant":null}
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
{
"id":"f49ee072-52de-4037-8d9f-6c20cbf654ae",
"property_id":"bf16af0b-ce69-42a2-ad24-68e7538599a4",
"market_rent":1111,
"in_place_rent":null,
"sqft":1111,
"bed":1,
"bath":1,
"half_bath":null,
"count":1,
"frequency":null,
"created_at":1547424000,
"modified_on":1547496013,
"created_on":1547496013,
"feature_scheme_id":"ecfd4652-b116-4314-bca3-ce131119ec9b",
"floorplan":null,
"number_vacant":null,
"renovated":null
}
### Retrieve [GET]
+ Request
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
[
{
"id": "d584210f-b0be-44f0-ad47-48c98ed6a8e1",
"property_id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"market_rent": 1111,
"in_place_rent": 1111,
"sqft": 1111,
"bed": 1,
"bath": 1,
"half_bath": null,
"count": 1,
"frequency": null,
"created_at": 1547424000,
"modified_on": 1547495980,
"created_on": 1547495933,
"feature_scheme_id": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"floorplan": null,
"number_vacant": null,
"renovated": null
}
]
### Delete [DELETE]
+ Request
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
[]
### Update [PUT]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
[{
"id": "f971ed56-0d97-447c-8aea-a9b6a2f768fa",
"property_id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"market_rent": 1111,
"in_place_rent": 2222,
"sqft": 1111,
"bed": 1,
"bath": 1,
"half_bath": null,
"count": 1,
"frequency": null,
"created_at": 1547424000,
"modified_on": 1547496226,
"created_on": 1547496226,
"feature_scheme_id": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"floorplan": null,
"number_vacant": null,
"renovated": null
}]
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
[
{
"id": "f971ed56-0d97-447c-8aea-a9b6a2f768fa",
"property_id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"market_rent": 1111,
"in_place_rent": 2222,
"sqft": 1111,
"bed": 1,
"bath": 1,
"half_bath": null,
"count": 1,
"frequency": null,
"created_at": 1547424000,
"modified_on": 1547496249,
"created_on": 1547496226,
"feature_scheme_id": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"floorplan": null,
"number_vacant": null,
"renovated": null
}
]
## Modify Single Unit Type [/properties/{property_id}/unit_types/{unit_id}]
### Update [PUT]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{
"count": 10,
"number_vacant": 4
}
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ unit_id (required, string, `f971ed56-0d97-447c-8aea-a9b6a2f768fa`) ... ID of a unit in the private property
+ Response 200 (application/json)
+ Body
{
"id": "f971ed56-0d97-447c-8aea-a9b6a2f768fa",
"property_id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"market_rent": 1111,
"in_place_rent": 2222,
"sqft": 1111,
"bed": 1,
"bath": 1,
"half_bath": null,
"count": 10,
"frequency": null,
"created_at": 1547424000,
"modified_on": 1547496487,
"created_on": 1547496226,
"feature_scheme_id": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"floorplan": null,
"number_vacant": 4,
"renovated": null
}
### Delete [DELETE]
+ Request
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ unit_id (required, string, `f971ed56-0d97-447c-8aea-a9b6a2f768fa`) ... ID of a unit in the private property
+ Response 200 (application/json)
+ Body
{
"id": "f971ed56-0d97-447c-8aea-a9b6a2f768fa",
"property_id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"market_rent": 1111,
"in_place_rent": 2222,
"sqft": 1111,
"bed": 1,
"bath": 1,
"half_bath": null,
"count": 10,
"frequency": null,
"created_at": 1547424000,
"modified_on": 1547496487,
"created_on": 1547496226,
"feature_scheme_id": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"floorplan": null,
"number_vacant": 4,
"renovated": null
}
# Group Property Amenities
## Retrieve and Create Property Amenities [/properties/{property_id}/amenities]
### Retrieve [GET]
+ Request
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
[
"4e0cf2c2-6113-4b5e-bcf4-349f4ab0782b",
"80229a68-35b6-4784-83c2-68348b8d16a9",
"9ca61337-7565-4494-ad6e-e5b1c5c54407",
"c74a1e60-94a0-4e8c-95ae-4d4cf23fc4d3",
"ea2a12e8-d1a8-4002-a2c1-a02e3f6d367b"
]
### Create [POST]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
[
"ea2a12e8-d1a8-4002-a2c1-a02e3f6d367b"
]
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
[
"ea2a12e8-d1a8-4002-a2c1-a02e3f6d367b"
]
## Delete Property Amenity [/properties/{property_id}/amenities/{amenity_id}]
### Delete [DELETE]
+ Request
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ amenity_id (required, string, `ea2a12e8-d1a8-4002-a2c1-a02e3f6d367b`) ... ID of an amenity
+ Response 200 (application/json)
+ Body
"ea2a12e8-d1a8-4002-a2c1-a02e3f6d367b"
# Group Feature Schemes
## Retrieve and Create Feature Schemes [/properties/{property_id}/feature_schemes]
### Retrieve [GET]
+ Request
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
[
{
"id": "c136618c-2d5a-4b7c-b2ed-f49313309e0f",
"name": "Base Package",
"property_id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"created_on": 1547498525,
"modified_on": null,
"amenities": []
}
]
### Create [POST]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{
"name": "Base Package #2",
"amenities": []
}
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
{
"id": "5fbfdef8-ab19-4174-9856-f88bdfadef97",
"name": "Base Package #2",
"property_id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"created_on": 1547498653,
"modified_on": null,
"amenities": []
}
## Modify Feature Scheme [/properties/{property_id}/feature_schemes/{feature_scheme_id}]
### Update [PUT]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{
"amenities": [
"c74a1e60-94a0-4e8c-95ae-4d4cf23fc4d3"
]
}
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ feature_scheme_id (required, string, `ecfd4652-b116-4314-bca3-ce131119ec9b`) ... ID of a feature scheme
+ Response 200 (application/json)
+ Body
{
"id": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"name": "Base Package",
"property_id": "bf16af0b-ce69-42a2-ad24-68e7538599a4",
"created_on": 1547498653,
"modified_on": 1547498907,
"amenities": [
"c74a1e60-94a0-4e8c-95ae-4d4cf23fc4d3"
]
}
### Delete [DELETE]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ feature_scheme_id (required, string, `ecfd4652-b116-4314-bca3-ce131119ec9b`) ... ID of a feature scheme
+ Response 200 (application/json)
+ Body
{
"id": "ecfd4652-b116-4314-bca3-ce131119ec9b",
"name": "Base Package",
"property_id": "215e20b4-8b0e-4f75-8ffe-e199a1f68af8",
"created_on": 1547487022,
"modified_on": 1547498467
}
# Group Feature Scheme Amenities
## Retrieve Feature Scheme Amenities [/properties/{property_id}/feature_schemes/{feature_scheme_id}/amenities]
### Retrieve [GET]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ feature_scheme_id (required, string, `ecfd4652-b116-4314-bca3-ce131119ec9b`) ... ID of a feature scheme
+ Response 200 (application/json)
+ Body
[
"1d96215d-16ee-4674-a942-3085430dc0ec",
"69789f68-e45d-4df3-a263-5f547ba83f00",
"69cfbd4a-779e-4497-943b-2ac136ebe67b",
"aea647e4-90b1-486c-861f-cf52c2cf5031",
"b8a5cd82-e0c9-4766-905c-5345f6248844"
]
## Delete Feature Scheme Amenities [/properties/{property_id}/feature_schemes/{feature_scheme_id}/amenities/{amenity_id}]
### Delete [DELETE]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ feature_scheme_id (required, string, `ecfd4652-b116-4314-bca3-ce131119ec9b`) ... ID of a feature scheme
+ amenity_id (required, string, `bc7c71d0-2c5f-41fd-9fdd-c8c239c46aa8`) ... ID of an amenity
+ Response 200 (application/json)
+ Body
"bc7c71d0-2c5f-41fd-9fdd-c8c239c46aa8"
# Group Comparables
## Retrieve and Create Comparables [/properties/{property_id}/comparables]
### Retrieve [GET]
+ Request
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
[
"10487660-7418-39ac-929b-deb6c2544f39"
]
### Create [POST]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{"id":"10487660-7418-39ac-929b-deb6c2544f39"}
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
"10487660-7418-39ac-929b-deb6c2544f39"
## Delete Comparable [/properties/{property_id}/comparables/{comparable_id}]
### Delete [DELETE]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ comparable_id (required, string, `10487660-7418-39ac-929b-deb6c2544f39`) ... ID of comparable property
+ Response 200 (application/json)
+ Body
"10487660-7418-39ac-929b-deb6c2544f39"
## Retrieve and Create Excluded Comparables [/properties/{property_id}/comparables_excluded]
### Retrieve [GET]
+ Request
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
[
"10487660-7418-39ac-929b-deb6c2544f39"
]
### Create [POST]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Body
{"id":"10487660-7418-39ac-929b-deb6c2544f39"}
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ Response 200 (application/json)
+ Body
"10487660-7418-39ac-929b-deb6c2544f39"
## Delete Excluded Comparables [/properties/{property_id}/comparables_excluded/{comparable_id}]
### Delete [DELETE]
+ Request (application/json)
+ Headers
Authorization: Token <TOKEN_ID>
+ Parameters
+ property_id (required, string, `bf16af0b-ce69-42a2-ad24-68e7538599a4`) ... ID of private property
+ comparable_id (required, string, `10487660-7418-39ac-929b-deb6c2544f39`) ... ID of comparable property
+ Response 200 (application/json)
+ Body
"10487660-7418-39ac-929b-deb6c2544f39"