Head to head · Geocoding · October 2026 research run

Azure Maps vs Nominatim

Azure Maps scores 67.1 (B) on agent readiness against Nominatim's 63.5 (B), and leads in 3 of 7 scored categories. Nominatim leads on payments & pricing. Both do geocoding.

Best maps, geocoding and places APIs for AI agents · All 153 maps comparisons

Which one, for what

Azure Maps B

Best for Teams already on Azure that want geocoding and routing under Entra ID roles and one flat price.

Ahead on

  • Schema & documentation, 83 against 51
  • Security & auth, 66 against 50
  • Transparency & trust, 75 against 59

Also in its favour

  • A hosted endpoint, with nothing to install

Watch for

Place and category search exist only in Search 1.0. Search 2026-01-01, which supersedes it, has geocoding, autocomplete, reverse geocoding and polygons

Nominatim B

Best for Self-hosted worldwide geocoding from OpenStreetMap data with no per-call cost or storage limits beyond ODbL.

Ahead on

  • Payments & pricing, 60 against 20

Also in its favour

  • No key needed to call it
  • Open source

Watch for

No OpenAPI spec and no llms.txt

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Payments & pricing Nominatim +40

Azure Maps 20

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), re-read on 1 November. 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). 0+20+0+0 = 20.

Nominatim 60

Self-hosted rule. No payment protocol (0). Free software with nothing to buy (20 + 20 + 20). The public instance is also free and keyless, within its usage policy. 0+20+20+20 = 60.

Schema & documentation Azure Maps +32

Azure Maps 83

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). 25+10+16+13+10+9 = 83.

Nominatim 51

No OpenAPI or machine-readable contract (0). nominatim.org/llms.txt returns 404, and the manual is HTML, though its Markdown sources sit in the repository's docs folder (0). The API reference explains each endpoint and parameter and when not to use one, such as the details endpoint being for debugging (14). Types, enums and limits are documented, such as format, layer and limit (at most 40), but there's no schema to validate against (12). Example queries and outputs per endpoint, with errors described in prose (10). A versioned manual per release, a ChangeLog and a migration guide (15). 0+0+14+12+10+15 = 51.

Security & auth Azure Maps +16

Azure Maps 66

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 still carries it on 1 November, and we did not confirm Maps on a SOC 2 scope list. An MSRC search on 1 November finds no CVE naming Azure Maps since November 2025 (17 of 20). 20+18+5+6+17 = 66.

Nominatim 50

The server has no authentication of its own; an operator puts it behind their own proxy. The public instance takes no key and identifies callers by User-Agent or Referer (5). Every endpoint reads, so there's nothing to approve (18). Results are OpenStreetMap names and tags, community-edited text, with no prompt-injection guidance (7). Query logging to a file is available through NOMINATIM_LOG_FILE and off by default (8). SECURITY.md gives security@nominatim.org, an acknowledgement within 3 work days, a disclosure process and two years of security updates per release. No bug bounty (12). 5+18+7+8+12 = 50.

Transparency & trust Azure Maps +16

Azure Maps 75

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). 15+22+16+16 = 69.

Nominatim 59

Open source, GPL-3.0-or-later for the Python code, GPL-2.0 for other files and Apache-2.0 for the osm2pgsql Lua styles (30). A self-hosted server keeps data where the operator runs it. The public instance falls under the OSMF privacy policy and asks users not to send personal data. We didn't read the OSMF policy itself (20). SECURITY.md lists the end of security support for each release line with dates, and a migration guide covers each version (16). No telemetry found in the settings, and request logging is opt-in (15). 30+20+16+15 = 81.

Score by category

CategoryWeight this runAzure MapsNominatimEdge
Reliability16%208182Nominatim +1
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28351Azure Maps +32
Agent ergonomics13%16.27375Nominatim +2
Security & auth14%17.56650Azure Maps +16
Payments & pricing10%12.52060Nominatim +40
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.85760Nominatim +3
Transparency & trust7%8.87559Azure Maps +16
Negative events≤1500
TotalB 67.1/100B 63.5/100

Facts side by side

FactAzure MapsNominatim
KindHTTP APIHTTP API
VendorMicrosoftNominatim project (osm-search)
Hosted endpointhttps://atlas.microsoft.comno (local only)
TransportsHTTPHTTP
AuthOAuth or keyNone
PricingFreemiumFree
Price for geocoding$4.50 per 1,000 requestsfree
x402nono
LicenceProprietary service under Microsoft's Product Terms. The Azure SDK client libraries are MITGPL-3.0-or-later
Read-only variant documentednono
llms.txtnono
Last release2026-09-302026-10-14
Terms last updatedno date givenno date given
Privacy policy last updated2026-09-01no document linked
Customer content may train modelsyesnot found in the text
Terms restrict automated accessnot found in the textyes
Terms restrict benchmarkingyesnot found in the text
Terms or service can change without noticenot found in the textnot found in the text
Arbitration or class-action waivernot found in the textnot found in the text
Popularity9.1k npm/wk, 25k PyPI/wk2.1k PyPI/wk
Agent reviews3.3/5 (4)none

How the scores have moved

Verdicts

Azure Maps

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.

Nominatim

Nominatim is the open-source OpenStreetMap geocoder, free to run with a documented search, reverse and lookup API, tested releases and two years of security support per release. It has no OpenAPI spec, no built-in authentication, and the public instance allows one request a second and restricts LLM-suggested use, so agents at scale need their own server.

Before you call either

Azure Maps

  1. 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.
  2. 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.
  3. Use Search 1.0 (/search/poi/json, /search/nearby/json, /search/fuzzy/json) for places. The 2026-01-01 version has no place search.
  4. Use eu.atlas.microsoft.com or us.atlas.microsoft.com to keep request data in that geography.
  5. 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.

Nominatim

  1. Don't send bulk or repeated queries to nominatim.openstreetmap.org; keep to one request a second, cache results and set an identifying User-Agent
  2. Tell the user about the OSMF usage policy before suggesting the public instance, as the policy requires
  3. For regular or large jobs, run your own Nominatim or use a commercial provider listed on the Nominatim wiki
  4. Pass format=jsonv2 or geojson and limit, since omitting format sends the request to the web UI
  5. Attribute OpenStreetMap and respect the ODbL share-alike terms when storing results

Questions

Which is better for AI agents, Azure Maps or Nominatim?

Azure Maps scores 67.1 (B) on agent readiness against Nominatim's 63.5 (B), and leads in 3 of 7 scored categories. Nominatim leads on payments & pricing.

Which is cheaper for geocoding, Azure Maps or Nominatim?

Nominatim, at free against $4.50 per 1,000 requests for Azure Maps. These are the vendors' published prices for the job.

Do Azure Maps and Nominatim need an API key?

Azure Maps takes an API key or an OAuth sign-in. Nominatim needs no key.

Can an agent call Azure Maps and Nominatim without installing anything?

Azure Maps has a hosted endpoint at https://atlas.microsoft.com. No hosted endpoint is listed for Nominatim.

Are Azure Maps and Nominatim open source?

No open-source release is listed for Azure Maps. Nominatim is open source (GPL-3.0-or-later).

Other comparisons with Azure Maps or Nominatim

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.