Key takeaways
- On March 1, 2025, Google moved the Places API, the Places SDKs for Android and iOS, the Maps JavaScript Places Service, the Directions API and the Distance Matrix API to Legacy status.
- Google says Legacy services are not available in new Cloud projects but remain fully supported for existing ones. They are feature frozen, and Google promises at least 12 months of notice before turning them down.
- LegacyApiNotActivatedMapError means your app called a Legacy API that isn't enabled on your project. Google's advice is to keep Legacy APIs off on new projects and use the new API instead: Places API (New) or the Routes API.
- Google warns that many AI coding assistants generate code for the Legacy APIs by default, so apps built with them can hit this error on a fresh project.
- The move is a real code change: the new Places APIs require a field mask, return a different JSON format and use a new pricing model, and the Routes API uses new endpoints with a request body instead of URL parameters.
Pricing an app? Try the free app cost calculator or get a range for your project in the instant quote.
If your app shows LegacyApiNotActivatedMapError, it is calling a Google Maps API that went Legacy on March 1, 2025, from a Cloud project where that API isn't available. The Places API, the Places SDKs, Directions and Distance Matrix are all Legacy now. Existing projects can keep using them for now, but new projects can't, and Google recommends keeping them off. The fix is to move the code to Places API (New) or the Routes API. That is a real code change, not a setting.
If you landed here from an old link to the Places SDK for Android docs, that page now returns 404. The dates and behavior below come from Google Maps Platform documentation, as listed in the sources. I checked each page on October 18, 2026.
Disclosure: App369 is my studio. I build and fix apps, including maps and location features, and the last section mentions what I sell. Google doesn't pay me for anything on this page.
What went Legacy, and what replaces it
| Legacy service | Legacy from (per Google) | New service |
|---|---|---|
| Places API | March 1, 2025 | Places API (New) |
| Maps JavaScript API Places Service | March 1, 2025 | Place class |
| Places SDK for Android | March 1, 2025 | Places SDK for Android (New) |
| Places SDK for iOS | March 1, 2025 | Places SDK for iOS (New) |
| Directions API | March 1, 2025 | Routes API (computeRoutes) |
| Distance Matrix API | March 1, 2025 | Routes API (computeRouteMatrix) |
| Maps JavaScript Directions and Distance Matrix services | March 1, 2025 | Route and RouteMatrix classes |
Source: Google Maps Platform, Legacy products, last updated October 16, 2026.
What "Legacy" means
Google describes Legacy as an intermediate step between generally available and deprecated:
- Not available in new Cloud projects. This is what causes the error on a fresh project.
- Fully supported for existing projects. Existing projects can keep using it.
- Feature frozen. New features go only to the new services.
- No turn-down date yet. Google says it expects to turn Legacy services down in the coming years and will give at least 12 months of notice first.
What the old addresses do today
Checked on October 18, 2026:
- developers.google.com/places/android-sdk/intro, the old Places SDK for Android start page, returned 404.
- Older Places SDK and Places API migration links now redirect into Google's legacy documentation section.
Fixing LegacyApiNotActivatedMapError
- Find which Legacy API is called. Search the app and backend for
maps.googleapis.com/maps/api/place/,maps/api/directions/,maps/api/distancematrix/, the JavaScriptPlacesService,DirectionsServiceandDistanceMatrixService, andPlaces.initialize(on Android. In a Flutter app, check which endpoints your places or directions package calls. - Enable the new API and add it to your key. Google's Places migration guide says to enable Places API (New) in the Cloud project and add it to the API key your app uses. If you run both versions during the move, Google recommends a separate key for each.
- Move Places calls to the new API.
- Web service: Place Details (New), Nearby Search (New) and Text Search (New) require a field mask that lists the fields you want, return only JSON, and use a new response format.
- Android: initialize with
Places.initializeWithNewPlacesApiEnabled(), and add field masks to the same three request types.
- Move Directions and Distance Matrix to the Routes API. Replace
maps.googleapis.com/maps/api/directions/withroutes.googleapis.com/directions/v2:computeRoutes, andmaps/api/distancematrix/withroutes.googleapis.com/distanceMatrix/v2:computeRouteMatrix. The parameters move from the URL into an HTTPS request body. - Request only the fields you show. My advice: keep each field mask to what the screen actually uses. A wildcard is quicker to write, but you lose control of what each call returns and costs.
- Check the price before you switch. The new APIs use a new pricing model. Google's tip, for usage high enough to reach second-tier pricing: you're billed for a different SKU, so switch production close to the start of the month.
- Keep the API key restricted. My advice: restrict each key to the APIs it calls and to your app or domain, especially a key that ships inside a mobile app.
If an AI assistant wrote the code
Google's Legacy page warns that many AI coding assistants generate code for the Legacy APIs by default, and it publishes migration prompts for them. Code like that can work on an older project that still has the Legacy API enabled, then fail on a new one. Point the assistant at Google's migration guides, ask it to use the new API with field masks, and test on a brand-new Cloud project with no Legacy APIs enabled.
Need a hand?
If your app was built with Lovable, Bolt, Cursor or another AI tool and maps, places or routes stopped working, the AI-Built App Rescue starts with a $450 Launch Check of the whole app in 3 business days. For one broken feature in an app you already maintain, the App Fix Ticket covers it in two fixed-price steps. A $450 Diagnosis gives you the root cause with evidence and a fixed repair quote within 3 business days, credited toward the fix. If you go ahead, the $1,200 Fix takes 5 business days. Or send me a short description.
Frequently asked questions
- What does LegacyApiNotActivatedMapError mean?
- Google says it means your app is calling a Legacy API, such as the Places API (Legacy), the Directions API (Legacy) or the Distance Matrix API (Legacy), that isn't enabled on your Google Cloud project. Legacy APIs aren't available in new projects, so the fix is to call the new API instead: Places API (New) or the Routes API.
- Is the Google Places API deprecated?
- It is Legacy, which Google describes as a step before deprecation. Since March 1, 2025 the Places API (Legacy) is feature frozen and not available in new Cloud projects. Existing projects can keep using it, and Google says it will give at least 12 months of notice before turning it down. It has not set a date yet.
- Can I still enable the legacy Places API?
- Not in a new Cloud project. Google says Legacy services are not available in new projects and recommends keeping them disabled there. Existing projects can keep using Legacy services, according to Google. My advice: if an existing project can't, check that the Legacy API is still enabled and allowed on your key.
- What replaced the Directions API and Distance Matrix API?
- The Routes API. Directions requests move to routes.googleapis.com/directions/v2:computeRoutes and Distance Matrix requests to routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix, with the parameters sent in an HTTPS request body instead of the URL.
- Why does my AI-built app get LegacyApiNotActivatedMapError?
- Google says many AI coding assistants generate code for the Legacy APIs by default. If the app runs on a new Cloud project, those APIs aren't available, so the calls fail. Ask the assistant to migrate to Places API (New) or the Routes API, and check the result against Google's migration guides.
- Will the new Places API cost more?
- It uses a new pricing model, so check the Google Maps Platform price list for the calls your app makes. Google also suggests that apps with usage high enough to reach second-tier pricing switch production traffic close to the start of a month, because the new API is billed under a different SKU.
Sources
Related Resources
Related guides
Google Sign-In for Android Is Deprecated: Moving to Credential Manager
Google deprecated Google Sign-In for Android, One Tap and Smart Lock for Passwords, and moved Sign in with Google into Credential Manager. What changed and when, how to migrate a native Android app, and how to move a Flutter app to google_sign_in 7, from Google's docs checked October 18, 2026.
Read moreFirebase Deprecations: Every Shutdown Date, 2024 to 2027
Every Firebase shutdown from 2024 to 2027 in one dated table: FCM legacy APIs, Dynamic Links, Firebase Studio, Extensions, Firebase ML model hosting, the FCM InstanceId APIs and Test Lab. What stops working, the deadline, and what to move to, from Firebase's own docs checked October 18, 2026.
Read moregoo.gl Shut Down: Which Google Short Links Still Work in 2026
Google limited new goo.gl short links in 2018, set March 30, 2019 to discontinue the URL Shortener API, and said inactive goo.gl links would stop working after August 25, 2025. Which goo.gl links still work, why apps that moved to Firebase Dynamic Links got hit twice, and what to use for short links in 2026.
Read more