{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "slug": "azure-maps",
    "name": "Azure Maps",
    "vendor": "Microsoft Azure",
    "vendorUrl": "https://azure.microsoft.com/en-us/products/azure-maps",
    "kind": "http-api",
    "category": "maps",
    "summary": "Microsoft Azure's mapping service. Its REST APIs at `atlas.microsoft.com` cover geocoding, reverse geocoding, place search, routing with traffic, map tiles, time zones and weather, with access by subscription key, SAS token or Microsoft Entra ID.",
    "url": "https://www.anchorterminal.com/tools/azure-maps",
    "markdownUrl": "https://www.anchorterminal.com/tools/azure-maps.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/azure-maps.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/azure-maps.json",
    "repo": "https://github.com/Azure/azure-rest-api-specs",
    "license": "Proprietary service under Microsoft's Product Terms. The Azure SDK client libraries are MIT",
    "transports": [
      "http"
    ],
    "remoteUrl": "https://atlas.microsoft.com",
    "packages": [
      {
        "registry": "pypi",
        "name": "azure-maps-search"
      },
      {
        "registry": "pypi",
        "name": "azure-maps-route"
      },
      {
        "registry": "npm",
        "name": "@azure-rest/maps-search"
      },
      {
        "registry": "npm",
        "name": "@azure-rest/maps-route"
      }
    ],
    "auth": "mixed",
    "authNotes": "Self-serve. A person creates an Azure subscription and an Azure Maps account in the portal, which issues a primary and a secondary subscription key. The key goes in the `subscription-key` header or as a URL parameter and reaches every REST API on the account. Microsoft Entra ID tokens (scope `https://atlas.microsoft.com/.default`, with the `x-ms-client-id` header) are authorised by Azure roles such as Azure Maps Data Reader or a custom role for one service. SAS tokens (`Authorization: jwt-sas`) last 24 hours at most and carry a rate cap and allowed regions. `disableLocalAuth` turns keys and SAS tokens off.",
    "pricing": "freemium",
    "pricingNotes": "$4.50 per 1,000 transactions on every Gen2 meter, after a free monthly amount of 5,000 transactions for Search, Geolocation, Timezone and base map tiles and 1,000 for Routing, Traffic, Weather, imagery tiles and static images (https://prices.azure.com/api/retail/prices, read 8 October 2026). Fifteen tiles count as one transaction, four route matrix cells as one, and ten autocomplete requests as one. The pricing page says discounts start at 100,000 transactions a month through sales. An Azure account needs a card for identity checks, so there is no card-free start. Gen1 pricing retired on 15 September 2026.",
    "priceSummary": "$4.50 / 1k req",
    "where": "hosted",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the Azure Maps docs, the OpenAPI documents or the pricing page (checked 2026-10-08).",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": null,
      "npmWeekly": 9084,
      "pypiWeekly": 24564,
      "asOf": "2026-10-08"
    },
    "docsUrl": "https://learn.microsoft.com/en-us/rest/api/maps/",
    "openapi": "https://github.com/Azure/azure-rest-api-specs/blob/main/specification/maps/data-plane/Search/stable/2026-01-01/search.json",
    "capabilities": [
      "geo.geocode",
      "geo.reverse",
      "geo.places",
      "geo.routing",
      "geo.tiles",
      "weather.current",
      "weather.forecast"
    ],
    "tags": [
      "hosted",
      "closed-source",
      "freemium",
      "free-tier",
      "card-required",
      "openapi",
      "oauth",
      "python",
      "typescript",
      "dotnet",
      "java",
      "enterprise",
      "sla",
      "eu"
    ],
    "lastRelease": "2026-09-30",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 67.9,
      "grade": "B",
      "agentReady": false,
      "rank": 196,
      "ranked": true,
      "rankOf": 722,
      "categoryRank": 5,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 73,
        "maintenance": 67,
        "payments": 20,
        "reliability": 81,
        "schema": 83,
        "security": 66,
        "transparency": 74
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 81,
          "points": 16.2,
          "reason": "Hosted reading. Azure status page with a history of post-incident reviews (20). The history lists three incidents in the last 90 days, West US network connectivity on 23 July 2026 (14:44 to 19:41 UTC), Azure OpenAI and Cognitive Services in Sweden Central on 29 September, and gateway services in several regions on 30 September. None names Azure Maps. The page lists only broad incidents, so there is no service-level history for Maps, and we count the record as minor (20 of 30). Default limits published per service, 500 requests a second for search, 250 for reverse geocoding and 50 for routing (15). The service answers 429 over the limit and doesn't bill 429, 408 or 5xx responses, and data-plane calls are reads, so a retry is safe. No Retry-After header or backoff guidance was found in the reviewed documentation (6 of 15). The SLA for Online Services of 1 October 2026 commits to 99.9 per cent per API, with 10 and 25 per cent credits (10). Search 2026-01-01 and Route 2025-01-01 are stable versions. The REST index still labels autocomplete a preview (10)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 83,
          "points": 13.49,
          "reason": "OpenAPI 2.0 documents for each service are public in `Azure/azure-rest-api-specs`, generated from TypeSpec since April 2026 (25). learn.microsoft.com returns each page as Markdown when `?accept=text/markdown` is added, though `llms.txt` returns 404 (10). Operation descriptions state purpose, and the geocoding and migration pages say when to use geocoding, autocomplete or batch and when not to (16 of 20). Typed parameters with ranges such as `top` from 1 to 20, 18 enums in the Search document and 48 in Route, and required fields marked (13 of 15). Examples on all 16 Search and Route operations, but errors are one default response with an `x-ms-error-code` header and no list of codes found (10 of 15). Dated `api-version` values and migration guides for Search, Route, Render and Traffic 1.0, but no API changelog page. The release notes cover the Web SDK only (9 of 15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 73,
          "points": 11.86,
          "reason": "API reading of the checklist. Geocoding returns five results by default and `top` caps them at 20, but there is no field selection and each response is a full GeoJSON collection (18 of 25). `bbox`, `countryRegion`, `coordinates` and `resultTypes` filters, and Search 1.0 adds `limit`, `ofs`, `categorySet` and `brandSet` (17 of 20). Errors follow the Azure shape with `code`, `message`, `target` and `details`, and batch responses carry an error per item. No list of codes was found (13 of 20). Every data-plane call is a read, route POSTs have no side effects, and failed calls are not billed. No retry guidance for 429 was found (15 of 20). Geocoding needs only `api-version` and a query. Client libraries exist for Python, JavaScript, .NET and Java, all beta (10 of 15)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 66,
          "points": 11.55,
          "reason": "Microsoft Entra ID OAuth tokens with Azure roles, SAS tokens limited to 24 hours with a rate cap and allowed regions, and two subscription keys that can be regenerated in turn (30). Less 10 because the authentication guide tells callers to add the subscription key as a URL parameter, and Search 1.0 declares the key as a query parameter (20). Built-in reader roles, custom roles down to one service such as `Microsoft.Maps/accounts/services/search/read`, and `disableLocalAuth` to turn keys off. The data-plane APIs only read. A subscription key reaches every API on the account (18 of 20). Place names, addresses and traffic incident text come from third parties, and no prompt-injection guidance was found (5 of 15). Azure Monitor metrics show usage, errors and availability for 93 days. Per-request logs were not found in the Azure Maps docs (6 of 15). MSRC coordinated disclosure and bounty policies, and Azure Maps is on the FedRAMP High audit scope list dated 21 September 2026. The microsoft.com security.txt passed its Expires date on 23 September 2026, and we did not confirm Maps on a SOC 2 scope list (17 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 20,
          "points": 2.5,
          "reason": "No x402, MPP or L402 (0). Per-1,000-transaction prices are public without a login through the Azure Retail Prices API, $4.50 on each Gen2 meter. The pricing page showed our reader the free amounts but no dollar figures (20). Free monthly transactions exist, 5,000 for search and 1,000 for routing, but an Azure account asks for a card to verify identity (0). A person signs up in a browser and creates the Maps account (0)."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 67,
          "points": 5.86,
          "reason": "Read as a closed service with official SDKs. The spec repository's newest Maps commits are from 30 September 2026, removing Render 1.0 after its retirement on 17 September and clarifying autocomplete result types (30). Seven dated Maps commits since 28 July 2026, plus the Gen1 pricing retirement on 15 September. Most are description changes and retirements, not new operations (20). No API changelog. Microsoft Q\u0026A and a feedback forum are linked from each docs page, which we did not read (8 of 15). The REST client libraries are all beta and lag the service, `azure-maps-search` 2.0.0b2 on PyPI from 12 December 2024 and `@azure-rest/maps-search` 2.0.0-beta.4 on npm from 22 August 2025, with npm's `latest` tag still on beta.3 (5 of 15). The libraries live in the azure-sdk monorepos, CI not checked (4 of 10)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 74,
          "points": 6.48,
          "note": "editorial 69, provenance 78",
          "reason": "Closed service under Microsoft's Product Terms, which carry a section of Azure Maps rules on storage, navigation and attribution, with MIT client libraries (15 of 30). The docs say requests and input data are stored only in the chosen geography and that queries go to TomTom without a link to the customer. No retention period for request data was found, and we did not read the Data Protection Addendum (22 of 30). The Modern Lifecycle Policy promises 12 months' notice before support ends. Gen1 pricing and Render 1.0 retired on stated dates in September 2026, while Search 1.0 is superseded with no date (16 of 20). TomTom is named as a subprocessor, and European and United States endpoints fix the data location. The full sub-processor list sits on the Service Trust Portal, which we did not read (16 of 20)."
        }
      ],
      "assessment": {
        "date": "2026-10-08",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "API reading of the checklist. Geocoding returns five results by default and `top` caps them at 20, but there is no field selection and each response is a full GeoJSON collection (18 of 25). `bbox`, `countryRegion`, `coordinates` and `resultTypes` filters, and Search 1.0 adds `limit`, `ofs`, `categorySet` and `brandSet` (17 of 20). Errors follow the Azure shape with `code`, `message`, `target` and `details`, and batch responses carry an error per item. No list of codes was found (13 of 20). Every data-plane call is a read, route POSTs have no side effects, and failed calls are not billed. No retry guidance for 429 was found (15 of 20). Geocoding needs only `api-version` and a query. Client libraries exist for Python, JavaScript, .NET and Java, all beta (10 of 15).",
          "maintenance": "Read as a closed service with official SDKs. The spec repository's newest Maps commits are from 30 September 2026, removing Render 1.0 after its retirement on 17 September and clarifying autocomplete result types (30). Seven dated Maps commits since 28 July 2026, plus the Gen1 pricing retirement on 15 September. Most are description changes and retirements, not new operations (20). No API changelog. Microsoft Q\u0026A and a feedback forum are linked from each docs page, which we did not read (8 of 15). The REST client libraries are all beta and lag the service, `azure-maps-search` 2.0.0b2 on PyPI from 12 December 2024 and `@azure-rest/maps-search` 2.0.0-beta.4 on npm from 22 August 2025, with npm's `latest` tag still on beta.3 (5 of 15). The libraries live in the azure-sdk monorepos, CI not checked (4 of 10).",
          "payments": "No x402, MPP or L402 (0). Per-1,000-transaction prices are public without a login through the Azure Retail Prices API, $4.50 on each Gen2 meter. The pricing page showed our reader the free amounts but no dollar figures (20). Free monthly transactions exist, 5,000 for search and 1,000 for routing, but an Azure account asks for a card to verify identity (0). A person signs up in a browser and creates the Maps account (0).",
          "reliability": "Hosted reading. Azure status page with a history of post-incident reviews (20). The history lists three incidents in the last 90 days, West US network connectivity on 23 July 2026 (14:44 to 19:41 UTC), Azure OpenAI and Cognitive Services in Sweden Central on 29 September, and gateway services in several regions on 30 September. None names Azure Maps. The page lists only broad incidents, so there is no service-level history for Maps, and we count the record as minor (20 of 30). Default limits published per service, 500 requests a second for search, 250 for reverse geocoding and 50 for routing (15). The service answers 429 over the limit and doesn't bill 429, 408 or 5xx responses, and data-plane calls are reads, so a retry is safe. No Retry-After header or backoff guidance was found in the reviewed documentation (6 of 15). The SLA for Online Services of 1 October 2026 commits to 99.9 per cent per API, with 10 and 25 per cent credits (10). Search 2026-01-01 and Route 2025-01-01 are stable versions. The REST index still labels autocomplete a preview (10).",
          "schema": "OpenAPI 2.0 documents for each service are public in `Azure/azure-rest-api-specs`, generated from TypeSpec since April 2026 (25). learn.microsoft.com returns each page as Markdown when `?accept=text/markdown` is added, though `llms.txt` returns 404 (10). Operation descriptions state purpose, and the geocoding and migration pages say when to use geocoding, autocomplete or batch and when not to (16 of 20). Typed parameters with ranges such as `top` from 1 to 20, 18 enums in the Search document and 48 in Route, and required fields marked (13 of 15). Examples on all 16 Search and Route operations, but errors are one default response with an `x-ms-error-code` header and no list of codes found (10 of 15). Dated `api-version` values and migration guides for Search, Route, Render and Traffic 1.0, but no API changelog page. The release notes cover the Web SDK only (9 of 15).",
          "security": "Microsoft Entra ID OAuth tokens with Azure roles, SAS tokens limited to 24 hours with a rate cap and allowed regions, and two subscription keys that can be regenerated in turn (30). Less 10 because the authentication guide tells callers to add the subscription key as a URL parameter, and Search 1.0 declares the key as a query parameter (20). Built-in reader roles, custom roles down to one service such as `Microsoft.Maps/accounts/services/search/read`, and `disableLocalAuth` to turn keys off. The data-plane APIs only read. A subscription key reaches every API on the account (18 of 20). Place names, addresses and traffic incident text come from third parties, and no prompt-injection guidance was found (5 of 15). Azure Monitor metrics show usage, errors and availability for 93 days. Per-request logs were not found in the Azure Maps docs (6 of 15). MSRC coordinated disclosure and bounty policies, and Azure Maps is on the FedRAMP High audit scope list dated 21 September 2026. The microsoft.com security.txt passed its Expires date on 23 September 2026, and we did not confirm Maps on a SOC 2 scope list (17 of 20).",
          "transparency": "Closed service under Microsoft's Product Terms, which carry a section of Azure Maps rules on storage, navigation and attribution, with MIT client libraries (15 of 30). The docs say requests and input data are stored only in the chosen geography and that queries go to TomTom without a link to the customer. No retention period for request data was found, and we did not read the Data Protection Addendum (22 of 30). The Modern Lifecycle Policy promises 12 months' notice before support ends. Gen1 pricing and Render 1.0 retired on stated dates in September 2026, while Search 1.0 is superseded with no date (16 of 20). TomTom is named as a subprocessor, and European and United States endpoints fix the data location. The full sub-processor list sits on the Service Trust Portal, which we did not read (16 of 20)."
        },
        "sources": [
          {
            "what": "REST API index and services",
            "url": "https://learn.microsoft.com/en-us/rest/api/maps/",
            "seen": "2026-10-08"
          },
          {
            "what": "Search 2026-01-01 operations and geocoding reference",
            "url": "https://learn.microsoft.com/en-us/rest/api/maps/search/get-geocoding",
            "seen": "2026-10-08"
          },
          {
            "what": "Search 1.0 operations (place search)",
            "url": "https://learn.microsoft.com/en-us/rest/api/maps/search?view=rest-maps-1.0",
            "seen": "2026-10-08"
          },
          {
            "what": "Route 2025-01-01 operations",
            "url": "https://learn.microsoft.com/en-us/rest/api/maps/route",
            "seen": "2026-10-08"
          },
          {
            "what": "authentication (keys, Entra ID, SAS, roles)",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/azure-maps-authentication",
            "seen": "2026-10-08"
          },
          {
            "what": "key rotation",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/how-to-manage-authentication",
            "seen": "2026-10-08"
          },
          {
            "what": "rate limits",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/azure-maps-qps-rate-limits",
            "seen": "2026-10-08"
          },
          {
            "what": "transactions and billing rules",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/understanding-azure-maps-transactions",
            "seen": "2026-10-08"
          },
          {
            "what": "retail prices for Azure Maps meters",
            "url": "https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20%27Azure%20Maps%27%20and%20armRegionName%20eq%20%27Global%27",
            "seen": "2026-10-08"
          },
          {
            "what": "pricing page (free amounts)",
            "url": "https://azure.microsoft.com/en-us/pricing/details/azure-maps/",
            "seen": "2026-10-08"
          },
          {
            "what": "Gen1 pricing retirement",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/how-to-manage-pricing-tier",
            "seen": "2026-10-08"
          },
          {
            "what": "Search 1.0 migration guide",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/migrate-search-v1-api",
            "seen": "2026-10-08"
          },
          {
            "what": "Render 1.0 retirement",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/migrate-render-v1-api",
            "seen": "2026-10-08"
          },
          {
            "what": "geographic scope and data location",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/geographic-scope",
            "seen": "2026-10-08"
          },
          {
            "what": "overview, TomTom data sharing",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/about-azure-maps",
            "seen": "2026-10-08"
          },
          {
            "what": "usage metrics",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/how-to-view-api-usage",
            "seen": "2026-10-08"
          },
          {
            "what": "REST SDK guide",
            "url": "https://learn.microsoft.com/en-us/azure/azure-maps/rest-sdk-developer-guide",
            "seen": "2026-10-08"
          },
          {
            "what": "OpenAPI documents and commit history (shallow clone)",
            "url": "https://github.com/Azure/azure-rest-api-specs/tree/main/specification/maps/data-plane",
            "seen": "2026-10-08"
          },
          {
            "what": "Azure status history",
            "url": "https://azure.status.microsoft/en-us/status/history/",
            "seen": "2026-10-08"
          },
          {
            "what": "SLA for Online Services, 1 October 2026",
            "url": "https://www.microsoft.com/licensing/docs/view/Service-Level-Agreements-SLA-for-Online-Services",
            "seen": "2026-10-08"
          },
          {
            "what": "Product Terms, Azure Maps section",
            "url": "https://www.microsoft.com/licensing/terms/productoffering/MicrosoftAzure/MCA",
            "seen": "2026-10-08"
          },
          {
            "what": "privacy statement",
            "url": "https://www.microsoft.com/en-us/privacy/privacystatement",
            "seen": "2026-10-08"
          },
          {
            "what": "Azure free account card requirement",
            "url": "https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account",
            "seen": "2026-10-08"
          },
          {
            "what": "Modern Lifecycle Policy",
            "url": "https://learn.microsoft.com/en-us/lifecycle/policies/modern",
            "seen": "2026-10-08"
          },
          {
            "what": "FedRAMP audit scope",
            "url": "https://learn.microsoft.com/en-us/azure/azure-government/compliance/azure-services-in-fedramp-auditscope",
            "seen": "2026-10-08"
          },
          {
            "what": "security.txt",
            "url": "https://www.microsoft.com/.well-known/security.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "PyPI azure-maps-search",
            "url": "https://pypi.org/pypi/azure-maps-search/json",
            "seen": "2026-10-08"
          },
          {
            "what": "npm @azure-rest/maps-search",
            "url": "https://registry.npmjs.org/@azure-rest%2fmaps-search",
            "seen": "2026-10-08"
          }
        ],
        "openQuestions": [
          "unchecked: the Azure updates feed for Azure Maps, which the docs link in place of an API changelog. We did not open it.",
          "unchecked: the Microsoft Products and Services Data Protection Addendum and the sub-processor list on the Service Trust Portal.",
          "unchecked: whether Azure Maps is on a current SOC 2 or ISO 27001 scope list. Only the FedRAMP audit scope page was read.",
          "unchecked: GitHub issue response times for the Maps client libraries, and their CI.",
          "The pricing page showed our reader no dollar figures, so unit prices come from the Azure Retail Prices API, which lists one $4.50 tier and no volume steps.",
          "When Search 1.0 retires, and whether place search will move to a newer version. The migration guide gives no date.",
          "`lastRelease` is the date of the newest Maps commit in the spec repository (30 September 2026), since no API changelog exists.",
          "The lead was right on the facts checked, with one gap. The current Search version has no place search."
        ]
      },
      "negative": 0,
      "verdict": "Azure Maps publishes OpenAPI documents for every service, per-service rate limits, a 99.9 per cent SLA and written rules on storing results, and Entra ID roles can limit a caller to one service. Place search exists only in Search 1.0, which the newer version has superseded, and the REST client libraries are all beta.",
      "bestFor": "Teams already on Azure that want geocoding and routing under Entra ID roles and one flat price.",
      "strengths": [
        "Public OpenAPI documents for Search, Route, Render, Traffic, Weather, Timezone and Geolocation in `Azure/azure-rest-api-specs`, with examples on every operation",
        "Three credential types. Entra ID with built-in and custom roles, SAS tokens with a 24-hour limit, a rate cap and allowed regions, and two rotatable keys",
        "Default rate limits published per service, 500 requests a second for search, 250 for reverse geocoding and 50 for routing",
        "The product terms state storage rules in writing. Geocodes may be kept while the Azure account is active, other results for six months at most",
        "Responses with 5xx, 401, 403, 408 and 429 are not billed, and the October 2026 SLA commits to 99.9 per cent"
      ],
      "weaknesses": [
        "Place and category search exist only in Search 1.0. Search 2026-01-01, which supersedes it, has geocoding, autocomplete, reverse geocoding and polygons",
        "Every REST client library is a beta. `azure-maps-search` on PyPI was last released on 12 December 2024",
        "The authentication guide tells callers to put the subscription key in the URL, and the key reaches every REST API on the account",
        "An Azure account needs a card and a browser signup before the free monthly transactions apply",
        "No Retry-After header or backoff guidance for 429 was found in the reviewed documentation, and no API changelog page"
      ],
      "agentNotes": [
        "Send the key in the `subscription-key` header, or use `Authorization: Bearer` with `x-ms-client-id`. The key also works as a URL parameter, which leaks into logs.",
        "Call `GET /geocode?api-version=2026-01-01` for addresses. It can return 200 with no results, so check `confidence`, `matchCodes` and the entity type before use.",
        "Use Search 1.0 (`/search/poi/json`, `/search/nearby/json`, `/search/fuzzy/json`) for places. The 2026-01-01 version has no place search.",
        "Use `eu.atlas.microsoft.com` or `us.atlas.microsoft.com` to keep request data in that geography.",
        "Don't store route or tile results beyond six months, and never for serving several users. The product terms allow keeping geocodes while the account is active."
      ],
      "metrics": {
        "kind": "remote",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "B",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 67.9
        }
      ],
      "editorialScores": {
        "ergonomics": 73,
        "maintenance": 67,
        "payments": 20,
        "reliability": 81,
        "schema": 83,
        "security": 66,
        "transparency": 69
      },
      "provenanceScore": 78
    },
    "connect": {
      "install": "pip install azure-maps-search   # or: npm i @azure-rest/maps-search",
      "http": "curl \"https://atlas.microsoft.com/geocode?api-version=2026-01-01\u0026query=15127%20NE%2024th%20Street%2C%20Redmond%2C%20WA\" \\\n  -H \"subscription-key: $AZURE_MAPS_KEY\""
    },
    "letme": {
      "capability": "https://letme.dev/geo.geocode",
      "tool": "https://letme.dev/azure-maps"
    },
    "sameCompany": [
      "azure-foundry-fine-tuning",
      "azure-ai-content-safety",
      "azure-speech-to-text",
      "azure-text-to-speech",
      "microsoft-agent-framework",
      "microsoft-execution-containers",
      "microsoft-entra-agent-id",
      "azure-key-vault",
      "azure-devops-mcp",
      "microsoft-learn-mcp",
      "playwright-mcp",
      "azure-mcp",
      "azure-translator",
      "microsoft-graph-calendar",
      "microsoft-teams",
      "dynamics-365-sales",
      "power-automate",
      "microsoft-advertising-api",
      "microsoft-excel-graph",
      "outlook-mail-graph"
    ],
    "notable": [
      "Search 2026-01-01 has six operations (`/geocode`, `/geocode:autocomplete`, `/geocode:batch`, `/reverseGeocode`, `/reverseGeocode:batch`, `/search/polygon`) and no place search. Points of interest by name, category or nearby remain in Search 1.0 (https://learn.microsoft.com/en-us/rest/api/maps/search?view=rest-maps-1.0)",
      "The migration guide says Search 1.0 is superseded and still works, with no retirement date (https://learn.microsoft.com/en-us/azure/azure-maps/migrate-search-v1-api, dated 30 September 2026)",
      "The product terms forbid turn-by-turn navigation, use with a vehicle's dashboard, combining results with a third-party map database and storing results to serve several users. Geocodes may be stored while the Azure account is active (https://www.microsoft.com/licensing/terms/productoffering/MicrosoftAzure/MCA)",
      "Azure Maps shares address and location queries with TomTom, which Microsoft names as a subprocessor, and says the queries are not linked to a customer or end user (https://learn.microsoft.com/en-us/azure/azure-maps/about-azure-maps)",
      "Render 1.0 retired on 17 September 2026 and the Gen1 pricing tier on 15 September 2026, with accounts converted to Gen2 without new keys (https://learn.microsoft.com/en-us/azure/azure-maps/how-to-manage-pricing-tier)",
      "learn.microsoft.com returns each docs and reference page as Markdown when `?accept=text/markdown` is added to the URL. https://learn.microsoft.com/llms.txt returns 404",
      "No MCP server for Azure Maps appears in the Azure Maps documentation contents (https://learn.microsoft.com/en-us/azure/azure-maps/toc.json)"
    ],
    "area": "everyday",
    "details": [
      {
        "label": "Services",
        "value": "Search (2026-01-01 and 1.0), Route (2025-01-01), Render (2024-04-01), Traffic (2025-01-01), Weather (1.1), Timezone and Geolocation (1.0)"
      },
      {
        "label": "Search 2026-01-01",
        "value": "Geocoding, geocode autocomplete, reverse geocoding, batch forms of up to 100 queries and boundary polygons. GeoJSON responses. `top` from 1 to 20, default 5"
      },
      {
        "label": "Place search",
        "value": "Search 1.0 only. POI by name, by category, nearby, along a route and inside a geometry, with `limit` up to 100 and `ofs` paging"
      },
      {
        "label": "Route 2025-01-01",
        "value": "Directions for car, truck and walking, matrix (sync and async), reachable range and snap to roads, with batches of up to 100"
      },
      {
        "label": "Rate limits",
        "value": "Per second, per account. Search 500, reverse geocoding 250, autocomplete 100, routing 50, batch 10, road tiles 500, satellite tiles 250, static maps 50, traffic 50, weather 50. No daily cap"
      },
      {
        "label": "Credentials",
        "value": "Subscription key (two per account), SAS token (24 hours at most, rate cap, allowed regions) or Microsoft Entra ID with Azure roles"
      },
      {
        "label": "Roles",
        "value": "Azure Maps Search and Render Data Reader, Data Reader, Data Contributor, Data Read and Batch, or a custom role per service such as `Microsoft.Maps/accounts/services/search/read`"
      },
      {
        "label": "Free amount",
        "value": "Each month 5,000 transactions for Search, Geolocation, Timezone, base map tiles and traffic tiles, and 1,000 for Routing, Traffic, Weather, imagery tiles and static images"
      },
      {
        "label": "Billing rules",
        "value": "15 tiles, 4 matrix cells or 10 autocomplete requests make one transaction. 5xx, 401, 403, 408 and 429 responses are not billed"
      },
      {
        "label": "Storage terms",
        "value": "Geocodes may be stored while the Azure account is active. Other results for the header's validity period or six months, whichever is shorter, and only to cut latency"
      },
      {
        "label": "Data location",
        "value": "`eu.atlas.microsoft.com` and `us.atlas.microsoft.com` keep requests in that geography. Korean addresses need consent to processing in Korea Central"
      },
      {
        "label": "SLA",
        "value": "99.9 per cent per API, with 10 per cent credit below that and 25 per cent below 99 per cent (SLA for Online Services, 1 October 2026)"
      },
      {
        "label": "Client libraries",
        "value": "Python `azure-maps-search` 2.0.0b2 (12 December 2024), JavaScript `@azure-rest/maps-search` 2.0.0-beta.4 (22 August 2025), .NET `Azure.Maps.Search` 2.0.0-beta.5 and Java. All beta"
      },
      {
        "label": "Usage records",
        "value": "Azure Monitor metrics for usage, errors and availability, kept 93 days"
      }
    ],
    "unitPrices": [
      {
        "item": "Search (geocoding, reverse geocoding, places)",
        "unit": "1k-requests",
        "usd": 4.5,
        "note": "5,000 free a month. Ten autocomplete requests count as one"
      },
      {
        "item": "Routing",
        "unit": "1k-requests",
        "usd": 4.5,
        "note": "1,000 free a month. Four matrix cells count as one"
      },
      {
        "item": "Base map tiles",
        "unit": "1k-requests",
        "usd": 4.5,
        "note": "5,000 free a month. One transaction is 15 tiles"
      },
      {
        "item": "Traffic",
        "unit": "1k-requests",
        "usd": 4.5,
        "note": "1,000 free a month"
      },
      {
        "item": "Weather",
        "unit": "1k-requests",
        "usd": 4.5,
        "note": "1,000 free a month"
      },
      {
        "item": "Static map images",
        "unit": "1k-requests",
        "usd": 4.5,
        "note": "1,000 free a month"
      }
    ],
    "provenance": {
      "legalEntity": "Microsoft Corporation",
      "domain": "microsoft.com",
      "domainRegistered": "1991-05-02",
      "domainNote": "The API answers at atlas.microsoft.com, with eu.atlas.microsoft.com and us.atlas.microsoft.com for a chosen geography. Docs are on learn.microsoft.com.",
      "endpointOnVendorDomain": true,
      "terms": "https://www.microsoft.com/licensing/terms/productoffering/MicrosoftAzure/MCA",
      "privacy": "https://www.microsoft.com/en-us/privacy/privacystatement",
      "statusPage": "https://azure.status.microsoft/en-us/status",
      "changelog": "",
      "securityTxt": "expired",
      "checked": "2026-10-08",
      "notes": [
        "The Product Terms page for Microsoft Azure carries the Azure Maps service-specific terms (navigation, database, caching and storage, attribution, print and broadcast rules) and points to the Data Protection Addendum and the SLA. Our reader saw no effective date on the page.",
        "The privacy statement (last updated September 2026) names Microsoft Corporation, One Microsoft Way, Redmond, Washington 98052, and Microsoft Ireland Operations Limited in Dublin. It lists Microsoft Azure among the enterprise online services and says the customer's agreement controls where the two conflict.",
        "No changelog for the REST APIs was found in the Azure Maps docs. The release notes there cover the Web SDK map control, drawing tools and spatial module only, and the docs link to the general Azure updates page.",
        "https://www.microsoft.com/.well-known/security.txt shows Expires 2026-09-23T16:00:00.000Z. It points to the MSRC researcher portal, the bounty policy and the coordinated disclosure policy.",
        "RDAP for microsoft.com gives a registration date of 1991-05-02.",
        "The Azure status page is shared by all Azure services and its history lists only broad incidents."
      ],
      "score": 78,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Microsoft Corporation",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "microsoft.com, registered 1991-05-02 (35 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "atlas.microsoft.com",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 4 of the 7 things a reader expects, and has 1 clause that costs points",
          "points": 5.4,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 8 of the 8 things a reader expects, and has 1 clause that costs points",
          "points": 8,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Status page",
          "value": "azure.status.microsoft/en-us/status",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Changelog",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "security.txt",
          "value": "published but past its Expires date",
          "points": 5,
          "max": 10,
          "state": "part"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://www.microsoft.com/licensing/terms/productoffering/MicrosoftAzure/MCA",
          "state": "read",
          "readAt": "2026-10-08",
          "words": 17227,
          "points": 5.4,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": false
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": false
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "Limitation of Liability and Exclusion of Damages: Customer will disclaim liability and exclude damages in a way that is consistent with the provisions of any applicable agreement(s) between Customer and Microsoft."
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "Upon expiration of an Azure Capacity Block, Customer will be evicted from the applicable capacity, and Microsoft will stop or suspend Customer’s use of the applicable Microsoft Azure Services."
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": false
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "Customer will not be refunded payment (paid or scheduled) for unused Azure reservations."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": true,
              "quote": "For each User SL (or equivalent Subscription License Suite) Customer assigns to a user, Customer may also permit up to five additional External Users to access the corresponding Microsoft Entra ID service level."
            }
          ],
          "toKnow": [
            {
              "key": "terms.benchmark",
              "label": "Restricts benchmarking or competitive use",
              "found": true,
              "quote": "Customer will not use and will not allow third parties to use Foundry Tools or data from Foundry Tools to create, train, or improve (directly or indirectly) a similar or competing product or service.",
              "costsPoints": true
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "For Foundry Models sold by Azure, authorised Microsoft employees may review stored input and output content that the automated abuse monitoring has flagged.",
              "quote": "Authorized Microsoft employees may review such data that has triggered our automated systems to investigate and verify potential abuse."
            },
            {
              "date": "2026-10-08",
              "text": "Azure pricing can change at any time under the Microsoft Customer Agreement.",
              "quote": "As stated in the Microsoft Customer Agreement (MCA), Azure pricing is subject to change at any time."
            },
            {
              "date": "2026-10-08",
              "text": "Results from the Bing Search Services may be used only in Internet Search Experiences and may not be cached or copied.",
              "quote": "Customer must use results it obtains from the Bing Search Services only in Internet Search Experiences (as defined in the use and display requirements) and must not cache or copy results."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://www.microsoft.com/en-us/privacy/privacystatement",
          "state": "read",
          "readAt": "2026-10-08",
          "statedDate": "2026-09-01",
          "words": 33580,
          "points": 8,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last Updated: September 2026",
              "says": "Last updated 2026-09-01"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "The data we collect depends on the context of your interactions with Microsoft and the choices you make, including your privacy settings and the products and features you use."
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "When you delete an email or item from a mailbox in Outlook.com, the item generally goes into your Deleted Items folder where it remains for approximately 7 days unless you move it back to your inbox, you empty the folder, or the service empties the folder automatically, whichever comes first.",
              "says": "Names a period of 7 days"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "Service providers that help us determine your device’s location."
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": true,
              "quote": "not use or share student personal data for advertising or similar commercial purposes, such as providing personalized advertising to students;"
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "State Data Privacy Notice (including notice at collection details) and the Consumer Health Data Privacy Policy for additional information about your rights and the processing of your personal data."
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "If you have a privacy concern, complaint, or question for the Microsoft privacy team or Data Protection Officer, please visit our privacy support and requests page and click on “Contact the Microsoft privacy team or the Microsoft Data Protection Officer” menu.",
              "says": "Names a data protection officer"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "In such cases, we implement legal safeguards-such as standard contractual clauses approved by the European Commission – to help protect your rights and ensure your data remains protected.",
              "says": "Relies on standard contractual clauses"
            }
          ],
          "toKnow": [
            {
              "key": "training",
              "label": "Says it may use customer content to train or improve models, and no opt-out was found",
              "found": true,
              "quote": "As part of our efforts to improve and develop our products, we may use your data to develop and train our AI models.",
              "costsPoints": true
            },
            {
              "key": "privacy.sells",
              "label": "Says it sells personal data or shares it for advertising",
              "found": true,
              "quote": "We also disclose personal data for digital advertising purposes."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "For enterprise and developer products, the customer's agreement with Microsoft takes precedence over this privacy statement where the two conflict.",
              "quote": "In the event of a conflict between our privacy statement and the terms of any agreement(s) between a customer and Microsoft for Enterprise and Developer Products, the terms of those agreement(s) will control."
            },
            {
              "date": "2026-10-08",
              "text": "Prompts and related data sent to the consumer Microsoft Copilot are used to improve services and for relevant advertising.",
              "quote": "Microsoft Copilot also uses prompts and related data to provide and improve services, including relevant advertising."
            },
            {
              "date": "2026-10-08",
              "text": "Microsoft staff manually review some results of its automated systems, including AI, against the source data.",
              "quote": "For example, to build, train, and improve the accuracy of our automated systems – such as AI - we manually review some of the results against the underlying data."
            }
          ]
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/azure-maps.json",
    "live": {
      "slug": "azure-maps",
      "probe": {
        "target": "https://atlas.microsoft.com",
        "method": "get",
        "lastAt": "2026-10-08T21:12:04.826843978Z",
        "lastOk": true,
        "lastStatus": 200,
        "lastMs": 552,
        "authRequired": false,
        "uptime24h": 85.71,
        "uptime30d": 85.71,
        "p50ms24h": 391,
        "p95ms24h": 825,
        "samples24h": 21,
        "samples30d": 21,
        "days": [
          {
            "date": "2026-10-08",
            "probes": 21,
            "ok": 18
          }
        ]
      },
      "updatedAt": "2026-10-08T21:12:04.826843978Z"
    }
  }
}
