{
  "data": {
    "a": {
      "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"
      }
    },
    "answer": "Geocodio scores 72.2 (BB) on agent readiness against Nominatim's 63.5 (B), and leads in 5 of 7 scored categories. Nominatim leads on reliability and payments \u0026 pricing.",
    "b": {
      "slug": "nominatim",
      "name": "Nominatim",
      "vendor": "Nominatim project (osm-search)",
      "vendorUrl": "https://nominatim.org",
      "kind": "http-api",
      "category": "maps",
      "summary": "Nominatim is open-source geocoding software that searches OpenStreetMap data by name and address and reverse geocodes coordinates. Operators self-host its HTTP API; the OpenStreetMap Foundation runs a free public instance under a strict usage policy.",
      "url": "https://www.anchorterminal.com/tools/nominatim",
      "markdownUrl": "https://www.anchorterminal.com/tools/nominatim.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nominatim.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nominatim.json",
      "dns": "nominatim.grade.anchorterminal.com",
      "repo": "https://github.com/osm-search/Nominatim",
      "license": "GPL-3.0-or-later",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "nominatim-api"
        },
        {
          "registry": "pypi",
          "name": "nominatim-db"
        }
      ],
      "auth": "none",
      "authNotes": "The server has no authentication; operators add it with their own proxy. The public instance at nominatim.openstreetmap.org takes no key but requires a valid User-Agent or Referer identifying the application.",
      "pricing": "free",
      "pricingNotes": "Free software. The public instance is free within its usage policy (at most 1 request a second, no bulk or systematic use). Commercial hosted Nominatim is sold by third parties, not by the project.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No payment protocol in the server or the docs (checked 2026-11-06). The software is free.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": 2052,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://nominatim.org/release-docs/latest/api/Overview/",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.places"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "free",
        "no-auth",
        "no-key",
        "python",
        "open-data",
        "local"
      ],
      "lastRelease": "2026-10-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.5,
        "grade": "B",
        "agentReady": false,
        "rank": 513,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 60,
          "payments": 60,
          "reliability": 82,
          "schema": 51,
          "security": 50,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Nominatim is the open-source OpenStreetMap geocoder, free to run with a documented search, reverse and lookup API, tested releases and two years of security support per release. It has no OpenAPI spec, no built-in authentication, and the public instance allows one request a second and restricts LLM-suggested use, so agents at scale need their own server.",
        "bestFor": "Self-hosted worldwide geocoding from OpenStreetMap data with no per-call cost or storage limits beyond ODbL.",
        "strengths": [
          "Open source under GPL, free to self-host with no key and nothing to buy",
          "Search, reverse, lookup and status endpoints with limit, layer, country and viewbox filters",
          "Release 5.3.3 on 14 October 2026, with a ChangeLog and two years of security updates per release line",
          "SECURITY.md with a security address, a 3-work-day acknowledgement and a disclosure process",
          "CI runs unit and BDD tests on every push across PostgreSQL 13 to 18"
        ],
        "weaknesses": [
          "No OpenAPI spec and no llms.txt",
          "The public instance allows at most one request a second, no autocomplete, no systematic queries and no reselling",
          "The usage policy says LLMs may suggest the public API only while pointing to the policy, and bars it from no-code and vibe-coding platforms",
          "No authentication in the server, so access control is the operator's job",
          "A full planet import needs substantial hardware and time to set up"
        ],
        "agentNotes": [
          "Don't send bulk or repeated queries to nominatim.openstreetmap.org; keep to one request a second, cache results and set an identifying User-Agent",
          "Tell the user about the OSMF usage policy before suggesting the public instance, as the policy requires",
          "For regular or large jobs, run your own Nominatim or use a commercial provider listed on the Nominatim wiki",
          "Pass format=jsonv2 or geojson and limit, since omitting format sends the request to the web UI",
          "Attribute OpenStreetMap and respect the ODbL share-alike terms when storing results"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.5
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 60,
          "payments": 60,
          "reliability": 82,
          "schema": 51,
          "security": 50,
          "transparency": 81
        },
        "provenanceScore": 37,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install nominatim-db nominatim-api",
        "http": "curl -A \"my-app/1.0 (contact@example.com)\" \"https://nominatim.openstreetmap.org/search?q=Dresden\u0026format=jsonv2\u0026limit=1\""
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/nominatim"
      },
      "area": "everyday",
      "provenance": {
        "legalEntity": "",
        "domain": "nominatim.org",
        "domainRegistered": "2010-05-20",
        "endpointOnVendorDomain": false,
        "terms": "https://operations.osmfoundation.org/policies/nominatim/",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/osm-search/Nominatim/blob/master/ChangeLog",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "No company stands behind the software. The nominatim.org imprint names its maintainer Sarah Hoffmann as the person who runs the site.",
          "The terms listed are the OSMF usage policy for the public instance, which is run by the OpenStreetMap Foundation and is also governed by the OSMF Terms of Use. The licence governs the software.",
          "nominatim.openstreetmap.org's robots.txt disallows /search, /reverse, /lookup, /details and /status, so no request was sent there.",
          "nominatim.org has no robots.txt (404) and no llms.txt. Security reports go to security@nominatim.org per SECURITY.md; no security.txt was looked for beyond that file.",
          "RDAP gives nominatim.org a registration date of 20 May 2010.",
          "A request to pypi.org/pypi/nominatim-api/json, disallowed by PyPI's robots.txt, was sent by mistake on 6 November 2026; release dates are taken from PyPI's allowed RSS release feed instead."
        ],
        "score": 37
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nominatim.json",
      "live": {
        "slug": "nominatim",
        "versions": [
          {
            "registry": "github",
            "name": "osm-search/Nominatim",
            "version": "v5.3.3",
            "released": "2026-10-14",
            "seenAt": "2026-11-06T23:49:38.546585976Z"
          },
          {
            "registry": "pypi",
            "name": "nominatim-api",
            "version": "5.3.3",
            "released": "2026-10-14",
            "seenAt": "2026-11-06T23:49:36.460811725Z"
          },
          {
            "registry": "pypi",
            "name": "nominatim-db",
            "version": "5.3.3",
            "released": "2026-10-14",
            "seenAt": "2026-11-06T23:49:36.677899359Z"
          }
        ],
        "githubStars": 4553,
        "pypiWeekly": 2052,
        "securityTxt": {
          "url": "https://nominatim.org/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:36.659918342Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/osm-search/Nominatim/master/ChangeLog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:22:43.498875362Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d293d5592f9f"
          },
          {
            "url": "https://operations.osmfoundation.org/policies/nominatim/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:39.38384818Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e7342ba42b14"
          }
        ],
        "updatedAt": "2026-11-07T16:00:36.659918342Z"
      }
    },
    "edges": [
      {
        "by": 41,
        "category": "schema",
        "leads": "geocodio",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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.",
          "b": "No OpenAPI or machine-readable contract (0). nominatim.org/llms.txt returns 404, and the manual is HTML, though its Markdown sources sit in the repository's docs folder (0). The API reference explains each endpoint and parameter and when not to use one, such as the details endpoint being for debugging (14). Types, enums and limits are documented, such as format, layer and limit (at most 40), but there's no schema to validate against (12). Example queries and outputs per endpoint, with errors described in prose (10). A versioned manual per release, a ChangeLog and a migration guide (15). 0+0+14+12+10+15 = 51."
        },
        "scores": {
          "a": 92,
          "b": 51
        }
      },
      {
        "by": 28,
        "category": "transparency",
        "leads": "geocodio",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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.",
          "b": "Open source, GPL-3.0-or-later for the Python code, GPL-2.0 for other files and Apache-2.0 for the osm2pgsql Lua styles (30). A self-hosted server keeps data where the operator runs it. The public instance falls under the OSMF privacy policy and asks users not to send personal data. We didn't read the OSMF policy itself (20). SECURITY.md lists the end of security support for each release line with dates, and a migration guide covers each version (16). No telemetry found in the settings, and request logging is opt-in (15). 30+20+16+15 = 81."
        },
        "scores": {
          "a": 87,
          "b": 59
        }
      },
      {
        "by": 26,
        "category": "maintenance",
        "leads": "geocodio",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "API v2.1 released 3 November 2026 (Australia and New Zealand), and PHP library 3.4.1 on 4 November (30). Dated changelog entries on 8 September, 1, 8, 9, 19, 22 and 31 October and 3 November 2026, plus library releases in October (20). Public changelog, support by email and a team-staffed help desk named on the pricing page. We didn't read GitHub issue reply times (12). Official Python 1.6.0 and Node 2.3.0 from 12 October and PHP 3.4.1 from 4 November are current (15). Each library and the CLI run CI on GitHub Actions; we didn't check whether the runs pass (9). 30+20+12+15+9 = 86.",
          "b": "Release 5.3.3 on 14 October 2026, 23 days before this check (30). Only one release in the 90 days from 8 August, against 106 commits on the default branch; commits aren't counted as releases (0). Commits from the lead maintainer and seven or more contributors since August, but we couldn't read issue reply times (12). The nominatim-api Python library is current with the server (10). CI on every push, current PostgreSQL and Python versions (8). 30+0+12+10+8 = 60."
        },
        "scores": {
          "a": 86,
          "b": 60
        }
      },
      {
        "by": 20,
        "category": "payments",
        "leads": "nominatim",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). $1 per 1,000 lookups after the free tier, and per-credit rates for every Flex tier, public without login (20). 2,500 lookups a day free with no card until usage passes the free tier (20). Signup and key creation are a browser flow at dash.geocod.io (0). 0+20+20+0 = 40.",
          "b": "Self-hosted rule. No payment protocol (0). Free software with nothing to buy (20 + 20 + 20). The public instance is also free and keyless, within its usage policy. 0+20+20+20 = 60."
        },
        "scores": {
          "a": 40,
          "b": 60
        }
      },
      {
        "by": 12,
        "category": "reliability",
        "leads": "nominatim",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted lines. incident.io status page at status.geocod.io with five components (Geocodio API, Dashboard, Enterprise API, Enterprise Dashboard, Website) and an incidents feed at /api/v2/incidents.json (20). In the 90 days to 6 November 2026 the feed lists one incident marked major, 'Spreadsheet geocoding jobs are failing' on 27 October from 12:35 to 15:15 UTC, and a PHP security patch on 21 October marked no impact, so one major outage of a core feature (10). 1,000 requests a minute on single geocoding for pay-as-you-go and Flex, 100 on Enterprise Flex (15). 429 carries X-RateLimit-Remaining, -Limit and -Period, and llms.txt and AGENTS.md give a retry rule per status code with capped backoff, plus client-side idempotency guidance for the non-idempotent list and batch writes (15). The pricing page lists custom SLAs as an add-on on Unlimited and Enterprise plans, with no published terms, so no SLA (0). GA (10). 20+10+15+15+0+10 = 70.",
          "b": "Read with the local-software lines, since the listing is the Nominatim server an operator runs. The public instance at nominatim.openstreetmap.org belongs to the OpenStreetMap Foundation and its usage policy caps it at one request a second, so it isn't graded as a hosted service. Official packages nominatim-db and nominatim-api on PyPI (5.3.3 on 14 October 2026, Python 3.9 or later) and installation guides for Ubuntu 22 and 24 (20). A public CI workflow runs unit and BDD tests on every push across Ubuntu 24 and 26 with PostgreSQL 13 to 18, and Windows unit tests. We couldn't see run results (20). Issue counts and reply times couldn't be read because the GitHub API was rate-limited for us; Sarah Hoffmann made 76 of the 106 commits since 8 August (12). A ChangeLog per release and semantic version numbers (15). Version 5.3.3 (15). 20+20+12+15+15 = 82."
        },
        "scores": {
          "a": 70,
          "b": 82
        }
      },
      {
        "by": 8,
        "category": "security",
        "leads": "geocodio",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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.",
          "b": "The server has no authentication of its own; an operator puts it behind their own proxy. The public instance takes no key and identifies callers by User-Agent or Referer (5). Every endpoint reads, so there's nothing to approve (18). Results are OpenStreetMap names and tags, community-edited text, with no prompt-injection guidance (7). Query logging to a file is available through NOMINATIM_LOG_FILE and off by default (8). SECURITY.md gives security@nominatim.org, an acknowledgement within 3 work days, a disclosure process and two years of security updates per release. No bug bounty (12). 5+18+7+8+12 = 50."
        },
        "scores": {
          "a": 58,
          "b": 50
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Dotsquare LLC",
        "b": "Nominatim project (osm-search)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "$1600 per month (plan)",
        "b": "free",
        "name": "Price for geocoding"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "GPL-3.0-or-later",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-03",
        "b": "2026-10-14",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2018-05-25",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "21k npm/wk, 921 PyPI/wk",
        "b": "2.1k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Geocodio scores 72.2 (BB) on agent readiness against Nominatim's 63.5 (B), and leads in 5 of 7 scored categories. Nominatim leads on reliability and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Geocodio or Nominatim?"
      },
      {
        "answer": "Nominatim, at free against $1600 per month (plan) for Geocodio. These are the vendors' published prices for the job.",
        "question": "Which is cheaper for geocoding, Geocodio or Nominatim?"
      },
      {
        "answer": "Geocodio needs an API key. Nominatim needs no key.",
        "question": "Do Geocodio and Nominatim need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Geocodio. No hosted endpoint is listed for Nominatim.",
        "question": "Can an agent call Geocodio and Nominatim without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Geocodio. Nominatim is open source (GPL-3.0-or-later).",
        "question": "Are Geocodio and Nominatim open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 92 against 51",
          "Agent ergonomics, 80 against 75",
          "Security \u0026 auth, 58 against 50",
          "Maintenance \u0026 community, 86 against 60",
          "Transparency \u0026 trust, 87 against 59"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Reliability, 82 against 70",
          "Payments \u0026 pricing, 60 against 40"
        ],
        "also": [
          "No key needed to call it",
          "Open source"
        ],
        "goodFor": "Self-hosted worldwide geocoding from OpenStreetMap data with no per-call cost or storage limits beyond ODbL.",
        "slug": "nominatim",
        "watchFor": "No OpenAPI spec and no llms.txt"
      }
    ],
    "history": null,
    "job": {
      "capability": "geo.geocode",
      "name": "Geocoding"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-geocodio.json",
        "title": "Amazon Location Service vs Geocodio",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-geocodio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-nominatim.json",
        "title": "Amazon Location Service vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-geocodio.json",
        "title": "ArcGIS Location Platform vs Geocodio",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-geocodio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-nominatim.json",
        "title": "ArcGIS Location Platform vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-maps-vs-geocodio.json",
        "title": "Azure Maps vs Geocodio",
        "url": "https://www.anchorterminal.com/compare/azure-maps-vs-geocodio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-maps-vs-nominatim.json",
        "title": "Azure Maps vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/azure-maps-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-geocodio.json",
        "title": "Geoapify Location Platform + MCP vs Geocodio",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-geocodio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-nominatim.json",
        "title": "Geoapify Location Platform + MCP vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geocodio-vs-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-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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-maps-platform-vs-nominatim.json",
        "title": "Google Maps Platform + Grounding Lite MCP vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/google-maps-platform-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/here-location-services-vs-nominatim.json",
        "title": "HERE Location Services vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/here-location-services-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-nominatim.json",
        "title": "LocationIQ vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mapbox-vs-nominatim.json",
        "title": "Mapbox APIs + MCP vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/mapbox-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mapquest-vs-nominatim.json",
        "title": "MapQuest vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/mapquest-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/maptiler-vs-nominatim.json",
        "title": "MapTiler Cloud vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/maptiler-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nextbillion-vs-nominatim.json",
        "title": "NextBillion.ai vs Nominatim",
        "url": "https://www.anchorterminal.com/compare/nextbillion-vs-nominatim"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nominatim-vs-opencage.json",
        "title": "Nominatim vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/nominatim-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nominatim-vs-radar.json",
        "title": "Nominatim vs Radar",
        "url": "https://www.anchorterminal.com/compare/nominatim-vs-radar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps.json",
        "title": "Nominatim vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nominatim-vs-tomtom.json",
        "title": "Nominatim vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/nominatim-vs-tomtom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nominatim-vs-woosmap.json",
        "title": "Nominatim vs Woosmap",
        "url": "https://www.anchorterminal.com/compare/nominatim-vs-woosmap"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 12,
        "edge": "nominatim",
        "geocodio": 70,
        "key": "reliability",
        "name": "Reliability",
        "nominatim": 82,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 41,
        "edge": "geocodio",
        "geocodio": 92,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "nominatim": 51,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "geocodio",
        "geocodio": 80,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "nominatim": 75,
        "weight": 13
      },
      {
        "by": 8,
        "edge": "geocodio",
        "geocodio": 58,
        "key": "security",
        "name": "Security \u0026 auth",
        "nominatim": 50,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "nominatim",
        "geocodio": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "nominatim": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 26,
        "edge": "geocodio",
        "geocodio": 86,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "nominatim": 60,
        "weight": 7
      },
      {
        "by": 28,
        "edge": "geocodio",
        "geocodio": 87,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "nominatim": 59,
        "weight": 7
      }
    ],
    "summary": "Geocodio scores 72.2 (BB) on agent readiness against Nominatim's 63.5 (B), and leads in 5 of 7 scored categories. Nominatim leads on reliability and payments \u0026 pricing. Both do geocoding.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "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.",
      "nominatim": "Nominatim is the open-source OpenStreetMap geocoder, free to run with a documented search, reverse and lookup API, tested releases and two years of security support per release. It has no OpenAPI spec, no built-in authentication, and the public instance allows one request a second and restricts LLM-suggested use, so agents at scale need their own server."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/geocodio-vs-nominatim",
    "json": "https://www.anchorterminal.com/compare/geocodio-vs-nominatim.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/geocodio-vs-nominatim.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/geocodio-vs-nominatim.min.md"
  },
  "markdown": "Geocodio scores 72.2 (BB) on agent readiness against Nominatim's 63.5 (B), and leads in 5 of 7 scored categories. Nominatim leads on reliability and payments \u0026 pricing. Both do geocoding.\n\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- Nominatim: grade B, 63.5/100, rank #513 of 1510. Markdown https://www.anchorterminal.com/tools/nominatim.md · JSON https://www.anchorterminal.com/api/v1/tools/nominatim.json\n- Best maps, geocoding and places APIs for AI agents: https://www.anchorterminal.com/best/maps/index.md\n- All 153 maps comparisons: https://www.anchorterminal.com/compare/maps/index.md\n\n## Which one, for what\n\n### 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 51\n- Agent ergonomics, 80 against 75\n- Security \u0026 auth, 58 against 50\n- Maintenance \u0026 community, 86 against 60\n- Transparency \u0026 trust, 87 against 59\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### Nominatim (B)\n\nGood for: Self-hosted worldwide geocoding from OpenStreetMap data with no per-call cost or storage limits beyond ODbL.\n\nAhead on:\n- Reliability, 82 against 70\n- Payments \u0026 pricing, 60 against 40\n\nAlso in its favour:\n- No key needed to call it\n- Open source\n\nWatch for: No OpenAPI spec and no llms.txt\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Geocodio +41\n\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- Nominatim (51): No OpenAPI or machine-readable contract (0). nominatim.org/llms.txt returns 404, and the manual is HTML, though its Markdown sources sit in the repository's docs folder (0). The API reference explains each endpoint and parameter and when not to use one, such as the details endpoint being for debugging (14). Types, enums and limits are documented, such as format, layer and limit (at most 40), but there's no schema to validate against (12). Example queries and outputs per endpoint, with errors described in prose (10). A versioned manual per release, a ChangeLog and a migration guide (15). 0+0+14+12+10+15 = 51.\n\n### Transparency \u0026 trust: Geocodio +28\n\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- Nominatim (59): Open source, GPL-3.0-or-later for the Python code, GPL-2.0 for other files and Apache-2.0 for the osm2pgsql Lua styles (30). A self-hosted server keeps data where the operator runs it. The public instance falls under the OSMF privacy policy and asks users not to send personal data. We didn't read the OSMF policy itself (20). SECURITY.md lists the end of security support for each release line with dates, and a migration guide covers each version (16). No telemetry found in the settings, and request logging is opt-in (15). 30+20+16+15 = 81.\n\n### Maintenance \u0026 community: Geocodio +26\n\n- Geocodio (86): API v2.1 released 3 November 2026 (Australia and New Zealand), and PHP library 3.4.1 on 4 November (30). Dated changelog entries on 8 September, 1, 8, 9, 19, 22 and 31 October and 3 November 2026, plus library releases in October (20). Public changelog, support by email and a team-staffed help desk named on the pricing page. We didn't read GitHub issue reply times (12). Official Python 1.6.0 and Node 2.3.0 from 12 October and PHP 3.4.1 from 4 November are current (15). Each library and the CLI run CI on GitHub Actions; we didn't check whether the runs pass (9). 30+20+12+15+9 = 86.\n- Nominatim (60): Release 5.3.3 on 14 October 2026, 23 days before this check (30). Only one release in the 90 days from 8 August, against 106 commits on the default branch; commits aren't counted as releases (0). Commits from the lead maintainer and seven or more contributors since August, but we couldn't read issue reply times (12). The nominatim-api Python library is current with the server (10). CI on every push, current PostgreSQL and Python versions (8). 30+0+12+10+8 = 60.\n\n### Payments \u0026 pricing: Nominatim +20\n\n- Geocodio (40): No x402, MPP or L402 (0). $1 per 1,000 lookups after the free tier, and per-credit rates for every Flex tier, public without login (20). 2,500 lookups a day free with no card until usage passes the free tier (20). Signup and key creation are a browser flow at dash.geocod.io (0). 0+20+20+0 = 40.\n- Nominatim (60): Self-hosted rule. No payment protocol (0). Free software with nothing to buy (20 + 20 + 20). The public instance is also free and keyless, within its usage policy. 0+20+20+20 = 60.\n\n### Reliability: Nominatim +12\n\n- Geocodio (70): Hosted lines. incident.io status page at status.geocod.io with five components (Geocodio API, Dashboard, Enterprise API, Enterprise Dashboard, Website) and an incidents feed at /api/v2/incidents.json (20). In the 90 days to 6 November 2026 the feed lists one incident marked major, 'Spreadsheet geocoding jobs are failing' on 27 October from 12:35 to 15:15 UTC, and a PHP security patch on 21 October marked no impact, so one major outage of a core feature (10). 1,000 requests a minute on single geocoding for pay-as-you-go and Flex, 100 on Enterprise Flex (15). 429 carries X-RateLimit-Remaining, -Limit and -Period, and llms.txt and AGENTS.md give a retry rule per status code with capped backoff, plus client-side idempotency guidance for the non-idempotent list and batch writes (15). The pricing page lists custom SLAs as an add-on on Unlimited and Enterprise plans, with no published terms, so no SLA (0). GA (10). 20+10+15+15+0+10 = 70.\n- Nominatim (82): Read with the local-software lines, since the listing is the Nominatim server an operator runs. The public instance at nominatim.openstreetmap.org belongs to the OpenStreetMap Foundation and its usage policy caps it at one request a second, so it isn't graded as a hosted service. Official packages nominatim-db and nominatim-api on PyPI (5.3.3 on 14 October 2026, Python 3.9 or later) and installation guides for Ubuntu 22 and 24 (20). A public CI workflow runs unit and BDD tests on every push across Ubuntu 24 and 26 with PostgreSQL 13 to 18, and Windows unit tests. We couldn't see run results (20). Issue counts and reply times couldn't be read because the GitHub API was rate-limited for us; Sarah Hoffmann made 76 of the 106 commits since 8 August (12). A ChangeLog per release and semantic version numbers (15). Version 5.3.3 (15). 20+20+12+15+15 = 82.\n\n### Security \u0026 auth: Geocodio +8\n\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- Nominatim (50): The server has no authentication of its own; an operator puts it behind their own proxy. The public instance takes no key and identifies callers by User-Agent or Referer (5). Every endpoint reads, so there's nothing to approve (18). Results are OpenStreetMap names and tags, community-edited text, with no prompt-injection guidance (7). Query logging to a file is available through NOMINATIM_LOG_FILE and off by default (8). SECURITY.md gives security@nominatim.org, an acknowledgement within 3 work days, a disclosure process and two years of security updates per release. No bug bounty (12). 5+18+7+8+12 = 50.\n\n## Score by category\n\n| Category | Weight | Geocodio | Nominatim | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 82 | Nominatim +12 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 92 | 51 | Geocodio +41 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 75 | Geocodio +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 58 | 50 | Geocodio +8 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 60 | Nominatim +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 86 | 60 | Geocodio +26 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 87 | 59 | Geocodio +28 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **72.2 · BB** | **63.5 · B** | |\n\n## Facts side by side\n\n| Fact | Geocodio | Nominatim |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Dotsquare LLC | Nominatim project (osm-search) |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | None |\n| Pricing | Freemium | Free |\n| Price for geocoding | $1600 per month (plan) | free |\n| x402 | no | no |\n| Licence | none | GPL-3.0-or-later |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-11-03 | 2026-10-14 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | 2018-05-25 | no document linked |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 21k npm/wk, 921 PyPI/wk | 2.1k PyPI/wk |\n\n## Verdicts\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**Nominatim.** Nominatim is the open-source OpenStreetMap geocoder, free to run with a documented search, reverse and lookup API, tested releases and two years of security support per release. It has no OpenAPI spec, no built-in authentication, and the public instance allows one request a second and restricts LLM-suggested use, so agents at scale need their own server.\n\n## Before you call either\n\n### 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### Nominatim\n\n1. Don't send bulk or repeated queries to nominatim.openstreetmap.org; keep to one request a second, cache results and set an identifying User-Agent\n2. Tell the user about the OSMF usage policy before suggesting the public instance, as the policy requires\n3. For regular or large jobs, run your own Nominatim or use a commercial provider listed on the Nominatim wiki\n4. Pass format=jsonv2 or geojson and limit, since omitting format sends the request to the web UI\n5. Attribute OpenStreetMap and respect the ODbL share-alike terms when storing results\n\n## Questions\n\n### Which is better for AI agents, Geocodio or Nominatim?\n\nGeocodio scores 72.2 (BB) on agent readiness against Nominatim's 63.5 (B), and leads in 5 of 7 scored categories. Nominatim leads on reliability and payments \u0026 pricing.\n\n### Which is cheaper for geocoding, Geocodio or Nominatim?\n\nNominatim, at free against $1600 per month (plan) for Geocodio. These are the vendors' published prices for the job.\n\n### Do Geocodio and Nominatim need an API key?\n\nGeocodio needs an API key. Nominatim needs no key.\n\n### Can an agent call Geocodio and Nominatim without installing anything?\n\nNo hosted endpoint is listed for Geocodio. No hosted endpoint is listed for Nominatim.\n\n### Are Geocodio and Nominatim open source?\n\nNo open-source release is listed for Geocodio. Nominatim is open source (GPL-3.0-or-later).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/geocodio-vs-nominatim.json, and with the fewest tokens: https://www.anchorterminal.com/compare/geocodio-vs-nominatim.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"geocodio\", \"b\": \"nominatim\"}`. From a terminal: `anchor compare geocodio nominatim`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/geocodio.json and https://www.anchorterminal.com/api/v1/tools/nominatim.json\n\n## Other comparisons with Geocodio or Nominatim\n\n- [Amazon Location Service vs Geocodio](https://www.anchorterminal.com/compare/amazon-location-vs-geocodio.md)\n- [Amazon Location Service vs Nominatim](https://www.anchorterminal.com/compare/amazon-location-vs-nominatim.md)\n- [ArcGIS Location Platform vs Geocodio](https://www.anchorterminal.com/compare/arcgis-vs-geocodio.md)\n- [ArcGIS Location Platform vs Nominatim](https://www.anchorterminal.com/compare/arcgis-vs-nominatim.md)\n- [Azure Maps vs Geocodio](https://www.anchorterminal.com/compare/azure-maps-vs-geocodio.md)\n- [Azure Maps vs Nominatim](https://www.anchorterminal.com/compare/azure-maps-vs-nominatim.md)\n- [Geoapify Location Platform + MCP vs Geocodio](https://www.anchorterminal.com/compare/geoapify-vs-geocodio.md)\n- [Geoapify Location Platform + MCP vs Nominatim](https://www.anchorterminal.com/compare/geoapify-vs-nominatim.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 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- [Google Maps Platform + Grounding Lite MCP vs Nominatim](https://www.anchorterminal.com/compare/google-maps-platform-vs-nominatim.md)\n- [HERE Location Services vs Nominatim](https://www.anchorterminal.com/compare/here-location-services-vs-nominatim.md)\n- [LocationIQ vs Nominatim](https://www.anchorterminal.com/compare/locationiq-vs-nominatim.md)\n- [Mapbox APIs + MCP vs Nominatim](https://www.anchorterminal.com/compare/mapbox-vs-nominatim.md)\n- [MapQuest vs Nominatim](https://www.anchorterminal.com/compare/mapquest-vs-nominatim.md)\n- [MapTiler Cloud vs Nominatim](https://www.anchorterminal.com/compare/maptiler-vs-nominatim.md)\n- [NextBillion.ai vs Nominatim](https://www.anchorterminal.com/compare/nextbillion-vs-nominatim.md)\n- [Nominatim vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/nominatim-vs-opencage.md)\n- [Nominatim vs Radar](https://www.anchorterminal.com/compare/nominatim-vs-radar.md)\n- [Nominatim vs Stadia Maps](https://www.anchorterminal.com/compare/nominatim-vs-stadia-maps.md)\n- [Nominatim vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/nominatim-vs-tomtom.md)\n- [Nominatim vs Woosmap](https://www.anchorterminal.com/compare/nominatim-vs-woosmap.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Geocodio vs Nominatim",
        "url": ""
      }
    ],
    "description": "Geocodio scores 72.2 (BB) to Nominatim's 63.5 (B) for geocoding. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Geocodio BB 72.2",
      "Nominatim B 63.5",
      "scores"
    ],
    "h1": "Geocodio vs Nominatim",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/geocodio-vs-nominatim",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Geocodio vs Nominatim for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/geocodio-vs-nominatim"
  },
  "tokens": {
    "markdown": 4650,
    "slim": 2580
  },
  "version": 1
}
