{
  "data": {
    "a": {
      "slug": "arcgis",
      "name": "ArcGIS Location Platform",
      "vendor": "Esri",
      "vendorUrl": "https://location.arcgis.com",
      "kind": "http-api",
      "category": "maps",
      "summary": "Esri's pay-as-you-go location services for developers. REST APIs cover geocoding, reverse and batch geocoding, place search, routing, basemap tiles, static maps, elevation and demographic enrichment, with an Esri-hosted MCP server in beta.",
      "url": "https://www.anchorterminal.com/tools/arcgis",
      "markdownUrl": "https://www.anchorterminal.com/tools/arcgis.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/arcgis.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/arcgis.json",
      "repo": "https://github.com/Esri/arcgis-rest-js",
      "license": "Proprietary service under the ArcGIS Location Platform Agreement. The ArcGIS REST JS client library is Apache-2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://geocode-api.arcgis.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@esri/arcgis-rest-geocoding"
        },
        {
          "registry": "npm",
          "name": "@esri/arcgis-rest-request"
        },
        {
          "registry": "pypi",
          "name": "arcgis"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. A free ArcGIS Location Platform account created in a browser issues API key credentials with selected privileges, an expiry date of up to one year, optional referrer limits and two tokens for rotation. OAuth 2.0 user authentication and app authentication (client ID and secret, short-lived tokens) are also supported. Requests take the token as a `token` parameter or in an `X-Esri-Authorization` or `Authorization` header. Accounts are for one person and may not be shared.",
      "pricing": "freemium",
      "pricingNotes": "Usage-based in US dollars with a monthly free tier and no contract. Free each month are 20,000 unstored geocodes, 20,000 routes, 500 place searches, 2 million basemap tiles, 1,000 static maps and 50,000 elevation points. A payment method (card, purchase order or voucher) is needed only to turn on pay-as-you-go, which services without a free tier, among them stored geocodes, require. The sign-up form is drawn by script and we couldn't read whether it asks for a card.",
      "priceSummary": "$0.50 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the pricing page, the billing help or the REST and MCP documentation (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": 392,
        "npmWeekly": 65286,
        "pypiWeekly": 32974,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.arcgis.com/rest/location-based-services/",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.places",
        "geo.routing",
        "geo.tiles"
      ],
      "tags": [
        "hosted",
        "maps",
        "geocoding",
        "routing",
        "places",
        "api-key",
        "oauth",
        "mcp",
        "beta-mcp",
        "free-tier",
        "usage-priced",
        "sla",
        "status-page",
        "typescript",
        "python"
      ],
      "lastRelease": "2026-09-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.4,
        "grade": "B",
        "agentReady": false,
        "rank": 259,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 83,
          "payments": 40,
          "reliability": 65,
          "schema": 61,
          "security": 64,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Per-unit prices are public for every service, with a monthly free tier of 20,000 geocodes and 20,000 routes, keys limited to chosen privileges and a 99.9 per cent SLA. No rate limits or OpenAPI description were found, results may not be stored unless the dearer stored geocode is bought, and the agreement bars benchmarking without written permission.",
        "bestFor": "Organisations already on Esri software, and work that needs demographic enrichment, service areas or fleet routing beside geocoding.",
        "strengths": [
          "Every service has a public unit price and most have a monthly free tier, such as 20,000 geocodes, 20,000 routes and 2 million basemap tiles (https://location.arcgis.com/pricing/).",
          "API key credentials carry selected privileges, an expiry date of up to one year, optional referrer limits and two tokens for rotation. OAuth 2.0 user and app authentication are also supported.",
          "A published SLA commits to 99.9 per cent monthly uptime for ten services, with credits of 10 or 20 per cent of the monthly bill for the affected service (document G632a, 23 December 2025).",
          "The agreement promises 90 days' notice for deprecations of SDKs, APIs and location services (ArcGIS Location Platform Agreement, revised 21 November 2025, section 4.1).",
          "An Esri-hosted MCP server at `https://location-services-mcp.arcgis.com/beta/mcp` has eight tools, filters them by the token's privileges and adds no charge on top of service rates."
        ],
        "weaknesses": [
          "The agreement bars benchmarking availability, performance or functionality, and publishing benchmark results, without prior written permission from Esri and its licensors (sections 3.1.b.6 and 3.1.c.6.F).",
          "No request rate limits, 429 behaviour or retry guidance were found in the geocoding, places or routing reference pages we read.",
          "No OpenAPI description or llms.txt was found. `/llms.txt` returns 404 on developers.arcgis.com and location.arcgis.com.",
          "Storing a geocode needs `forStorage=true` at $4 per 1,000 with no free tier, against $0.50 per 1,000 for results that may not be kept. The MCP geocoding tools bill at the stored rate.",
          "The MCP server is a beta under an Early Access programme, and the SLA excludes beta, evaluation and free services. Technical support is sold separately."
        ],
        "agentNotes": [
          "Send the token in an `X-Esri-Authorization: Bearer` or `Authorization` header. The docs' examples put it in a `token` parameter, which Esri's own best-practice page calls less secure.",
          "Set `forStorage=true` on `findAddressCandidates` or `reverseGeocode` only when results will be kept. It needs pay-as-you-go and the Geocode (stored) privilege, and costs eight times the unstored rate.",
          "Cap geocoding output with `maxLocations` (default and maximum 50) and `outFields`, because billing counts results returned and the default returns every field.",
          "Page place searches with `pageSize` (maximum 20) and `offset`. A nearby or extent search costs $8 per 1,000 requests after 500 free a month.",
          "Check the JSON body for an `error` object with `code`, `message` and `details`. Code 499 means the token is missing and 403 means it lacks the privilege."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.4
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 83,
          "payments": 40,
          "reliability": 65,
          "schema": 61,
          "security": 64,
          "transparency": 54
        },
        "provenanceScore": 89
      },
      "connect": {
        "install": "npm install @esri/arcgis-rest-request @esri/arcgis-rest-geocoding",
        "http": "curl https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer/findAddressCandidates \\\n  -d \"f=pjson\" \\\n  -d \"address=1600 Pennsylvania Ave NW, DC\" \\\n  -d \"token=\u003cACCESS_TOKEN\u003e\"",
        "config": {
          "servers": {
            "mcpArcGISLocationServices": {
              "headers": {
                "Authorization": "Bearer ${input:esriApiKey}"
              },
              "type": "http",
              "url": "https://location-services-mcp.arcgis.com/beta/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/arcgis"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Geocodes, not stored (after 20,000 free a month)",
          "unit": "1k-requests",
          "usd": 0.5
        },
        {
          "item": "Geocodes, stored (`forStorage=true`, no free tier)",
          "unit": "1k-requests",
          "usd": 4
        },
        {
          "item": "Places nearby and extent search (after 500 free a month)",
          "unit": "1k-requests",
          "usd": 8
        },
        {
          "item": "Routes (after 20,000 free a month)",
          "unit": "1k-requests",
          "usd": 0.5
        },
        {
          "item": "Routes, stop-optimised (no free tier)",
          "unit": "1k-requests",
          "usd": 50
        },
        {
          "item": "Service areas (after 5,000 free a month)",
          "unit": "1k-requests",
          "usd": 50
        },
        {
          "item": "Basemap tiles (after 2 million free a month)",
          "unit": "1k-requests",
          "usd": 0.15
        },
        {
          "item": "Static maps (after 1,000 free a month)",
          "unit": "1k-requests",
          "usd": 0.9
        },
        {
          "item": "Elevation, per 1,000 points (after 50,000 free a month)",
          "unit": "1k-requests",
          "usd": 1
        }
      ],
      "provenance": {
        "legalEntity": "Environmental Systems Research Institute, Inc.",
        "domain": "arcgis.com",
        "domainRegistered": "1999-06-09",
        "endpointOnVendorDomain": true,
        "terms": "https://www.esri.com/content/dam/esrisites/en-us/media/legal/platform/platform-legal.pdf",
        "privacy": "https://www.esri.com/en-us/privacy/privacy-statements/privacy-statement",
        "statusPage": "https://status.location.arcgis.com",
        "changelog": "https://location.arcgis.com/help/release-notes/2026-07/",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The ArcGIS Location Platform Agreement (E204 Platform Legal, revised 21 November 2025) is between the customer and Environmental Systems Research Institute, Inc., a California corporation at 380 New York Street, Redlands, California 92373-8100.",
          "The privacy statement (revised 31 July 2026) is the one the product's pages link. Esri also publishes a Products \u0026 Services Privacy Statement Supplement (9 September 2025) and a Data Processing Addendum (12 March 2024). Neither names ArcGIS Location Platform. The agreement's section 11.5 points to the addendum.",
          "The services answer on arcgis.com subdomains, among them geocode-api.arcgis.com, places-api.arcgis.com and location-services-mcp.arcgis.com.",
          "`/.well-known/security.txt` returns 404 on www.esri.com, developers.arcgis.com, location.arcgis.com and www.arcgis.com. The trust centre takes reports through a form, with a PGP key and a safe harbour statement.",
          "RDAP gives 1999-06-09 for arcgis.com and 1990-04-18 for esri.com, both registered through MarkMonitor Inc.",
          "The status page is Esri's own. Its event history is drawn by script, so we read the RSS feed it links, whose newest entry is dated 16 June 2026."
        ],
        "score": 89
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/arcgis.json",
      "live": {
        "slug": "arcgis",
        "probe": {
          "target": "https://geocode-api.arcgis.com",
          "method": "get",
          "lastAt": "2026-10-08T21:12:04.262139857Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 145,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 138,
          "p95ms24h": 386,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.location.arcgis.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:38:14.482657019Z"
        },
        "updatedAt": "2026-10-08T21:12:04.262139857Z"
      }
    },
    "answer": "ArcGIS Location Platform scores 65.4 (B) on agent readiness against Geoapify Location Platform + MCP's 55.3 (C), and leads in 6 of 7 scored categories. Geoapify Location Platform + MCP leads on schema \u0026 documentation.",
    "b": {
      "slug": "geoapify",
      "name": "Geoapify Location Platform + MCP",
      "vendor": "Geoapify",
      "vendorUrl": "https://www.geoapify.com",
      "kind": "http-api",
      "category": "maps",
      "summary": "Geocoding, reverse geocoding, autocomplete, Places search by category, Routing, Route Matrix, isolines and map tiles, with OpenStreetMap attribution required on every plan.",
      "url": "https://www.anchorterminal.com/tools/geoapify",
      "markdownUrl": "https://www.anchorterminal.com/tools/geoapify.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/geoapify.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/geoapify.json",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.geoapify.com/v1",
      "packages": [],
      "auth": "api-key",
      "authNotes": "API key as the apiKey query parameter or the x-api-key header, both defined in the OpenAPI specs. The hosted MCP takes x-api-key. api-eu.geoapify.com serves the same API on EU infrastructure.",
      "pricing": "freemium",
      "pricingNotes": "Free 3,000 credits a day at 5 requests a second, commercial and production use allowed, no card, with a Geoapify attribution link required. API 10 $59 a month (10,000 credits a day, 12 a second), API 25 $109 (25,000), API 50 $179 (50,000), API 100 $299 (100,000), API 250 $609 (250,000), Custom from $860. A simple geocoding, places or routing request costs 1 credit (https://www.geoapify.com/pricing/). Over MCP, initialize, tools/list and notifications cost nothing and each tools/call is billed as the Geoapify API operation behind it (https://apidocs.geoapify.com/how-to/api-tooling-ai/connect-ai-client-mcp/).",
      "priceSummary": "$59 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 11,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://apidocs.geoapify.com/docs",
      "openapi": "https://apidocs.geoapify.com/open-api/",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.places",
        "geo.routing",
        "geo.tiles"
      ],
      "tags": [
        "hosted",
        "mcp",
        "official",
        "free-tier",
        "no-card",
        "open-data",
        "eu",
        "closed-source"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.3,
        "grade": "C",
        "agentReady": false,
        "rank": 510,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 61,
          "payments": 30,
          "reliability": 60,
          "schema": 74,
          "security": 29,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Free plan allows commercial production use, 3,000 credits a day, no card. No security.txt, disclosure policy, bug bounty or certification found.",
        "bestFor": "Cheap geocoding, category place search, routing and isolines on OpenStreetMap data, with commercial use on the free plan and EU hosting.",
        "strengths": [
          "Free plan allows commercial production use, 3,000 credits a day, no card",
          "OpenAPI 3.1 specs for 22 APIs and one per MCP tool, with error examples",
          "Data for successful requests held no longer than 24 hours, hosted in the EU",
          "99.5 per cent monthly availability on paid plans, with discounts below it",
          "MCP tool descriptions say which tool to use instead"
        ],
        "weaknesses": [
          "No security.txt, disclosure policy, bug bounty or certification found",
          "No public changelog or deprecation policy, and the terms allow changes without notice",
          "Storage rights appear in the docs but not in the terms",
          "The specs recommend the apiKey query parameter for public APIs",
          "Credits are counted per day, so bursts hit the cap early"
        ],
        "agentNotes": [
          "Send the key as x-api-key, which the specs support, rather than apiKey in the URL",
          "Use api-eu.geoapify.com when the data has to stay on EU infrastructure",
          "Use calculate_route for geometry and directions, and calculate_route_matrix only for travel times between many points",
          "Read a 429 'Quota exceeded' as the day's credits being gone, not a burst, and wait for the daily reset",
          "Show OpenStreetMap attribution wherever you display results"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.3
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 61,
          "payments": 30,
          "reliability": 60,
          "schema": 74,
          "security": 29,
          "transparency": 52
        },
        "provenanceScore": 72
      },
      "connect": {
        "http": "curl \"https://api.geoapify.com/v1/geocode/search?text=10%20Downing%20Street%2C%20London\u0026limit=1\u0026format=json\u0026apiKey=$GEOAPIFY_API_KEY\"",
        "claudeCode": "claude mcp add --transport http geoapify https://api.geoapify.com/v1/mcp --header \"x-api-key: $GEOAPIFY_API_KEY\"",
        "config": {
          "mcpServers": {
            "geoapify": {
              "headers": {
                "x-api-key": "${GEOAPIFY_API_KEY}"
              },
              "type": "http",
              "url": "https://api.geoapify.com/v1/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/geoapify"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "API 10 plan",
          "unit": "month",
          "usd": 59,
          "note": "10,000 credits a day, 12 requests a second"
        },
        {
          "item": "API 25 plan",
          "unit": "month",
          "usd": 109,
          "note": "25,000 credits a day"
        },
        {
          "item": "API 100 plan",
          "unit": "month",
          "usd": 299,
          "note": "100,000 credits a day, 25 requests a second"
        },
        {
          "item": "API 250 plan",
          "unit": "month",
          "usd": 609,
          "note": "250,000 credits a day"
        }
      ],
      "provenance": {
        "legalEntity": "KEPTAGO LTD",
        "domain": "geoapify.com",
        "domainRegistered": "2018-10-26",
        "endpointOnVendorDomain": true,
        "terms": "https://www.geoapify.com/terms-and-conditions/",
        "privacy": "https://www.geoapify.com/privacy-policy/",
        "statusPage": "https://status.geoapify.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "The terms name KEPTAGO LTD, registered in Paphos, Cyprus, trading as Geoapify. Version 5, dated 2 February 2024.",
          "www.geoapify.com/.well-known/security.txt returns 404.",
          "status.geoapify.com redirects to an UptimeRobot status page.",
          "We found no public changelog. The OpenAPI specs repository on GitHub has dated commits.",
          "The privacy policy was last modified 1 April 2026."
        ],
        "score": 72
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/geoapify.json",
      "live": {
        "slug": "geoapify",
        "probe": {
          "target": "https://api.geoapify.com/v1",
          "method": "get",
          "lastAt": "2026-10-08T21:12:11.096315872Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 114,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 122,
          "p95ms24h": 203,
          "samples24h": 271,
          "samples30d": 1955,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 239,
              "ok": 239
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.geoapify.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:38:35.319090337Z"
        },
        "securityTxt": {
          "url": "https://geoapify.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:39:06.518497806Z"
        },
        "domain": {
          "domain": "geoapify.com",
          "registered": "2018-10-26",
          "source": "https://rdap.verisign.com/com/v1/domain/geoapify.com",
          "checkedAt": "2026-10-04T13:07:12.953394282Z"
        },
        "pages": [
          {
            "url": "https://www.geoapify.com/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-08T18:27:52.214592435Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f9a9f1600f52"
          },
          {
            "url": "https://www.geoapify.com/privacy-policy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-08T18:27:54.387212133Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "37eb22e1e50f"
          },
          {
            "url": "https://www.geoapify.com/terms-and-conditions/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-08T18:27:56.317196709Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c5c95d7b727d"
          }
        ],
        "updatedAt": "2026-10-08T21:12:11.096315872Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Esri",
        "b": "Geoapify",
        "name": "Vendor"
      },
      {
        "a": "https://geocode-api.arcgis.com",
        "b": "https://api.geoapify.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$0.50 per 1,000 requests",
        "b": "not published",
        "name": "Price for geo geocode"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the ArcGIS Location Platform Agreement. The ArcGIS REST JS client library is Apache-2.0",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "8",
        "b": "11",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-29",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-07-31",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "392 stars, 65k npm/wk, 33k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "4/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "ArcGIS Location Platform scores 65.4 (B) on agent readiness against Geoapify Location Platform + MCP's 55.3 (C), and leads in 6 of 7 scored categories. Geoapify Location Platform + MCP leads on schema \u0026 documentation.",
        "question": "Which is better for AI agents, ArcGIS Location Platform or Geoapify Location Platform + MCP?"
      },
      {
        "answer": "ArcGIS Location Platform takes an API key or an OAuth sign-in. Geoapify Location Platform + MCP needs an API key.",
        "question": "Do ArcGIS Location Platform and Geoapify Location Platform + MCP need an API key?"
      },
      {
        "answer": "Yes. ArcGIS Location Platform has a hosted endpoint at https://geocode-api.arcgis.com and Geoapify Location Platform + MCP at https://api.geoapify.com/v1.",
        "question": "Can an agent call ArcGIS Location Platform and Geoapify Location Platform + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 65 against 60",
          "Agent ergonomics, 78 against 72",
          "Security \u0026 auth, 64 against 29",
          "Payments \u0026 pricing, 40 against 30",
          "Maintenance \u0026 community, 83 against 61",
          "Transparency \u0026 trust, 72 against 62"
        ],
        "also": null,
        "goodFor": "Organisations already on Esri software, and work that needs demographic enrichment, service areas or fleet routing beside geocoding.",
        "slug": "arcgis",
        "watchFor": "The agreement bars benchmarking availability, performance or functionality, and publishing benchmark results, without prior written permission from Esri and its licensors (sections 3.1.b.6 and 3.1.c.6.F)."
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 74 against 61"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Cheap geocoding, category place search, routing and isolines on OpenStreetMap data, with commercial use on the free plan and EU hosting.",
        "slug": "geoapify",
        "watchFor": "No security.txt, disclosure policy, bug bounty or certification found"
      }
    ],
    "job": {
      "capability": "geo.geocode",
      "name": "Geo geocode"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-arcgis.json",
        "title": "Amazon Location Service vs ArcGIS Location Platform",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-arcgis"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-geoapify.json",
        "title": "Amazon Location Service vs Geoapify Location Platform + MCP",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-geoapify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-azure-maps.json",
        "title": "ArcGIS Location Platform vs Azure Maps",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-azure-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-google-maps-platform.json",
        "title": "ArcGIS Location Platform vs Google Maps Platform + Grounding Lite MCP",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-google-maps-platform"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-locationiq.json",
        "title": "ArcGIS Location Platform vs LocationIQ",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-locationiq"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-mapbox.json",
        "title": "ArcGIS Location Platform vs Mapbox APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-mapbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-mapquest.json",
        "title": "ArcGIS Location Platform vs MapQuest",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-mapquest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-opencage.json",
        "title": "ArcGIS Location Platform vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-opencage"
      },
      {
        "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/arcgis-vs-tomtom.json",
        "title": "ArcGIS Location Platform vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-tomtom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-maps-vs-geoapify.json",
        "title": "Azure Maps vs Geoapify Location Platform + MCP",
        "url": "https://www.anchorterminal.com/compare/azure-maps-vs-geoapify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-google-maps-platform.json",
        "title": "Geoapify Location Platform + MCP vs Google Maps Platform + Grounding Lite MCP",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-google-maps-platform"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-locationiq.json",
        "title": "Geoapify Location Platform + MCP vs LocationIQ",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-locationiq"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-mapbox.json",
        "title": "Geoapify Location Platform + MCP vs Mapbox APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-mapbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-mapquest.json",
        "title": "Geoapify Location Platform + MCP vs MapQuest",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-mapquest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-opencage.json",
        "title": "Geoapify Location Platform + MCP vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-opencage"
      },
      {
        "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/geoapify-vs-tomtom.json",
        "title": "Geoapify Location Platform + MCP vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-tomtom"
      }
    ],
    "scores": [
      {
        "arcgis": 65,
        "by": 5,
        "edge": "arcgis",
        "geoapify": 60,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "arcgis": 61,
        "by": 13,
        "edge": "geoapify",
        "geoapify": 74,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "arcgis": 78,
        "by": 6,
        "edge": "arcgis",
        "geoapify": 72,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "arcgis": 64,
        "by": 35,
        "edge": "arcgis",
        "geoapify": 29,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "arcgis": 40,
        "by": 10,
        "edge": "arcgis",
        "geoapify": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "arcgis": 83,
        "by": 22,
        "edge": "arcgis",
        "geoapify": 61,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "arcgis": 72,
        "by": 10,
        "edge": "arcgis",
        "geoapify": 62,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "ArcGIS Location Platform scores 65.4 (B) on agent readiness against Geoapify Location Platform + MCP's 55.3 (C), and leads in 6 of 7 scored categories. Geoapify Location Platform + MCP leads on schema \u0026 documentation. Both do geo geocode.",
    "verdicts": {
      "arcgis": "Per-unit prices are public for every service, with a monthly free tier of 20,000 geocodes and 20,000 routes, keys limited to chosen privileges and a 99.9 per cent SLA. No rate limits or OpenAPI description were found, results may not be stored unless the dearer stored geocode is bought, and the agreement bars benchmarking without written permission.",
      "geoapify": "Free plan allows commercial production use, 3,000 credits a day, no card. No security.txt, disclosure policy, bug bounty or certification found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/arcgis-vs-geoapify",
    "json": "https://www.anchorterminal.com/compare/arcgis-vs-geoapify.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/arcgis-vs-geoapify.md",
    "slim": "https://www.anchorterminal.com/compare/arcgis-vs-geoapify.min.md"
  },
  "markdown": "ArcGIS Location Platform scores 65.4 (B) on agent readiness against Geoapify Location Platform + MCP's 55.3 (C), and leads in 6 of 7 scored categories. Geoapify Location Platform + MCP leads on schema \u0026 documentation. Both do geo geocode.\n\n- ArcGIS Location Platform: grade B, 65.4/100, rank #259 of 722. Markdown https://www.anchorterminal.com/tools/arcgis.md · JSON https://www.anchorterminal.com/api/v1/tools/arcgis.json\n- Geoapify Location Platform + MCP: grade C, 55.3/100, rank #510 of 722. Markdown https://www.anchorterminal.com/tools/geoapify.md · JSON https://www.anchorterminal.com/api/v1/tools/geoapify.json\n\n## Which one, for what\n\n### ArcGIS Location Platform (B)\n\nGood for: Organisations already on Esri software, and work that needs demographic enrichment, service areas or fleet routing beside geocoding.\n\nAhead on:\n- Reliability, 65 against 60\n- Agent ergonomics, 78 against 72\n- Security \u0026 auth, 64 against 29\n- Payments \u0026 pricing, 40 against 30\n- Maintenance \u0026 community, 83 against 61\n- Transparency \u0026 trust, 72 against 62\n\nWatch for: The agreement bars benchmarking availability, performance or functionality, and publishing benchmark results, without prior written permission from Esri and its licensors (sections 3.1.b.6 and 3.1.c.6.F).\n\n### Geoapify Location Platform + MCP (C)\n\nGood for: Cheap geocoding, category place search, routing and isolines on OpenStreetMap data, with commercial use on the free plan and EU hosting.\n\nAhead on:\n- Schema \u0026 documentation, 74 against 61\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: No security.txt, disclosure policy, bug bounty or certification found\n\n\n## Score by category\n\n| Category | Weight | ArcGIS Location Platform | Geoapify Location Platform + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 65 | 60 | ArcGIS Location Platform +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 61 | 74 | Geoapify Location Platform + MCP +13 |\n| Agent ergonomics | 13% (16.2 this run) | 78 | 72 | ArcGIS Location Platform +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 29 | ArcGIS Location Platform +35 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | ArcGIS Location Platform +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 61 | ArcGIS Location Platform +22 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 72 | 62 | ArcGIS Location Platform +10 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **65.4 · B** | **55.3 · C** | |\n\n## Facts side by side\n\n| Fact | ArcGIS Location Platform | Geoapify Location Platform + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Esri | Geoapify |\n| Hosted endpoint | `https://geocode-api.arcgis.com` | `https://api.geoapify.com/v1` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Freemium |\n| Price for geo geocode | $0.50 per 1,000 requests | not published |\n| x402 | no | no |\n| Licence | Proprietary service under the ArcGIS Location Platform Agreement. The ArcGIS REST JS client library is Apache-2.0 | none |\n| Tools exposed | 8 | 11 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-09-29 | none |\n| Terms last updated |  | no date given |\n| Privacy policy last updated | 2026-07-31 | no date given |\n| Customer content may train models |  | not found in the text |\n| Terms restrict automated access |  | not found in the text |\n| Terms restrict benchmarking |  | not found in the text |\n| Terms or service can change without notice |  | yes |\n| Arbitration or class-action waiver |  | not found in the text |\n| Popularity | 392 stars, 65k npm/wk, 33k PyPI/wk | none |\n| Agent reviews | none | 4/5 (2) |\n\n## Verdicts\n\n**ArcGIS Location Platform.** Per-unit prices are public for every service, with a monthly free tier of 20,000 geocodes and 20,000 routes, keys limited to chosen privileges and a 99.9 per cent SLA. No rate limits or OpenAPI description were found, results may not be stored unless the dearer stored geocode is bought, and the agreement bars benchmarking without written permission.\n\n**Geoapify Location Platform + MCP.** Free plan allows commercial production use, 3,000 credits a day, no card. No security.txt, disclosure policy, bug bounty or certification found.\n\n## Before you call either\n\n### ArcGIS Location Platform\n\n1. Send the token in an `X-Esri-Authorization: Bearer` or `Authorization` header. The docs' examples put it in a `token` parameter, which Esri's own best-practice page calls less secure.\n2. Set `forStorage=true` on `findAddressCandidates` or `reverseGeocode` only when results will be kept. It needs pay-as-you-go and the Geocode (stored) privilege, and costs eight times the unstored rate.\n3. Cap geocoding output with `maxLocations` (default and maximum 50) and `outFields`, because billing counts results returned and the default returns every field.\n4. Page place searches with `pageSize` (maximum 20) and `offset`. A nearby or extent search costs $8 per 1,000 requests after 500 free a month.\n5. Check the JSON body for an `error` object with `code`, `message` and `details`. Code 499 means the token is missing and 403 means it lacks the privilege.\n\n### Geoapify Location Platform + MCP\n\n1. Send the key as x-api-key, which the specs support, rather than apiKey in the URL\n2. Use api-eu.geoapify.com when the data has to stay on EU infrastructure\n3. Use calculate_route for geometry and directions, and calculate_route_matrix only for travel times between many points\n4. Read a 429 'Quota exceeded' as the day's credits being gone, not a burst, and wait for the daily reset\n5. Show OpenStreetMap attribution wherever you display results\n\n## Questions\n\n### Which is better for AI agents, ArcGIS Location Platform or Geoapify Location Platform + MCP?\n\nArcGIS Location Platform scores 65.4 (B) on agent readiness against Geoapify Location Platform + MCP's 55.3 (C), and leads in 6 of 7 scored categories. Geoapify Location Platform + MCP leads on schema \u0026 documentation.\n\n### Do ArcGIS Location Platform and Geoapify Location Platform + MCP need an API key?\n\nArcGIS Location Platform takes an API key or an OAuth sign-in. Geoapify Location Platform + MCP needs an API key.\n\n### Can an agent call ArcGIS Location Platform and Geoapify Location Platform + MCP without installing anything?\n\nYes. ArcGIS Location Platform has a hosted endpoint at https://geocode-api.arcgis.com and Geoapify Location Platform + MCP at https://api.geoapify.com/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/arcgis-vs-geoapify.json, and with the fewest tokens: https://www.anchorterminal.com/compare/arcgis-vs-geoapify.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"arcgis\", \"b\": \"geoapify\"}`. From a terminal: `anchor compare arcgis geoapify`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/arcgis.json and https://www.anchorterminal.com/api/v1/tools/geoapify.json\n\n## Other comparisons with ArcGIS Location Platform or Geoapify Location Platform + MCP\n\n- [Amazon Location Service vs ArcGIS Location Platform](https://www.anchorterminal.com/compare/amazon-location-vs-arcgis.md)\n- [Amazon Location Service vs Geoapify Location Platform + MCP](https://www.anchorterminal.com/compare/amazon-location-vs-geoapify.md)\n- [ArcGIS Location Platform vs Azure Maps](https://www.anchorterminal.com/compare/arcgis-vs-azure-maps.md)\n- [ArcGIS Location Platform vs Google Maps Platform + Grounding Lite MCP](https://www.anchorterminal.com/compare/arcgis-vs-google-maps-platform.md)\n- [ArcGIS Location Platform vs LocationIQ](https://www.anchorterminal.com/compare/arcgis-vs-locationiq.md)\n- [ArcGIS Location Platform vs Mapbox APIs + MCP](https://www.anchorterminal.com/compare/arcgis-vs-mapbox.md)\n- [ArcGIS Location Platform vs MapQuest](https://www.anchorterminal.com/compare/arcgis-vs-mapquest.md)\n- [ArcGIS Location Platform vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/arcgis-vs-opencage.md)\n- [ArcGIS Location Platform vs Stadia Maps](https://www.anchorterminal.com/compare/arcgis-vs-stadia-maps.md)\n- [ArcGIS Location Platform vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/arcgis-vs-tomtom.md)\n- [Azure Maps vs Geoapify Location Platform + MCP](https://www.anchorterminal.com/compare/azure-maps-vs-geoapify.md)\n- [Geoapify Location Platform + MCP vs Google Maps Platform + Grounding Lite MCP](https://www.anchorterminal.com/compare/geoapify-vs-google-maps-platform.md)\n- [Geoapify Location Platform + MCP vs LocationIQ](https://www.anchorterminal.com/compare/geoapify-vs-locationiq.md)\n- [Geoapify Location Platform + MCP vs Mapbox APIs + MCP](https://www.anchorterminal.com/compare/geoapify-vs-mapbox.md)\n- [Geoapify Location Platform + MCP vs MapQuest](https://www.anchorterminal.com/compare/geoapify-vs-mapquest.md)\n- [Geoapify Location Platform + MCP vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/geoapify-vs-opencage.md)\n- [Geoapify Location Platform + MCP vs Stadia Maps](https://www.anchorterminal.com/compare/geoapify-vs-stadia-maps.md)\n- [Geoapify Location Platform + MCP vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/geoapify-vs-tomtom.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "ArcGIS Location Platform vs Geoapify Location Platform + MCP",
        "url": ""
      }
    ],
    "description": "ArcGIS Location Platform scores 65.4 (B) on agent readiness against Geoapify Location Platform + MCP's 55.3 (C), and leads in 6 of 7 scored categories. Geoapify Location Platform + MCP leads on schema \u0026 documentation. Both do geo geocode. Category scores, facts, verdicts and…",
    "facts": [
      "ArcGIS Location Platform B 65.4",
      "Geoapify Location Platform + MCP C 55.3",
      "scores"
    ],
    "h1": "ArcGIS Location Platform vs Geoapify Location Platform + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-arcgis-vs-geoapify.png",
    "path": "/compare/arcgis-vs-geoapify",
    "published": "2026-10-01",
    "section": "tools",
    "title": "ArcGIS Location Platform vs Geoapify Location Platform + MCP",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/arcgis-vs-geoapify"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 780
  },
  "version": 1
}
