spatial-laser
On-Market

On market flow

When an analyst pushes an on-market property from SL, ESO:

  1. inserts property details into the inventory_properties table
  2. creates listing agent profile in the agents table
  3. creates an offer request in the offer_requests table, linking the property to the agent profile
  4. inserts analyst assumptions and references the property
  5. ingests the property photos into a private bucket

Upon completion of the above, our lead analyst will do the final adjustments before pushing opportunities out to the buyers.

Only one API call is necessary from SL:

on-market-request.sh

curl --location 'https: //v2.easystreetoffers.com/api/services/spatial-laser/on-market?token=<TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
    "property": {
        "sl_id": 1,
        "UnparsedAddress": "11538 E Contessa St",
        "StreetNumber": "11538",
        "StreetName": "E Contessa St",
        "City": "Mesa",
        "StateOrProvince": "AZ",
        "PostalCode": "85207",
        "BathroomsFull": "3",
        "BedroomsTotal": "2",
        "CountyOrParish": "Mesa",
        "LivingArea": "1388",
        "LotSizeSquareFeet": "5258",
        "YearBuilt": "1998",
        "MlsStatus": "Active",
        "ListAgentFullName": "VREI TEST",
        "ListPrice": 420000
    },
    "assumptions": {
        "ff_arv": 100,
        "ff_renovation_cost": 100,
        "ltr_annual_rent_increase": 100,
        "ltr_arv": 100,
        "ltr_monthly_rent": 100,
        "ltr_renovation_cost": 100,
        "property_annual_hoa": 100,
        "property_annual_tax": 100,
        "reno_items": [
            {
                "item_name": "wall",
                "reno_for_strategy": "str",
                "amount": 100
            },
            {
                "item_name": "kitchen",
                "reno_for_strategy": "ltr",
                "amount": 100
            },
            {
                "item_name": "carpet",
                "reno_for_strategy": "ff",
                "amount": 100
            },
            {
                "item_name": "bedroom splitting",
                "reno_for_strategy": "rr",
                "amount": 100
            }
        ],
        "rr_arv": 100,
        "rr_baths": 100,
        "rr_beds": 100,
        "rr_renovation_cost": 100,
        "rr_weekly_rent_per_room": 100,
        "str_arv": 100,
        "str_renovation_cost": 100,
        "str_season_1_daily_rate": 100,
        "str_season_2_daily_rate": 100,
        "str_season_3_daily_rate": 100,
        "str_season_4_daily_rate": 100,
        "fvm": 290000
    },
    "property_media": [
        "https://picsum.photos/200/300",
        "https://picsum.photos/300/300",
        "https://picsum.photos/300/200"
    ]
}'

Required property fields

Aside from sl_id, a unique id used by ESO users to click through into SL system, all fields follow RESO 2.0 (opens in a new tab). The following fields are required for the property object:

  • sl_id
  • UnparsedAddress
  • StreetNumber
  • StreetName
  • City
  • StateOrProvince
  • PostalCode
  • BathroomsFull
  • BedroomsTotal
  • CountyOrParish
  • LivingArea
  • LotSizeSquareFeet
  • YearBuilt
  • MlsStatus
  • ListAgentFullName
  • ListPrice
Really Nice to have property fields

We currently look up listing agent information to send out the cash offers. If ListAgentEmail or ListAgentDirectPhone is available, we can set up a phone call and create an ESO account for the agent to accept the cash offer. This will greatly increase the likelihood of the agent accepting the offer.

  • ListAgentEmail
  • ListAgentDirectPhone
  • ListAgentFirstName
  • ListAgentLastName
  • ListAgentMlsId
  • ListAgentStateLicense
  • ListAgent
  • ListOffice
  • ListOfficeName

Required assumptions fields

The following fields are required for the assumptions object of any strategy:

  • property_annual_hoa
  • property_annual_tax
  • reno_items
Reno items

The reno_items field is an array of objects. Each object has the following fields:

  • item_name: name of the item
  • reno_for_strategy: the strategy that the item is used for
  • amount: the cost of the item
Required fields for each strategy
  • LTR strategy

    • ltr_annual_rent_increase
    • ltr_arv
    • ltr_monthly_rent
    • ltr_renovation_cost
  • STR strategy

    • str_arv
    • str_renovation_cost
    • str_season_1_daily_rate
    • str_season_2_daily_rate
    • str_season_3_daily_rate
    • str_season_4_daily_rate
  • RR strategy

    • rr_arv
    • rr_baths
    • rr_beds
    • rr_renovation_cost
    • rr_weekly_rent_per_room
  • FF strategy

    • ff_arv
    • ff_renovation_cost

Property photos

An array of URLs to images of the property.