{
  "data": {
    "a": {
      "slug": "nominatim",
      "name": "Nominatim",
      "vendor": "Nominatim project (osm-search)",
      "vendorUrl": "https://nominatim.org",
      "kind": "http-api",
      "category": "maps",
      "summary": "Nominatim is open-source geocoding software that searches OpenStreetMap data by name and address and reverse geocodes coordinates. Operators self-host its HTTP API; the OpenStreetMap Foundation runs a free public instance under a strict usage policy.",
      "url": "https://www.anchorterminal.com/tools/nominatim",
      "markdownUrl": "https://www.anchorterminal.com/tools/nominatim.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nominatim.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nominatim.json",
      "dns": "nominatim.grade.anchorterminal.com",
      "repo": "https://github.com/osm-search/Nominatim",
      "license": "GPL-3.0-or-later",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "nominatim-api"
        },
        {
          "registry": "pypi",
          "name": "nominatim-db"
        }
      ],
      "auth": "none",
      "authNotes": "The server has no authentication; operators add it with their own proxy. The public instance at nominatim.openstreetmap.org takes no key but requires a valid User-Agent or Referer identifying the application.",
      "pricing": "free",
      "pricingNotes": "Free software. The public instance is free within its usage policy (at most 1 request a second, no bulk or systematic use). Commercial hosted Nominatim is sold by third parties, not by the project.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No payment protocol in the server or the docs (checked 2026-11-06). The software is free.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": 2052,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://nominatim.org/release-docs/latest/api/Overview/",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.places"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "free",
        "no-auth",
        "no-key",
        "python",
        "open-data",
        "local"
      ],
      "lastRelease": "2026-10-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.5,
        "grade": "B",
        "agentReady": false,
        "rank": 513,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 60,
          "payments": 60,
          "reliability": 82,
          "schema": 51,
          "security": 50,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "Self-hosted worldwide geocoding from OpenStreetMap data with no per-call cost or storage limits beyond ODbL.",
        "strengths": [
          "Open source under GPL, free to self-host with no key and nothing to buy",
          "Search, reverse, lookup and status endpoints with limit, layer, country and viewbox filters",
          "Release 5.3.3 on 14 October 2026, with a ChangeLog and two years of security updates per release line",
          "SECURITY.md with a security address, a 3-work-day acknowledgement and a disclosure process",
          "CI runs unit and BDD tests on every push across PostgreSQL 13 to 18"
        ],
        "weaknesses": [
          "No OpenAPI spec and no llms.txt",
          "The public instance allows at most one request a second, no autocomplete, no systematic queries and no reselling",
          "The usage policy says LLMs may suggest the public API only while pointing to the policy, and bars it from no-code and vibe-coding platforms",
          "No authentication in the server, so access control is the operator's job",
          "A full planet import needs substantial hardware and time to set up"
        ],
        "agentNotes": [
          "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",
          "Tell the user about the OSMF usage policy before suggesting the public instance, as the policy requires",
          "For regular or large jobs, run your own Nominatim or use a commercial provider listed on the Nominatim wiki",
          "Pass format=jsonv2 or geojson and limit, since omitting format sends the request to the web UI",
          "Attribute OpenStreetMap and respect the ODbL share-alike terms when storing results"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.5
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 60,
          "payments": 60,
          "reliability": 82,
          "schema": 51,
          "security": 50,
          "transparency": 81
        },
        "provenanceScore": 37,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install nominatim-db nominatim-api",
        "http": "curl -A \"my-app/1.0 (contact@example.com)\" \"https://nominatim.openstreetmap.org/search?q=Dresden\u0026format=jsonv2\u0026limit=1\""
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/nominatim"
      },
      "area": "everyday",
      "provenance": {
        "legalEntity": "",
        "domain": "nominatim.org",
        "domainRegistered": "2010-05-20",
        "endpointOnVendorDomain": false,
        "terms": "https://operations.osmfoundation.org/policies/nominatim/",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/osm-search/Nominatim/blob/master/ChangeLog",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "No company stands behind the software. The nominatim.org imprint names its maintainer Sarah Hoffmann as the person who runs the site.",
          "The terms listed are the OSMF usage policy for the public instance, which is run by the OpenStreetMap Foundation and is also governed by the OSMF Terms of Use. The licence governs the software.",
          "nominatim.openstreetmap.org's robots.txt disallows /search, /reverse, /lookup, /details and /status, so no request was sent there.",
          "nominatim.org has no robots.txt (404) and no llms.txt. Security reports go to security@nominatim.org per SECURITY.md; no security.txt was looked for beyond that file.",
          "RDAP gives nominatim.org a registration date of 20 May 2010.",
          "A request to pypi.org/pypi/nominatim-api/json, disallowed by PyPI's robots.txt, was sent by mistake on 6 November 2026; release dates are taken from PyPI's allowed RSS release feed instead."
        ],
        "score": 37
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nominatim.json",
      "live": {
        "slug": "nominatim",
        "versions": [
          {
            "registry": "github",
            "name": "osm-search/Nominatim",
            "version": "v5.3.3",
            "released": "2026-10-14",
            "seenAt": "2026-11-06T23:49:38.546585976Z"
          },
          {
            "registry": "pypi",
            "name": "nominatim-api",
            "version": "5.3.3",
            "released": "2026-10-14",
            "seenAt": "2026-11-06T23:49:36.460811725Z"
          },
          {
            "registry": "pypi",
            "name": "nominatim-db",
            "version": "5.3.3",
            "released": "2026-10-14",
            "seenAt": "2026-11-06T23:49:36.677899359Z"
          }
        ],
        "githubStars": 4553,
        "pypiWeekly": 2052,
        "securityTxt": {
          "url": "https://nominatim.org/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:36.659918342Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/osm-search/Nominatim/master/ChangeLog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:22:43.498875362Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d293d5592f9f"
          },
          {
            "url": "https://operations.osmfoundation.org/policies/nominatim/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:39.38384818Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e7342ba42b14"
          }
        ],
        "updatedAt": "2026-11-07T16:00:36.659918342Z"
      }
    },
    "answer": "Stadia Maps scores 65.2 (B) on agent readiness against Nominatim's 63.5 (B), and leads in 4 of 7 scored categories. Nominatim leads on reliability, security \u0026 auth and payments \u0026 pricing.",
    "b": {
      "slug": "stadia-maps",
      "name": "Stadia Maps",
      "vendor": "Stadia Maps",
      "vendorUrl": "https://stadiamaps.com",
      "kind": "http-api",
      "category": "maps",
      "summary": "Geocoding, reverse geocoding, autocomplete and place details, routing, matrix, isochrones, static maps and hosted vector, raster and satellite tiles, sold in credits on plans from $20 a month.",
      "url": "https://www.anchorterminal.com/tools/stadia-maps",
      "markdownUrl": "https://www.anchorterminal.com/tools/stadia-maps.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/stadia-maps.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/stadia-maps.json",
      "dns": "stadia-maps.grade.anchorterminal.com",
      "repo": "https://github.com/stadiamaps/stadiamaps-mcp-server-ts",
      "license": "BSD-3-Clause (MCP server)",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.stadiamaps.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@stadiamaps/api"
        },
        {
          "registry": "pypi",
          "name": "stadiamaps"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key as the api_key query parameter or in an `Authorization: Stadia-Auth \u003ckey\u003e` header. Browser apps can use domain-based auth with no key, checked against the Origin and Referer headers. The MCP server reads API_KEY.",
      "pricing": "freemium",
      "pricingNotes": "Free 200,000 credits a month for development, testing and demos only, no commercial use. Starter $20 a month (1 million credits), Standard $80 (7.5 million), Professional $250 (25 million), with overage at $0.03, $0.02 and $0.015 per 1,000 credits. A forward, reverse or structured geocode, a place lookup, an Autocomplete v1 search or a route is 20 credits, Autocomplete v2 is 1, a matrix element 10, a map tile 1 and a satellite tile 4, so Starter covers 50,000 geocodes. New accounts get a 14-day Professional trial with no card (https://stadiamaps.com/pricing/). When credits run out you get 429 until the next cycle unless pay-as-you-go is on (https://stadiamaps.com/faqs/).",
      "priceSummary": "$20 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 6,
      "popularity": {
        "githubStars": 23,
        "npmWeekly": 6058,
        "pypiWeekly": 192,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.stadiamaps.com",
      "llmsTxt": "https://docs.stadiamaps.com/llms.txt",
      "openapi": "https://api.stadiamaps.com/openapi.yaml",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.places",
        "geo.routing",
        "geo.tiles"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "official",
        "typescript",
        "python",
        "free-tier",
        "no-card",
        "open-data"
      ],
      "lastRelease": "2026-10-26",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.2,
        "grade": "B",
        "agentReady": false,
        "rank": 433,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 8,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 80,
          "payments": 40,
          "reliability": 63,
          "schema": 86,
          "security": 40,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": 0,
        "verdict": "Public OpenAPI spec (11.1.0) with generated TypeScript and Python SDKs. Free plan is for development, testing and demos only.",
        "bestFor": "Cost-sensitive geocoding, routing and tiles on OpenStreetMap data, with traffic-influenced routing since April 2026.",
        "strengths": [
          "Public OpenAPI spec (11.1.0) with generated TypeScript and Python SDKs",
          "Published credit costs, with 50,000 geocodes for $20 a month on Starter",
          "Header auth keeps the key out of URLs, and keys rotate through an API",
          "Server logs kept about 7 to 14 days, and a DPA",
          "14 dated changelog entries between June and September 2026"
        ],
        "weaknesses": [
          "Free plan is for development, testing and demos only",
          "The same 429 signals a burst or a spent month of credits, with no Retry-After",
          "No SLA, no security.txt and no disclosure policy found",
          "MCP server has no release, no CI and no commits since 29 July 2025",
          "The terms forbid benchmarking against competitors without written permission"
        ],
        "agentNotes": [
          "Send the key as `Authorization: Stadia-Auth \u003ckey\u003e` rather than in the URL",
          "Try Autocomplete v2 (1 credit) before a full geocode (20 credits) when a name is enough",
          "Check the dashboard's credit balance before retrying a 429, since it may mean the month is spent",
          "Don't write geocodes to a database on Free or Starter",
          "Use bulk-geocode for addresses only, not POI names"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.2
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 80,
          "payments": 40,
          "reliability": 63,
          "schema": 86,
          "security": 40,
          "transparency": 72
        },
        "provenanceScore": 80,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-10-08",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -H \"Authorization: Stadia-Auth $STADIA_API_KEY\" \"https://api.stadiamaps.com/geocoding/v1/search?text=10%20Downing%20Street%2C%20London\u0026size=1\""
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/stadia-maps"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 20,
          "note": "1 million credits, about 50,000 geocodes"
        },
        {
          "item": "Standard plan",
          "unit": "month",
          "usd": 80,
          "note": "7.5 million credits, permanent geocode storage"
        },
        {
          "item": "Professional plan",
          "unit": "month",
          "usd": 250,
          "note": "25 million credits"
        },
        {
          "item": "Geocoding within Starter",
          "unit": "1k-requests",
          "usd": 0.4,
          "note": "20 credits each, $20 for 1 million credits"
        },
        {
          "item": "Geocoding overage on Starter",
          "unit": "1k-requests",
          "usd": 0.6,
          "note": "20 credits each at $0.03 per 1,000 credits"
        }
      ],
      "provenance": {
        "legalEntity": "Stadia Maps, Inc.",
        "domain": "stadiamaps.com",
        "domainRegistered": "2016-11-30",
        "endpointOnVendorDomain": true,
        "terms": "https://stadiamaps.com/terms-of-service/",
        "privacy": "https://stadiamaps.com/privacy/privacy-policy/",
        "statusPage": "https://status.stadiamaps.com",
        "changelog": "https://stadiamaps.com/changelog/",
        "securityTxt": "none",
        "checked": "2026-11-02",
        "notes": [
          "The terms name Stadia Maps, Inc., a Delaware corporation with an address in East Lansing, Michigan, under Delaware law. Last updated 18 March 2026.",
          "Pages showing Traffic Products must carry \"© Stadia Maps © TomTom\".",
          "stadiamaps.com/.well-known/security.txt returned 404 on 2026-09-30 and again on 2026-11-02."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/stadia-maps.json",
      "live": {
        "slug": "stadia-maps",
        "probe": {
          "target": "https://api.stadiamaps.com",
          "method": "get",
          "lastAt": "2026-11-07T19:22:35.986794709Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 59,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 38,
          "p95ms24h": 121,
          "samples24h": 238,
          "samples30d": 7920,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.stadiamaps.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:48.860153105Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@stadiamaps/api",
            "version": "9.1.0",
            "seenAt": "2026-11-07T00:08:18.390771756Z"
          },
          {
            "registry": "pypi",
            "name": "stadiamaps",
            "version": "8.1.0",
            "released": "2026-04-27",
            "seenAt": "2026-11-07T00:08:19.436197982Z"
          }
        ],
        "githubStars": 25,
        "npmWeekly": 5629,
        "pypiWeekly": 257,
        "securityTxt": {
          "url": "https://stadiamaps.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:53.421563591Z"
        },
        "llmsTxt": {
          "url": "https://docs.stadiamaps.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:34:02.632314399Z"
        },
        "domain": {
          "domain": "stadiamaps.com",
          "registered": "2016-11-30",
          "source": "https://rdap.verisign.com/com/v1/domain/stadiamaps.com",
          "checkedAt": "2026-11-01T14:16:14.439995302Z"
        },
        "pages": [
          {
            "url": "https://stadiamaps.com/changelog/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-07T14:20:47.194860696Z",
            "changedAt": "2026-11-03T07:59:24.869309921Z",
            "fingerprint": "84f157f93d47"
          },
          {
            "url": "https://stadiamaps.com/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:20:49.286778217Z",
            "changedAt": "2026-10-30T05:49:14.583115496Z",
            "fingerprint": "1129178e256e"
          },
          {
            "url": "https://stadiamaps.com/privacy/privacy-policy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:20:51.230633816Z",
            "changedAt": "2026-10-30T05:49:16.651265989Z",
            "fingerprint": "dea22601908a"
          },
          {
            "url": "https://stadiamaps.com/terms-of-service/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:20:53.28669173Z",
            "changedAt": "2026-10-30T05:49:18.614187045Z",
            "fingerprint": "f6e28a9f6a07"
          }
        ],
        "github": {
          "repo": "stadiamaps/stadiamaps-mcp-server-ts",
          "checkedAt": "2026-11-02T09:27:58.17869331Z",
          "stars": 25,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2025-07-29T09:13:45Z",
          "openIssues": 1,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "replies": {
            "sampled": 1,
            "unanswered": 1
          }
        },
        "updatedAt": "2026-11-07T19:22:35.986794709Z"
      }
    },
    "edges": [
      {
        "by": 35,
        "category": "schema",
        "leads": "stadia-maps",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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.",
          "b": "Public OpenAPI 3.1.0 document at api.stadiamaps.com/openapi.yaml, version 11.1.0 (re-read on 2 November), from which the TypeScript and Python SDKs are generated (25). llms.txt at docs.stadiamaps.com, re-read on 2 November (10). The MCP's six tool descriptions say when not to use a tool, for example bulk-geocode warns against POI names (14). Zod inputs with minimums such as at least two route locations, but some fields are loose strings (12). Docs examples per endpoint. We didn't read an error reference (10). A dated public changelog with 14 entries between 12 August and 26 October 2026 and a Keep a Changelog file in each SDK (15). 25+10+14+12+10+15 = 86."
        },
        "scores": {
          "a": 51,
          "b": 86
        }
      },
      {
        "by": 20,
        "category": "payments",
        "leads": "nominatim",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "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.",
          "b": "No x402, MPP or L402 (0). Credit costs per call and per-1,000-credit overage ($0.03, $0.02 and $0.015) published without login, re-read on 2 November (20). Free tier of 200,000 credits a month and a 14-day Professional trial without a credit card, though the free tier doesn't allow commercial use (20). Signup is a browser flow (0). 0+20+20+0 = 40."
        },
        "scores": {
          "a": 60,
          "b": 40
        }
      },
      {
        "by": 20,
        "category": "maintenance",
        "leads": "stadia-maps",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Release 5.3.3 on 14 October 2026, 23 days before this check (30). Only one release in the 90 days from 8 August, against 106 commits on the default branch; commits aren't counted as releases (0). Commits from the lead maintainer and seven or more contributors since August, but we couldn't read issue reply times (12). The nominatim-api Python library is current with the server (10). CI on every push, current PostgreSQL and Python versions (8). 30+0+12+10+8 = 60.",
          "b": "Changelog entry on 26 October 2026, a forward geocoding fix for Unicode edge cases (30). 14 dated changelog entries between 12 August and 26 October 2026, among them the 20 October Static Maps rebuild and the 17 October geocoding data release (20). A public changelog and support desk, but the MCP repo's last commit is still 29 July 2025 on 2 November (10). Official TypeScript SDK v9.1.0 and Python SDK v8.1.0, both tagged 27 April 2026 and still the newest tags (15). SDK CI runs integration tests against the live API, but the MCP server has no CI, no tagged release, no npm package and no registry entry (5). 30+20+10+15+5 = 80."
        },
        "scores": {
          "a": 60,
          "b": 80
        }
      },
      {
        "by": 19,
        "category": "reliability",
        "leads": "nominatim",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the local-software lines, since the listing is the Nominatim server an operator runs. The public instance at nominatim.openstreetmap.org belongs to the OpenStreetMap Foundation and its usage policy caps it at one request a second, so it isn't graded as a hosted service. Official packages nominatim-db and nominatim-api on PyPI (5.3.3 on 14 October 2026, Python 3.9 or later) and installation guides for Ubuntu 22 and 24 (20). A public CI workflow runs unit and BDD tests on every push across Ubuntu 24 and 26 with PostgreSQL 13 to 18, and Windows unit tests. We couldn't see run results (20). Issue counts and reply times couldn't be read because the GitHub API was rate-limited for us; Sarah Hoffmann made 76 of the 106 commits since 8 August (12). A ChangeLog per release and semantic version numbers (15). Version 5.3.3 (15). 20+20+12+15+15 = 82.",
          "b": "Instatus page with 27 components across maps, routing, geocoding and data APIs, plus RSS and Atom history back to April 2025 (20). One incident in the 90 days to 2 November (history feed re-read on 2 November), on 25 September 2026, when a software update on edge nodes caused elevated request errors \"in the initial deployment regions\" across 24 listed components from 10:20 to 10:22 UTC before it was rolled back. Limited to some regions and two minutes, so minor (20). The FAQ says there's no fixed requests-a-second limit and the cap is the monthly credit pool, with credits per call published (12). A 429 is what you get when credits run out until the next cycle, with no Retry-After and no backoff guidance, so an agent can't tell a spent month from a burst (3). No SLA. The terms say the service is provided as is (0). The APIs are GA, but the MCP server has no release (8). 20+20+12+3+0+8 = 63."
        },
        "scores": {
          "a": 82,
          "b": 63
        }
      },
      {
        "by": 17,
        "category": "transparency",
        "leads": "stadia-maps",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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.",
          "b": "Closed service with clear terms, last updated 18 March 2026, a BSD-3-Clause MCP server and open-source SDKs (20). Server logs kept about 7 to 14 days, account data deleted within 30 days of closure, a DPA, and per-plan storage rules spelt out. The privacy policy was updated 1 October 2026 (28). No deprecation policy. The terms promise 30 days' notice for fee increases and reasonable efforts for other material changes (6). Third-party processors listed with locations in the privacy policy, and hosting described as primarily US (18). 20+28+6+18 = 72."
        },
        "scores": {
          "a": 59,
          "b": 76
        }
      },
      {
        "by": 10,
        "category": "security",
        "leads": "nominatim",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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.",
          "b": "Revocable keys per property with rotation through the Account Management API and a header option (`Authorization: Stadia-Auth`), which earns 25. Less 10 because api_key in the query string is a documented option (the authentication page re-read on 2 November calls it the simplest) and the OpenAPI document defines only that scheme (15). The APIs only read, but keys aren't scoped to particular APIs (12). Results carry OpenStreetMap names, websites and opening hours, which are community-edited text, and we found no prompt-injection guidance (7). Dashboard usage and billing threshold alerts added on 20 August 2026 (6). stadiamaps.com/.well-known/security.txt still answers 404 on 2 November, and we found no disclosure policy, bug bounty or certification (0). 15+12+7+6+0 = 40."
        },
        "scores": {
          "a": 50,
          "b": 40
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Nominatim project (osm-search)",
        "b": "Stadia Maps",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.stadiamaps.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "free",
        "b": "$0.40 per 1,000 requests",
        "name": "Price for geocoding"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "GPL-3.0-or-later",
        "b": "BSD-3-Clause (MCP server)",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "6",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-14",
        "b": "2026-10-26",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-03-18",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-10-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2.1k PyPI/wk",
        "b": "23 stars, 6.1k npm/wk, 192 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Stadia Maps scores 65.2 (B) on agent readiness against Nominatim's 63.5 (B), and leads in 4 of 7 scored categories. Nominatim leads on reliability, security \u0026 auth and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Nominatim or Stadia Maps?"
      },
      {
        "answer": "Nominatim, at free against $0.40 per 1,000 requests for Stadia Maps. These are the vendors' published prices for the job.",
        "question": "Which is cheaper for geocoding, Nominatim or Stadia Maps?"
      },
      {
        "answer": "Nominatim needs no key. Stadia Maps needs an API key.",
        "question": "Do Nominatim and Stadia Maps need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Nominatim. Stadia Maps has a hosted endpoint at https://api.stadiamaps.com.",
        "question": "Can an agent call Nominatim and Stadia Maps without installing anything?"
      },
      {
        "answer": "Nominatim is open source (GPL-3.0-or-later). No open-source release is listed for Stadia Maps.",
        "question": "Are Nominatim and Stadia Maps open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 82 against 63",
          "Security \u0026 auth, 50 against 40",
          "Payments \u0026 pricing, 60 against 40"
        ],
        "also": [
          "No key needed to call it",
          "Open source"
        ],
        "goodFor": "Self-hosted worldwide geocoding from OpenStreetMap data with no per-call cost or storage limits beyond ODbL.",
        "slug": "nominatim",
        "watchFor": "No OpenAPI spec and no llms.txt"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 86 against 51",
          "Agent ergonomics, 80 against 75",
          "Maintenance \u0026 community, 80 against 60",
          "Transparency \u0026 trust, 76 against 59"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "Cost-sensitive geocoding, routing and tiles on OpenStreetMap data, with traffic-influenced routing since April 2026.",
        "slug": "stadia-maps",
        "watchFor": "Free plan is for development, testing and demos only"
      }
    ],
    "history": {
      "nominatim": null,
      "stadia-maps": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.3,
          "from": 65.5,
          "fromGrade": "B",
          "to": 65.2,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "geo.geocode",
      "name": "Geocoding"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-nominatim.json",
        "title": "Amazon Location Service vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-stadia-maps.json",
        "title": "Amazon Location Service vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-nominatim.json",
        "title": "ArcGIS Location Platform vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-stadia-maps.json",
        "title": "ArcGIS Location Platform vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-maps-vs-nominatim.json",
        "title": "Azure Maps vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/azure-maps-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-maps-vs-stadia-maps.json",
        "title": "Azure Maps vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/azure-maps-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-nominatim.json",
        "title": "Geoapify Location Platform + MCP vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-stadia-maps.json",
        "title": "Geoapify Location Platform + MCP vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-nominatim.json",
        "title": "Geocodio vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-stadia-maps.json",
        "title": "Geocodio vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-maps-platform-vs-nominatim.json",
        "title": "Google Maps Platform + Grounding Lite MCP vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/google-maps-platform-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-maps-platform-vs-stadia-maps.json",
        "title": "Google Maps Platform + Grounding Lite MCP vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/google-maps-platform-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/here-location-services-vs-nominatim.json",
        "title": "HERE Location Services vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/here-location-services-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/here-location-services-vs-stadia-maps.json",
        "title": "HERE Location Services vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/here-location-services-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-nominatim.json",
        "title": "LocationIQ vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-stadia-maps.json",
        "title": "LocationIQ vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mapbox-vs-nominatim.json",
        "title": "Mapbox APIs + MCP vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/mapbox-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mapbox-vs-stadia-maps.json",
        "title": "Mapbox APIs + MCP vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/mapbox-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mapquest-vs-nominatim.json",
        "title": "MapQuest vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/mapquest-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mapquest-vs-stadia-maps.json",
        "title": "MapQuest vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/mapquest-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/maptiler-vs-nominatim.json",
        "title": "MapTiler Cloud vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/maptiler-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/maptiler-vs-stadia-maps.json",
        "title": "MapTiler Cloud vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/maptiler-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nextbillion-vs-nominatim.json",
        "title": "NextBillion.ai vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/nextbillion-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nominatim-vs-opencage.json",
        "title": "Nominatim vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/nominatim-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nominatim-vs-radar.json",
        "title": "Nominatim vs Radar",
        "url": "https://www.anchorterminal.com/compare/nominatim-vs-radar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nominatim-vs-tomtom.json",
        "title": "Nominatim vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/nominatim-vs-tomtom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nominatim-vs-woosmap.json",
        "title": "Nominatim vs Woosmap",
        "url": "https://www.anchorterminal.com/compare/nominatim-vs-woosmap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opencage-vs-stadia-maps.json",
        "title": "OpenCage Geocoding API vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/opencage-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/radar-vs-stadia-maps.json",
        "title": "Radar vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/radar-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stadia-maps-vs-tomtom.json",
        "title": "Stadia Maps vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/stadia-maps-vs-tomtom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stadia-maps-vs-woosmap.json",
        "title": "Stadia Maps vs Woosmap",
        "url": "https://www.anchorterminal.com/compare/stadia-maps-vs-woosmap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nextbillion-vs-stadia-maps.json",
        "title": "NextBillion.ai vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/nextbillion-vs-stadia-maps"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 19,
        "edge": "nominatim",
        "key": "reliability",
        "name": "Reliability",
        "nominatim": 82,
        "stadia-maps": 63,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 35,
        "edge": "stadia-maps",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "nominatim": 51,
        "stadia-maps": 86,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "stadia-maps",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "nominatim": 75,
        "stadia-maps": 80,
        "weight": 13
      },
      {
        "by": 10,
        "edge": "nominatim",
        "key": "security",
        "name": "Security \u0026 auth",
        "nominatim": 50,
        "stadia-maps": 40,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "nominatim",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "nominatim": 60,
        "stadia-maps": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 20,
        "edge": "stadia-maps",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "nominatim": 60,
        "stadia-maps": 80,
        "weight": 7
      },
      {
        "by": 17,
        "edge": "stadia-maps",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "nominatim": 59,
        "stadia-maps": 76,
        "weight": 7
      }
    ],
    "summary": "Stadia Maps scores 65.2 (B) on agent readiness against Nominatim's 63.5 (B), and leads in 4 of 7 scored categories. Nominatim leads on reliability, security \u0026 auth and payments \u0026 pricing. Both do geocoding.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "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.",
      "stadia-maps": "Public OpenAPI spec (11.1.0) with generated TypeScript and Python SDKs. Free plan is for development, testing and demos only."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps",
    "json": "https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps.min.md"
  },
  "markdown": "Stadia Maps scores 65.2 (B) on agent readiness against Nominatim's 63.5 (B), and leads in 4 of 7 scored categories. Nominatim leads on reliability, security \u0026 auth and payments \u0026 pricing. Both do geocoding.\n\n- Nominatim: grade B, 63.5/100, rank #513 of 1510. Markdown https://www.anchorterminal.com/tools/nominatim.md · JSON https://www.anchorterminal.com/api/v1/tools/nominatim.json\n- Stadia Maps: grade B, 65.2/100, rank #433 of 1510. Markdown https://www.anchorterminal.com/tools/stadia-maps.md · JSON https://www.anchorterminal.com/api/v1/tools/stadia-maps.json\n- Best maps, geocoding and places APIs for AI agents: https://www.anchorterminal.com/best/maps/index.md\n- All 153 maps comparisons: https://www.anchorterminal.com/compare/maps/index.md\n\n## Which one, for what\n\n### Nominatim (B)\n\nGood for: Self-hosted worldwide geocoding from OpenStreetMap data with no per-call cost or storage limits beyond ODbL.\n\nAhead on:\n- Reliability, 82 against 63\n- Security \u0026 auth, 50 against 40\n- Payments \u0026 pricing, 60 against 40\n\nAlso in its favour:\n- No key needed to call it\n- Open source\n\nWatch for: No OpenAPI spec and no llms.txt\n\n### Stadia Maps (B)\n\nGood for: Cost-sensitive geocoding, routing and tiles on OpenStreetMap data, with traffic-influenced routing since April 2026.\n\nAhead on:\n- Schema \u0026 documentation, 86 against 51\n- Agent ergonomics, 80 against 75\n- Maintenance \u0026 community, 80 against 60\n- Transparency \u0026 trust, 76 against 59\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: Free plan is for development, testing and demos only\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Stadia Maps +35\n\n- 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.\n- Stadia Maps (86): Public OpenAPI 3.1.0 document at api.stadiamaps.com/openapi.yaml, version 11.1.0 (re-read on 2 November), from which the TypeScript and Python SDKs are generated (25). llms.txt at docs.stadiamaps.com, re-read on 2 November (10). The MCP's six tool descriptions say when not to use a tool, for example bulk-geocode warns against POI names (14). Zod inputs with minimums such as at least two route locations, but some fields are loose strings (12). Docs examples per endpoint. We didn't read an error reference (10). A dated public changelog with 14 entries between 12 August and 26 October 2026 and a Keep a Changelog file in each SDK (15). 25+10+14+12+10+15 = 86.\n\n### Payments \u0026 pricing: Nominatim +20\n\n- 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.\n- Stadia Maps (40): No x402, MPP or L402 (0). Credit costs per call and per-1,000-credit overage ($0.03, $0.02 and $0.015) published without login, re-read on 2 November (20). Free tier of 200,000 credits a month and a 14-day Professional trial without a credit card, though the free tier doesn't allow commercial use (20). Signup is a browser flow (0). 0+20+20+0 = 40.\n\n### Maintenance \u0026 community: Stadia Maps +20\n\n- Nominatim (60): Release 5.3.3 on 14 October 2026, 23 days before this check (30). Only one release in the 90 days from 8 August, against 106 commits on the default branch; commits aren't counted as releases (0). Commits from the lead maintainer and seven or more contributors since August, but we couldn't read issue reply times (12). The nominatim-api Python library is current with the server (10). CI on every push, current PostgreSQL and Python versions (8). 30+0+12+10+8 = 60.\n- Stadia Maps (80): Changelog entry on 26 October 2026, a forward geocoding fix for Unicode edge cases (30). 14 dated changelog entries between 12 August and 26 October 2026, among them the 20 October Static Maps rebuild and the 17 October geocoding data release (20). A public changelog and support desk, but the MCP repo's last commit is still 29 July 2025 on 2 November (10). Official TypeScript SDK v9.1.0 and Python SDK v8.1.0, both tagged 27 April 2026 and still the newest tags (15). SDK CI runs integration tests against the live API, but the MCP server has no CI, no tagged release, no npm package and no registry entry (5). 30+20+10+15+5 = 80.\n\n### Reliability: Nominatim +19\n\n- Nominatim (82): Read with the local-software lines, since the listing is the Nominatim server an operator runs. The public instance at nominatim.openstreetmap.org belongs to the OpenStreetMap Foundation and its usage policy caps it at one request a second, so it isn't graded as a hosted service. Official packages nominatim-db and nominatim-api on PyPI (5.3.3 on 14 October 2026, Python 3.9 or later) and installation guides for Ubuntu 22 and 24 (20). A public CI workflow runs unit and BDD tests on every push across Ubuntu 24 and 26 with PostgreSQL 13 to 18, and Windows unit tests. We couldn't see run results (20). Issue counts and reply times couldn't be read because the GitHub API was rate-limited for us; Sarah Hoffmann made 76 of the 106 commits since 8 August (12). A ChangeLog per release and semantic version numbers (15). Version 5.3.3 (15). 20+20+12+15+15 = 82.\n- Stadia Maps (63): Instatus page with 27 components across maps, routing, geocoding and data APIs, plus RSS and Atom history back to April 2025 (20). One incident in the 90 days to 2 November (history feed re-read on 2 November), on 25 September 2026, when a software update on edge nodes caused elevated request errors \"in the initial deployment regions\" across 24 listed components from 10:20 to 10:22 UTC before it was rolled back. Limited to some regions and two minutes, so minor (20). The FAQ says there's no fixed requests-a-second limit and the cap is the monthly credit pool, with credits per call published (12). A 429 is what you get when credits run out until the next cycle, with no Retry-After and no backoff guidance, so an agent can't tell a spent month from a burst (3). No SLA. The terms say the service is provided as is (0). The APIs are GA, but the MCP server has no release (8). 20+20+12+3+0+8 = 63.\n\n### Transparency \u0026 trust: Stadia Maps +17\n\n- 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.\n- Stadia Maps (76): Closed service with clear terms, last updated 18 March 2026, a BSD-3-Clause MCP server and open-source SDKs (20). Server logs kept about 7 to 14 days, account data deleted within 30 days of closure, a DPA, and per-plan storage rules spelt out. The privacy policy was updated 1 October 2026 (28). No deprecation policy. The terms promise 30 days' notice for fee increases and reasonable efforts for other material changes (6). Third-party processors listed with locations in the privacy policy, and hosting described as primarily US (18). 20+28+6+18 = 72.\n\n### Security \u0026 auth: Nominatim +10\n\n- 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.\n- Stadia Maps (40): Revocable keys per property with rotation through the Account Management API and a header option (`Authorization: Stadia-Auth`), which earns 25. Less 10 because api_key in the query string is a documented option (the authentication page re-read on 2 November calls it the simplest) and the OpenAPI document defines only that scheme (15). The APIs only read, but keys aren't scoped to particular APIs (12). Results carry OpenStreetMap names, websites and opening hours, which are community-edited text, and we found no prompt-injection guidance (7). Dashboard usage and billing threshold alerts added on 20 August 2026 (6). stadiamaps.com/.well-known/security.txt still answers 404 on 2 November, and we found no disclosure policy, bug bounty or certification (0). 15+12+7+6+0 = 40.\n\n## Score by category\n\n| Category | Weight | Nominatim | Stadia Maps | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 82 | 63 | Nominatim +19 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 51 | 86 | Stadia Maps +35 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 80 | Stadia Maps +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 50 | 40 | Nominatim +10 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 40 | Nominatim +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 60 | 80 | Stadia Maps +20 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 59 | 76 | Stadia Maps +17 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.5 · B** | **65.2 · B** | |\n\n## Facts side by side\n\n| Fact | Nominatim | Stadia Maps |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Nominatim project (osm-search) | Stadia Maps |\n| Hosted endpoint | no (local only) | `https://api.stadiamaps.com` |\n| Transports | HTTP | HTTP, stdio |\n| Auth | None | API key |\n| Pricing | Free | Freemium |\n| Price for geocoding | free | $0.40 per 1,000 requests |\n| x402 | no | no |\n| Licence | GPL-3.0-or-later | BSD-3-Clause (MCP server) |\n| Tools exposed | none | 6 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-14 | 2026-10-26 |\n| Terms last updated | no date given | 2026-03-18 |\n| Privacy policy last updated | no document linked | 2026-10-01 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 2.1k PyPI/wk | 23 stars, 6.1k npm/wk, 192 PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\n\n## How the scores have moved\n\n### Nominatim\n\nNo score change since it was listed.\n\n### Stadia Maps\n\n- -0.3 on 8 October 2026: checklist\n\n## Verdicts\n\n**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.\n\n**Stadia Maps.** Public OpenAPI spec (11.1.0) with generated TypeScript and Python SDKs. Free plan is for development, testing and demos only.\n\n## Before you call either\n\n### Nominatim\n\n1. 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\n2. Tell the user about the OSMF usage policy before suggesting the public instance, as the policy requires\n3. For regular or large jobs, run your own Nominatim or use a commercial provider listed on the Nominatim wiki\n4. Pass format=jsonv2 or geojson and limit, since omitting format sends the request to the web UI\n5. Attribute OpenStreetMap and respect the ODbL share-alike terms when storing results\n\n### Stadia Maps\n\n1. Send the key as `Authorization: Stadia-Auth \u003ckey\u003e` rather than in the URL\n2. Try Autocomplete v2 (1 credit) before a full geocode (20 credits) when a name is enough\n3. Check the dashboard's credit balance before retrying a 429, since it may mean the month is spent\n4. Don't write geocodes to a database on Free or Starter\n5. Use bulk-geocode for addresses only, not POI names\n\n## Questions\n\n### Which is better for AI agents, Nominatim or Stadia Maps?\n\nStadia Maps scores 65.2 (B) on agent readiness against Nominatim's 63.5 (B), and leads in 4 of 7 scored categories. Nominatim leads on reliability, security \u0026 auth and payments \u0026 pricing.\n\n### Which is cheaper for geocoding, Nominatim or Stadia Maps?\n\nNominatim, at free against $0.40 per 1,000 requests for Stadia Maps. These are the vendors' published prices for the job.\n\n### Do Nominatim and Stadia Maps need an API key?\n\nNominatim needs no key. Stadia Maps needs an API key.\n\n### Can an agent call Nominatim and Stadia Maps without installing anything?\n\nNo hosted endpoint is listed for Nominatim. Stadia Maps has a hosted endpoint at https://api.stadiamaps.com.\n\n### Are Nominatim and Stadia Maps open source?\n\nNominatim is open source (GPL-3.0-or-later). No open-source release is listed for Stadia Maps.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps.json, and with the fewest tokens: https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"nominatim\", \"b\": \"stadia-maps\"}`. From a terminal: `anchor compare nominatim stadia-maps`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/nominatim.json and https://www.anchorterminal.com/api/v1/tools/stadia-maps.json\n\n## Other comparisons with Nominatim or Stadia Maps\n\n- [Amazon Location Service vs Nominatim](https://www.anchorterminal.com/compare/amazon-location-vs-nominatim.md)\n- [Amazon Location Service vs Stadia Maps](https://www.anchorterminal.com/compare/amazon-location-vs-stadia-maps.md)\n- [ArcGIS Location Platform vs Nominatim](https://www.anchorterminal.com/compare/arcgis-vs-nominatim.md)\n- [ArcGIS Location Platform vs Stadia Maps](https://www.anchorterminal.com/compare/arcgis-vs-stadia-maps.md)\n- [Azure Maps vs Nominatim](https://www.anchorterminal.com/compare/azure-maps-vs-nominatim.md)\n- [Azure Maps vs Stadia Maps](https://www.anchorterminal.com/compare/azure-maps-vs-stadia-maps.md)\n- [Geoapify Location Platform + MCP vs Nominatim](https://www.anchorterminal.com/compare/geoapify-vs-nominatim.md)\n- [Geoapify Location Platform + MCP vs Stadia Maps](https://www.anchorterminal.com/compare/geoapify-vs-stadia-maps.md)\n- [Geocodio vs Nominatim](https://www.anchorterminal.com/compare/geocodio-vs-nominatim.md)\n- [Geocodio vs Stadia Maps](https://www.anchorterminal.com/compare/geocodio-vs-stadia-maps.md)\n- [Google Maps Platform + Grounding Lite MCP vs Nominatim](https://www.anchorterminal.com/compare/google-maps-platform-vs-nominatim.md)\n- [Google Maps Platform + Grounding Lite MCP vs Stadia Maps](https://www.anchorterminal.com/compare/google-maps-platform-vs-stadia-maps.md)\n- [HERE Location Services vs Nominatim](https://www.anchorterminal.com/compare/here-location-services-vs-nominatim.md)\n- [HERE Location Services vs Stadia Maps](https://www.anchorterminal.com/compare/here-location-services-vs-stadia-maps.md)\n- [LocationIQ vs Nominatim](https://www.anchorterminal.com/compare/locationiq-vs-nominatim.md)\n- [LocationIQ vs Stadia Maps](https://www.anchorterminal.com/compare/locationiq-vs-stadia-maps.md)\n- [Mapbox APIs + MCP vs Nominatim](https://www.anchorterminal.com/compare/mapbox-vs-nominatim.md)\n- [Mapbox APIs + MCP vs Stadia Maps](https://www.anchorterminal.com/compare/mapbox-vs-stadia-maps.md)\n- [MapQuest vs Nominatim](https://www.anchorterminal.com/compare/mapquest-vs-nominatim.md)\n- [MapQuest vs Stadia Maps](https://www.anchorterminal.com/compare/mapquest-vs-stadia-maps.md)\n- [MapTiler Cloud vs Nominatim](https://www.anchorterminal.com/compare/maptiler-vs-nominatim.md)\n- [MapTiler Cloud vs Stadia Maps](https://www.anchorterminal.com/compare/maptiler-vs-stadia-maps.md)\n- [NextBillion.ai vs Nominatim](https://www.anchorterminal.com/compare/nextbillion-vs-nominatim.md)\n- [Nominatim vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/nominatim-vs-opencage.md)\n- [Nominatim vs Radar](https://www.anchorterminal.com/compare/nominatim-vs-radar.md)\n- [Nominatim vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/nominatim-vs-tomtom.md)\n- [Nominatim vs Woosmap](https://www.anchorterminal.com/compare/nominatim-vs-woosmap.md)\n- [OpenCage Geocoding API vs Stadia Maps](https://www.anchorterminal.com/compare/opencage-vs-stadia-maps.md)\n- [Radar vs Stadia Maps](https://www.anchorterminal.com/compare/radar-vs-stadia-maps.md)\n- [Stadia Maps vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/stadia-maps-vs-tomtom.md)\n- [Stadia Maps vs Woosmap](https://www.anchorterminal.com/compare/stadia-maps-vs-woosmap.md)\n- [NextBillion.ai vs Stadia Maps](https://www.anchorterminal.com/compare/nextbillion-vs-stadia-maps.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Nominatim vs Stadia Maps",
        "url": ""
      }
    ],
    "description": "Stadia Maps scores 65.2 (B) to Nominatim's 63.5 (B) for geocoding. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Nominatim B 63.5",
      "Stadia Maps B 65.2",
      "scores"
    ],
    "h1": "Nominatim vs Stadia Maps",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/nominatim-vs-stadia-maps",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Nominatim vs Stadia Maps for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps"
  },
  "tokens": {
    "markdown": 4650,
    "slim": 2580
  },
  "version": 1
}
