{
  "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",
      "dns": "arcgis.grade.anchorterminal.com",
      "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": 9,
      "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-10-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.1,
        "grade": "B",
        "agentReady": false,
        "rank": 381,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 83,
          "payments": 40,
          "reliability": 70,
          "schema": 61,
          "security": 64,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "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 nine 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 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": 4,
        "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": 66.1
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 83,
          "payments": 40,
          "reliability": 70,
          "schema": 61,
          "security": 64,
          "transparency": 54
        },
        "provenanceScore": 83,
        "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-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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-09/",
        "securityTxt": "none",
        "checked": "2026-11-02",
        "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 (developers and location re-read on 2 November 2026). 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 platform's RSS feed (all.rss, titled ArcGIS Location Platform Services Status), whose newest entry on 2 November 2026 is still dated 16 June 2026. The page's \"all services RSS feed\" link points at location_platform.rss, which answered 404 that day.",
          "The platform release notes moved on to a September 2026 page (Static Maps polygon and overlay endpoints, the MCP service, pay-as-you-go moved to the payment methods page, a fix for an API key validation bug in geocoding and routing)."
        ],
        "score": 83
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/arcgis.json",
      "live": {
        "slug": "arcgis",
        "probe": {
          "target": "https://geocode-api.arcgis.com",
          "method": "get",
          "lastAt": "2026-11-07T19:21:52.853508267Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 195,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 154,
          "p95ms24h": 279,
          "samples24h": 238,
          "samples30d": 7430,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "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": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "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.location.arcgis.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:06.736228455Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Esri/arcgis-rest-js",
            "version": "@esri/arcgis-rest-request@4.11.1",
            "released": "2026-08-12",
            "seenAt": "2026-11-06T23:07:01.462203334Z"
          },
          {
            "registry": "npm",
            "name": "@esri/arcgis-rest-geocoding",
            "version": "4.11.0",
            "seenAt": "2026-11-06T23:06:59.054252559Z"
          },
          {
            "registry": "npm",
            "name": "@esri/arcgis-rest-request",
            "version": "4.11.0",
            "seenAt": "2026-11-06T23:06:59.265334951Z"
          },
          {
            "registry": "pypi",
            "name": "arcgis",
            "version": "2.4.4",
            "released": "2026-10-20",
            "seenAt": "2026-11-06T23:07:01.275527424Z"
          }
        ],
        "githubStars": 394,
        "npmWeekly": 8426,
        "pypiWeekly": 37506,
        "securityTxt": {
          "url": "https://arcgis.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:16.036225554Z"
        },
        "domain": {
          "domain": "arcgis.com",
          "registered": "1999-06-09",
          "source": "https://rdap.verisign.com/com/v1/domain/arcgis.com",
          "checkedAt": "2026-11-01T14:12:57.919937705Z"
        },
        "pages": [
          {
            "url": "https://location.arcgis.com/help/release-notes/2026-07/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-02T07:20:10.512584723Z",
            "changedAt": "2026-10-17T23:05:30.185999821Z",
            "fingerprint": "9af8b8dce85d"
          },
          {
            "url": "https://location.arcgis.com/help/release-notes/2026-09/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-07T14:13:25.735875546Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bcf8d7b9a99a"
          },
          {
            "url": "https://support.esri.com/en-us/knowledge-base/landscape-variables-in-arcgis-geoenrichment-000043632",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:21:26.942689851Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "135039d0a7c5"
          },
          {
            "url": "https://www.esri.com/en-us/privacy/privacy-statements/privacy-statement",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:28:19.883777876Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a1bf1873839c"
          }
        ],
        "github": {
          "repo": "esri/arcgis-rest-js",
          "checkedAt": "2026-11-02T08:46:46.266240285Z",
          "stars": 393,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-30T17:50:59Z",
          "openIssues": 59,
          "openPRs": 5,
          "issuesOpened90d": 2,
          "issuesClosed90d": 1,
          "prsMerged90d": 7,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 45,
            "failure": 3,
            "other": 2,
            "latest": "success",
            "latestAt": "2026-08-07T21:03:48Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 12,
            "medianDays": 33.4
          }
        },
        "updatedAt": "2026-11-07T19:21:52.853508267Z"
      }
    },
    "answer": "Geocodio scores 72.2 (BB) on agent readiness against ArcGIS Location Platform's 66.1 (B), and leads in 4 of 7 scored categories. ArcGIS Location Platform leads on security \u0026 auth.",
    "b": {
      "slug": "geocodio",
      "name": "Geocodio",
      "vendor": "Dotsquare LLC",
      "vendorUrl": "https://www.geocod.io",
      "kind": "http-api",
      "category": "maps",
      "summary": "Geocodio is a hosted geocoding API from Dotsquare LLC for addresses in the US, Canada, Mexico, the UK, Australia and New Zealand. It does forward, reverse and batch geocoding, distance matrices and census, district and timezone data appends.",
      "url": "https://www.anchorterminal.com/tools/geocodio",
      "markdownUrl": "https://www.anchorterminal.com/tools/geocodio.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/geocodio.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/geocodio.json",
      "dns": "geocodio.grade.anchorterminal.com",
      "repo": "https://github.com/Geocodio/geocodio-cli",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "geocodio-library-python"
        },
        {
          "registry": "npm",
          "name": "geocodio-library-node"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key from the dashboard at dash.geocod.io after a browser signup, sent as `Authorization: Bearer` (since March 2025) or the `api_key` query parameter, which the docs and the OpenAPI spec still lead with. Five keys on pay-as-you-go. A new key reaches single and batch geocoding only; the Lists and Distance APIs must be enabled per key.",
      "pricing": "freemium",
      "pricingNotes": "2,500 lookups a day free on pay-as-you-go with no card until usage passes the free tier, then $1 per 1,000 lookups billed on the 1st of the next month. Each data append is one more lookup. Flex plans from $315 a month for 350,000 credits, Unlimited from $1,600 a month per dedicated instance.",
      "priceSummary": "$1 / 1k req",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, AGENTS.md, the docs or the OpenAPI spec (checked 2026-11-06). Billing is by card on file, monthly in arrears on pay-as-you-go.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 20984,
        "pypiWeekly": 921,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://www.geocod.io/docs/",
      "llmsTxt": "https://www.geocod.io/llms.txt",
      "openapi": "https://api.geocod.io/openapi-spec.json",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.routing"
      ],
      "tags": [
        "hosted",
        "api-key",
        "freemium",
        "free-tier",
        "no-card",
        "llms-txt",
        "openapi",
        "official",
        "cli",
        "agent-skills",
        "python",
        "typescript",
        "php",
        "ruby",
        "batch",
        "async-jobs",
        "status-page",
        "security-txt",
        "enterprise",
        "soc2",
        "closed-source"
      ],
      "lastRelease": "2026-11-03",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 72.2,
        "grade": "BB",
        "agentReady": true,
        "rank": 138,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 86,
          "payments": 40,
          "reliability": 70,
          "schema": 92,
          "security": 58,
          "transparency": 87
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Geocodio publishes llms.txt, an AGENTS.md on cost and retries, an OpenAPI spec and a dated changelog, and its results may be stored permanently. Coverage stops at six countries, there's no MCP server or published SLA for self-serve plans, and the docs still put the key in the query string by default.",
        "bestFor": "Batch geocoding and district or census enrichment of addresses in the US, Canada, Mexico, the UK, Australia and New Zealand, where results must be stored.",
        "strengths": [
          "llms.txt and AGENTS.md cover billing arithmetic, retry rules, idempotency on the client and when not to use the API",
          "2,500 free lookups a day with no card, then $1 per 1,000, and zero-result lookups aren't billed",
          "Results may be stored and reused permanently, except UK reverse geocoding addresses",
          "Dated API changelog with versioned paths, and replaced versions kept for at least 12 months",
          "Official Python, Node, PHP and Ruby libraries and a CLI with an agent output mode, all MIT"
        ],
        "weaknesses": [
          "Covers only the US, Canada, Mexico, the UK, Australia and New Zealand, and UK needs a Flex or Unlimited plan",
          "The docs lead with the api_key query parameter, and the OpenAPI spec defines only that scheme",
          "No idempotency key on batch or list creation, so a retried upload is billed again",
          "No MCP server, and no published SLA on self-serve plans",
          "SOC 2 Type II and penetration tests apply to the separate Enterprise platform only"
        ],
        "agentNotes": [
          "Always set `country`, because an address with none falls back to the US and is billed even when it's wrong",
          "Send the key as `Authorization: Bearer`, not in the query string, so it stays out of logs",
          "Use batch POST /geocode (up to 10,000 lookups) or the Lists API rather than looping single requests",
          "Treat accuracy_type place, county or state as not found, and check `_warnings` for appends that were billed but skipped",
          "Don't retry 403 or 422. On 429 read X-RateLimit headers and back off, and never re-upload a list sitting in ENQUEUED"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 72.2
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 86,
          "payments": 40,
          "reliability": 70,
          "schema": 92,
          "security": 58,
          "transparency": 80
        },
        "provenanceScore": 93,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install geocodio-library-python",
        "http": "curl -H \"Authorization: Bearer $GEOCODIO_API_KEY\" \"https://api.geocod.io/v2.1/geocode?q=1109+N+Highland+St,+Arlington+VA\u0026country=USA\""
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/geocodio"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Lookup after the free tier, pay-as-you-go",
          "unit": "1k-requests",
          "usd": 1,
          "note": "2,500 lookups a day free. A lookup is one address or coordinate, and each data append is one more"
        },
        {
          "item": "Flex 350 plan",
          "unit": "month",
          "usd": 315,
          "note": "350,000 credits a month ($0.90 per 1,000), rolling over while subscribed"
        },
        {
          "item": "Unlimited Geocoding plan",
          "unit": "month",
          "usd": 1600,
          "note": "One dedicated instance, up to 5 million lookups a day; distance credits extra at $1 per 1,000"
        }
      ],
      "provenance": {
        "legalEntity": "Dotsquare LLC",
        "domain": "geocod.io",
        "domainRegistered": "2013-06-05",
        "endpointOnVendorDomain": true,
        "terms": "https://www.geocod.io/terms-of-use",
        "privacy": "https://www.geocod.io/privacy-policy",
        "statusPage": "https://status.geocod.io",
        "changelog": "https://www.geocod.io/docs/#changelog",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "The terms name Dotsquare LLC, dba Geocodio, 440 Monticello Ave Ste 1802 #43146, Norfolk, Virginia, and choose Virginia law.",
          "The terms' acceptable use section bars customers from 'web scraping or data scraping on or related to the System, including ... any bot or web crawler'. Recorded as a fact; robots.txt on www.geocod.io allows all agents.",
          "security.txt at www.geocod.io/security.txt names security@geocod.io, a PGP key and a responsible disclosure policy, and expires 30 January 2030.",
          "RDAP gives geocod.io a registration date of 5 June 2013. The about page says Geocodio launched in 2014.",
          "llms.txt links https://www.geocod.io/pricing.md as the current pricing in Markdown, but that URL returned a 404 page on 6 November 2026, so prices come from the HTML pricing page."
        ],
        "score": 93
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/geocodio.json",
      "live": {
        "slug": "geocodio",
        "vendorStatus": {
          "page": "https://status.geocod.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T19:22:12.77760537Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Geocodio/geocodio-cli",
            "version": "v3.3.0",
            "released": "2026-08-31",
            "seenAt": "2026-11-06T23:28:00.884456202Z"
          },
          {
            "registry": "npm",
            "name": "geocodio-library-node",
            "version": "2.2.0",
            "seenAt": "2026-11-06T23:28:00.414999469Z"
          },
          {
            "registry": "pypi",
            "name": "geocodio-library-python",
            "version": "1.6.0",
            "released": "2026-10-16",
            "seenAt": "2026-11-06T23:27:57.978816079Z"
          }
        ],
        "githubStars": 3,
        "npmWeekly": 20984,
        "pypiWeekly": 921,
        "securityTxt": {
          "url": "https://geocod.io/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-01-30T00:00:00.000Z",
          "checkedAt": "2026-11-07T16:01:17.012285777Z"
        },
        "llmsTxt": {
          "url": "https://www.geocod.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:35.723551581Z"
        },
        "pages": [
          {
            "url": "https://www.geocod.io/docs/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:29:02.899876797Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9bcdba9ab6f4"
          },
          {
            "url": "https://www.geocod.io/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:29:05.843886759Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "712b2145deac"
          },
          {
            "url": "https://www.geocod.io/terms-of-use",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:29:07.288294893Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ff5d2a37483d"
          }
        ],
        "updatedAt": "2026-11-07T19:22:12.77760537Z"
      }
    },
    "edges": [
      {
        "by": 31,
        "category": "schema",
        "leads": "geocodio",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI description was found for geocoding, places or routing. The geocoding service description at `GeocodeServer?f=pjson` lists each parameter with its type, allowed values and supported operations, which earns 8 of 25. `/llms.txt` returns 404 on developers.arcgis.com and location.arcgis.com (0). The reference explains when to use a direct request or a job, and stored or unstored geocoding (16 of 20). Parameters carry types, defaults, allowed values and maximums, such as `maxLocations` up to 50 and `pageSize` up to 20 (12 of 15). Each operation has request and response examples, and the geocoding output page lists error codes with extended codes and causes (13 of 15). Geocoding has dated release notes back to 2023 and the platform has release notes by month, but the geocoding path carries no version while places uses `/v1` (12 of 15). Total 61.",
          "b": "OpenAPI 3.0.1 spec, version 2.1.0, with 11 paths (25). llms.txt and an AGENTS.md written for agents (10). llms.txt and AGENTS.md say when to use each endpoint and when not to, such as the Lists API over looping single calls, the upload tool for a one-off spreadsheet and straightline over driving distance unless road distance is needed (19). Typed parameters with country values, component fields and documented limits, though `fields` is a comma-separated string (12). Error table with retry guidance, examples throughout, but the spec documents 200, 400, 403, 404, 422 and 424 and not 429 or 500 (11). Versioned paths from v1 to v2.1 and a dated public changelog with entries back to 2024 (15). 25+10+19+12+11+15 = 92."
        },
        "scores": {
          "a": 61,
          "b": 92
        }
      },
      {
        "by": 18,
        "category": "transparency",
        "leads": "geocodio",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "A closed service with a dated agreement that states what may be stored, cached and shared, and an Apache-2.0 client library (15 of 30). The privacy statement was revised on 31 July 2026, the Products \u0026 Services supplement on 9 September 2025 and the Data Processing Addendum on 12 March 2024. None states a retention period, and neither the supplement nor the addendum names ArcGIS Location Platform (14 of 30). The agreement promises 90 days' notice for deprecations, and the July 2026 release notes record the retirement of legacy API keys (16 of 20). The addendum names four sub-processors as examples and the GDPR page says information is stored in the United States, with no list specific to this product (9 of 20). Total 54.",
          "b": "Editorial half only. Closed service with clear, dated terms under Virginia law, and libraries and CLI under MIT (20). The privacy policy says API and spreadsheet input and results are deleted within 45 days, error logs kept 90 days, and customer data isn't used to train AI models. A separate data retention policy and llms.txt put Lists API data at 72 hours. Results may be stored permanently by the customer (27). Replaced API versions are guaranteed for at least 12 months, breaking changes come only with a new version, and the changelog marks each one 'Breaking' (18). The privacy policy names its processors, such as Sentry and Laravel Nightwatch, and the security page says self-serve is hosted in Europe (15). 20+27+18+15 = 80."
        },
        "scores": {
          "a": 69,
          "b": 87
        }
      },
      {
        "by": 6,
        "category": "security",
        "leads": "arcgis",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "API key credentials carry selected privileges, an expiry date of at most one year, optional referrer limits and two tokens for rotation, and OAuth 2.0 user and app authentication are supported, which earns 30. Less 10 because the documented examples send the token as a `token` request parameter, although headers are accepted and recommended (20). Privileges are chosen per key, down to stored or unstored geocoding and simple or optimised routing, and the MCP server filters tools by them (16 of 20). Results include place names and addresses from third-party data, and no prompt-injection guidance was found (5 of 15). The dashboard shows usage by service and by credential per day, with no per-call log found (10 of 15). The trust centre has a coordinated disclosure programme with a safe harbour statement and a PGP key, and says Online Services are covered by FedRAMP moderate and ISO 27001, without naming ArcGIS Location Platform. No security.txt (404 on developers.arcgis.com and location.arcgis.com on 2 November) and no bug bounty were found (13 of 20). Total 64.",
          "b": "Revocable keys, five on pay-as-you-go, each with permissions (Lists and Distance off by default), which earns 25. Less 10 because the docs say 'All requests require \u0026api_key=YOUR_API_KEY' and the OpenAPI spec defines only the query scheme, though an Authorization header has worked since March 2025 (15). Per-key permissions limit what a key can reach. DELETE on lists and distance jobs needs no confirmation (13). Results are addresses and government district, census and legislator data rather than user-written text. No prompt-injection guidance found (9). Usage per API key in the dashboard, downloadable as CSV, and billable-lookup headers on every response (8). Valid security.txt to 30 January 2030 with a PGP key and a responsible disclosure policy. SOC 2 Type II and annual penetration tests apply to the Enterprise platform only. No bug bounty found (13). 15+13+9+8+13 = 58."
        },
        "scores": {
          "a": 64,
          "b": 58
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Esri",
        "b": "Dotsquare LLC",
        "name": "Vendor"
      },
      {
        "a": "https://geocode-api.arcgis.com",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "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": "$1600 per month (plan)",
        "name": "Price for geocoding"
      },
      {
        "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": "9",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-27",
        "b": "2026-11-03",
        "name": "Last release"
      },
      {
        "a": "not read yet",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-07-31",
        "b": "2018-05-25",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "392 stars, 65k npm/wk, 33k PyPI/wk",
        "b": "21k npm/wk, 921 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Geocodio scores 72.2 (BB) on agent readiness against ArcGIS Location Platform's 66.1 (B), and leads in 4 of 7 scored categories. ArcGIS Location Platform leads on security \u0026 auth.",
        "question": "Which is better for AI agents, ArcGIS Location Platform or Geocodio?"
      },
      {
        "answer": "ArcGIS Location Platform takes an API key or an OAuth sign-in. Geocodio needs an API key.",
        "question": "Do ArcGIS Location Platform and Geocodio need an API key?"
      },
      {
        "answer": "ArcGIS Location Platform has a hosted endpoint at https://geocode-api.arcgis.com. No hosted endpoint is listed for Geocodio.",
        "question": "Can an agent call ArcGIS Location Platform and Geocodio without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 64 against 58"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "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, 92 against 61",
          "Transparency \u0026 trust, 87 against 69"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Free to start without a card"
        ],
        "goodFor": "Batch geocoding and district or census enrichment of addresses in the US, Canada, Mexico, the UK, Australia and New Zealand, where results must be stored.",
        "slug": "geocodio",
        "watchFor": "Covers only the US, Canada, Mexico, the UK, Australia and New Zealand, and UK needs a Flex or Unlimited plan"
      }
    ],
    "history": {
      "arcgis": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-02",
          "delta": 1,
          "from": 65.1,
          "fromGrade": "B",
          "to": 66.1,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-30",
          "delta": -0.3,
          "from": 65.4,
          "fromGrade": "B",
          "to": 65.1,
          "toGrade": "B"
        }
      ],
      "geocodio": null
    },
    "job": {
      "capability": "geo.geocode",
      "name": "Geocoding"
    },
    "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-geocodio.json",
        "title": "Amazon Location Service vs Geocodio",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-geocodio"
      },
      {
        "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-geoapify.json",
        "title": "ArcGIS Location Platform vs Geoapify Location Platform + MCP",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-geoapify"
      },
      {
        "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-here-location-services.json",
        "title": "ArcGIS Location Platform vs HERE Location Services",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-here-location-services"
      },
      {
        "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-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-nextbillion.json",
        "title": "ArcGIS Location Platform vs NextBillion.ai",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-nextbillion"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-nominatim.json",
        "title": "ArcGIS Location Platform vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-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-radar.json",
        "title": "ArcGIS Location Platform vs Radar",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-radar"
      },
      {
        "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/arcgis-vs-woosmap.json",
        "title": "ArcGIS Location Platform vs Woosmap",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-woosmap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-maps-vs-geocodio.json",
        "title": "Azure Maps vs Geocodio",
        "url": "https://www.anchorterminal.com/compare/azure-maps-vs-geocodio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-geocodio.json",
        "title": "Geoapify Location Platform + MCP vs Geocodio",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-geocodio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-google-maps-platform.json",
        "title": "Geocodio vs Google Maps Platform + Grounding Lite MCP",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-google-maps-platform"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-here-location-services.json",
        "title": "Geocodio vs HERE Location Services",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-here-location-services"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-locationiq.json",
        "title": "Geocodio vs LocationIQ",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-locationiq"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-mapbox.json",
        "title": "Geocodio vs Mapbox APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-mapbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-mapquest.json",
        "title": "Geocodio vs MapQuest",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-mapquest"
      },
      {
        "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-nextbillion.json",
        "title": "Geocodio vs NextBillion.ai",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-nextbillion"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-nominatim.json",
        "title": "Geocodio vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-opencage.json",
        "title": "Geocodio vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-radar.json",
        "title": "Geocodio vs Radar",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-radar"
      },
      {
        "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/geocodio-vs-tomtom.json",
        "title": "Geocodio vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-tomtom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-woosmap.json",
        "title": "Geocodio vs Woosmap",
        "url": "https://www.anchorterminal.com/compare/geocodio-vs-woosmap"
      }
    ],
    "panel": null,
    "scores": [
      {
        "arcgis": 70,
        "by": 0,
        "edge": "",
        "geocodio": 70,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "arcgis": 61,
        "by": 31,
        "edge": "geocodio",
        "geocodio": 92,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "arcgis": 78,
        "by": 2,
        "edge": "geocodio",
        "geocodio": 80,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "arcgis": 64,
        "by": 6,
        "edge": "arcgis",
        "geocodio": 58,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "arcgis": 40,
        "by": 0,
        "edge": "",
        "geocodio": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "arcgis": 83,
        "by": 3,
        "edge": "geocodio",
        "geocodio": 86,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "arcgis": 69,
        "by": 18,
        "edge": "geocodio",
        "geocodio": 87,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Geocodio scores 72.2 (BB) on agent readiness against ArcGIS Location Platform's 66.1 (B), and leads in 4 of 7 scored categories. ArcGIS Location Platform leads on security \u0026 auth. Both do geocoding.",
    "tasks": null,
    "tutorials": [],
    "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.",
      "geocodio": "Geocodio publishes llms.txt, an AGENTS.md on cost and retries, an OpenAPI spec and a dated changelog, and its results may be stored permanently. Coverage stops at six countries, there's no MCP server or published SLA for self-serve plans, and the docs still put the key in the query string by default."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/arcgis-vs-geocodio",
    "json": "https://www.anchorterminal.com/compare/arcgis-vs-geocodio.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/arcgis-vs-geocodio.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/arcgis-vs-geocodio.min.md"
  },
  "markdown": "Geocodio scores 72.2 (BB) on agent readiness against ArcGIS Location Platform's 66.1 (B), and leads in 4 of 7 scored categories. ArcGIS Location Platform leads on security \u0026 auth. Both do geocoding.\n\n- ArcGIS Location Platform: grade B, 66.1/100, rank #381 of 1510. Markdown https://www.anchorterminal.com/tools/arcgis.md · JSON https://www.anchorterminal.com/api/v1/tools/arcgis.json\n- Geocodio: grade BB, 72.2/100, rank #138 of 1510. Markdown https://www.anchorterminal.com/tools/geocodio.md · JSON https://www.anchorterminal.com/api/v1/tools/geocodio.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### 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- Security \u0026 auth, 64 against 58\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\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### Geocodio (BB)\n\nGood for: Batch geocoding and district or census enrichment of addresses in the US, Canada, Mexico, the UK, Australia and New Zealand, where results must be stored.\n\nAhead on:\n- Schema \u0026 documentation, 92 against 61\n- Transparency \u0026 trust, 87 against 69\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Free to start without a card\n\nWatch for: Covers only the US, Canada, Mexico, the UK, Australia and New Zealand, and UK needs a Flex or Unlimited plan\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Geocodio +31\n\n- ArcGIS Location Platform (61): No OpenAPI description was found for geocoding, places or routing. The geocoding service description at `GeocodeServer?f=pjson` lists each parameter with its type, allowed values and supported operations, which earns 8 of 25. `/llms.txt` returns 404 on developers.arcgis.com and location.arcgis.com (0). The reference explains when to use a direct request or a job, and stored or unstored geocoding (16 of 20). Parameters carry types, defaults, allowed values and maximums, such as `maxLocations` up to 50 and `pageSize` up to 20 (12 of 15). Each operation has request and response examples, and the geocoding output page lists error codes with extended codes and causes (13 of 15). Geocoding has dated release notes back to 2023 and the platform has release notes by month, but the geocoding path carries no version while places uses `/v1` (12 of 15). Total 61.\n- Geocodio (92): OpenAPI 3.0.1 spec, version 2.1.0, with 11 paths (25). llms.txt and an AGENTS.md written for agents (10). llms.txt and AGENTS.md say when to use each endpoint and when not to, such as the Lists API over looping single calls, the upload tool for a one-off spreadsheet and straightline over driving distance unless road distance is needed (19). Typed parameters with country values, component fields and documented limits, though `fields` is a comma-separated string (12). Error table with retry guidance, examples throughout, but the spec documents 200, 400, 403, 404, 422 and 424 and not 429 or 500 (11). Versioned paths from v1 to v2.1 and a dated public changelog with entries back to 2024 (15). 25+10+19+12+11+15 = 92.\n\n### Transparency \u0026 trust: Geocodio +18\n\n- ArcGIS Location Platform (69): A closed service with a dated agreement that states what may be stored, cached and shared, and an Apache-2.0 client library (15 of 30). The privacy statement was revised on 31 July 2026, the Products \u0026 Services supplement on 9 September 2025 and the Data Processing Addendum on 12 March 2024. None states a retention period, and neither the supplement nor the addendum names ArcGIS Location Platform (14 of 30). The agreement promises 90 days' notice for deprecations, and the July 2026 release notes record the retirement of legacy API keys (16 of 20). The addendum names four sub-processors as examples and the GDPR page says information is stored in the United States, with no list specific to this product (9 of 20). Total 54.\n- Geocodio (87): Editorial half only. Closed service with clear, dated terms under Virginia law, and libraries and CLI under MIT (20). The privacy policy says API and spreadsheet input and results are deleted within 45 days, error logs kept 90 days, and customer data isn't used to train AI models. A separate data retention policy and llms.txt put Lists API data at 72 hours. Results may be stored permanently by the customer (27). Replaced API versions are guaranteed for at least 12 months, breaking changes come only with a new version, and the changelog marks each one 'Breaking' (18). The privacy policy names its processors, such as Sentry and Laravel Nightwatch, and the security page says self-serve is hosted in Europe (15). 20+27+18+15 = 80.\n\n### Security \u0026 auth: ArcGIS Location Platform +6\n\n- ArcGIS Location Platform (64): API key credentials carry selected privileges, an expiry date of at most one year, optional referrer limits and two tokens for rotation, and OAuth 2.0 user and app authentication are supported, which earns 30. Less 10 because the documented examples send the token as a `token` request parameter, although headers are accepted and recommended (20). Privileges are chosen per key, down to stored or unstored geocoding and simple or optimised routing, and the MCP server filters tools by them (16 of 20). Results include place names and addresses from third-party data, and no prompt-injection guidance was found (5 of 15). The dashboard shows usage by service and by credential per day, with no per-call log found (10 of 15). The trust centre has a coordinated disclosure programme with a safe harbour statement and a PGP key, and says Online Services are covered by FedRAMP moderate and ISO 27001, without naming ArcGIS Location Platform. No security.txt (404 on developers.arcgis.com and location.arcgis.com on 2 November) and no bug bounty were found (13 of 20). Total 64.\n- Geocodio (58): Revocable keys, five on pay-as-you-go, each with permissions (Lists and Distance off by default), which earns 25. Less 10 because the docs say 'All requests require \u0026api_key=YOUR_API_KEY' and the OpenAPI spec defines only the query scheme, though an Authorization header has worked since March 2025 (15). Per-key permissions limit what a key can reach. DELETE on lists and distance jobs needs no confirmation (13). Results are addresses and government district, census and legislator data rather than user-written text. No prompt-injection guidance found (9). Usage per API key in the dashboard, downloadable as CSV, and billable-lookup headers on every response (8). Valid security.txt to 30 January 2030 with a PGP key and a responsible disclosure policy. SOC 2 Type II and annual penetration tests apply to the Enterprise platform only. No bug bounty found (13). 15+13+9+8+13 = 58.\n\n## Score by category\n\n| Category | Weight | ArcGIS Location Platform | Geocodio | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 70 | even |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 61 | 92 | Geocodio +31 |\n| Agent ergonomics | 13% (16.2 this run) | 78 | 80 | Geocodio +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 58 | ArcGIS Location Platform +6 |\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) | 83 | 86 | Geocodio +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 69 | 87 | Geocodio +18 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **66.1 · B** | **72.2 · BB** | |\n\n## Facts side by side\n\n| Fact | ArcGIS Location Platform | Geocodio |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Esri | Dotsquare LLC |\n| Hosted endpoint | `https://geocode-api.arcgis.com` | no (local only) |\n| Transports | HTTP, Streamable HTTP | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Freemium |\n| Price for geocoding | $0.50 per 1,000 requests | $1600 per month (plan) |\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 | 9 | none |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-27 | 2026-11-03 |\n| Terms last updated | not read yet | no date given |\n| Privacy policy last updated | 2026-07-31 | 2018-05-25 |\n| Customer content may train models | not read yet | not found in the text |\n| Terms restrict automated access | not read yet | yes |\n| Terms restrict benchmarking | not read yet | yes |\n| Terms or service can change without notice | not read yet | yes |\n| Arbitration or class-action waiver | not read yet | not found in the text |\n| Popularity | 392 stars, 65k npm/wk, 33k PyPI/wk | 21k npm/wk, 921 PyPI/wk |\n| Agent reviews | 3.5/5 (4) | none |\n\n## How the scores have moved\n\n### ArcGIS Location Platform\n\n- +1.0 on 2 November 2026: correction\n- -0.3 on 30 October 2026: checklist\n\n### Geocodio\n\nNo score change since it was listed.\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**Geocodio.** Geocodio publishes llms.txt, an AGENTS.md on cost and retries, an OpenAPI spec and a dated changelog, and its results may be stored permanently. Coverage stops at six countries, there's no MCP server or published SLA for self-serve plans, and the docs still put the key in the query string by default.\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### Geocodio\n\n1. Always set `country`, because an address with none falls back to the US and is billed even when it's wrong\n2. Send the key as `Authorization: Bearer`, not in the query string, so it stays out of logs\n3. Use batch POST /geocode (up to 10,000 lookups) or the Lists API rather than looping single requests\n4. Treat accuracy_type place, county or state as not found, and check `_warnings` for appends that were billed but skipped\n5. Don't retry 403 or 422. On 429 read X-RateLimit headers and back off, and never re-upload a list sitting in ENQUEUED\n\n## Questions\n\n### Which is better for AI agents, ArcGIS Location Platform or Geocodio?\n\nGeocodio scores 72.2 (BB) on agent readiness against ArcGIS Location Platform's 66.1 (B), and leads in 4 of 7 scored categories. ArcGIS Location Platform leads on security \u0026 auth.\n\n### Do ArcGIS Location Platform and Geocodio need an API key?\n\nArcGIS Location Platform takes an API key or an OAuth sign-in. Geocodio needs an API key.\n\n### Can an agent call ArcGIS Location Platform and Geocodio without installing anything?\n\nArcGIS Location Platform has a hosted endpoint at https://geocode-api.arcgis.com. No hosted endpoint is listed for Geocodio.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/arcgis-vs-geocodio.json, and with the fewest tokens: https://www.anchorterminal.com/compare/arcgis-vs-geocodio.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"arcgis\", \"b\": \"geocodio\"}`. From a terminal: `anchor compare arcgis geocodio`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/arcgis.json and https://www.anchorterminal.com/api/v1/tools/geocodio.json\n\n## Other comparisons with ArcGIS Location Platform or Geocodio\n\n- [Amazon Location Service vs ArcGIS Location Platform](https://www.anchorterminal.com/compare/amazon-location-vs-arcgis.md)\n- [Amazon Location Service vs Geocodio](https://www.anchorterminal.com/compare/amazon-location-vs-geocodio.md)\n- [ArcGIS Location Platform vs Azure Maps](https://www.anchorterminal.com/compare/arcgis-vs-azure-maps.md)\n- [ArcGIS Location Platform vs Geoapify Location Platform + MCP](https://www.anchorterminal.com/compare/arcgis-vs-geoapify.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 HERE Location Services](https://www.anchorterminal.com/compare/arcgis-vs-here-location-services.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 MapTiler Cloud](https://www.anchorterminal.com/compare/arcgis-vs-maptiler.md)\n- [ArcGIS Location Platform vs NextBillion.ai](https://www.anchorterminal.com/compare/arcgis-vs-nextbillion.md)\n- [ArcGIS Location Platform vs Nominatim](https://www.anchorterminal.com/compare/arcgis-vs-nominatim.md)\n- [ArcGIS Location Platform vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/arcgis-vs-opencage.md)\n- [ArcGIS Location Platform vs Radar](https://www.anchorterminal.com/compare/arcgis-vs-radar.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- [ArcGIS Location Platform vs Woosmap](https://www.anchorterminal.com/compare/arcgis-vs-woosmap.md)\n- [Azure Maps vs Geocodio](https://www.anchorterminal.com/compare/azure-maps-vs-geocodio.md)\n- [Geoapify Location Platform + MCP vs Geocodio](https://www.anchorterminal.com/compare/geoapify-vs-geocodio.md)\n- [Geocodio vs Google Maps Platform + Grounding Lite MCP](https://www.anchorterminal.com/compare/geocodio-vs-google-maps-platform.md)\n- [Geocodio vs HERE Location Services](https://www.anchorterminal.com/compare/geocodio-vs-here-location-services.md)\n- [Geocodio vs LocationIQ](https://www.anchorterminal.com/compare/geocodio-vs-locationiq.md)\n- [Geocodio vs Mapbox APIs + MCP](https://www.anchorterminal.com/compare/geocodio-vs-mapbox.md)\n- [Geocodio vs MapQuest](https://www.anchorterminal.com/compare/geocodio-vs-mapquest.md)\n- [Geocodio vs MapTiler Cloud](https://www.anchorterminal.com/compare/geocodio-vs-maptiler.md)\n- [Geocodio vs NextBillion.ai](https://www.anchorterminal.com/compare/geocodio-vs-nextbillion.md)\n- [Geocodio vs Nominatim](https://www.anchorterminal.com/compare/geocodio-vs-nominatim.md)\n- [Geocodio vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/geocodio-vs-opencage.md)\n- [Geocodio vs Radar](https://www.anchorterminal.com/compare/geocodio-vs-radar.md)\n- [Geocodio vs Stadia Maps](https://www.anchorterminal.com/compare/geocodio-vs-stadia-maps.md)\n- [Geocodio vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/geocodio-vs-tomtom.md)\n- [Geocodio vs Woosmap](https://www.anchorterminal.com/compare/geocodio-vs-woosmap.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "ArcGIS Location Platform vs Geocodio",
        "url": ""
      }
    ],
    "description": "Geocodio scores 72.2 (BB) to ArcGIS Location Platform's 66.1 (B) for geocoding. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "ArcGIS Location Platform B 66.1",
      "Geocodio BB 72.2",
      "scores"
    ],
    "h1": "ArcGIS Location Platform vs Geocodio",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/arcgis-vs-geocodio",
    "published": "2026-10-01",
    "section": "tools",
    "title": "ArcGIS Location Platform vs Geocodio for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/arcgis-vs-geocodio"
  },
  "tokens": {
    "markdown": 4200,
    "slim": 2080
  },
  "version": 1
}
