# City, State Lookup from Postal Code

**URL:** <https://www.ruby-forum.com/t/city-state-lookup-from-postal-code/121697>\
**Category:** Ruby\
**Created:** [November 30, 2007, 12:24am UTC](https://www.ruby-forum.com/t/city-state-lookup-from-postal-code/121697 "2007-11-30T00:24:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![agorilla](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/43a26b/32.png) [@agorilla](https://www.ruby-forum.com/u/agorilla)\
**Post date:** [November 30, 2007, 12:24am UTC](https://www.ruby-forum.com/t/city-state-lookup-from-postal-code/121697/1 "2007-11-30T00:24:01Z")

</div>

Does anyone know the easiest way to find a city and state based on a  
supplied postal code?

Thanks for your help.

---

<div class="post-metadata">

**Author:** ![agorilla](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/43a26b/32.png) [@agorilla](https://www.ruby-forum.com/u/agorilla)\
**Post date:** [November 30, 2007, 12:34am UTC](https://www.ruby-forum.com/t/city-state-lookup-from-postal-code/121697/2 "2007-11-30T00:34:59Z")

</div>

You could use Google’s or Yahoo’s geo-coding api for that.

–  
Thiago J.  
acts\_as\_solr =\> [http://acts-as-solr.railsfreaks.com](http://acts-as-solr.railsfreaks.com)

---

<div class="post-metadata">

**Author:** ![agorilla](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/43a26b/32.png) [@agorilla](https://www.ruby-forum.com/u/agorilla)\
**Post date:** [November 30, 2007, 12:59am UTC](https://www.ruby-forum.com/t/city-state-lookup-from-postal-code/121697/3 "2007-11-30T00:59:31Z")

</div>

On Nov 29, 2007 6:34 PM, Thiago J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > ## Thanks for your help.
> > 
> > Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

I had to do that for a store website once, and I bought a giant text  
file with every ZIP code for about $5. ZIP codes change from time to  
time (and new ones are added), so you have to buy a new copy every  
once in a while.

Or you could use the APIs Bill talked about, which is probably a more  
robust solution, though a bit more complicated to implement.

---

<div class="post-metadata">

**Author:** ![agorilla](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/43a26b/32.png) [@agorilla](https://www.ruby-forum.com/u/agorilla)\
**Post date:** [November 30, 2007, 6:10am UTC](https://www.ruby-forum.com/t/city-state-lookup-from-postal-code/121697/4 "2007-11-30T06:10:46Z")

</div>

Thanks guys. Very helpful
