{
  "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": "Stadia Maps scores 65.2 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 4 of 7 scored categories. MapTiler Cloud leads on security \u0026 auth.",
    "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": 24,
        "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": "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": 64,
          "b": 40
        }
      },
      {
        "by": 20,
        "category": "reliability",
        "leads": "stadia-maps",
        "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": "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": 43,
          "b": 63
        }
      },
      {
        "by": 10,
        "category": "ergonomics",
        "leads": "stadia-maps",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "API reading. limit, types, bbox, proximity, country, language and fuzzyMatch size geocoding results, and the batch endpoint takes up to 50 queries (20). Country, bbox and type filters, no pagination (geocoding rarely needs it) (16). Errors are documented as 400 and 403 with no recovery guidance (10). Every public API reads and is safe to retry (12). Few required parameters, but official clients are JavaScript and TypeScript only, plus native mobile SDKs (12). 20+16+10+12+12 = 70.",
          "b": "Six MCP tools, pared down on 20 June 2025 'to save on context tokens' (25). size, layers, boundary filters and focus points on geocoding, and a bulk geocoding endpoint (18). The same 429 means a burst or a spent month, which costs a turn to work out (12). Every call reads, but the MCP tools carry no readOnlyHint or other annotations (10). Official generated SDKs in TypeScript and Python, with sensible defaults (15). 25+18+12+10+15 = 80."
        },
        "scores": {
          "a": 70,
          "b": 80
        }
      },
      {
        "by": 10,
        "category": "maintenance",
        "leads": "stadia-maps",
        "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": "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": 70,
          "b": 80
        }
      },
      {
        "by": 7,
        "category": "schema",
        "leads": "stadia-maps",
        "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": "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": 79,
          "b": 86
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "MapTiler AG",
        "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": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "not published",
        "b": "$0.40 per 1,000 requests",
        "name": "Price for geocoding"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "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": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-02",
        "b": "2026-10-26",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-03-18",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "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": "not found in the text",
        "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": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "115k npm/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 MapTiler Cloud's 62.1 (B), and leads in 4 of 7 scored categories. MapTiler Cloud leads on security \u0026 auth.",
        "question": "Which is better for AI agents, MapTiler Cloud or Stadia Maps?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do MapTiler Cloud and Stadia Maps need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for MapTiler Cloud. Stadia Maps has a hosted endpoint at https://api.stadiamaps.com.",
        "question": "Can an agent call MapTiler Cloud and Stadia Maps without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 64 against 40"
        ],
        "also": null,
        "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, 63 against 43",
          "Schema \u0026 documentation, 86 against 79",
          "Agent ergonomics, 80 against 70",
          "Maintenance \u0026 community, 80 against 70"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Runs on your own machine"
        ],
        "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": {
      "maptiler": 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-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-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-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-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-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-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-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-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-maptiler.json",
        "title": "Geocodio vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-maptiler"
      },
      {
        "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-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-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-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-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-maptiler.json",
        "title": "LocationIQ vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-maptiler"
      },
      {
        "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-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-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-maptiler.json",
        "title": "MapQuest vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/mapquest-vs-maptiler"
      },
      {
        "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-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-nominatim.json",
        "title": "MapTiler Cloud vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/maptiler-vs-nominatim"
      },
      {
        "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-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/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/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": 20,
        "edge": "stadia-maps",
        "key": "reliability",
        "maptiler": 43,
        "name": "Reliability",
        "stadia-maps": 63,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "edge": "stadia-maps",
        "key": "schema",
        "maptiler": 79,
        "name": "Schema \u0026 documentation",
        "stadia-maps": 86,
        "weight": 13
      },
      {
        "by": 10,
        "edge": "stadia-maps",
        "key": "ergonomics",
        "maptiler": 70,
        "name": "Agent ergonomics",
        "stadia-maps": 80,
        "weight": 13
      },
      {
        "by": 24,
        "edge": "maptiler",
        "key": "security",
        "maptiler": 64,
        "name": "Security \u0026 auth",
        "stadia-maps": 40,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "maptiler": 40,
        "name": "Payments \u0026 pricing",
        "stadia-maps": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "stadia-maps",
        "key": "maintenance",
        "maptiler": 70,
        "name": "Maintenance \u0026 community",
        "stadia-maps": 80,
        "weight": 7
      },
      {
        "by": 4,
        "edge": "maptiler",
        "key": "transparency",
        "maptiler": 80,
        "name": "Transparency \u0026 trust",
        "stadia-maps": 76,
        "weight": 7
      }
    ],
    "summary": "Stadia Maps scores 65.2 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 4 of 7 scored categories. MapTiler Cloud leads on security \u0026 auth. 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.",
      "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/maptiler-vs-stadia-maps",
    "json": "https://www.anchorterminal.com/compare/maptiler-vs-stadia-maps.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/maptiler-vs-stadia-maps.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/maptiler-vs-stadia-maps.min.md"
  },
  "markdown": "Stadia Maps scores 65.2 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 4 of 7 scored categories. MapTiler Cloud leads on security \u0026 auth. 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- 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### 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- Security \u0026 auth, 64 against 40\n\nWatch for: The API key is always sent as a query parameter\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- Reliability, 63 against 43\n- Schema \u0026 documentation, 86 against 79\n- Agent ergonomics, 80 against 70\n- Maintenance \u0026 community, 80 against 70\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Runs on your own machine\n\nWatch for: Free plan is for development, testing and demos only\n\n\n## Why the edge\n\n### Security \u0026 auth: MapTiler Cloud +24\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- 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### Reliability: Stadia Maps +20\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- 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### Agent ergonomics: Stadia Maps +10\n\n- MapTiler Cloud (70): API reading. limit, types, bbox, proximity, country, language and fuzzyMatch size geocoding results, and the batch endpoint takes up to 50 queries (20). Country, bbox and type filters, no pagination (geocoding rarely needs it) (16). Errors are documented as 400 and 403 with no recovery guidance (10). Every public API reads and is safe to retry (12). Few required parameters, but official clients are JavaScript and TypeScript only, plus native mobile SDKs (12). 20+16+10+12+12 = 70.\n- Stadia Maps (80): Six MCP tools, pared down on 20 June 2025 'to save on context tokens' (25). size, layers, boundary filters and focus points on geocoding, and a bulk geocoding endpoint (18). The same 429 means a burst or a spent month, which costs a turn to work out (12). Every call reads, but the MCP tools carry no readOnlyHint or other annotations (10). Official generated SDKs in TypeScript and Python, with sensible defaults (15). 25+18+12+10+15 = 80.\n\n### Maintenance \u0026 community: Stadia Maps +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- 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### Schema \u0026 documentation: Stadia Maps +7\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- 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## Score by category\n\n| Category | Weight | MapTiler Cloud | Stadia Maps | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 43 | 63 | Stadia Maps +20 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 86 | Stadia Maps +7 |\n| Agent ergonomics | 13% (16.2 this run) | 70 | 80 | Stadia Maps +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 40 | MapTiler Cloud +24 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 40 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 70 | 80 | Stadia Maps +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 76 | MapTiler Cloud +4 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **62.1 · B** | **65.2 · B** | |\n\n## Facts side by side\n\n| Fact | MapTiler Cloud | Stadia Maps |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | MapTiler AG | Stadia Maps |\n| Hosted endpoint | no (local only) | `https://api.stadiamaps.com` |\n| Transports | HTTP | HTTP, stdio |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| Price for geocoding | not published | $0.40 per 1,000 requests |\n| x402 | no | no |\n| Licence | none | BSD-3-Clause (MCP server) |\n| Tools exposed | none | 6 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-02 | 2026-10-26 |\n| Terms last updated | no date given | 2026-03-18 |\n| Privacy policy last updated | no date given | 2026-10-01 |\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 | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 115k npm/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### MapTiler Cloud\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**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**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### 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### 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, MapTiler Cloud or Stadia Maps?\n\nStadia Maps scores 65.2 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 4 of 7 scored categories. MapTiler Cloud leads on security \u0026 auth.\n\n### Do MapTiler Cloud and Stadia Maps need an API key?\n\nBoth need an API key.\n\n### Can an agent call MapTiler Cloud and Stadia Maps without installing anything?\n\nNo hosted endpoint is listed for MapTiler Cloud. Stadia Maps has a hosted endpoint at https://api.stadiamaps.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/maptiler-vs-stadia-maps.json, and with the fewest tokens: https://www.anchorterminal.com/compare/maptiler-vs-stadia-maps.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"maptiler\", \"b\": \"stadia-maps\"}`. From a terminal: `anchor compare maptiler stadia-maps`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/maptiler.json and https://www.anchorterminal.com/api/v1/tools/stadia-maps.json\n\n## Other comparisons with MapTiler Cloud or Stadia Maps\n\n- [Amazon Location Service vs MapTiler Cloud](https://www.anchorterminal.com/compare/amazon-location-vs-maptiler.md)\n- [Amazon Location Service vs Stadia Maps](https://www.anchorterminal.com/compare/amazon-location-vs-stadia-maps.md)\n- [ArcGIS Location Platform vs MapTiler Cloud](https://www.anchorterminal.com/compare/arcgis-vs-maptiler.md)\n- [ArcGIS Location Platform vs Stadia Maps](https://www.anchorterminal.com/compare/arcgis-vs-stadia-maps.md)\n- [Azure Maps vs MapTiler Cloud](https://www.anchorterminal.com/compare/azure-maps-vs-maptiler.md)\n- [Azure Maps vs Stadia Maps](https://www.anchorterminal.com/compare/azure-maps-vs-stadia-maps.md)\n- [Geoapify Location Platform + MCP vs MapTiler Cloud](https://www.anchorterminal.com/compare/geoapify-vs-maptiler.md)\n- [Geoapify Location Platform + MCP vs Stadia Maps](https://www.anchorterminal.com/compare/geoapify-vs-stadia-maps.md)\n- [Geocodio vs MapTiler Cloud](https://www.anchorterminal.com/compare/geocodio-vs-maptiler.md)\n- [Geocodio vs Stadia Maps](https://www.anchorterminal.com/compare/geocodio-vs-stadia-maps.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 Stadia Maps](https://www.anchorterminal.com/compare/google-maps-platform-vs-stadia-maps.md)\n- [HERE Location Services vs MapTiler Cloud](https://www.anchorterminal.com/compare/here-location-services-vs-maptiler.md)\n- [HERE Location Services vs Stadia Maps](https://www.anchorterminal.com/compare/here-location-services-vs-stadia-maps.md)\n- [LocationIQ vs MapTiler Cloud](https://www.anchorterminal.com/compare/locationiq-vs-maptiler.md)\n- [LocationIQ vs Stadia Maps](https://www.anchorterminal.com/compare/locationiq-vs-stadia-maps.md)\n- [Mapbox APIs + MCP vs MapTiler Cloud](https://www.anchorterminal.com/compare/mapbox-vs-maptiler.md)\n- [Mapbox APIs + MCP vs Stadia Maps](https://www.anchorterminal.com/compare/mapbox-vs-stadia-maps.md)\n- [MapQuest vs MapTiler Cloud](https://www.anchorterminal.com/compare/mapquest-vs-maptiler.md)\n- [MapQuest vs Stadia Maps](https://www.anchorterminal.com/compare/mapquest-vs-stadia-maps.md)\n- [MapTiler Cloud vs NextBillion.ai](https://www.anchorterminal.com/compare/maptiler-vs-nextbillion.md)\n- [MapTiler Cloud vs Nominatim](https://www.anchorterminal.com/compare/maptiler-vs-nominatim.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 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- [Nominatim vs Stadia Maps](https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps.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": "MapTiler Cloud vs Stadia Maps",
        "url": ""
      }
    ],
    "description": "Stadia Maps scores 65.2 (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",
      "Stadia Maps B 65.2",
      "scores"
    ],
    "h1": "MapTiler Cloud vs Stadia Maps",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/maptiler-vs-stadia-maps",
    "published": "2026-10-01",
    "section": "tools",
    "title": "MapTiler Cloud vs Stadia Maps for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/maptiler-vs-stadia-maps"
  },
  "tokens": {
    "markdown": 4300,
    "slim": 2380
  },
  "version": 1
}
