diff --git a/lib/geocoder/lookups/geocodio.rb b/lib/geocoder/lookups/geocodio.rb
index d3fc8f97d761fd3e6b6320b203277b2c1222469c..8d6cd211d67d4b9ebfbacf1f3543c24dbf940a14 100644
--- a/lib/geocoder/lookups/geocodio.rb
+++ b/lib/geocoder/lookups/geocodio.rb
@@ -9,7 +9,8 @@ module Geocoder::Lookup
     end
 
     def query_url(query)
-      "#{protocol}://api.geocod.io/v1/geocode?#{url_query_string(query)}"
+      path = query.reverse_geocode? ? "reverse" : "geocode"
+      "#{protocol}://api.geocod.io/v1/#{path}?#{url_query_string(query)}"
     end
 
     def results(query)
diff --git a/test/unit/lookups/geocodio_test.rb b/test/unit/lookups/geocodio_test.rb
index 68280c08db28b4a2e22255eca90ca5ac7d298118..1bb4b313aaa0f930b380a233c966cbe3569de392 100644
--- a/test/unit/lookups/geocodio_test.rb
+++ b/test/unit/lookups/geocodio_test.rb
@@ -26,4 +26,9 @@ class GeocodioTest < GeocoderTestCase
     results = Geocoder.search("no results")
     assert_equal 0, results.length
   end
+
+  def test_geocodio_reverse_url
+    query = Geocoder::Query.new([45.423733, -75.676333])
+    assert_match /reverse/, query.url
+  end
 end