How can I filter products based on customer's address?

Hello, we have a client that wants to get the user’s address before they are able to see the product listing.

After they have provided their address they only want to show products that are available to ship to their address.

Is this possible? How would a product be tagged with a certain state, or zipcode?

I know I can get the shipping rates via: https://STORE_URL/admin/api/API_VERSION/shipping_zones.json

but there is no information tied to a product that says which shipping zone they are available in.