{
  "data": {
    "a": {
      "slug": "maptiler",
      "name": "MapTiler Cloud",
      "vendor": "MapTiler AG",
      "vendorUrl": "https://www.maptiler.com",
      "kind": "http-api",
      "category": "maps",
      "summary": "MapTiler Cloud is a hosted maps platform from MapTiler AG in Switzerland. Its read-only REST APIs serve map styles, vector and raster tiles, static maps, forward and reverse geocoding, IP geolocation, elevation, coordinate transforms and weather data.",
      "url": "https://www.anchorterminal.com/tools/maptiler",
      "markdownUrl": "https://www.anchorterminal.com/tools/maptiler.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/maptiler.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/maptiler.json",
      "dns": "maptiler.grade.anchorterminal.com",
      "repo": "https://github.com/maptiler/maptiler-client-js",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@maptiler/client"
        },
        {
          "registry": "npm",
          "name": "@maptiler/sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key from the MapTiler Cloud account after a browser signup, always passed as the `key` query parameter. Keys can be limited to HTTP origins and a User-Agent substring and are managed through the Service API. From a backend, a service token can sign each request with a `signature` parameter instead. The Service API (uploads, tilesets, keys, analytics) needs a service token.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 100,000 API requests, 5,000 sessions and 1,000 search sessions a month, no card, for testing and non-commercial use; service pauses at the limit. Flex is $30 a month with 500,000 requests, then $0.15 per 1,000 requests and $2.50 per 1,000 search sessions. Custom contracts carry a 99.9% SLA.",
      "priceSummary": "$0.15 / 1k req",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API reference, OpenAPI spec, llms.txt or pricing page (checked 2026-11-06). Paid plans are billed by FastSpring.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 114682,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.maptiler.com/cloud/api/",
      "llmsTxt": "https://docs.maptiler.com/llms.txt",
      "openapi": "https://docs.maptiler.com/_data/cloud/api/openapi.yml",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.places",
        "geo.tiles",
        "data.weather"
      ],
      "tags": [
        "hosted",
        "api-key",
        "freemium",
        "free-tier",
        "no-card",
        "llms-txt",
        "openapi",
        "official",
        "agent-skills",
        "typescript",
        "status-page",
        "security-txt",
        "iso27001",
        "eu",
        "eu-region",
        "sla",
        "closed-source"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.1,
        "grade": "B",
        "agentReady": false,
        "rank": 576,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 70,
          "payments": 40,
          "reliability": 43,
          "schema": 79,
          "security": 64,
          "transparency": 80
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "MapTiler Cloud has an OpenAPI 3.1 reference, llms.txt with Markdown pages, an agent skill and ISO 27001 certification, and allows geocoding results to be stored. The key always travels in the query string, there's no routing API, no documented rate limit or 429 handling, and the free plan excludes commercial use.",
        "bestFor": "Map tiles, static maps and worldwide geocoding with storable results for apps that also show a map, with EU data residency.",
        "strengths": [
          "OpenAPI 3.1.0 spec, llms.txt, llms-full.txt and a Markdown version of every docs page",
          "Geocoding results may be bulk downloaded and used outside the service with attribution",
          "Keys can be restricted by origin and User-Agent, and service tokens can sign requests instead",
          "ISO/IEC 27001:2022 certification, security.txt and a vulnerability disclosure policy",
          "EU-only endpoint at api.maptiler.eu and hosting mainly in Switzerland and the EEA"
        ],
        "weaknesses": [
          "The API key is always sent as a query parameter",
          "No routing, directions or matrix API",
          "No per-second rate limit, 429 behaviour or retry guidance found in the documentation",
          "The free plan is for testing and non-commercial use only, and pauses at its monthly limit",
          "Official clients are JavaScript and TypeScript only"
        ],
        "agentNotes": [
          "Restrict the key to an origin or User-Agent, or sign requests with a service token from a backend, since the key appears in every URL",
          "Use the batch geocoding path (up to 50 semicolon-separated queries) rather than one call per address",
          "Use api.maptiler.eu when the user's requests must stay in the EU",
          "Read docs pages as Markdown by appending .md, starting from https://docs.maptiler.com/llms.txt",
          "Don't cache map tiles server-side; the Cloud terms forbid it, though geocoding results may be stored with attribution"
        ],
        "metrics": {
          "kind": "remote",
          "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": 62.1
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 70,
          "payments": 40,
          "reliability": 43,
          "schema": 79,
          "security": 64,
          "transparency": 64
        },
        "provenanceScore": 96,
        "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": "npm install @maptiler/client",
        "http": "curl \"https://api.maptiler.com/geocoding/Zurich.json?language=en\u0026limit=3\u0026key=$MAPTILER_API_KEY\""
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/maptiler"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "API requests over the Flex allowance",
          "unit": "1k-requests",
          "usd": 0.15,
          "note": "Flex includes 500,000 a month"
        },
        {
          "item": "Search sessions over the Flex allowance",
          "unit": "1k-requests",
          "usd": 2.5,
          "note": "Priced per 1,000 search sessions through MapTiler SDK JS"
        },
        {
          "item": "Flex plan",
          "unit": "month",
          "usd": 30,
          "note": "Extra usage billed monthly"
        }
      ],
      "provenance": {
        "legalEntity": "MapTiler AG",
        "domain": "maptiler.com",
        "domainRegistered": "2008-08-08",
        "endpointOnVendorDomain": true,
        "terms": "https://www.maptiler.com/terms/",
        "privacy": "https://www.maptiler.com/privacy-policy/",
        "statusPage": "https://status.maptiler.com",
        "changelog": "https://docs.maptiler.com/updates/",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "The general terms name MapTiler AG, Zugerstrasse 22, 6314 Unterägeri, Switzerland, under Swiss law with courts in Zug.",
          "security.txt at www.maptiler.com/.well-known/security.txt names sysadmin@maptiler.com, a PGP key and a signature, and has no Expires field.",
          "status.maptiler.com is a StatusCake public report whose data loads from app.statuscake.com. That host's robots.txt answered with a redirect, so it wasn't fetched and no uptime or incident history was read.",
          "RDAP gives maptiler.com a registration date of 8 August 2008.",
          "No clause on automated access to the website was found in the general terms. robots.txt on www.maptiler.com and docs.maptiler.com allows all agents apart from a few paths."
        ],
        "score": 96
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/maptiler.json",
      "live": {
        "slug": "maptiler",
        "vendorStatus": {
          "page": "https://status.maptiler.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:02.124798696Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "maptiler/maptiler-client-js",
            "version": "v3.1.0",
            "released": "2026-10-02",
            "seenAt": "2026-11-06T23:42:38.646681081Z"
          },
          {
            "registry": "npm",
            "name": "@maptiler/client",
            "version": "3.1.0",
            "seenAt": "2026-11-06T23:42:36.419318643Z"
          },
          {
            "registry": "npm",
            "name": "@maptiler/sdk",
            "version": "4.2.1",
            "seenAt": "2026-11-06T23:42:37.315182633Z"
          }
        ],
        "githubStars": 25,
        "npmWeekly": 114682,
        "securityTxt": {
          "url": "https://maptiler.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T15:59:35.51300876Z"
        },
        "llmsTxt": {
          "url": "https://docs.maptiler.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:57.151624353Z"
        },
        "pages": [
          {
            "url": "https://docs.maptiler.com/updates/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:56.724195464Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1152e8fe8b9d"
          },
          {
            "url": "https://www.maptiler.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:21.154658791Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "46d3f1544780"
          },
          {
            "url": "https://www.maptiler.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:23.29013826Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fc740f21aa9f"
          }
        ],
        "updatedAt": "2026-11-07T15:59:35.51300876Z"
      }
    },
    "answer": "Nominatim scores 63.5 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 3 of 7 scored categories. MapTiler Cloud leads on schema \u0026 documentation, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust.",
    "b": {
      "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"
      }
    },
    "edges": [
      {
        "by": 39,
        "category": "reliability",
        "leads": "nominatim",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted lines. status.maptiler.com is a StatusCake public uptime report rather than a component incident page (15). Its data loads from app.statuscake.com, whose robots.txt answered with a redirect, so we didn't fetch it and read no history. That's our limit, not a finding, and the rubric gives 5 (5). Monthly request and session quotas are published per plan, but no per-second limit (5). No 429, Retry-After or backoff guidance found in the API reference, the OpenAPI spec or llms-full.txt (0). The pricing page lists a 99.9% SLA on the Custom plan, while the Cloud terms call availability best effort and point to a custom SLA (8). The public APIs are GA (10). 15+5+5+0+8+10 = 43.",
          "b": "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."
        },
        "scores": {
          "a": 43,
          "b": 82
        }
      },
      {
        "by": 28,
        "category": "schema",
        "leads": "maptiler",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.1.0 document with 32 paths for the public APIs (25). llms.txt, llms-full.txt and a Markdown twin of every page (10). Each API page says what it's for and when to use the SDK instead (session billing), with little on when not to call it (13). Parameters are typed with defaults, such as limit (default 5 forward, 1 reverse) and a types enum, but bbox and proximity are strings (11). Examples on every endpoint, and the spec documents 400, 403, 404 and 414, without an error reference page (10). A dated platform updates page and a geocoding index changelog, but no version in the API path and the spec is version '1.0' (10). 25+10+13+11+10+10 = 79.",
          "b": "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."
        },
        "scores": {
          "a": 79,
          "b": 51
        }
      },
      {
        "by": 21,
        "category": "transparency",
        "leads": "maptiler",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Editorial half only. Closed service with general and Cloud-specific terms under Swiss law, and SDKs under BSD 3-Clause and the skill under MIT (20). The privacy policy covers account and payment data and says legal-claim data is kept up to 10 years, but says nothing about how long API request logs are kept (15). A dated deprecation page for v3 maps and migration guides, with no written notice period (12). Hosting with OVHcloud and Google Firebase, data mainly in Switzerland and the EEA, and an EU-only endpoint. Google Analytics, Firebase and FastSpring named in the privacy policy (17). 20+15+12+17 = 64.",
          "b": "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."
        },
        "scores": {
          "a": 80,
          "b": 59
        }
      },
      {
        "by": 20,
        "category": "payments",
        "leads": "nominatim",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Per-1,000 prices for requests ($0.15) and sessions ($2.50) public without login (20). Free plan with no card, though only for testing and non-commercial use (20). Signup is a browser flow (0). 0+20+20+0 = 40.",
          "b": "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."
        },
        "scores": {
          "a": 40,
          "b": 60
        }
      },
      {
        "by": 14,
        "category": "security",
        "leads": "maptiler",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Revocable keys that can be limited to origins and a User-Agent substring and managed by the API keys API, and service tokens that sign requests so the token itself never travels, which earns 27. Less 10 because the key is 'always passed as a query parameter' (17). The public APIs are read-only, and account changes need a separate service token (16). Geocoding returns OpenStreetMap names and addresses, community-edited text, with no prompt-injection guidance (7). An Analytics API and account usage statistics (8). security.txt, a vulnerability disclosure policy and ISO/IEC 27001:2022 certification per the security page. No bug bounty found (16). 17+16+7+8+16 = 64.",
          "b": "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."
        },
        "scores": {
          "a": 64,
          "b": 50
        }
      },
      {
        "by": 10,
        "category": "maintenance",
        "leads": "maptiler",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "@maptiler/client 3.1.0 and @maptiler/sdk 4.2.0 on 2 October 2026, 35 days before this check, with the agent skill updated on 21 October (20). Platform updates entries for August (EU endpoint, key security) and September 2026 (terrain blending) plus the two October releases (20). A Discord community and support answered on a best-effort basis within two business days, per the Cloud terms. We didn't read GitHub issues (10). Official JavaScript client and SDK current, no Python client (12). The SDK repository runs unit and end-to-end tests in CI; we didn't check results (8). 20+20+10+12+8 = 70.",
          "b": "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."
        },
        "scores": {
          "a": 70,
          "b": 60
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "MapTiler AG",
        "b": "Nominatim project (osm-search)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "GPL-3.0-or-later",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-02",
        "b": "2026-10-14",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "115k npm/wk",
        "b": "2.1k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Nominatim scores 63.5 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 3 of 7 scored categories. MapTiler Cloud leads on schema \u0026 documentation, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust.",
        "question": "Which is better for AI agents, MapTiler Cloud or Nominatim?"
      },
      {
        "answer": "MapTiler Cloud needs an API key. Nominatim needs no key.",
        "question": "Do MapTiler Cloud and Nominatim need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for MapTiler Cloud. No hosted endpoint is listed for Nominatim.",
        "question": "Can an agent call MapTiler Cloud and Nominatim without installing anything?"
      },
      {
        "answer": "No open-source release is listed for MapTiler Cloud. Nominatim is open source (GPL-3.0-or-later).",
        "question": "Are MapTiler Cloud and Nominatim open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 79 against 51",
          "Security \u0026 auth, 64 against 50",
          "Maintenance \u0026 community, 70 against 60",
          "Transparency \u0026 trust, 80 against 59"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Map tiles, static maps and worldwide geocoding with storable results for apps that also show a map, with EU data residency.",
        "slug": "maptiler",
        "watchFor": "The API key is always sent as a query parameter"
      },
      {
        "aheadOn": [
          "Reliability, 82 against 43",
          "Agent ergonomics, 75 against 70",
          "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"
      }
    ],
    "history": null,
    "job": {
      "capability": "geo.geocode",
      "name": "Geocoding"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-maptiler.json",
        "title": "Amazon Location Service vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-maptiler"
      },
      {
        "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/arcgis-vs-maptiler.json",
        "title": "ArcGIS Location Platform vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-maptiler"
      },
      {
        "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/azure-maps-vs-maptiler.json",
        "title": "Azure Maps vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/azure-maps-vs-maptiler"
      },
      {
        "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/geoapify-vs-maptiler.json",
        "title": "Geoapify Location Platform + MCP vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-maptiler"
      },
      {
        "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/geocodio-vs-maptiler.json",
        "title": "Geocodio vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-maptiler"
      },
      {
        "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/google-maps-platform-vs-maptiler.json",
        "title": "Google Maps Platform + Grounding Lite MCP vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/google-maps-platform-vs-maptiler"
      },
      {
        "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/here-location-services-vs-maptiler.json",
        "title": "HERE Location Services vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/here-location-services-vs-maptiler"
      },
      {
        "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/locationiq-vs-maptiler.json",
        "title": "LocationIQ vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-maptiler"
      },
      {
        "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/mapbox-vs-maptiler.json",
        "title": "Mapbox APIs + MCP vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/mapbox-vs-maptiler"
      },
      {
        "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/mapquest-vs-maptiler.json",
        "title": "MapQuest vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/mapquest-vs-maptiler"
      },
      {
        "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/maptiler-vs-nextbillion.json",
        "title": "MapTiler Cloud vs NextBillion.ai",
        "url": "https://www.anchorterminal.com/compare/maptiler-vs-nextbillion"
      },
      {
        "json": "https://www.anchorterminal.com/compare/maptiler-vs-opencage.json",
        "title": "MapTiler Cloud vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/maptiler-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/maptiler-vs-radar.json",
        "title": "MapTiler Cloud vs Radar",
        "url": "https://www.anchorterminal.com/compare/maptiler-vs-radar"
      },
      {
        "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/maptiler-vs-tomtom.json",
        "title": "MapTiler Cloud vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/maptiler-vs-tomtom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/maptiler-vs-woosmap.json",
        "title": "MapTiler Cloud vs Woosmap",
        "url": "https://www.anchorterminal.com/compare/maptiler-vs-woosmap"
      },
      {
        "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-stadia-maps.json",
        "title": "Nominatim vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps"
      },
      {
        "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"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 39,
        "edge": "nominatim",
        "key": "reliability",
        "maptiler": 43,
        "name": "Reliability",
        "nominatim": 82,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 28,
        "edge": "maptiler",
        "key": "schema",
        "maptiler": 79,
        "name": "Schema \u0026 documentation",
        "nominatim": 51,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "nominatim",
        "key": "ergonomics",
        "maptiler": 70,
        "name": "Agent ergonomics",
        "nominatim": 75,
        "weight": 13
      },
      {
        "by": 14,
        "edge": "maptiler",
        "key": "security",
        "maptiler": 64,
        "name": "Security \u0026 auth",
        "nominatim": 50,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "nominatim",
        "key": "payments",
        "maptiler": 40,
        "name": "Payments \u0026 pricing",
        "nominatim": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "maptiler",
        "key": "maintenance",
        "maptiler": 70,
        "name": "Maintenance \u0026 community",
        "nominatim": 60,
        "weight": 7
      },
      {
        "by": 21,
        "edge": "maptiler",
        "key": "transparency",
        "maptiler": 80,
        "name": "Transparency \u0026 trust",
        "nominatim": 59,
        "weight": 7
      }
    ],
    "summary": "Nominatim scores 63.5 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 3 of 7 scored categories. MapTiler Cloud leads on schema \u0026 documentation, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust. Both do geocoding.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "maptiler": "MapTiler Cloud has an OpenAPI 3.1 reference, llms.txt with Markdown pages, an agent skill and ISO 27001 certification, and allows geocoding results to be stored. The key always travels in the query string, there's no routing API, no documented rate limit or 429 handling, and the free plan excludes commercial use.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/maptiler-vs-nominatim",
    "json": "https://www.anchorterminal.com/compare/maptiler-vs-nominatim.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/maptiler-vs-nominatim.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/maptiler-vs-nominatim.min.md"
  },
  "markdown": "Nominatim scores 63.5 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 3 of 7 scored categories. MapTiler Cloud leads on schema \u0026 documentation, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust. Both do geocoding.\n\n- MapTiler Cloud: grade B, 62.1/100, rank #576 of 1510. Markdown https://www.anchorterminal.com/tools/maptiler.md · JSON https://www.anchorterminal.com/api/v1/tools/maptiler.json\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- 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### MapTiler Cloud (B)\n\nGood for: Map tiles, static maps and worldwide geocoding with storable results for apps that also show a map, with EU data residency.\n\nAhead on:\n- Schema \u0026 documentation, 79 against 51\n- Security \u0026 auth, 64 against 50\n- Maintenance \u0026 community, 70 against 60\n- Transparency \u0026 trust, 80 against 59\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: The API key is always sent as a query parameter\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 43\n- Agent ergonomics, 75 against 70\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\n## Why the edge\n\n### Reliability: Nominatim +39\n\n- MapTiler Cloud (43): Hosted lines. status.maptiler.com is a StatusCake public uptime report rather than a component incident page (15). Its data loads from app.statuscake.com, whose robots.txt answered with a redirect, so we didn't fetch it and read no history. That's our limit, not a finding, and the rubric gives 5 (5). Monthly request and session quotas are published per plan, but no per-second limit (5). No 429, Retry-After or backoff guidance found in the API reference, the OpenAPI spec or llms-full.txt (0). The pricing page lists a 99.9% SLA on the Custom plan, while the Cloud terms call availability best effort and point to a custom SLA (8). The public APIs are GA (10). 15+5+5+0+8+10 = 43.\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\n### Schema \u0026 documentation: MapTiler Cloud +28\n\n- MapTiler Cloud (79): OpenAPI 3.1.0 document with 32 paths for the public APIs (25). llms.txt, llms-full.txt and a Markdown twin of every page (10). Each API page says what it's for and when to use the SDK instead (session billing), with little on when not to call it (13). Parameters are typed with defaults, such as limit (default 5 forward, 1 reverse) and a types enum, but bbox and proximity are strings (11). Examples on every endpoint, and the spec documents 400, 403, 404 and 414, without an error reference page (10). A dated platform updates page and a geocoding index changelog, but no version in the API path and the spec is version '1.0' (10). 25+10+13+11+10+10 = 79.\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\n### Transparency \u0026 trust: MapTiler Cloud +21\n\n- MapTiler Cloud (80): Editorial half only. Closed service with general and Cloud-specific terms under Swiss law, and SDKs under BSD 3-Clause and the skill under MIT (20). The privacy policy covers account and payment data and says legal-claim data is kept up to 10 years, but says nothing about how long API request logs are kept (15). A dated deprecation page for v3 maps and migration guides, with no written notice period (12). Hosting with OVHcloud and Google Firebase, data mainly in Switzerland and the EEA, and an EU-only endpoint. Google Analytics, Firebase and FastSpring named in the privacy policy (17). 20+15+12+17 = 64.\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\n### Payments \u0026 pricing: Nominatim +20\n\n- MapTiler Cloud (40): No x402, MPP or L402 (0). Per-1,000 prices for requests ($0.15) and sessions ($2.50) public without login (20). Free plan with no card, though only for testing and non-commercial use (20). Signup is a browser flow (0). 0+20+20+0 = 40.\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\n### Security \u0026 auth: MapTiler Cloud +14\n\n- MapTiler Cloud (64): Revocable keys that can be limited to origins and a User-Agent substring and managed by the API keys API, and service tokens that sign requests so the token itself never travels, which earns 27. Less 10 because the key is 'always passed as a query parameter' (17). The public APIs are read-only, and account changes need a separate service token (16). Geocoding returns OpenStreetMap names and addresses, community-edited text, with no prompt-injection guidance (7). An Analytics API and account usage statistics (8). security.txt, a vulnerability disclosure policy and ISO/IEC 27001:2022 certification per the security page. No bug bounty found (16). 17+16+7+8+16 = 64.\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\n### Maintenance \u0026 community: MapTiler Cloud +10\n\n- MapTiler Cloud (70): @maptiler/client 3.1.0 and @maptiler/sdk 4.2.0 on 2 October 2026, 35 days before this check, with the agent skill updated on 21 October (20). Platform updates entries for August (EU endpoint, key security) and September 2026 (terrain blending) plus the two October releases (20). A Discord community and support answered on a best-effort basis within two business days, per the Cloud terms. We didn't read GitHub issues (10). Official JavaScript client and SDK current, no Python client (12). The SDK repository runs unit and end-to-end tests in CI; we didn't check results (8). 20+20+10+12+8 = 70.\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\n## Score by category\n\n| Category | Weight | MapTiler Cloud | Nominatim | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 43 | 82 | Nominatim +39 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 51 | MapTiler Cloud +28 |\n| Agent ergonomics | 13% (16.2 this run) | 70 | 75 | Nominatim +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 50 | MapTiler Cloud +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 60 | Nominatim +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 70 | 60 | MapTiler Cloud +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 59 | MapTiler Cloud +21 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **62.1 · B** | **63.5 · B** | |\n\n## Facts side by side\n\n| Fact | MapTiler Cloud | Nominatim |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | MapTiler AG | Nominatim project (osm-search) |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | None |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| Licence | none | GPL-3.0-or-later |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-02 | 2026-10-14 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | no date given | no document linked |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 115k npm/wk | 2.1k PyPI/wk |\n\n## Verdicts\n\n**MapTiler Cloud.** MapTiler Cloud has an OpenAPI 3.1 reference, llms.txt with Markdown pages, an agent skill and ISO 27001 certification, and allows geocoding results to be stored. The key always travels in the query string, there's no routing API, no documented rate limit or 429 handling, and the free plan excludes commercial use.\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## Before you call either\n\n### MapTiler Cloud\n\n1. Restrict the key to an origin or User-Agent, or sign requests with a service token from a backend, since the key appears in every URL\n2. Use the batch geocoding path (up to 50 semicolon-separated queries) rather than one call per address\n3. Use api.maptiler.eu when the user's requests must stay in the EU\n4. Read docs pages as Markdown by appending .md, starting from https://docs.maptiler.com/llms.txt\n5. Don't cache map tiles server-side; the Cloud terms forbid it, though geocoding results may be stored with attribution\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## Questions\n\n### Which is better for AI agents, MapTiler Cloud or Nominatim?\n\nNominatim scores 63.5 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 3 of 7 scored categories. MapTiler Cloud leads on schema \u0026 documentation, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust.\n\n### Do MapTiler Cloud and Nominatim need an API key?\n\nMapTiler Cloud needs an API key. Nominatim needs no key.\n\n### Can an agent call MapTiler Cloud and Nominatim without installing anything?\n\nNo hosted endpoint is listed for MapTiler Cloud. No hosted endpoint is listed for Nominatim.\n\n### Are MapTiler Cloud and Nominatim open source?\n\nNo open-source release is listed for MapTiler Cloud. Nominatim is open source (GPL-3.0-or-later).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/maptiler-vs-nominatim.json, and with the fewest tokens: https://www.anchorterminal.com/compare/maptiler-vs-nominatim.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"maptiler\", \"b\": \"nominatim\"}`. From a terminal: `anchor compare maptiler nominatim`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/maptiler.json and https://www.anchorterminal.com/api/v1/tools/nominatim.json\n\n## Other comparisons with MapTiler Cloud or Nominatim\n\n- [Amazon Location Service vs MapTiler Cloud](https://www.anchorterminal.com/compare/amazon-location-vs-maptiler.md)\n- [Amazon Location Service vs Nominatim](https://www.anchorterminal.com/compare/amazon-location-vs-nominatim.md)\n- [ArcGIS Location Platform vs MapTiler Cloud](https://www.anchorterminal.com/compare/arcgis-vs-maptiler.md)\n- [ArcGIS Location Platform vs Nominatim](https://www.anchorterminal.com/compare/arcgis-vs-nominatim.md)\n- [Azure Maps vs MapTiler Cloud](https://www.anchorterminal.com/compare/azure-maps-vs-maptiler.md)\n- [Azure Maps vs Nominatim](https://www.anchorterminal.com/compare/azure-maps-vs-nominatim.md)\n- [Geoapify Location Platform + MCP vs MapTiler Cloud](https://www.anchorterminal.com/compare/geoapify-vs-maptiler.md)\n- [Geoapify Location Platform + MCP vs Nominatim](https://www.anchorterminal.com/compare/geoapify-vs-nominatim.md)\n- [Geocodio vs MapTiler Cloud](https://www.anchorterminal.com/compare/geocodio-vs-maptiler.md)\n- [Geocodio vs Nominatim](https://www.anchorterminal.com/compare/geocodio-vs-nominatim.md)\n- [Google Maps Platform + Grounding Lite MCP vs MapTiler Cloud](https://www.anchorterminal.com/compare/google-maps-platform-vs-maptiler.md)\n- [Google Maps Platform + Grounding Lite MCP vs Nominatim](https://www.anchorterminal.com/compare/google-maps-platform-vs-nominatim.md)\n- [HERE Location Services vs MapTiler Cloud](https://www.anchorterminal.com/compare/here-location-services-vs-maptiler.md)\n- [HERE Location Services vs Nominatim](https://www.anchorterminal.com/compare/here-location-services-vs-nominatim.md)\n- [LocationIQ vs MapTiler Cloud](https://www.anchorterminal.com/compare/locationiq-vs-maptiler.md)\n- [LocationIQ vs Nominatim](https://www.anchorterminal.com/compare/locationiq-vs-nominatim.md)\n- [Mapbox APIs + MCP vs MapTiler Cloud](https://www.anchorterminal.com/compare/mapbox-vs-maptiler.md)\n- [Mapbox APIs + MCP vs Nominatim](https://www.anchorterminal.com/compare/mapbox-vs-nominatim.md)\n- [MapQuest vs MapTiler Cloud](https://www.anchorterminal.com/compare/mapquest-vs-maptiler.md)\n- [MapQuest vs Nominatim](https://www.anchorterminal.com/compare/mapquest-vs-nominatim.md)\n- [MapTiler Cloud vs NextBillion.ai](https://www.anchorterminal.com/compare/maptiler-vs-nextbillion.md)\n- [MapTiler Cloud vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/maptiler-vs-opencage.md)\n- [MapTiler Cloud vs Radar](https://www.anchorterminal.com/compare/maptiler-vs-radar.md)\n- [MapTiler Cloud vs Stadia Maps](https://www.anchorterminal.com/compare/maptiler-vs-stadia-maps.md)\n- [MapTiler Cloud vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/maptiler-vs-tomtom.md)\n- [MapTiler Cloud vs Woosmap](https://www.anchorterminal.com/compare/maptiler-vs-woosmap.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 Stadia Maps](https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps.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",
  "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": "MapTiler Cloud vs Nominatim",
        "url": ""
      }
    ],
    "description": "Nominatim scores 63.5 (B) to MapTiler Cloud's 62.1 (B) for geocoding. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "MapTiler Cloud B 62.1",
      "Nominatim B 63.5",
      "scores"
    ],
    "h1": "MapTiler Cloud vs Nominatim",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/maptiler-vs-nominatim",
    "published": "2026-10-01",
    "section": "tools",
    "title": "MapTiler Cloud vs Nominatim for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/maptiler-vs-nominatim"
  },
  "tokens": {
    "markdown": 4500,
    "slim": 2430
  },
  "version": 1
}
