GUI / covid-vaccine-spotter

https://www.vaccinespotter.org
MIT License
508 stars 136 forks source link

CVS appointments not showing up? #86

Closed paf0186 closed 3 years ago

paf0186 commented 3 years ago

I've been pulling the MN data from the JSON API, and I've noticed that no CVS appointments seem to show up in the data for at least the last three or four days, but the local MN vaccine hunters group has reported availability via the CVS website several times. The CVS site also shows appointments are currently available (as of 11:17 AM central on 3/21) in Duluth, MN, and that isn't showing up on the site (or in the API).

So, I don't know if this is a nationwide issue, but at least in MN, CVS appointments don't seem to be getting picked up.

MoralCode commented 3 years ago

What does the bx at the bottom of the page say for CVS? when i go to the MN page i see this, indicating that CVS was recently updated. I'm not the maintainer but i feel like this might be useful to know

Screenshot_20210322_185550

I suppose its also possible for the "last updated" data to be showing the last time CVS was updated for ANY state, which might be a different bug.

paf0186 commented 3 years ago

Ah, good question, I didn't specify that. Yeah, the last updated is fine. It's not a single point in time problem - it's been going for days, and the last updated is (every time I've looked) in the expected window of a few minutes max.

jeffchenoweth commented 3 years ago

This happens because CVS doesn’t always update their state landing pages to ‘Available’ (https://www.cvs.com/immunizations/covid-19-vaccine?icid=cvs-home-hero1-link2-coronavirus-vaccine) every time appointments show up in the scheduler. I haven’t dug into the scheduler API too closely to see if it can be scraped efficiently (without going through all zip codes)

paf0186 commented 3 years ago

Jeff,

So you're saying the scripts rely on the landing page and don't scrape the API directly? (Yes, I'm being lazy and not checking the code, sry)

jeffchenoweth commented 3 years ago

Vaccine spotter pulls its availability data from the CVS endpoint that describes whether appointments are “available” or “fully booked” in a city, state. It does not pull from the appointment scheduler. Whether you can find additional appointments depends on whether CVS keeps the endpoint in sync.

MoralCode commented 3 years ago

I just did some brief poking around the appointment scheduler and have a Postman export. it seems like their requests are more complex than other places (theres a substantial body and a lot of cookies. not sure which are necessary). i was able to get a 200 OK in postman and change the zip code and distance in the body without issues. Api key appears to be the same for all requests, including with deleted cookies, a new browser, and a different IP.

heres the postman collection export (may need to change to .json) CVS.postman_collection.json.txt

GUI commented 3 years ago

Well, I know I'm belated in chiming in here, but I'm going to close this in light of changing CVS to use their more official data feed: https://github.com/GUI/covid-vaccine-spotter/pull/172 According to CVS, this new data should align with the rest of their systems, so hopefully it will be more accurate. But thanks for bringing this up!