DEV Community

Cover image for Google Places API Alternatives: Which POI API Should You Use in 2026?

Google Places API Alternatives: Which POI API Should You Use in 2026?

If your app needs to search for places — cafes, restaurants, shops, or any other points of interest — chances are you’ve looked at the Google Maps Platform first.

It’s a powerful solution, but it’s not always the best fit. Pricing, usage limits, licensing restrictions, or simply the need for more flexibility often push developers to look for alternatives.

What we’ll explore

In this article, we’ll take a practical look at Places APIs — focusing on one common use case:

  • Finding places by category. For example: cafes or restaurants near a location

We’ll compare how place search works across several popular providers and when each one makes the most sense to use:

Use Case: Find Restaurants in Miami Beach

To keep this comparison practical, let’s use one specific scenario:

Find restaurants near this point in Miami Beach:

  • Latitude: 25.777415
  • Longitude: -80.132432

Miami Beach location

This is a good test case because every provider in this article supports location-based place search, but they expose it in different ways.

Key differences to keep in mind

  • Request structure: Some APIs use simple query parameters (location, radius, category), while others require more structured requests or additional configuration.

  • Search capabilities: APIs vary in how they support filtering, ranking, and biasing results.

  • Data sources: Some providers rely on proprietary datasets, while others are based on open data sources like OpenStreetMap.

  • Result format: The structure and level of detail in responses can differ significantly.

Even for a simple task like finding nearby restaurants, the choice of API can lead to very different results and developer experience.

Google Maps Platform — Places API

📘 Docs · 🔎 Playground · 💰 Pricing · ⚖️ Terms

The Google Maps Platform Places API is one of the most widely used solutions for working with points of interest.

It provides rich and detailed place data — including ratings, reviews, opening hours, and more — and is often the default choice for developers building location-based features.

Example request

POST https://places.googleapis.com/v1/places:searchNearby
Content-Type: application/json
X-Goog-Api-Key: YOUR_API_KEY
X-Goog-FieldMask: places.displayName,places.location,places.rating,places.reviews,places.photos

{
  "includedPrimaryTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 25.777415,
        "longitude": -80.132432
      },
      "radius": 1000
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

This request searches for restaurants near the given coordinates in Miami Beach within a 1 km radius and returns a limited set of fields.

Example response

