diff --git a/README_API_GUIDE.md b/README_API_GUIDE.md
index cf1a5ebc5b703b3d5fa6c9475d74d9b0a2c8b49f..23123f153f32c88cec911da1fc95dc1642196713 100644
--- a/README_API_GUIDE.md
+++ b/README_API_GUIDE.md
@@ -454,8 +454,8 @@ IP Address Lookups
 
 ### Ipdata.co (`:ipdata_co`)
 
-* **API key**: optional, see: https://ipdata.co/pricing.html
-* **Quota**: 1500/day (up to 600k with paid API keys)
+* **API key**: required, see: https://ipdata.co/pricing.html
+* **Quota**: 1500/day for free, up to 600k with paid API keys
 * **Region**: world
 * **SSL support**: yes
 * **Languages**: English
diff --git a/lib/geocoder/lookups/ipdata_co.rb b/lib/geocoder/lookups/ipdata_co.rb
index d061696bd333a559825abb66f006894be620bed7..c4798ea4b935dcf1363c9e8a3fd2f73c3cf7dfc5 100644
--- a/lib/geocoder/lookups/ipdata_co.rb
+++ b/lib/geocoder/lookups/ipdata_co.rb
@@ -12,6 +12,10 @@ module Geocoder::Lookup
       [:https]
     end
 
+    def required_api_key_parts
+      ["api_key"]
+    end
+
     def query_url(query)
       # Ipdata.co requires that the API key be sent as a query parameter.
       # It no longer supports API keys sent as headers.