 <p>I think the key to this performing is to think about how you store your data and to have some metadata around it.</p> <p>What do I mean by that?</p> <p>Have a list of Cities that have a store in NJ, for example, and filter out cities that come back from your third party api based on your master list. You might find that you only have 5 matches out of the 450 returned. Similarly, I wouldn't combine 450 querys in one query - try and chunk them up into smaller amounts.</p> <p>Also, if you can create indexes based on states you might find that a smaller index - specifically for NJ - can handle your query more efficiently than selecting a specific state's data in a larger index.</p> <p>Hope this helps, Ciaran</p>