Introduction

If you're curious about what happens behind the scenes, this "data ingredient label" is for you. However, you do not need to read this if you are just looking for a vaccine appointment.

How is the data gathered?

Our List = Automatic Locations + Manual Locations + Location Details

We collect data about vaccine availability by creating programs called "crawlers." Crawlers navigate some of the website listed below. When we find vaccine availability, we add the appointment slots to our database, and immediately share them on the homepage.

The crawlers repeat this process every few minutes. If there are changes to the structure of the visited website, the locations on that site may stop updating until we can update the program. We store the data as it appears on the source website, so any errors or typos will be reflected on our website too.

For locations that do not post vaccine availability online, if a crawler is paused for maintenance, or a website is not compatible with our programs, a person from our team obtains the information about vaccines through phoning the location or electronically. After manual check is complete, they will add what they learned to our data. These locations on the list are marked "manually checked" when they appear in our listings, and are updated less frequently than locations that are checked by the crawlers.

We are in the process of collecting additional details about each location from NYC Vaccine Finder, including whether the site is accessible to people with disabilities, type of vaccine (Moderna, Pfizer, or Johnson & Johnson), and eligibility restrictions. When sites don't provide addresses on the sign-up page, our team adds this information using online mapping tools.

When we obtain additional details about conditions for a location that isn't noticed by our programs, our team will validate the note with a primary source before adding a custom "note" for that location. A link to our data-validation policy will be provided soon.

Locations we watch

Each of the websites in this section handles registration for multiple locations. The number of locations available at each website changes over time.

We provide this information in the spirit of data transparency. As a consumer, knowing where your data comes from is important. However, we don't recommend spending time visiting these websites individually. The same information can be obtained in less time by browsing the listings page.

Government

Healthcare groups / clinics

Pharmacies

We are working to add more pharmacy locations every week, so stay tuned. Additional locations are sourced from NYC Vaccine Finder, and tips provided by readers like you.

Locations we do not watch

These sites will contact existing eligible patients; there is no need to contact them directly.

Website technology

The crawlers are written in the Python and Javascript languages, and versioned with Git. The data is stored in Postgres databases and spreadsheets. This website is built with several open source projects, including Flask, Next.js, Preact, and Typescript. A variety of tools are used to support coordination and data analysis, including Airtable, Observable Notebooks, and Mapbox.

The code is not ready to open source, but we are keen to support additional geographies once we have full coverage in the greater NYC metro area. We plan to release material that will make it easier for others to build similar sites, as this supports our goal of helping everyone get vaccinated as quickly and stress-free as possible.

If you are a developer or community organizer interested in building a similar system for your area, send us a message to be notified when that material is available. Regardless of technical background, you can prepare for that time by compiling a list of websites and/or phone numbers that individuals or programs in your area can use to locate vaccine availability.

Have questions or location suggestions?

Let us know in the feedback form if there's a location near you that posts appointments information in or around NYC, and we'll add it to our database.