Whitepages.com is making "virtually all" of its data -- including the data used to make people, reverse phone and reverse address searches -- available to programmers for free.
A press release says Whitepages.com has data on "nearly 180 million people which equals 80 percent of the U.S. adult population." There are also 25 million work listings.
My first thought was that this could prove useful for anyone doing database-driven investigative reporting because it would make it easier to identify people named in public record databases.
But I thought otherwise after reading the terms of use, which include this:
if you implement the API on a restricted web site, you shall provide the Company with a log-in name and password that will allow the Company to access the web site
And these:
(b) you shall not retain or store any Data for any reason;
(c) you shall not aggregate or otherwise combine Data from individual queries for any reason;
Queries are also limited to 1,500 per day. The site says its data can be used to create "consumer applications, Web sites, and mashups" but it can't be used to "create applications for business end-users." It's understandable why they'd do this: Presumably they want to drive traffic to their site from mashups built with their data, but don't want to give away the store. Nevertheless, it's disappointing.
I still wanted to try it out, though, so I signed up for an API key and did a simple test using PHP and Louisville's mayor as my test subject. The way it works is you feed the search terms via a URL and it returns XML with the results.
The code looked like this:
<?php
$url = "http://api.whitepages.com/find_person/1.0/?firstname=jerry;lastname=abramson;zip=40201;api_key=YOUR_API_KEY_HERE";
$xmlstr = file_get_contents($url);
// PHP's SimpleXML apparently can't handle elements with prefixes like wp:
// as used by Whitepages.com, so we remove them from the xml
$xmlstr = str_replace('wp:', '', $xmlstr);
$xml = new SimpleXMLElement($xmlstr);
foreach ($xml->listings->listing as $listing) {
echo "Name: ", $listing->people->person->firstname, ' ', $listing->people->person->lastname, "\n";
echo "Business: ", $listing->business->businessname, "\n";
echo "Phone: ", $listing->phonenumbers->phone->fullphone, "\n";
echo "Address: ", $listing->address->fullstreet, "\n";
echo "Latitude: ", $listing->geodata->latitude, "\n";
echo "Longitude: ", $listing->geodata->longitude, "\n";
echo "Last validated: ", $listing->listingmeta->lastvalidated, "\n\n-----------\n\n";
}
?>
And produced this output:
Name: Jerry Abramson
Business: Louisville Science Center
Phone: (502) 560-7141
Address: 727 W Main St
Latitude: 38.257345
Longitude: -85.761902
Last validated: 03/2006
-----------
Name: Jerry Abramson
Business: City of Louisville Metro Government
Phone: (502) 574-5000
Address: 400 S 6th St
Latitude: 38.253456
Longitude: -85.760631
Last validated: 12/2006
-----------
Name: Jerry Abramson
Business:
Phone: (502) 897-6559
Address: 44 Eastover Ct
Latitude: 38.252427
Longitude: -85.677070
Last validated: 12/2007
-----------
Name: Jerry Abramson
Business: City of Lsvl Jfrsn Cnty Plc
Phone:
Address: 768 Barret Ave
Latitude: 38.240838
Longitude: -85.731823
Last validated: 12/2004
-----------
Thus by feeding Whitepages just a name and ZIP code, we get back organizations that may be related to our subject, as well as phone numbers, addresses, latitude and longitude for mapping and a date for when the data was last checked. This example doesn't show it, but this search also turned up the name of the mayor's wife.
Nice. Too bad there are so many restrictions.
[via]