home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
73.65k stars 30.79k forks source link

Zillow Zestimate Integration Dead #32200

Closed broyuken closed 4 years ago

broyuken commented 4 years ago

The problem

Environment

I have been emailing back and forth with Zillow support and apparently their API is now closed and people can't just sign up for it unless they have an agreement with their legal department.

"Sorry, this is not an approved application by Zillow, so we will need to deny this request at the advisement of our Legal Team."

If I try to enable the API on my account I get a 500 error. If someone knows a workaround, please share otherwise this integration may be on its way out.

dshokouhi commented 4 years ago

This is interesting. My zillow integration is still working just fine. What did you tell them about the purpose of the site? I think all I did was say I wanted to track my own property value and it was approved. Maybe try again with a better description thats more HA geared? The API page looks to be the same from when I setup my integration. I still see my HA domain name alongside my information so I wonder what made them make this decision. I only signed up for a valuation API too.

stale[bot] commented 4 years ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue now has been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

coogle commented 4 years ago

I can confirm a lot of this. My Zillow integration doesn't work. I don't even see the "Valuation" API in my Zillow screen and I get the following error in my logs:

The API returned: Error: this account is not authorized to execute this API call

image

When I try to enable the Mortgage API (as it's the only one not turned on) I get a 500 server error from them...

wcaokc commented 4 years ago

A lot of people always say "it's working fine for me". These are people who already have an API from them. It appears this issue is only for people who've requested a new API. It's been this way for a few months now. Bummer. :(

jasii commented 4 years ago

Same issue. I can't even get an API key. I just get redirected to an error on their site. I was also getting this error a few months ago. I could never get an API key. Has anyone found any alternatives to using the API?

Screenshot_20200731-024812_Kiwi Browser.jpg

kzaoaai commented 2 years ago

still dead for me

segdy commented 2 years ago

Can you guys let me know if this still works for anyone? I was able to get an API key but I get the error message:

2022-06-22 18:32:11 ERROR (MainThread) [homeassistant.components.sensor] zestimate: Error on device update!                                                                                                                                       
Traceback (most recent call last):                                                                                                                                                                                                                
  File "/home/homeassistant/lib/python3.9/site-packages/homeassistant/helpers/entity_platform.py", line 431, in _async_add_entity                                                                                                                 
    await entity.async_device_update(warning=False)                                                                                                                                                                                               
  File "/home/homeassistant/lib/python3.9/site-packages/homeassistant/helpers/entity.py", line 736, in async_device_update                                                                                                                        
    await task                                                                                                                                                                                                                                    
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run                                                                                                                                                                         
    result = self.fn(*self.args, **self.kwargs)                                                                                                                                                                                                   
  File "/home/homeassistant/lib/python3.9/site-packages/homeassistant/components/zestimate/sensor.py", line 117, in update                                                                                                                        
    data_dict = xmltodict.parse(data).get(ZESTIMATE)                                                                                                                                                                                              
  File "/home/homeassistant/lib/python3.9/site-packages/xmltodict.py", line 327, in parse                                                                                                                                                         
    parser.Parse(xml_input, True)                                                                                                                                                                                                                 
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 32, column 38                   

When I go to http://www.zillow.com/webservice/GetZestimate.htm I now get Error "Gone 410: Oops – no one seems to be home."

Would be great if anyone could confirm this is not just on my end.

Also, can we open this again? This should not be closed; if the API has indeed been disabled/is non-functional, it should be removed from HA.

mathmaniac43 commented 2 years ago

I agree that this issue should be re-opened and that this integration should be removed from Home Assistant.

In case anyone is looking for an interim solution, I was able to get data in using the new API, though it is not as convenient or comprehensive as the old solution.

I was able to sign up for a personal API key under the condition that I did not record any data locally. Unfortunately I can't find the exact link I used for registration, but believe that you can contact them from their website and they may be able to help you.

I disabled local data recording by filtering the recorder integration in `configuration.yml.

recorder:
  exclude:
    entity_globs: sensor.zestimate* # Conditions for Zestimate API key prevent any recording

Then, I can use a REST sensor to scrape in the Zestimate data that I wanted (though other data fields are available).

sensor:
  # Zillow entities must be explicitly given entity_id in the Web UI.
  # They must be named sensor.zestimate_* to prevent history storage
  # per the API terms of service.
  - platform: rest
    name: House Zestimate
    unique_id: zestimate_house
    resource: !secret zestimate-url-house # https://api.bridgedataoutput.com/api/v2/zestimates_v2/zestimates?access_token=<your_browser_access_token>&zpid=<your_zpid>
    value_template: '{{ value_json.bundle[0].zestimate | int }}' # other values available in the JSON, may require separate entities
    device_class: monetary
    unit_of_measurement: $

It's not great, but does the job for me. Hope it is helpful.

kylerm42 commented 2 years ago

Based on what I can see, it looks like the only change necessary would be updating this line to the new Bridge Interactive URL, no need to remove this code. And of course the documentation to point to the new API registration and key. I've never contributed here before, but I'll look into it in the next few days.

kzaoaai commented 1 year ago

I believe this is the link to obtain access to the new api. I just requested and waiting for a response. https://www.zillowgroup.com/developers/api/zestimate/zestimates-api

supermarkert commented 1 year ago

I also just tried to sign up for the API, and was denied on the basis of: At this time we are unable to approve use cases that involve the storage of Zillow data or HomeAssistant automation hubs. We appreciate your interest and thank you for using Zillow Group

I made it clear that the purpose of the access was only for my own use and viewable only by me, but it didn't matter. I noticed above that @mathmaniac43 was able to sign up "under the condition that I did not record any data locally", but I don't know how that's a permanent solution. How would Zillow even know I was storing it locally?

So unless Zillow changes their policy, this seems like a dead integration.

mathmaniac43 commented 1 year ago

I think they just took it from me on faith, I just promised to not record anything permanently. I was able to manually edit the Entity to disable history and just have a most-recent-value feed on my dashboard as a novelty. I think I have to renew my registration soon... but if they don't let me I guess I'll have to experiment with web scraping or using other services...

Feb 24, 2023 12:38:02 supermarkert @.***>:

I also just tried to sign up for the API, and was denied on the basis of: /At this time we are unable to approve use cases that involve the storage of Zillow data or HomeAssistant automation hubs. We appreciate your interest and thank you for using Zillow Group/

I made it clear that the purpose of the access was only for my own use and viewable only by my, but it didn't matter. I noticed above that @mathmaniac43[https://github.com/mathmaniac43] was able to sign up "under the condition that I did not record any data locally", but I don't know how that's a permanent solution. How would Zillow even know I was storing it locally?

So unless Zillow changes their policy, this seems like a dead integration.

— Reply to this email directly, view it on GitHub[https://github.com/home-assistant/core/issues/32200#issuecomment-1444105173], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AAHAHYMYBM3QJVF37SF5JPTWZDWXTANCNFSM4K34CUGQ]. You are receiving this because you were mentioned.[Tracking image][https://github.com/notifications/beacon/AAHAHYNWQAVH6M2E4DMMYC3WZDWXTA5CNFSM4K34CUG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOKYJUXVI.gif]

ScottG489 commented 11 months ago

I also requested API access for personal use and was approved. However, I wasn't able to get this integration working.

The integration requires an api_key and the Bridge API dashboard provides 4 keys/tokens:

I tried all of them since I wasn't sure which was correct, but none of them worked and I got the same error @segdy mentioned above (invalid token).

Does this integration need to be updated?

supermarkert commented 11 months ago

Zillow is no longer an option when adding new Integrations. So I think it's been (rightfully) removed.

Edit: It's called Zestimate

ScottG489 commented 11 months ago

@supermarkert The integration is called "zestimate" I believe and is still available.

supermarkert commented 11 months ago

@supermarkert The integration is called "zestimate" I believe and is still available.

Ah, you're correct. Still think it should be removed, as it hasn't worked in a while and Zillow isn't allowing API signups. But the Github Issues that were opened about it keep getting closed (including this one).

ScottG489 commented 11 months ago

Zillow is allowing API signups and I got API access.

However, it looks like the API endpoint and structure of the data has changed and this integration will need to be updated. More information here:

https://bridgedataoutput.com/docs/platform/API/zg-data#Zestimates

Using my API token I was able to get data back from the endpoint. Here's an example response:

{
  "success": true,
  "status": 200,
  "bundle": [
    {
      "city": "Anchorage",
      "lowPercent": 15,
      "postalCode": "99508",
      "BridgeModificationTimestamp": "2023-11-21T21:25:22.368Z",
      "highPercent": 16,
      "houseNumber": "241",
      "zipPlusFour": "5802",
      "unitNumber": "IV-8B",
      "directionSuffix": null,
      "Latitude": 61.221866,
      "streetName": "McCarrey",
      "unitPrefix": "#",
      "id": "40e01abdadcf9aacda66575032a7a46c",
      "state": "AK",
      "directionPrefix": null,
      "timestamp": "2023-11-20T08:00:00.000Z",
      "zillowUrl": "https://www.zillow.com/homes/15243_zpid/",
      "address": "241 McCarrey St # IV-8B Anchorage AK 99508",
      "Coordinates": [
        -149.791931,
        61.221866
      ],
      "zpid": "15243",
      "forecastStandardDeviation": null,
      "Longitude": -149.791931,
      "zestimate": 119200,
      "rentalTimestamp": "2023-11-14T08:00:00.000Z",
      "minus30": 120840,
      "rentalLowPercent": 10,
      "houseNumberFraction": null,
      "streetSuffix": "St",
      "rentalZestimate": 1395,
      "rentalHighPercent": 16,
      "url": "api.bridgedataoutput.com/api/v2/zestimates_v2/zestimates/40e01abdadcf9aacda66575032a7a46c"
    }
  ],
  "total": 1
}