{
  "places": [
    {
      "id": "sample-place-id-001",
      "displayName": {
        "text": "Sample Restaurant"
      },
      "formattedAddress": "100 Example St, Miami Beach, FL 33139, USA",
      "location": {
        "latitude": 25.778102,
        "longitude": -80.131245
      },
      "rating": 4.4,
      "userRatingCount": 1842,
      "websiteUri": "https://www.example.com",
      "nationalPhoneNumber": "(305) 555-0142",
      "regularOpeningHours": {
        "openNow": true,
        "weekdayDescriptions": [
          "Monday: 11:00 AM – 10:00 PM"
        ]
      },
      "primaryType": "restaurant",
      "primaryTypeDisplayName": {
        "text": "Restaurant"
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

The response can include much more than basic place information. In addition to name, location, and rating, the API can return reviews, photos, contact details, opening hours, and various attributes describing the place.

Reviews are returned directly in the response, while photos are provided as references that can be used to request actual images via a separate endpoint.

The exact data you receive depends on the fields specified in the X-Goog-FieldMask.

Pros

  • Rich place data — includes ratings, reviews, photos, opening hours, and many additional attributes
  • Flexible field selection — control response size and content via X-Goog-FieldMask
  • Large dataset — backed by a widely used platform with high user contribution and coverage

Cons

  • Pricing can scale quickly — depends on number of requests and fields requested, so cost estimation is important

  • Strict licensing terms — usage is limited by Google Maps Platform Terms, including requirements on how data is displayed, where it can be used, and integration with Google services

  • Data usage limitations — place data often cannot be stored long-term or used outside Google services

  • More complex requests — requires POST requests and field masks instead of simple query parameters

Geoapify — Places API

📘 Docs · 🔎 Playground · 💰 Pricing · ⚖️ Terms

Geoapify Places API provides access to POI data based on open data sources such as OpenStreetMap.

It focuses on simplicity and flexibility, offering a straightforward way to search for places by category, location, and additional filters.

Example request

GET https://api.geoapify.com/v2/places?categories=catering.restaurant&filter=circle:-80.132432,25.777415,1000&limit=10&apiKey=YOUR_API_KEY
Enter fullscreen mode Exit fullscreen mode

This request searches for restaurants near the given coordinates in Miami Beach within a 1 km radius.

The API uses a simple GET request with query parameters, making it easy to test and integrate.

Example response

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "name": "Bella Cuba",
        "formatted": "Bella Cuba, 1659 Washington Avenue, Miami Beach, FL 33139, United States of America",
        "lat": 25.7909549,
        "lon": -80.1316981,
        "categories": [
          "catering",
          "catering.restaurant",
          "catering.restaurant.cuban"
        ],
        "catering": {
          "cuisine": "cuban"
        },
        "distance": 265,
        "datasource": {
          "sourcename": "openstreetmap",
          "license": "Open Database License",
          "attribution": "© OpenStreetMap contributors"
        },
        "raw": {
            "osm_id": 3057276069,
            "osm_type": "n"
          }
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-80.1316981, 25.7909549]
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

The response uses a standard GeoJSON-like structure, which is especially convenient for map applications. Depending on available source data, results may include categories, cuisine, phone number, website, opening hours, and other attributes.

The datasource field is especially useful because it makes the data origin explicit. In this example, the results come from OpenStreetMap, with attribution and license information included in the response.

The raw.osm_id and raw.osm_type values allow you to link back to the original OpenStreetMap object — for example: view this place in OpenStreetMap >>

Pros

  • Open data (OpenStreetMap-based) — transparent data source that allows you to cache, store, and redistribute data, depending on the OpenStreetMap license terms

  • Affordable pricing model — as a service provider (not a data owner), Geoapify offers more cost-efficient and predictable pricing

  • Simple and intuitive API — uses GET requests with clear query parameters, making it easy to test and integrate

  • Flexible usage — not tightly coupled to a specific platform, allowing more freedom in how data is stored and displayed

  • GeoJSON-like response format — ready to use directly in mapping libraries without transformation

Cons

  • No built-in reviews or ratings — unlike Google, the API does not provide user-generated reviews, ratings, or photos

  • Data completeness varies — coverage and quality depend on OpenStreetMap data in the region

  • Less enriched data — fewer high-level attributes compared to Google’s dataset

  • May require additional data sources — some features (e.g. reviews or popularity) may require integration with other APIs

Foursquare — Places API

📘 Docs · 💰 Pricing · ⚖️ Terms

Foursquare Places API provides access to a global POI dataset enriched with location intelligence and user behavior signals.

It is known for its structured place data and strong categorization system, making it well-suited for search and discovery use cases.

curl --request GET \
     --url 'https://api.foursquare.com/v3/places/search?ll=25.777415%2C-80.132432&radius=1000&categories=restaurants' \
     --header 'X-Places-Api-Version: 2023-10-01' \
     --header 'accept: application/json'
Enter fullscreen mode Exit fullscreen mode

This request searches for restaurants near the given coordinates in Miami Beach within a 1 km radius.

Foursquare uses category IDs instead of text-based categories, which allows precise filtering but requires referencing their category taxonomy.

Example response

{
  "results": [
    {
      "fsq_id": "5f8a9c1b2d_example",
      "name": "Ocean Breeze Grill",
      "location": {
        "formatted_address": "200 Ocean Dr, Miami Beach, FL 33139",
        "locality": "Miami Beach",
        "region": "FL",
        "country": "US"
      },
      "geocodes": {
        "main": {
          "latitude": 25.778245,
          "longitude": -80.130912
        }
      },
      "categories": [
        {
          "id": 13065,
          "name": "Restaurant",
          "short_name": "Restaurant"
        }
      ],
      "distance": 180,
      "rating": 4.3,
      "price": 2,
      "tel": "+1 305-555-0199",
      "website": "https://oceanbreeze.example.com",

      "hours": {
        "display": "Mon–Sun 11:00 AM – 11:00 PM",
        "open_now": true
      },

      "features": {
        "services": {
          "delivery": true,
          "takeout": true,
          "dine_in": {
            "reservations": true
          }
        },
        "food_and_drink": {
          "meals": {
            "lunch": true,
            "dinner": true
          },
          "alcohol": {
            "beer": true,
            "wine": true
          }
        },
        "amenities": {
          "outdoor_seating": true,
          "wifi": "free"
        }
      },

      "photos": [
        {
          "id": "photo_001",
          "prefix": "https://fastly.4sqi.net/img/general/",
          "suffix": "/12345_sample.jpg",
          "width": 800,
          "height": 600
        }
      ],

      "tips": [
        {
          "id": "tip_001",
          "text": "Great seafood and ocean views. Try the grilled snapper!",
          "agree_count": 12
        }
      ],

      "stats": {
        "total_ratings": 540,
        "total_photos": 120,
        "total_tips": 34
      },

      "popularity": 0.82,
      "verified": true
    }
  ],
  "context": {
    "geo_bounds": {
      "circle": {
        "center": {
          "latitude": 25.777415,
          "longitude": -80.132432
        },
        "radius": 1000
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

The response includes core place information such as name, location, categories, and distance. Depending on the endpoint and plan, Foursquare can also provide additional enrichment such as ratings, popularity signals, and place attributes.

Pros

  • Rich and structured place data — includes categories, attributes, popularity signals, and user-generated content

  • Includes user-generated content — provides photos and tips, adding useful context to places, though the coverage and depth may vary compared to larger platforms like Google Maps Platform

  • Strong categorization system — enables precise filtering using a well-defined taxonomy (category IDs)

  • High-quality curated dataset — especially strong in urban areas and commercial locations

  • Enriched data signals — provides popularity, trends, and behavioral insights beyond basic POI data

Cons

  • Strict licensing restrictions — data is provided under a limited, revocable license and must be used only within your application; you cannot store, merge, redistribute, or build your own POI dataset, and must display “Powered by Foursquare” attribution

  • Limited external usage — reports or demos must be non-monetized, non-competitive, and cannot expose material portions of data

  • Category-based filtering complexity — requires working with category IDs instead of simple text queries

  • Pricing scales with usage — costs can increase with request volume and data enrichment

HERE Technologies — Places API

📘 Docs · 🔎 Playground · 💰 Pricing · ⚖️ Terms

HERE Technologies provides location services and POI data through its Discover endpoint, which allows searching for places by category, location, and filters.

It is widely used in navigation, mobility, and enterprise applications, especially where accurate geolocation is critical.

Example request

GET https://discover.search.hereapi.com/v1/discover?at=25.777415,-80.132432&q=restaurant&limit=10&apiKey=YOUR_API_KEY
Enter fullscreen mode Exit fullscreen mode

This request searches for restaurants near the given coordinates in Miami Beach.

Example response

{
  "items": [
    {
      "id": "here-poi-001",
      "title": "Ocean Breeze Restaurant",
      "resultType": "place",

      "address": {
        "label": "150 Ocean Dr, Miami Beach, FL 33139, United States",
        "countryCode": "USA",
        "countryName": "United States",
        "stateCode": "FL",
        "state": "Florida",
        "city": "Miami Beach",
        "street": "Ocean Dr",
        "postalCode": "33139",
        "houseNumber": "150"
      },

      "position": {
        "lat": 25.778215,
        "lng": -80.131102
      },

      "distance": 210,

      "categories": [
        {
          "id": "100-1000-0000",
          "name": "Restaurant",
          "primary": true
        }
      ],

      "foodTypes": [
        {
          "id": "101-000",
          "name": "Seafood",
          "primary": true
        }
      ],

      "contacts": [
        {
          "phone": [
            {
              "value": "+1 305-555-0188"
            }
          ],
          "www": [
            {
              "value": "https://oceanbreeze.example.com"
            }
          ]
        }
      ],

      "openingHours": [
        {
          "text": [
            "Mon–Sun: 11:00 AM – 11:00 PM"
          ],
          "isOpen": true
        }
      ],

      "timeZone": {
        "name": "America/New_York",
        "utcOffset": "-04:00"
      },

      "chains": [
        {
          "id": "chain-001",
          "name": "Ocean Breeze Group"
        }
      ],

      "media": {
        "images": {
          "items": [
            {
              "href": "https://images.example.com/photo1.jpg",
              "supplier": {
                "id": "tripadvisor"
              }
            }
          ]
        },
        "ratings": {
          "items": [
            {
              "count": 320,
              "average": 4.2,
              "supplier": {
                "id": "tripadvisor"
              }
            }
          ]
        }
      }
    }
  ],
  "count": 1,
  "limit": 10,
  "offset": 0
}
Enter fullscreen mode Exit fullscreen mode

The HERE API returns structured place data with a strong focus on address details, categories, and consistency across regions.

Depending on the available data, the response may include:

  • Contact details such as phone numbers and websites
  • Opening hours in both structured and human-readable formats
  • Categories and food types for classification
  • Media and ratings, often sourced from third-party providers (for example, TripAdvisor)
  • Extended attributes such as EV charging stations, fuel information, or logistics-related data

Compared to consumer-focused APIs, HERE emphasizes reliable, standardized data and global coverage rather than building its own user-generated content ecosystem.

Pros

  • Reliable global coverage — strong presence across multiple regions and industries, including automotive and logistics

  • Structured and consistent data — predictable response format with detailed address components and classification

  • Simple request model — supports text-based and location-based search without complex request bodies

  • Enterprise-focused features — includes extended attributes such as EV stations, fuel data, and logistics-related information

  • Third-party enrichment — may include ratings and media from external providers (for example, TripAdvisor)

Cons

  • Proprietary dataset — data is not open and cannot be freely stored, reused, or redistributed

  • Limited user-generated content — generally does not provide native reviews or rich photo ecosystems like larger consumer platforms

  • Licensing restrictions — usage is governed by HERE terms, including limitations on storage, redistribution, and usage scope

  • Pricing scales with usage — costs depend on request volume and service usage

TomTom — Places API

📘 Docs · 🔎 Playground · 💰 Pricing · ⚖️ Terms

TomTom provides access to place data through its Search and Places APIs, allowing developers to search for POIs by category, name, or geographic location.

It is widely used in navigation, mobility, and enterprise applications, with a focus on accurate geolocation and global coverage.

Example request

curl -X GET "https://api.tomtom.com/search/2/categorySearch/restaurants.json?lat=25.777415&lon=-80.132432&radius=1000&categorySet=7315&view=Unified&relatedPois=off&key=YOUR_API_KEY" \
  -H "accept: */*"
Enter fullscreen mode Exit fullscreen mode

This request searches for restaurants within a 1 km radius around Miami Beach and returns categorized place results using TomTom’s Places API.

Example response

{
  "summary": {
    "query": "restaurants",
    "queryType": "NON_NEAR",
    "numResults": 10,
    "offset": 0,
    "totalResults": 84,
    "geoBias": {
      "lat": 25.777415,
      "lon": -80.132432
    }
  },
  "results": [
    {
      "type": "POI",
      "id": "tomtom-poi-001",
      "score": 2.57,
      "dist": 145.3,
      "poi": {
        "name": "Ocean Breeze Cafe",
        "phone": "+1 305-555-0181",
        "url": "www.oceanbreeze.example.com",
        "categorySet": [
          {
            "id": 7315
          }
        ],
        "categories": [
          "restaurant"
        ],
        "classifications": [
          {
            "code": "RESTAURANT",
            "names": [
              {
                "nameLocale": "en-US",
                "name": "restaurant"
              }
            ]
          }
        ]
      },
      "address": {
        "streetNumber": "120",
        "streetName": "Ocean Dr",
        "municipality": "Miami Beach",
        "countrySubdivision": "FL",
        "postalCode": "33139",
        "countryCode": "US",
        "country": "United States",
        "freeformAddress": "120 Ocean Dr, Miami Beach, FL 33139"
      },
      "position": {
        "lat": 25.778201,
        "lon": -80.131502
      },
      "entryPoints": [
        {
          "type": "main",
          "position": {
            "lat": 25.77812,
            "lon": -80.13144
          }
        }
      ]
    },
    {
      "type": "POI",
      "id": "tomtom-poi-002",
      "score": 2.56,
      "dist": 210.8,
      "poi": {
        "name": "Seaside Grill",
        "categorySet": [
          {
            "id": 7315
          }
        ],
        "categories": [
          "restaurant"
        ]
      },
      "address": {
        "freeformAddress": "200 Collins Ave, Miami Beach, FL 33139"
      },
      "position": {
        "lat": 25.77901,
        "lon": -80.13088
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

The response includes a summary section plus a list of matching POIs. For each result, TomTom returns core place information such as the place name, categories, address, coordinates, and distance. Some results may also include contact details like a phone number or website.

A useful detail is the entryPoints field, which can help in routing and navigation scenarios by showing where the place can actually be accessed.

Pros

  • Reliable global location data — strong coverage optimized for navigation and mobility use cases

  • Well integrated with routing services — works seamlessly with routing, traffic, and navigation APIs

  • Simple and developer-friendly API — clear parameters and predictable responses

  • Accurate positioning data — includes fields like entryPoints for real-world navigation

Cons

  • Limited focus on user-generated content — minimal support for reviews or community-driven insights

  • Limited media support — photos and rich media are not part of standard responses

  • Proprietary dataset — data cannot be freely stored or redistributed

  • Licensing restrictions — usage is constrained by TomTom terms and conditions

What to choose?

Choosing a Places API depends not only on features, but also on your use case, constraints, and budget. Here’s a practical way to approach it.

1. Define your goal

Start with what you actually need to build:

  • Rich place details (reviews, photos, popularity signals) → Best fit: Google Maps Platform, Foursquare, HERE

  • Category-based search with structured place data (no need for reviews) → Best fit: Geoapify, TomTom, HERE

  • Navigation, routing, fleet, or logistics applications

    → Best fit: TomTom, HERE, Geoapify

👉 If your app relies on user-generated content, your main options are Google or Foursquare.


2. Consider your budget early

Pricing models differ significantly:

  • Google Maps Platform → powerful but can scale in cost quickly
  • Foursquare → commercial dataset with flexible plans
  • HERE / TomTom → enterprise-oriented pricing, often bundled with other services
  • Geoapify → affordable and predictable pricing

👉 Always estimate usage before building — especially for high-traffic apps.


3. Check licensing and data restrictions

This is often a deciding factor:

  • Some providers restrict storing or caching data (e.g., Google)
  • Some allow more flexibility with usage and storage
  • Most require attribution

👉 If you need to store or reuse data, this can narrow your options quickly.


4. Match provider strengths

Each provider is optimized for different scenarios:

  • Google / Foursquare → rich place content and discovery
  • HERE / TomTom → navigation, routing, and enterprise mobility
  • Geoapify → flexible APIs with open-data foundation, providing access to OpenStreetMap (OSM) data

👉 Example:

  • Building a city discovery app → Foursquare or Geoapify
  • Building a delivery platform → HERE or TomTom
  • Building an infrastructure or utility app (electricity, supply, field services) → Geoapify, TomTom, or HERE

5. Think long-term

Switching providers later can be costly.

Consider:

  • scaling costs
  • API limits
  • vendor lock-in
  • data portability

Summary

There is no single “best” API — only the best fit for your case.

  • Choose Google or Foursquare for rich place content
  • Choose HERE or TomTom for routing and mobility
  • Choose Geoapify for flexibility, open data, and cost efficiency

👉 The right choice comes down to balancing features, budget, and licensing constraints.

Top comments (0)