<!-- https://staircase.co/products/assessment/listing -->
# Listing

# Listing

Listing-data ingestion: bulk feeds, incremental updates, and normalisation of price, commission and sale history.

Two ingestion modes. A bulk feed loads the market's full inventory; an incremental extract picks up what changed since the last run. Both land in the same canonical listing classes.

Listing history is kept as a timeline rather than as a current state. A price reduction and its date are the signal; the current asking price alone is not.

## How it works

Listing data is treated as evidence about the market rather than as fact about the property. Physical characteristics come from the assessor record in Property; what the listing contributes is price, timing and the agent's account of condition.

## Operations

<!--source:api-specifications-->

### Address Autocomplete
<!--/source-->

`GET` `/api/address-autocomplete`

<!--source:api-specifications-->

#### Address Autocomplete
<!--/source-->

`addressAutocomplete`

<!--source:api-specifications-->
Provide address autocomplete suggestions using Typesense database.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400404
<!--/source-->

<!--source:api-specifications-->
application/json Copy Success

```
{
 "result": [
 {
 "full_address": "1303 North 24th Street, Fort Pierce, FL 34950-5706, USA",
 "listing_identifier": "RX-10996641"
 }
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Parsing error

```
{
 "message": "Something went wrong while parsing data."
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Not Found

```
{
 "message": "Not Found"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `address` required | `string` query | `1303 N 24th St` | <!--source:api-specifications-->Address to search suggestions for.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `result` | `object[]` | <!--source:api-specifications-->Address suggestions<!--/source--> |
| `highlight` | `string` | <!--source:api-specifications-->Highlighted address<!--/source-->Example `18419 SE Wood Haven Ln <mark>Jup</mark>iter FL 33469` |
| `address_identifier` | `string` | <!--source:api-specifications-->Address identifier<!--/source-->Example `1` |
| `full_address` | `string` | <!--source:api-specifications-->Full address<!--/source-->Example `1303 North 24th Street, Fort Pierce, FL 34950-5706, USA` |
| `mls_number_identifier` | `string` | <!--source:api-specifications-->Listing identifier<!--/source-->Example `RX-10996641` |

##### Other responses

`400``404`

<!--source:api-specifications-->

### Featured Listings
<!--/source-->

`GET` `/api/featured-listings`

<!--source:api-specifications-->

#### List Featured Listings
<!--/source-->

`listFeaturedListings`

##### Response

<!--source:api-specifications-->
application/json Copy Success

```
{
 "total_listings": 13,
 "listings": [
 {
 "id": "R10948321",
 "bathroom_count": 5,
 "bedroom_count": 6,
 "price": "$5600000",
 "photo_links": [
 "https://dev-data-manager-blobs-bucket-us-east-1-284201000534.s3.amazonaws.com/01J0RAA48B3V8R3H6E2ABKADX7.csv?"
 ],
 "size_sqft": 16174,
 "address": {
 "number": "17392",
 "direction": "S",
 "name": "Beach Rd",
 "city": "Jupiter",
 "state": "Florida",
 "stateabrv": "FL",
 "unit_identifier": null,
 "zip": "33478"
 }
 }
 ],
 "page": 5,
 "limit": 1
}
```

<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `total_listings` | `integer` | <!--source:api-specifications-->Number of properties<!--/source-->Example `500` |
| `listings` | `object[]` | <!--source:api-specifications-->Listings<!--/source--> |
| `id` | `string` | <!--source:api-specifications-->Listing Identifier<!--/source-->Example `R10960478` |
| `bathroom_count` | `integer` | <!--source:api-specifications-->Bathroom Count<!--/source-->Example `11` |
| `bedroom_count` | `integer` | <!--source:api-specifications-->Bedroom Count<!--/source-->Example `6` |
| `price` | `string` | <!--source:api-specifications-->Property price<!--/source-->Example `$74,950,000` |
| `photo_links` | `string[]` | <!--source:api-specifications-->Status<!--/source--> |
| `size_sqft` | `integer` | <!--source:api-specifications-->Size of the property<!--/source-->Example `19666` |
| `address` | `object` | <!--source:api-specifications-->Address of the property<!--/source--> |
| `page` | `integer` | <!--source:api-specifications-->Page of search<!--/source-->Example `1` |
| `limit` | `integer` | <!--source:api-specifications-->Count of returned listings<!--/source-->Example `5` |

<!--source:api-specifications-->

### Verified Listings[new]
<!--/source-->

`GET` `/api/listings`

<!--source:api-specifications-->

#### List Listings
<!--/source-->

`listListings`

##### Response

<!--source:api-specifications-->
200400
<!--/source-->

<!--source:api-specifications-->
application/json Copy Success

```
{
 "total_listings": 500,
 "listings": [
 {
 "id": "R10960478",
 "bathroom_count": 11,
 "bedroom_count": 6,
 "price": "$74,950,000",
 "photo_links": [
 "https://api-trestle.corelogic.com/trestle/Media/FTL.FTL_RMLS/Property/PHOTO-jpeg/1061293103/1/MzczLzE5MTEvMjA/MjAvNTg4MS8xNzE0NTExNzAz/VyYmk00oHFgbkHESRbSVGqgKvoQrLVhMDkfeiOQSJGk"
 ],
 "size_sqft": 19666
 }
 ],
 "page": 1,
 "limit": 1
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Parsing error

```
{
 "message": "Something went wrong while parsing data."
}
```

<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `total_listings` | `integer` | <!--source:api-specifications-->Number of properties<!--/source-->Example `500` |
| `listings` | `object[]` | <!--source:api-specifications-->Listings<!--/source--> |
| `id` | `string` | <!--source:api-specifications-->Listing Identifier<!--/source-->Example `R10960478` |
| `bathroom_count` | `integer` | <!--source:api-specifications-->Bathroom Count<!--/source-->Example `11` |
| `bedroom_count` | `integer` | <!--source:api-specifications-->Bedroom Count<!--/source-->Example `6` |
| `price` | `string` | <!--source:api-specifications-->Property price<!--/source-->Example `$74,950,000` |
| `photo_links` | `string[]` | <!--source:api-specifications-->Status<!--/source--> |
| `size_sqft` | `integer` | <!--source:api-specifications-->Size of the property<!--/source-->Example `19666` |
| `page` | `integer` | <!--source:api-specifications-->Page of search<!--/source-->Example `1` |
| `limit` | `integer` | <!--source:api-specifications-->Count of returned listings<!--/source-->Example `5` |

##### Other responses

`400`

`POST` `/api/delete-search-cache`

<!--source:api-specifications-->

#### Delete Search Cache
<!--/source-->

`deleteSearchCache`

<!--source:api-specifications-->
Execute Search Cache Deletion. This operation clean up address search cache and list listings v2 CloudFront cache.

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Success

```
{
 "operation_id": "01F7S0NA7CQ31DZQYVSVPN66GNK",
 "operation_status": "In Progress"
}
```

<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `operation_id` | `string` | <!--source:api-specifications-->Operation identifier<!--/source-->Example `01F7S0NA7CQ31DZQYVSVPN66GNK` |
| `operation_status` | `string` | <!--source:api-specifications-->Operation status<!--/source-->Example `In Progress` |

`PUT` `/commissions`

<!--source:api-specifications-->

#### Upload Commissions
<!--/source-->

`uploadCommission`

<!--source:api-specifications-->
Update DynamoDB with new MLS commissions.

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Success

```
{
 "presigned_url": "https://verified-listings-search-dev-listingsbucket-tazledfrubic.s3.amazonaws.com/commission/20240704/update.csv?AWSAccessKeyId=<redacted>&Signature=<redacted>&content-type=text%2Fcsv&x-amz-security-token=<redacted>&Expires=1720100100"
}
```

<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `presigned_url` | `string` | <!--source:api-specifications-->Link for table PUT item operation<!--/source-->Example `https://verified-listings-search-dev-listingsbucket-tazledfrubic.s3.amazonaws.com/commission/20240704/update.csv?AWSAccessKeyId=<redacted>&Signature=<redacted>&content-type=text%2Fcsv&x-amz-security-token=<redacted>&Expires=1720100100` |

`GET` `/listing/{id}`

<!--source:api-specifications-->

#### Search
<!--/source-->

`listingsSearchId`

<!--source:api-specifications-->
Get Listing
<!--/source-->

<!--source:api-specifications-->
Get raw data from IDX.

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Success

```
{
 "listing": {
 "street": "8346 NW 118 Way",
 "city": "Coral Springs",
 "state": "Florida",
 "zipcode": "33076",
 "status": "Active",
 "price": "800000",
 "bathroom_count": "2",
 "bedroom_count": "3",
 "lease_price": null,
 "sale_price": null,
 "square_footage": "1904",
 "sold_date": null,
 "description": "Turn key*Quick closing ok* immaculate Single Family Home with serene wide water views located in a Guard Gated Golf course Cmnty* Impact Glass* potential to convert to a 4 Bedroom* Tile in living areas* wood in one room* Tankless gas Wtr Htr* Gas Range for gourmet cooking* Snack Bar Island w/sink* SS Appliances* Granite counters & 42 inch Cabinets* high volume ceilings, recessed lighting* knockdown texture* crown molding*some coffered ceilings* Master has a Huge walk in closet * amenities galore* close to shopping, places of worship, schools, parks, Equestrian center and much more*",
 "primary_features": {
 "county": "Broward County",
 "partial_bathrooms": null,
 "property_sub_type": "Single Family Residence",
 "property_type": "Residential",
 "subdivision": "Somerset",
 "year_built": "2013"
 },
 "interior": {
 "appliances": "Some Gas Appliances, Dryer, Dishwasher, Disposal, Gas Range, Gas Water Heater, Microwave, Refrigerator, Washer",
 "building_area_total": "2574",
 "cooling": "Central Air, Ceiling Fan(s), Electric",
 "fireplace_features": null,
 "flooring": "Carpet, Ceramic Tile, Tile, Wood",
 "heating": "Central, Electric",
 "interior_features": "Breakfast Bar, Dual Sinks, High Ceilings, Living/Dining Room, Main Level Primary, Pantry, Split Bedrooms, Separate Shower, Walk-In Closet(s), Attic",
 "spa_features": null,
 "stories_total": null
 },
 "external": {
 "construction_materials": "Block, Other",
 "covered_spaces": "2",
 "door_features": null,
 "exterior_features": "Enclosed Porch, Security/High Impact Doors",
 "garage_spaces": "2",
 "lot_features": "Other, Sprinklers Automatic, < 1/4 Acre",
 "lot_size_area": "6841",
 "lot_size_square_feet": "6841",
 "parking_features": "Attached, Driveway, Garage",
 "patio_and_porch_features": "Porch, Screened",
 "pool_features": "None, Community",
 "roof": "Spanish Tile",
 "sewer": "Public Sewer",
 "utilities": "Cable Available",
 "water_source": "Public",
 "window_features": "Blinds, Drapes, Impact Glass"
 },
 "location": {
 "association_amenities": null,
 "community_features": "Clubhouse, Gated, Home Owners Association, Pool",
 "complex_name": null,
 "elementary_school": "Heron Heights",
 "mls_area_major": "3614",
 "mls_area_minor": "North Broward 441 To Everglades (3611-3642)",
 "postal_city": "Coral Springs",
 "view": "Canal, Water",
 "waterfront_features": "Canal Front",
 "zoning_description": "RS-6"
 },
 "additional": {
 "builder_model": "Azalea",
 "housing_older_persons_act": "No HOPA",
 "mls_status": "Active",
 "pets_allowed": "Size Limit, Yes",
 "property_condition": "Resale",
 "property_sub_type_additional": "Single Family Residence",
 "security_features": "Smoke Detector(s)",
 "year_built_details": "Resale"
 },
 "financial": {
 "association_fee": "838",
 "association_fee_frequency": "Quarterly",
 "association_fee_includes": "Common Area Maintenance, Recreation Facilities, Security",
 "disclosures": null,
 "listing_terms": "Conventional",
 "possession": "Closing & Funding",
 "special_listing_conditions": "Listed As-Is",
 "tax_annual_amount": "9611",
 "tax_year": "2023"
 }
 }
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `id` required | `string` path | `R10823327` | <!--source:api-specifications-->ID of the listing to get.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `listing` | `object` | <!--source:api-specifications-->Listing object<!--/source--> |

##### Other responses

`404`

`GET` `/api/delete-search-cache/{operation_id}`

<!--source:api-specifications-->

#### Get Search Cache Deletion Status
<!--/source-->

`getDeleteSearchCacheStatus`

<!--source:api-specifications-->
Get the status of the search cache deletion operation.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400404
<!--/source-->

<!--source:api-specifications-->
application/json Copy Success

```
{
 "operation_id": "01F7S0NA7CQ31DZQYVSVPN66GNK",
 "operation_status": "Completed"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Parsing error

```
{
 "message": "Something went wrong while parsing data."
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Not Found

```
{
 "message": "Not Found"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `operation_id` required | `string` path | `01F7S0NA7CQ31DZQYVSVPN66GNK` | <!--source:api-specifications-->Operation identifier<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `operation_id` | `string` | <!--source:api-specifications-->Operation identifier<!--/source-->Example `01F7S0NA7CQ31DZQYVSVPN66GNK` |
| `operation_status` | `string` | <!--source:api-specifications-->Operation status<!--/source-->Example `Completed` |

##### Other responses

`400``404`

`GET` `/api/v2/listings`

<!--source:api-specifications-->

#### List Listings V2
<!--/source-->

`listListingsV2`

<!--source:api-specifications-->
This endpoint returns a list of verified listings. The response includes the total number of listings, the listings themselves, the page number, and the limit of listings per page.

This endpoint supports query parameters following this structure: `lexicon_listing_property[operator]=value`, where lexicon_listing_property is the property to filter by (staircase_discount_price_amount, current_list_price_amount, days_on_market_count), operator is the operator to use for the filter (gte, lte, eq, gt, lt), and value is the value to filter by.

Show the rest Examples of query parameters: `staircase_discount_price_amount[gte]=1000000`, `current_list_price_amount[lt]=500000`, `days_on_market_count[eq]=30`, `featured_home_indicator[eq]=true`, `deals_home_indicator[eq]=true`, `pets_allowed_indicator[eq]=true`, `private_pool_indicator[eq]=true`, `gated_community_indicator[eq]=true`, `school_indicator[eq]=true`, `water_front_indicator[eq]=true`, `garage_spaces[gte]=0`.

To perform Radius search to retrieve all of the listings around a desired location by specific radius provide the following:

- Latitude of the location.
- Longitude of the location.
- Radius that will be used to perform search.
- Number of listings to retrieve while performing search

Note: if the provided Radius return number of listings that is less than the expected number, the radius will automatically increase by 1 mi, until the desired number of listings reached or max radius of 50 mi reached. Examples of query parameters: `latitude=26.6755617`,`longitude=-80.2620304`,`radius=5`,`number_of_listings=50`

<!--/source-->

##### Response

<!--source:api-specifications-->
200400
<!--/source-->

<!--source:api-specifications-->
application/json Copy Success

```
{
 "page": 1,
 "limit": 10,
 "total_listings": 10,
 "listings": [
 {
 "id": "FX-10397327",
 "bathroom_count": 5,
 "bedroom_count": 6,
 "price": "$5,600,000",
 "photo_links": [
 "photo_link"
 ],
 "size_sqft": 16174,
 "address": {
 "number": "8531",
 "direction": "SW",
 "unit_identifier": null,
 "name": "18th Pl",
 "city": "Davie",
 "state": "Florida",
 "stateabrv": "FL",
 "zip": "33324"
 },
 "featured": true,
 "discounted_price": "$25,000.0"
 }
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Parsing error

```
{
 "message": "Something went wrong while parsing data."
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
15
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `ids_only` | `boolean` query | `true` | <!--source:api-specifications-->Return only listing IDs.<!--/source--> |
| `listing_id` | `string[]` query | — | <!--source:api-specifications-->MLS Listing IDs to filter by.<!--/source--> |
| `page` required | `integer` query | `1` | <!--source:api-specifications-->Page number.<!--/source--> |
| `limit` required | `integer` query | `10` | <!--source:api-specifications-->Number of listings per page.<!--/source--> |
| `address` | `string` query | `8531 SW 18th Pl` | <!--source:api-specifications-->Filter by address.<!--/source--> |
| `place_id` | `string` query | `ChIJwUv6v3vX2YgR5Z9Zk1YF1ZQ` | <!--source:api-specifications-->Filter by Google place ID.<!--/source--> |
| `city_name` | `string` query | `Boca Raton` | <!--source:api-specifications-->Filter by city name.<!--/source--> |
| `postal_code` | `string` query | `33431` | <!--source:api-specifications-->Filter by postal code.<!--/source--> |
| `location` | `string` query | `PalmBeach` | <!--source:api-specifications-->Filter by location.<!--/source--> |
| `sort_by` | `string` query | `listing_price` | <!--source:api-specifications-->Sort by field.<!--/source--> |
| `sort_order` | `string` query | `asc` | <!--source:api-specifications-->Sort order.<!--/source--> |
| `latitude` | `string` query | `26.6755617` | <!--source:api-specifications-->The latitude of the location.<!--/source--> |
| `longitude` | `string` query | `-80.2620304` | <!--source:api-specifications-->The longitude of the location.<!--/source--> |
| `radius` | `string` query | `2` | <!--source:api-specifications-->Radius used in radius search in Miles.<!--/source--> |
| `number_of_listings` | `string` query | `100` | <!--source:api-specifications-->Number of listings required while performing radius search.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `total_listings` | `integer` | <!--source:api-specifications-->Number of properties<!--/source-->Example `500` |
| `listings` | `object[]` | <!--source:api-specifications-->Listings<!--/source--> |
| `page` | `integer` | <!--source:api-specifications-->Page of search<!--/source-->Example `1` |
| `limit` | `integer` | <!--source:api-specifications-->Count of returned listings<!--/source-->Example `5` |

##### Other responses

`400`

`GET` `/api/google-reviews`

<!--source:api-specifications-->

#### Get Google Reviews
<!--/source-->

`getGoogleReviews`

<!--source:api-specifications-->
This endpoint returns a list of Google reviews for Staircase business place from Google Maps.

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Success

```
{
 "total_reviews": 6,
 "average_rating": 4.8,
 "reviews": [
 {
 "name": "places/abc/reviews/abc",
 "author": "John Doe",
 "author_uri": "https://www.google.com/maps",
 "author_photo": "https://lh3.googleusercontent.com",
 "rating": 5,
 "publish_time": "2018-12-22T11:41:04Z",
 "relative_publish_time": "5 years ago",
 "text": "Some review text"
 }
 ]
}
```

<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
3 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `total_reviews` | `integer` | <!--source:api-specifications-->Number of reviews<!--/source-->Example `6` |
| `average_rating` | `number` | <!--source:api-specifications-->Average rating<!--/source-->Example `4.8` |
| `reviews` | `object[]` | <!--source:api-specifications-->Reviews<!--/source--> |
| `name` | `string` | <!--source:api-specifications-->Review identifier<!--/source-->Example `places/abc/reviews/abc` |
| `author` | `string` | <!--source:api-specifications-->Review author<!--/source-->Example `John Doe` |
| `author_uri` | `string` | <!--source:api-specifications-->Review author URI<!--/source-->Example `https://www.google.com/maps` |
| `author_photo` | `string` | <!--source:api-specifications-->Review author photo<!--/source-->Example `https://lh3.googleusercontent.com` |
| `rating` | `number` | <!--source:api-specifications-->Review rating<!--/source-->Example `5` |
| `publish_time` | `string` | <!--source:api-specifications-->Review publish time<!--/source-->Example `2018-12-22T11:41:04Z` |
| `relative_publish_time` | `string` | <!--source:api-specifications-->Relative publish time<!--/source-->Example `5 years ago` |
| `text` | `string` | <!--source:api-specifications-->Review text<!--/source-->Example `Some review text` |

`GET` `/api/inst-posts`

<!--source:api-specifications-->

#### Get Instagram Posts
<!--/source-->

`getInstagramPosts`

<!--source:api-specifications-->
This endpoint returns a list of posts from the Instagram Staircase page.

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Success

```
{
 "instagram_posts": [
 {
 "ig_link": "https://www.instagram.com/p/C3jbJXKNdgO",
 "post_url": "download_url"
 }
 ]
}
```

<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `instagram_posts` | `object[]` | <!--source:api-specifications-->List of Instagram posts<!--/source--> |
| `ig_link` | `string` | <!--source:api-specifications-->URL of the Instagram post on the Instagram website<!--/source-->Example `https://www.instagram.com/p/C3jbJXKNdgO` |
| `post_url` | `string` | <!--source:api-specifications-->URL of the downloadable Instagram post content<!--/source-->Example `download_url` |

<!--source:api-specifications-->

### Listings-Save-Customer-Data
<!--/source-->

`POST` `/mortgage-rate`

<!--source:api-specifications-->

#### Save Mortgage Rate
<!--/source-->

`saveMortgageRate`

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "12345",
 "monthly_payment": 1000,
 "usage_type": "Primary",
 "fico": 720,
 "email_frequency": "Monthly"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Success

```
{
 "message": "Data saved successfully"
}
```

<!--/source-->

##### Request body`application/json`

<!--source:api-specifications-->
5 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `transaction_id`required | `string` | <!--source:api-specifications-->Unique identifier for the transaction.<!--/source--> |
| `monthly_payment`required | `integer` | <!--source:api-specifications-->Monthly payment amount for the mortgage.<!--/source--> |
| `usage_type`required | `string` | <!--source:api-specifications-->Type of property usage, such as Primary, Secondary, or Investment.<!--/source--> |
| `fico`required | `integer` | <!--source:api-specifications-->FICO credit score of the borrower.<!--/source--> |
| `email_frequency`required | `string` | <!--source:api-specifications-->Frequency of email notifications, e.g., Monthly or Weekly.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Success message indicating data was saved.<!--/source-->Example `Data saved successfully` |

`POST` `/buy-search`

<!--source:api-specifications-->

#### Save Buy Search
<!--/source-->

`saveBuySearch`

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "12345",
 "email_frequency": "Monthly",
 "search_name": "My Search"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Success

```
{
 "message": "Data saved successfully"
}
```

<!--/source-->

##### Request body`application/json`

<!--source:api-specifications-->
3 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `transaction_id`required | `string` | <!--source:api-specifications-->Unique identifier for the transaction.<!--/source--> |
| `email_frequency`required | `string` | <!--source:api-specifications-->Frequency of email notifications, e.g., Monthly or Weekly.<!--/source--> |
| `search_name`required | `string` | <!--source:api-specifications-->Name of the search.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Success message indicating data was saved.<!--/source-->Example `Data saved successfully` |

`POST` `/sell-tracking`

<!--source:api-specifications-->

#### Save Sell Tracking
<!--/source-->

`saveSellTracking`

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "12345",
 "email_frequency": "Monthly",
 "address": "123 Main St."
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Success

```
{
 "message": "Data saved successfully"
}
```

<!--/source-->

##### Request body`application/json`

<!--source:api-specifications-->
3 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `transaction_id`required | `string` | <!--source:api-specifications-->Unique identifier for the transaction.<!--/source--> |
| `email_frequency`required | `string` | <!--source:api-specifications-->Frequency of email notifications, e.g., Monthly or Weekly.<!--/source--> |
| `address`required | `string` | <!--source:api-specifications-->Address of the property.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Success message indicating data was saved.<!--/source-->Example `Data saved successfully` |

<!--source:api-specifications-->

### Verified-Properties-Search
<!--/source-->

`GET` `/properties/{address}`

<!--source:api-specifications-->

#### Get Property
<!--/source-->

`getProperty`

##### Response

<!--source:api-specifications-->
200404
<!--/source-->

<!--source:api-specifications-->
application/json Copy Success

```
{
 "property": {
 "street": "8346 NW 118 Way",
 "city": "Coral Springs",
 "state": "Florida",
 "zipcode": "33076",
 "status": "Active",
 "price": "800000",
 "bathroom_count": "2",
 "bedroom_count": "3",
 "lease_price": null,
 "sale_price": null,
 "square_footage": "1904",
 "sold_date": null,
 "description": "Turn key*Quick closing ok* immaculate Single Family Home with serene wide water views located in a Guard Gated Golf course Cmnty* Impact Glass* potential to convert to a 4 Bedroom* Tile in living areas* wood in one room* Tankless gas Wtr Htr* Gas Range for gourmet cooking* Snack Bar Island w/sink* SS Appliances* Granite counters & 42 inch Cabinets* high volume ceilings, recessed lighting* knockdown texture* crown molding*some coffered ceilings* Master has a Huge walk in closet * amenities galore* close to shopping, places of worship, schools, parks, Equestrian center and much more*",
 "primary_features": {
 "county": "Broward County",
 "partial_bathrooms": null,
 "property_sub_type": "Single Family Residence",
 "property_type": "Residential",
 "subdivision": "Somerset",
 "year_built": "2013"
 },
 "interior": {
 "appliances": "Some Gas Appliances, Dryer, Dishwasher, Disposal, Gas Range, Gas Water Heater, Microwave, Refrigerator, Washer",
 "building_area_total": "2574",
 "cooling": "Central Air, Ceiling Fan(s), Electric",
 "fireplace_features": null,
 "flooring": "Carpet, Ceramic Tile, Tile, Wood",
 "heating": "Central, Electric",
 "interior_features": "Breakfast Bar, Dual Sinks, High Ceilings, Living/Dining Room, Main Level Primary, Pantry, Split Bedrooms, Separate Shower, Walk-In Closet(s), Attic",
 "spa_features": null,
 "stories_total": null
 },
 "external": {
 "construction_materials": "Block, Other",
 "covered_spaces": "2",
 "door_features": null,
 "exterior_features": "Enclosed Porch, Security/High Impact Doors",
 "garage_spaces": "2",
 "lot_features": "Other, Sprinklers Automatic, < 1/4 Acre",
 "lot_size_area": "6841",
 "lot_size_square_feet": "6841",
 "parking_features": "Attached, Driveway, Garage",
 "patio_and_porch_features": "Porch, Screened",
 "pool_features": "None, Community",
 "roof": "Spanish Tile",
 "sewer": "Public Sewer",
 "utilities": "Cable Available",
 "water_source": "Public",
 "window_features": "Blinds, Drapes, Impact Glass"
 },
 "location": {
 "association_amenities": null,
 "community_features": "Clubhouse, Gated, Home Owners Association, Pool",
 "complex_name": null,
 "elementary_school": "Heron Heights",
 "mls_area_major": "3614",
 "mls_area_minor": "North Broward 441 To Everglades (3611-3642)",
 "postal_city": "Coral Springs",
 "view": "Canal, Water",
 "waterfront_features": "Canal Front",
 "zoning_description": "RS-6"
 },
 "additional": {
 "builder_model": "Azalea",
 "housing_older_persons_act": "No HOPA",
 "mls_status": "Active",
 "pets_allowed": "Size Limit, Yes",
 "property_condition": "Resale",
 "property_sub_type_additional": "Single Family Residence",
 "security_features": "Smoke Detector(s)",
 "year_built_details": "Resale"
 },
 "financial": {
 "association_fee": "838",
 "association_fee_frequency": "Quarterly",
 "association_fee_includes": "Common Area Maintenance, Recreation Facilities, Security",
 "disclosures": null,
 "listing_terms": "Conventional",
 "possession": "Closing & Funding",
 "special_listing_conditions": "Listed As-Is",
 "tax_annual_amount": "9611",
 "tax_year": "2023"
 }
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Not Found

```
{
 "error": "Not Found"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `address` required | `string` path | `5730-royal-club-drive-boynton-beach-fl-33437-4265-usa` | <!--source:api-specifications-->full address slug<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `property` | `object` | <!--source:api-specifications-->Property object<!--/source--> |

##### Other responses

`404`

<!--source:api-specifications-->

### Sitemap-Listings-Update-Service
<!--/source-->

`POST` `/run-update`

<!--source:api-specifications-->

#### Run Update
<!--/source-->

`runUpdate`

##### Response

<!--source:api-specifications-->
application/json Copy Ok.

```
{
 "status": "Ok"
}
```

<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Ok.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `status` | `string` | <!--source:api-specifications-->Status of the transaction<!--/source--> |

## Canonical model

- `address`
- `property`
- `address`
- `property`

## Property data it reads

- address
- property

## Errors

`400``404`

## More in Assessment

- Previous product: Appraisal
- Next product: Property
