{
  "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 LocationIQ's 60.3 (C), and leads in 6 of 7 scored categories. LocationIQ leads on reliability.",
    "b": {
      "slug": "locationiq",
      "name": "LocationIQ",
      "vendor": "LocationIQ (Unwired Labs)",
      "vendorUrl": "https://locationiq.com",
      "kind": "http-api",
      "category": "maps",
      "summary": "Forward and reverse geocoding, autocomplete, nearby places, directions, matrix and map tiles, from US and EU endpoints.",
      "url": "https://www.anchorterminal.com/tools/locationiq",
      "markdownUrl": "https://www.anchorterminal.com/tools/locationiq.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/locationiq.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/locationiq.json",
      "dns": "locationiq.grade.anchorterminal.com",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://us1.locationiq.com/v1",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Access token passed as the key query parameter. Same API on us1.locationiq.com and eu1.locationiq.com.",
      "pricing": "freemium",
      "pricingNotes": "Free 5,000 requests a day at 2 a second, no card, with a prominent link back required. Maps Lite $45 a month (10,000 a day, maps only), Developer $100 (25,000 a day, all APIs), Startup $200 (60,000 a day), Growth Plus $500 (7.5 million a month), Business Plus $950 (30 million a month), Enterprise custom. Paid plans need a card (https://locationiq.com/pricing).",
      "priceSummary": "$100 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.locationiq.com",
      "llmsTxt": "https://docs.locationiq.com/llms.txt",
      "openapi": "https://docs.locationiq.com/openapi.yaml",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.places",
        "geo.routing",
        "geo.tiles"
      ],
      "tags": [
        "hosted",
        "llms-txt",
        "free-tier",
        "no-card",
        "eu",
        "closed-source"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.3,
        "grade": "C",
        "agentReady": false,
        "rank": 658,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 3,
          "payments": 30,
          "reliability": 83,
          "schema": 78,
          "security": 55,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "5,000 free requests a day with no card, commercial use allowed with a link back. No changelog, release notes or blog.",
        "bestFor": "A prototype or a cost-sensitive geocoding and routing job, with EU and US endpoints.",
        "strengths": [
          "5,000 free requests a day with no card, commercial use allowed with a link back",
          "Public OpenAPI 3.0 spec and an llms.txt with Markdown pages",
          "Scoped tokens with referrer or IP restrictions and per-token rate limits",
          "No incidents posted between 2 April and 1 October 2026 on the status page, with history back to 2018",
          "Error messages that separate per-second, per-minute and per-day limits"
        ],
        "weaknesses": [
          "No changelog, release notes or blog",
          "Official SDKs untouched since 2020",
          "No MCP server",
          "Key only in the query string",
          "Free plan must delete cached results after 48 hours and gets a single token"
        ],
        "agentNotes": [
          "Use eu1.locationiq.com for European users or data",
          "Add format=json and limit=1 to keep responses small",
          "On 429 Rate Limited Second wait a second, on Rate Limited Day stop until the next day",
          "Call /balance before a large batch to see what's left of the day's quota",
          "Redact the key parameter before logging request URLs"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.3
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 3,
          "payments": 30,
          "reliability": 83,
          "schema": 78,
          "security": 55,
          "transparency": 40
        },
        "provenanceScore": 82,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-10-08",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl \"https://eu1.locationiq.com/v1/search?key=$LOCATIONIQ_API_KEY\u0026q=10%20Downing%20Street%2C%20London\u0026format=json\u0026limit=1\""
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/locationiq"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Developer plan",
          "unit": "month",
          "usd": 100,
          "note": "25,000 requests a day, 20 a second, all APIs"
        },
        {
          "item": "Startup plan",
          "unit": "month",
          "usd": 200,
          "note": "60,000 requests a day, 22 a second"
        },
        {
          "item": "Growth Plus plan",
          "unit": "month",
          "usd": 500,
          "note": "7.5 million requests a month, 30 a second"
        },
        {
          "item": "Business Plus plan",
          "unit": "month",
          "usd": 950,
          "note": "30 million requests a month, 40 a second"
        }
      ],
      "provenance": {
        "legalEntity": "Unwired Labs (India) Pvt Ltd",
        "domain": "locationiq.com",
        "domainRegistered": "2005-09-20",
        "endpointOnVendorDomain": true,
        "terms": "https://locationiq.com/tos",
        "privacy": "https://locationiq.com/privacy",
        "statusPage": "https://status.locationiq.com",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-11-04",
        "notes": [
          "The terms were last updated 31 March 2026 (re-read on 4 November).",
          "security.txt lists hello@locationiq.com and expires 2028-01-01 (re-read on 4 November).",
          "LocationIQ's own privacy policy is at locationiq.com/privacy, last updated 22 May 2020. The parent's page at unwiredlabs.com/privacy embeds a Google Doc our reader couldn't see.",
          "The status page's RSS feed held 74 incidents from March 2018 to 2 April 2026 on 1 October. On 4 November status.locationiq.com answered robots.txt with its app page, so it wasn't read.",
          "We found no changelog or blog."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/locationiq.json",
      "live": {
        "slug": "locationiq",
        "probe": {
          "target": "https://us1.locationiq.com/v1",
          "method": "get",
          "lastAt": "2026-11-07T19:22:17.032606045Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 343,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 238,
          "p95ms24h": 430,
          "samples24h": 238,
          "samples30d": 7920,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.locationiq.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:00.589936264Z"
        },
        "securityTxt": {
          "url": "https://locationiq.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2028-01-01T00:00:00Z",
          "checkedAt": "2026-11-07T16:01:08.426296864Z"
        },
        "llmsTxt": {
          "url": "https://docs.locationiq.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:54.459912203Z"
        },
        "domain": {
          "domain": "locationiq.com",
          "registered": "2005-09-20",
          "source": "https://rdap.verisign.com/com/v1/domain/locationiq.com",
          "checkedAt": "2026-11-01T14:12:18.326873505Z"
        },
        "pages": [
          {
            "url": "https://locationiq.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:13:26.63045639Z",
            "changedAt": "2026-10-24T02:20:44.840309825Z",
            "fingerprint": "aaab3bd9280a"
          },
          {
            "url": "https://locationiq.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:13:28.786968548Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f99922f73f1e"
          },
          {
            "url": "https://locationiq.com/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:13:30.695378865Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "13f087788a40"
          }
        ],
        "updatedAt": "2026-11-07T19:22:17.032606045Z"
      }
    },
    "edges": [
      {
        "by": 83,
        "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": "We found no changelog, release notes or blog on 4 November (docs.locationiq.com/changelog, locationiq.com/changelog and locationiq.com/blog all return 404, and llms.txt lists none), so there's no dated API change to count. The terms were updated 31 March 2026, which isn't an API change (0). No dated entries in the last 90 days (0). No public changelog. Support is by email, which we didn't test (3). The official Python client hasn't changed since 30 March 2020 (0). Nothing current to judge package health by (0). The status page shows the service is run and watched, which this checklist doesn't capture. 0+0+3+0+0 = 3."
        },
        "scores": {
          "a": 86,
          "b": 3
        }
      },
      {
        "by": 26,
        "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": "Closed service with readable terms, updated 31 March 2026, under the laws of Telangana, India (15). The terms are specific on storage, 48 hours on Free and for as long as you're a customer on paid plans, with no server-side tile caching. The privacy policy at locationiq.com/privacy was last updated 22 May 2020, says IP addresses are stored to check for abuse with no retention period, and links a DPA (15). No deprecation policy or notices found (0). Stripe, Zoho and Google Analytics named without locations. Data centre regions are visible on the status page, not in the policy (10)."
        },
        "scores": {
          "a": 87,
          "b": 61
        }
      },
      {
        "by": 14,
        "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": "OpenAPI 3.0.0 spec, version 1.5.1 on 4 November, at docs.locationiq.com/openapi.yaml, covering search, reverse, autocomplete, nearby, directions, matrix, `/optimize` and the rest, with 429 responses defined (25). docs.locationiq.com/llms.txt indexes about 50 pages, mostly as .md (10). The reference describes each endpoint and parameter (12). Typed parameters in the spec (12). An errors page with the exact message string for each code (14). v1 in the path and a versioned spec, but no changelog (5)."
        },
        "scores": {
          "a": 92,
          "b": 78
        }
      },
      {
        "by": 13,
        "category": "reliability",
        "leads": "locationiq",
        "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": "status.locationiq.com lists 15 components by data centre (geocoding, autocomplete, maps and routing in Europe, US East, US West and Asia Pacific) with RSS and Atom history back to March 2018, 74 incidents in all, per the 1 October check (20). The newest incident then was 'Network Issues' on 2 April 2026, so 6 August to 1 October was clean. On 4 November the status host answered robots.txt with its app page, so nothing more was requested there, 2 October to 4 November is unread, and the line is held at what the read part supports (30). Per-second and daily limits for every plan, and per-token and per-IP limits on top, with soft daily limits of up to 100% more on paid plans (15). Three distinct 429 messages, Rate Limited Second, Minute and Day, and a 500 that says to retry after a short wait, but no Retry-After or backoff guidance (8). No SLA. The pricing page lists custom SLAs only on its top plan and points to public uptime instead (0). GA (10). 20+30+15+8+0+10 = 83."
        },
        "scores": {
          "a": 70,
          "b": 83
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "geocodio",
        "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": "No x402, MPP or L402 (0). Public plan prices with daily or monthly quotas, but no per-request price or overage rate, since requests over quota are refused (10). Free plan of 5,000 requests a day with no card, and commercial use allowed with a prominent link back (20). Signup is a browser flow (0)."
        },
        "scores": {
          "a": 40,
          "b": 30
        }
      },
      {
        "by": 6,
        "category": "ergonomics",
        "leads": "geocodio",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "API reading. `limit`, opt-in `fields` appends and `stable_address_key` re-lookups size responses and cost, and results are ordered best first (20). Batches of 10,000 lookups, Lists for 10 million, distance filters (max_distance, max_results, order_by) and paginated list listings (17). Codes 403, 422, 429 and 500 each carry a documented meaning and retry rule, error bodies link a help page, and `_warnings` reports ignored parameters (18). Geocoding reads are safe to retry, but there's no idempotency key on batch or list creation and AGENTS.md says a retried request is billed again (10). One required parameter on a single geocode, and official libraries for Python, Node, PHP and Ruby plus a CLI with `--agent` output (15). 20+17+18+10+15 = 80.",
          "b": "No MCP server. Responses can be sized with limit, format, addressdetails and dedupe, and a /balance endpoint reports what's left (20). countrycodes, viewbox and bounded on search, and tag filters on nearby (17). Error messages tell a burst (Rate Limited Second) from a spent day (Rate Limited Day) and a missing scope from a bad key (18). Every call reads and is safe to retry, but there are no tool annotations to give (12). Few required parameters, but the official Python client's last commit is 30 March 2020 and the Leaflet plugin's 15 June 2020 (7)."
        },
        "scores": {
          "a": 80,
          "b": 74
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Dotsquare LLC",
        "b": "LocationIQ (Unwired Labs)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://us1.locationiq.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$1600 per month (plan)",
        "b": "not published",
        "name": "Price for geocoding"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-03",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-03-31",
        "name": "Terms last updated"
      },
      {
        "a": "2018-05-25",
        "b": "2020-05-22",
        "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": "yes",
        "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": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "4.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Geocodio scores 72.2 (BB) on agent readiness against LocationIQ's 60.3 (C), and leads in 6 of 7 scored categories. LocationIQ leads on reliability.",
        "question": "Which is better for AI agents, Geocodio or LocationIQ?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Geocodio and LocationIQ need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Geocodio. LocationIQ has a hosted endpoint at https://us1.locationiq.com/v1.",
        "question": "Can an agent call Geocodio and LocationIQ without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 92 against 78",
          "Agent ergonomics, 80 against 74",
          "Payments \u0026 pricing, 40 against 30",
          "Maintenance \u0026 community, 86 against 3",
          "Transparency \u0026 trust, 87 against 61"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "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, 83 against 70"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "A prototype or a cost-sensitive geocoding and routing job, with EU and US endpoints.",
        "slug": "locationiq",
        "watchFor": "No changelog, release notes or blog"
      }
    ],
    "history": {
      "geocodio": null,
      "locationiq": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.3,
          "from": 60.6,
          "fromGrade": "C",
          "to": 60.3,
          "toGrade": "C"
        }
      ]
    },
    "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-locationiq.json",
        "title": "Amazon Location Service vs LocationIQ",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-locationiq"
      },
      {
        "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-locationiq.json",
        "title": "ArcGIS Location Platform vs LocationIQ",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-locationiq"
      },
      {
        "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-locationiq.json",
        "title": "Azure Maps vs LocationIQ",
        "url": "https://www.anchorterminal.com/compare/azure-maps-vs-locationiq"
      },
      {
        "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-locationiq.json",
        "title": "Geoapify Location Platform + MCP vs LocationIQ",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-locationiq"
      },
      {
        "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-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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-maps-platform-vs-locationiq.json",
        "title": "Google Maps Platform + Grounding Lite MCP vs LocationIQ",
        "url": "https://www.anchorterminal.com/compare/google-maps-platform-vs-locationiq"
      },
      {
        "json": "https://www.anchorterminal.com/compare/here-location-services-vs-locationiq.json",
        "title": "HERE Location Services vs LocationIQ",
        "url": "https://www.anchorterminal.com/compare/here-location-services-vs-locationiq"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-mapbox.json",
        "title": "LocationIQ vs Mapbox APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-mapbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-mapquest.json",
        "title": "LocationIQ vs MapQuest",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-mapquest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-maptiler.json",
        "title": "LocationIQ vs MapTiler Cloud",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-maptiler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-nextbillion.json",
        "title": "LocationIQ vs NextBillion.ai",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-nextbillion"
      },
      {
        "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/locationiq-vs-opencage.json",
        "title": "LocationIQ vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-radar.json",
        "title": "LocationIQ vs Radar",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-radar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-stadia-maps.json",
        "title": "LocationIQ vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-tomtom.json",
        "title": "LocationIQ vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-tomtom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/locationiq-vs-woosmap.json",
        "title": "LocationIQ vs Woosmap",
        "url": "https://www.anchorterminal.com/compare/locationiq-vs-woosmap"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 13,
        "edge": "locationiq",
        "geocodio": 70,
        "key": "reliability",
        "locationiq": 83,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 14,
        "edge": "geocodio",
        "geocodio": 92,
        "key": "schema",
        "locationiq": 78,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 6,
        "edge": "geocodio",
        "geocodio": 80,
        "key": "ergonomics",
        "locationiq": 74,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 3,
        "edge": "geocodio",
        "geocodio": 58,
        "key": "security",
        "locationiq": 55,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 10,
        "edge": "geocodio",
        "geocodio": 40,
        "key": "payments",
        "locationiq": 30,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 83,
        "edge": "geocodio",
        "geocodio": 86,
        "key": "maintenance",
        "locationiq": 3,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 26,
        "edge": "geocodio",
        "geocodio": 87,
        "key": "transparency",
        "locationiq": 61,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Geocodio scores 72.2 (BB) on agent readiness against LocationIQ's 60.3 (C), and leads in 6 of 7 scored categories. LocationIQ leads on reliability. 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.",
      "locationiq": "5,000 free requests a day with no card, commercial use allowed with a link back. No changelog, release notes or blog."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/geocodio-vs-locationiq",
    "json": "https://www.anchorterminal.com/compare/geocodio-vs-locationiq.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/geocodio-vs-locationiq.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/geocodio-vs-locationiq.min.md"
  },
  "markdown": "Geocodio scores 72.2 (BB) on agent readiness against LocationIQ's 60.3 (C), and leads in 6 of 7 scored categories. LocationIQ leads on reliability. 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- LocationIQ: grade C, 60.3/100, rank #658 of 1510. Markdown https://www.anchorterminal.com/tools/locationiq.md · JSON https://www.anchorterminal.com/api/v1/tools/locationiq.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 78\n- Agent ergonomics, 80 against 74\n- Payments \u0026 pricing, 40 against 30\n- Maintenance \u0026 community, 86 against 3\n- Transparency \u0026 trust, 87 against 61\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\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### LocationIQ (C)\n\nGood for: A prototype or a cost-sensitive geocoding and routing job, with EU and US endpoints.\n\nAhead on:\n- Reliability, 83 against 70\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: No changelog, release notes or blog\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Geocodio +83\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- LocationIQ (3): We found no changelog, release notes or blog on 4 November (docs.locationiq.com/changelog, locationiq.com/changelog and locationiq.com/blog all return 404, and llms.txt lists none), so there's no dated API change to count. The terms were updated 31 March 2026, which isn't an API change (0). No dated entries in the last 90 days (0). No public changelog. Support is by email, which we didn't test (3). The official Python client hasn't changed since 30 March 2020 (0). Nothing current to judge package health by (0). The status page shows the service is run and watched, which this checklist doesn't capture. 0+0+3+0+0 = 3.\n\n### Transparency \u0026 trust: Geocodio +26\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- LocationIQ (61): Closed service with readable terms, updated 31 March 2026, under the laws of Telangana, India (15). The terms are specific on storage, 48 hours on Free and for as long as you're a customer on paid plans, with no server-side tile caching. The privacy policy at locationiq.com/privacy was last updated 22 May 2020, says IP addresses are stored to check for abuse with no retention period, and links a DPA (15). No deprecation policy or notices found (0). Stripe, Zoho and Google Analytics named without locations. Data centre regions are visible on the status page, not in the policy (10).\n\n### Schema \u0026 documentation: Geocodio +14\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- LocationIQ (78): OpenAPI 3.0.0 spec, version 1.5.1 on 4 November, at docs.locationiq.com/openapi.yaml, covering search, reverse, autocomplete, nearby, directions, matrix, `/optimize` and the rest, with 429 responses defined (25). docs.locationiq.com/llms.txt indexes about 50 pages, mostly as .md (10). The reference describes each endpoint and parameter (12). Typed parameters in the spec (12). An errors page with the exact message string for each code (14). v1 in the path and a versioned spec, but no changelog (5).\n\n### Reliability: LocationIQ +13\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- LocationIQ (83): status.locationiq.com lists 15 components by data centre (geocoding, autocomplete, maps and routing in Europe, US East, US West and Asia Pacific) with RSS and Atom history back to March 2018, 74 incidents in all, per the 1 October check (20). The newest incident then was 'Network Issues' on 2 April 2026, so 6 August to 1 October was clean. On 4 November the status host answered robots.txt with its app page, so nothing more was requested there, 2 October to 4 November is unread, and the line is held at what the read part supports (30). Per-second and daily limits for every plan, and per-token and per-IP limits on top, with soft daily limits of up to 100% more on paid plans (15). Three distinct 429 messages, Rate Limited Second, Minute and Day, and a 500 that says to retry after a short wait, but no Retry-After or backoff guidance (8). No SLA. The pricing page lists custom SLAs only on its top plan and points to public uptime instead (0). GA (10). 20+30+15+8+0+10 = 83.\n\n### Payments \u0026 pricing: Geocodio +10\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- LocationIQ (30): No x402, MPP or L402 (0). Public plan prices with daily or monthly quotas, but no per-request price or overage rate, since requests over quota are refused (10). Free plan of 5,000 requests a day with no card, and commercial use allowed with a prominent link back (20). Signup is a browser flow (0).\n\n### Agent ergonomics: Geocodio +6\n\n- Geocodio (80): API reading. `limit`, opt-in `fields` appends and `stable_address_key` re-lookups size responses and cost, and results are ordered best first (20). Batches of 10,000 lookups, Lists for 10 million, distance filters (max_distance, max_results, order_by) and paginated list listings (17). Codes 403, 422, 429 and 500 each carry a documented meaning and retry rule, error bodies link a help page, and `_warnings` reports ignored parameters (18). Geocoding reads are safe to retry, but there's no idempotency key on batch or list creation and AGENTS.md says a retried request is billed again (10). One required parameter on a single geocode, and official libraries for Python, Node, PHP and Ruby plus a CLI with `--agent` output (15). 20+17+18+10+15 = 80.\n- LocationIQ (74): No MCP server. Responses can be sized with limit, format, addressdetails and dedupe, and a /balance endpoint reports what's left (20). countrycodes, viewbox and bounded on search, and tag filters on nearby (17). Error messages tell a burst (Rate Limited Second) from a spent day (Rate Limited Day) and a missing scope from a bad key (18). Every call reads and is safe to retry, but there are no tool annotations to give (12). Few required parameters, but the official Python client's last commit is 30 March 2020 and the Leaflet plugin's 15 June 2020 (7).\n\n## Score by category\n\n| Category | Weight | Geocodio | LocationIQ | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 83 | LocationIQ +13 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 92 | 78 | Geocodio +14 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 74 | Geocodio +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 58 | 55 | Geocodio +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Geocodio +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 86 | 3 | Geocodio +83 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 87 | 61 | Geocodio +26 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **72.2 · BB** | **60.3 · C** | |\n\n## Facts side by side\n\n| Fact | Geocodio | LocationIQ |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Dotsquare LLC | LocationIQ (Unwired Labs) |\n| Hosted endpoint | no (local only) | `https://us1.locationiq.com/v1` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| Price for geocoding | $1600 per month (plan) | not published |\n| x402 | no | no |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-11-03 | none |\n| Terms last updated | no date given | 2026-03-31 |\n| Privacy policy last updated | 2018-05-25 | 2020-05-22 |\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 | yes |\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 | none |\n| Agent reviews | none | 4.5/5 (2) |\n\n## How the scores have moved\n\n### Geocodio\n\nNo score change since it was listed.\n\n### LocationIQ\n\n- -0.3 on 8 October 2026: checklist\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**LocationIQ.** 5,000 free requests a day with no card, commercial use allowed with a link back. No changelog, release notes or blog.\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### LocationIQ\n\n1. Use eu1.locationiq.com for European users or data\n2. Add format=json and limit=1 to keep responses small\n3. On 429 Rate Limited Second wait a second, on Rate Limited Day stop until the next day\n4. Call /balance before a large batch to see what's left of the day's quota\n5. Redact the key parameter before logging request URLs\n\n## Questions\n\n### Which is better for AI agents, Geocodio or LocationIQ?\n\nGeocodio scores 72.2 (BB) on agent readiness against LocationIQ's 60.3 (C), and leads in 6 of 7 scored categories. LocationIQ leads on reliability.\n\n### Do Geocodio and LocationIQ need an API key?\n\nBoth need an API key.\n\n### Can an agent call Geocodio and LocationIQ without installing anything?\n\nNo hosted endpoint is listed for Geocodio. LocationIQ has a hosted endpoint at https://us1.locationiq.com/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/geocodio-vs-locationiq.json, and with the fewest tokens: https://www.anchorterminal.com/compare/geocodio-vs-locationiq.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"geocodio\", \"b\": \"locationiq\"}`. From a terminal: `anchor compare geocodio locationiq`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/geocodio.json and https://www.anchorterminal.com/api/v1/tools/locationiq.json\n\n## Other comparisons with Geocodio or LocationIQ\n\n- [Amazon Location Service vs Geocodio](https://www.anchorterminal.com/compare/amazon-location-vs-geocodio.md)\n- [Amazon Location Service vs LocationIQ](https://www.anchorterminal.com/compare/amazon-location-vs-locationiq.md)\n- [ArcGIS Location Platform vs Geocodio](https://www.anchorterminal.com/compare/arcgis-vs-geocodio.md)\n- [ArcGIS Location Platform vs LocationIQ](https://www.anchorterminal.com/compare/arcgis-vs-locationiq.md)\n- [Azure Maps vs Geocodio](https://www.anchorterminal.com/compare/azure-maps-vs-geocodio.md)\n- [Azure Maps vs LocationIQ](https://www.anchorterminal.com/compare/azure-maps-vs-locationiq.md)\n- [Geoapify Location Platform + MCP vs Geocodio](https://www.anchorterminal.com/compare/geoapify-vs-geocodio.md)\n- [Geoapify Location Platform + MCP vs LocationIQ](https://www.anchorterminal.com/compare/geoapify-vs-locationiq.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 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- [Google Maps Platform + Grounding Lite MCP vs LocationIQ](https://www.anchorterminal.com/compare/google-maps-platform-vs-locationiq.md)\n- [HERE Location Services vs LocationIQ](https://www.anchorterminal.com/compare/here-location-services-vs-locationiq.md)\n- [LocationIQ vs Mapbox APIs + MCP](https://www.anchorterminal.com/compare/locationiq-vs-mapbox.md)\n- [LocationIQ vs MapQuest](https://www.anchorterminal.com/compare/locationiq-vs-mapquest.md)\n- [LocationIQ vs MapTiler Cloud](https://www.anchorterminal.com/compare/locationiq-vs-maptiler.md)\n- [LocationIQ vs NextBillion.ai](https://www.anchorterminal.com/compare/locationiq-vs-nextbillion.md)\n- [LocationIQ vs Nominatim](https://www.anchorterminal.com/compare/locationiq-vs-nominatim.md)\n- [LocationIQ vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/locationiq-vs-opencage.md)\n- [LocationIQ vs Radar](https://www.anchorterminal.com/compare/locationiq-vs-radar.md)\n- [LocationIQ vs Stadia Maps](https://www.anchorterminal.com/compare/locationiq-vs-stadia-maps.md)\n- [LocationIQ vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/locationiq-vs-tomtom.md)\n- [LocationIQ vs Woosmap](https://www.anchorterminal.com/compare/locationiq-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 LocationIQ",
        "url": ""
      }
    ],
    "description": "Geocodio scores 72.2 (BB) to LocationIQ's 60.3 (C) for geocoding. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Geocodio BB 72.2",
      "LocationIQ C 60.3",
      "scores"
    ],
    "h1": "Geocodio vs LocationIQ",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/geocodio-vs-locationiq",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Geocodio vs LocationIQ for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/geocodio-vs-locationiq"
  },
  "tokens": {
    "markdown": 4500,
    "slim": 2580
  },
  "version": 1
}
