azurepowerbiazure-mapsazure-rest-apiazure-billing

Azure Maps Forward Geocoding and Route Matrix API - billing and cost perspective


I would need some assistance for the interpretation, how Azure Maps is calculating the costs for forward geocoding (getting lattidude/longitude values) and getting distances between point objects, because it doesn´t match my cost forecast.

I have a query in PowerBI, which queries the coordinates of cities through the API Endpoint (Gen2 (Maps & Location Insights) pricing tier):

url = "https://atlas.microsoft.com/search/address/json"

Query:

loc_test = PENDLER_all_home_cities,
queryInput = Table.AddColumn(loc_test, "queryString", each Text.From([HOME_PLZ]) & ", " & [HOME_CITY]),

apiKey =  "deleted" ,
url = "https://atlas.microsoft.com/search/address/json",

GetApiResponse = (queryString as text) =>

    let
        queryParams = [
            #"api-version" = "1.0",
            query = queryString,
            #"subscription-key" = apiKey
        ],

        response = Web.Contents(url, [Query = queryParams, ApiKeyName = "subscription-key"]),
        jsonResponse = Json.Document(response)

    in
        jsonResponse,

In my Azure Maps account, i got billed with approx. 9€ for 2.3k total requests (i got 284 items and forgot to deactivate the table refresh in PowerBI. That means it refreshed 8x times the last days, before i turned off that function - okay, i got it).

enter image description here

But that would mean, that Azure Maps forward geocoding pricing is calculated for every 1000 requests with 3,96€.

In the official price table, Azure maps geolocation got a free quota of 5.000 requests, and gets billed 3,96€ / 5000 requests for region: europe-north.

https://azure.microsoft.com/de-de/pricing/details/azure-maps/

---> Is this pricing table outdated and there is no free quota at all?

It´s quite important for me to know, because at the next step, i wan´t to calculate the distance between 284 origins and 17 destinations. I already splitted the query template into 17 tables, because the route matrix API calculates (origins * destinations) / 4 = billed amount, so it would be cheaper if calculate it for every destination separately.

Did i miss something here? I don´t want to get some unplanned costs for the distance calculation (i am using the 150€ credit from the VSC Enterprise license).

EDIT: My costs for that period of time: enter image description here


Solution

  • Thanks for sharing your views @Sampath, I totally agree with you.

    Forward Geocoding Pricing:

    As you've mentioned that you are using the Gen2 (Maps & Location Insights) pricing tier. Gen2 does not include the free 5,000 monthly transactions all requests are billed from the first one.

    The official pricing table still mentions a free quota, but it is specific to Gen1 (S0) pricing tier. So, your charge is correct, and the pricing table is not outdated, but the free tier is not applicable under Gen2 usage-based billing.

    Small fluctuations (e.g., €3.90 vs €3.96) are due to currency rounding or real-time exchange rates, not pricing errors.

    Cause of Unexpected Charges:

    1. Power BI auto-refreshed your table 8 times, making repeated calls to the API.
    2. Since each refresh re-queried all 284 addresses, this caused 2,300+ geocoding API calls unintentionally.

    This results in a cost of about €3.91 per 1,000 requests, which aligns with the standard Gen2 rate without a free tier: So, your interpretation is correct: you are being billed without any free tier, most likely due to your pricing tier setup.

    How transactions are counted - Understanding Azure Maps Transactions

    Route Matrix Strategy:

    You're also planning to compute distances between 284 origins × 17 destinations. Azure Maps Route Matrix is billed as:

    (284 × 17) / 4 = 1,207 transactions
    

    Hence, your optimization splitting into 17 separate API calls (one per destination) is valid and keeps billing the same but makes tracking and retrying easier making it a Smart Optimization Strategy.

    Details on calculating matrices of route - Post Route Matrix

    Here are some Recommendations to Avoid Extra Cost:

    1. You can Disable Power BI auto-refresh for API-based tables.
    2. Cache geocoded results in a separate table to prevent duplicate lookups.
    3. Also Set Azure Budget alerts to stay within your monthly €150 credit (Visual Studio Enterprise).

    Kindly refer - Manage Your Azure Maps Account's Pricing Tier