EQUEST policy billing ai_generated true

Google Maps API requests returning 'REQUEST_DENIED' or billing error after previously working

ID: policy/google-maps-api-billing-change

Also available as: JSON · Markdown
85%Fix Rate
88%Confidence
3Evidence
2023-01-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
any active

Root Cause

Google Maps Platform requires billing account with credit card since 2018. Free tier gives $200/month credit (~28K map loads). Exceeding this or having payment issues causes silent request denial. API key restrictions can also silently block requests.

generic

Workarounds

  1. 92% success Set up billing budget alerts at $0, $50, $100 in Google Cloud Console
    Google Cloud Console -> Billing -> Budgets & alerts -> Create budget with email notifications
  2. 88% success Restrict API key by HTTP referrer/IP and API type to prevent abuse
    Google Cloud Console -> Credentials -> API key -> Application restrictions -> HTTP referrers
  3. 85% success Cache geocoding results and use static maps where possible to reduce API calls
    Geocode addresses once and cache. Use Static Maps API (cheaper) for non-interactive displays.

Dead Ends

Common approaches that don't work:

  1. Use Google Maps API without a billing account since it 'used to be free' 92% fail

    Since June 2018, all Maps APIs require a billing account. Old API keys without billing return REQUEST_DENIED.

  2. Assume $200/month free credit covers all usage 82% fail

    $200/month = ~28,000 Dynamic Maps loads or ~40,000 Geocoding requests. High-traffic sites exceed this quickly. Billing kicks in with no warning.