Blazing Fast Geocoding

OpenStreetMap addresses served from SSDs

HOW DOES IT WORK?

How does it work?

We run OpenStreetMaps on our best servers, with SSDs to ensure response in milliseconds. We also give generous rate limits.

I'M READY, GET STARTED
30 more seconds to go..
1

Get a developer token

You'll need an unique token to identify your requests. We'll send you an email with an activation link .

2

Try it out

Geocode
                          

                          
                        
Reverse Geocode
                        

                        
                      
3

Read the docs!

The documentation is available here. That's all there is to it! :-)

Frequently Asked Questions

Where do you get your data?

From the reliable & free, OpenStreetMaps project.

How many requests can I make?

The free tier is limited to 30k requests a day; If you need more, do reach out!

Who runs LocationIQ?

LocationIQ is run by the good folks at Unwired Labs, a Geolocation service.

How can I contribute?

Glad you asked! You could help spread the word or help us identify bugs / security loopholes!

What's next on roadmap?

We're looking to add routing, maps and a basic user dashboard. If you have something else in mind, tell us!

How do I contact you?

Send us a message here and we'll get back to you within a day.

Pricing
Developer
FREE
30,000 requests / day
6 r/s rate-limit
commercial use allowed
Your Current Plan
Startup
45$/month
100,000 requests / day
15 r/s rate-limit
commercial use allowed
Change to this Plan
Business
95$/month
300,000 requests / day
25 r/s rate-limit
commercial use allowed
Change to this Plan
All paid subscriptions go towards maintenance of servers & software.
Documentation
http://locationiq.org/v1/search.php?key=API_KEY&format=json&q=Empire%20State%20Building
                      

                      
                    
format=[html|xml|json|jsonv2]
                    
Output format
json_callback=<string>
                    
Wrap json output in a callback function (JSONP) i.e. <string>(<json>)
accept-language=<browser language string>
                    
Preferred language order for showing search results, overrides the value specified in the "Accept-Language" HTTP header. Either uses standard rfc2616 accept-language string or a simple comma separated list of language codes.
q=<query>
                    
Query string to search for. Alternatively can be entered as:
street=<housenumber> <streetname>
city=<city>
county=<<county>
state=<state>
country=<country>
postalcode=<postalcode>
                    
Alternative query string format for structured requests. Structured requests are faster and require less server resources. DO NOT COMBINE WITH q=<query> PARAMETER.
countrycodes=<countrycode>[,<countrycode>][,<countrycode>]...
                    
Limit search results to a specific country (or a list of countries). <countrycode> should be the ISO 3166-1alpha2 code, e.g. gb for the United Kingdom, de for Germany, etc.
viewbox=<left>,<top>,<right>,<bottom>
                    
viewboxlbrt=<left>,<bottom>,<right>,>top>
                    
The preferred area to find search results
bounded=[0|1]
                    
Restrict the results to only items contained with the bounding box. Restricting the results to the bounding box also enables searching by amenity only. For example a search query of just "[pub]" would normally be rejected but with bounded=1 will result in a list of items matching within the bounding box.
addressdetails=[0|1]
                    
Include a breakdown of the address into elements
exclude_place_ids=<place_id,[place_id],[place_id]>
                    
If you do not want certain openstreetmap objects to appear in the search result, give a comma separated list of the place_id's you want to skip. This can be used to broaden search results. For example, if a previous query only returned a few results, then including those here would cause the search to return other, less accurate, matches (if possible)
limit=<integer>
                    
Limit the number of returned results
polygon_geojson=1
                    
Output geometry of results in geojson format.
polygon_kml=1
                    
Output geometry of results in kml format.
polygon_svg=1
                    
Output geometry of results in svg format.
polygon_text=1
                    
Output geometry of results as a WKT.
extratags=1
                    
Include additional information in the result if available, e.g. wikipedia link, opening hours.
namedetails=1
                    
Include a list of alternative names in the results. These may include language variants, references, operator and brand.
http://locationiq.org/v1/reverse.php?format=json&key=API_KEY&lat=17.426585&lon=78.445360&zoom=16
                      

                      
                    
format=[xml|json]
                    
Output format
json_callback=<string>
                    
Wrap json output in a callback function (JSONP) i.e. <string>(<json>)
accept-language=<browser language string>
                    
Preferred language order for showing search results, overrides the value specified in the "Accept-Language" HTTP header. Either uses standard rfc2616 accept-language string or a simple comma separated list of language codes.
osm_type=[N|W|R]
osm_id=<value>
                    
A specific osm node / way / relation to return an address for Please use this in preference to lat/lon where possible
lat=<value>
lon=<value>
                    
The location to generate an address for
zoom=[0-18]
                    
Level of detail required where 0 is country and 18 is house/building
addressdetails=[0|1]
                    
Include a breakdown of the address into elements
extratags=1
                    
Include additional information in the result if available, e.g. wikipedia link, opening hours.
namedetails=1
                    
Include a list of alternative names in the results. These may include language variants, references, operator and brand.