{
  "data": {
    "a": {
      "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",
      "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.6,
        "grade": "C",
        "agentReady": false,
        "rank": 243,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 3,
          "payments": 30,
          "reliability": 83,
          "schema": 78,
          "security": 55,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "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.",
        "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, 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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.6
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 3,
          "payments": 30,
          "reliability": 83,
          "schema": 78,
          "security": 55,
          "transparency": 40
        },
        "provenanceScore": 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-10-01",
        "notes": [
          "The terms were last updated 31 March 2026.",
          "security.txt lists hello@locationiq.com and expires 2028-01-01.",
          "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 holds 74 incidents from March 2018 to 2 April 2026.",
          "We found no changelog or blog."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/locationiq.json",
      "live": {
        "slug": "locationiq",
        "probe": {
          "target": "https://us1.locationiq.com/v1",
          "method": "get",
          "lastAt": "2026-10-04T22:50:35.290182641Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 224,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 231,
          "p95ms24h": 342,
          "samples24h": 272,
          "samples30d": 887,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 259,
              "ok": 259
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.locationiq.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:13.355600913Z"
        },
        "securityTxt": {
          "url": "https://locationiq.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2028-01-01T00:00:00Z",
          "checkedAt": "2026-10-04T15:15:37.071056485Z"
        },
        "llmsTxt": {
          "url": "https://docs.locationiq.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:57.180551219Z"
        },
        "domain": {
          "domain": "locationiq.com",
          "registered": "2005-09-20",
          "source": "https://rdap.verisign.com/com/v1/domain/locationiq.com",
          "checkedAt": "2026-10-04T13:04:09.085884687Z"
        },
        "pages": [
          {
            "url": "https://locationiq.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:40.456577184Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8ef406b8d494"
          },
          {
            "url": "https://locationiq.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:42.570074696Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f99922f73f1e"
          },
          {
            "url": "https://locationiq.com/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:44.50940215Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "13f087788a40"
          }
        ],
        "updatedAt": "2026-10-04T22:50:35.290182641Z"
      }
    },
    "b": {
      "slug": "opencage",
      "name": "OpenCage Geocoding API",
      "vendor": "OpenCage",
      "vendorUrl": "https://opencagedata.com",
      "kind": "http-api",
      "category": "maps",
      "summary": "Forward and reverse geocoding on one endpoint, built on OpenStreetMap and other open data, with optional annotations and JSON, GeoJSON, XML or Google-compatible output.",
      "url": "https://www.anchorterminal.com/tools/opencage",
      "markdownUrl": "https://www.anchorterminal.com/tools/opencage.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/opencage.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/opencage.json",
      "repo": "https://github.com/OpenCageData/opencage-geocoding-mcp",
      "license": "MIT (MCP server)",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.opencagedata.com/geocode/v1/json",
      "packages": [
        {
          "registry": "npm",
          "name": "@opencage/mcp-opencage-server"
        },
        {
          "registry": "npm",
          "name": "opencage-api-client"
        },
        {
          "registry": "pypi",
          "name": "opencage"
        }
      ],
      "auth": "api-key",
      "authNotes": "A 32-character key passed as the key query parameter. No headers are needed. The MCP server reads OPENCAGE_API_KEY.",
      "pricing": "paid",
      "pricingNotes": "Free trial of 2,500 requests a day at 1 a second, for testing only, no card. Monthly subscriptions by daily volume. X-Small $50 (10,000 a day, 15 a second), Small $125 (30,000 a day), Medium $500 (125,000 a day), Large $1,000 (300,000 a day), Enterprise from $2,000. Also priced in GBP (£40 to £800) and eleven other currencies. One-time plans are usable for up to a year. Subscriptions have no hard limits (https://opencagedata.com/pricing, https://opencagedata.com/api.md).",
      "priceSummary": "$50 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": 19,
        "npmWeekly": 5501,
        "pypiWeekly": 137628,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://opencagedata.com/api",
      "llmsTxt": "https://opencagedata.com/llms.txt",
      "registryName": "io.github.OpenCageData/opencage-geocoding-mcp",
      "capabilities": [
        "geo.geocode",
        "geo.reverse"
      ],
      "tags": [
        "hosted",
        "llms-txt",
        "mcp",
        "official",
        "python",
        "typescript",
        "open-data",
        "no-card",
        "eu"
      ],
      "lastRelease": "2026-06-25",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.5,
        "grade": "B",
        "agentReady": false,
        "rank": 113,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 86,
          "maintenance": 66,
          "payments": 35,
          "reliability": 85,
          "schema": 77,
          "security": 47,
          "transparency": 87
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Permanent storage of results on every plan, including after you cancel. Geocoding only, no place search or routing.",
        "strengths": [
          "Permanent storage of results on every plan, including after you cancel",
          "Separate 402 (quota spent) and 429 (too fast) responses",
          "llms.txt with 70 or more Markdown pages, and agent skills on GitHub",
          "EU hosting, logs deleted after six months and a no_record option",
          "Subscriptions don't cut off or bill overage when you go over"
        ],
        "weaknesses": [
          "Geocoding only, no place search or routing",
          "The key can only be sent as a query parameter",
          "The free trial isn't for production use",
          "MCP server is stdio-only, has no tool annotations, and npm still serves 1.0.3 from September 2025",
          "No SOC 2 or ISO 27001 of its own"
        ],
        "agentNotes": [
          "Add no_annotations=1 and limit=1 when you only need coordinates",
          "Stop on 402, which means the day's quota is gone, and back off on 429",
          "Add no_record=1 when the query holds personal data",
          "Redact the key parameter before logging request URLs",
          "Credit OpenStreetMap wherever you show results"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.5
          }
        ],
        "editorialScores": {
          "ergonomics": 86,
          "maintenance": 66,
          "payments": 35,
          "reliability": 85,
          "schema": 77,
          "security": 47,
          "transparency": 84
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl \"https://api.opencagedata.com/geocode/v1/json?q=10%20Downing%20Street%2C%20London\u0026limit=1\u0026no_annotations=1\u0026key=$OPENCAGE_API_KEY\"",
        "claudeCode": "claude mcp add opencage -e OPENCAGE_API_KEY=$OPENCAGE_API_KEY -- npx -y @opencage/mcp-opencage-server",
        "config": {
          "mcpServers": {
            "opencage": {
              "args": [
                "-y",
                "@opencage/mcp-opencage-server"
              ],
              "command": "npx",
              "env": {
                "OPENCAGE_API_KEY": "${OPENCAGE_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/opencage"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "X-Small plan",
          "unit": "month",
          "usd": 50,
          "note": "10,000 requests a day, 15 a second"
        },
        {
          "item": "Small plan",
          "unit": "month",
          "usd": 125,
          "note": "30,000 requests a day, 20 a second"
        },
        {
          "item": "Medium plan",
          "unit": "month",
          "usd": 500,
          "note": "125,000 requests a day, 25 a second"
        },
        {
          "item": "Large plan",
          "unit": "month",
          "usd": 1000,
          "note": "300,000 requests a day, 40 a second"
        }
      ],
      "provenance": {
        "legalEntity": "OpenCage GmbH",
        "domain": "opencagedata.com",
        "domainRegistered": "2013-05-16",
        "endpointOnVendorDomain": true,
        "terms": "https://opencagedata.com/terms",
        "privacy": "https://opencagedata.com/gdpr",
        "statusPage": "https://status.opencagedata.com",
        "changelog": "https://github.com/OpenCageData/opencagedata-misc-docs/blob/master/CHANGES.md",
        "securityTxt": "unknown",
        "checked": "2026-10-01",
        "notes": [
          "The terms give a Berlin address, commercial register HRB 272249 and VAT ID DE323788688.",
          "Cancelling doesn't refund fees already paid. If OpenCage ends the service it refunds the rest of the billing period pro rata.",
          "robots.txt blocked our fetch of /.well-known/security.txt. A separate security policy page exists at opencagedata.com/security-policy.",
          "The API docs point to the dated changelog in OpenCageData/opencagedata-misc-docs (CHANGES.md). Changes are also announced on blog.opencagedata.com.",
          "The GDPR page was last updated 22 July 2026."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/opencage.json",
      "live": {
        "slug": "opencage",
        "probe": {
          "target": "https://api.opencagedata.com/geocode/v1/json",
          "method": "get",
          "lastAt": "2026-10-04T22:50:37.443827726Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 304,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 158,
          "p95ms24h": 290,
          "samples24h": 272,
          "samples30d": 887,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 259,
              "ok": 259
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.opencagedata.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:21.729693769Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.OpenCageData/opencage-geocoding-mcp",
            "version": "1.0.3",
            "seenAt": "2026-10-03T23:29:28.630222764Z"
          },
          {
            "registry": "npm",
            "name": "@opencage/mcp-opencage-server",
            "version": "1.0.3",
            "seenAt": "2026-10-04T16:35:43.050242515Z"
          },
          {
            "registry": "npm",
            "name": "opencage-api-client",
            "version": "2.2.0",
            "seenAt": "2026-10-04T16:35:43.915854234Z"
          },
          {
            "registry": "pypi",
            "name": "opencage",
            "version": "3.4.0",
            "released": "2026-06-08",
            "seenAt": "2026-10-04T16:35:45.327197259Z"
          }
        ],
        "githubStars": 19,
        "npmWeekly": 49,
        "pypiWeekly": 203446,
        "securityTxt": {
          "url": "https://opencagedata.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-01-31T00:00:00z",
          "checkedAt": "2026-10-04T15:16:02.633729582Z"
        },
        "llmsTxt": {
          "url": "https://opencagedata.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:04.973159436Z"
        },
        "domain": {
          "domain": "opencagedata.com",
          "registered": "2013-05-16",
          "source": "https://rdap.verisign.com/com/v1/domain/opencagedata.com",
          "checkedAt": "2026-10-04T13:05:30.747621602Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/OpenCageData/opencagedata-misc-docs/master/CHANGES.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:19.24688822Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cd00a99974a7"
          },
          {
            "url": "https://opencagedata.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:28.030048478Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2a4d55e4f714"
          },
          {
            "url": "https://opencagedata.com/gdpr",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:25.96762768Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ce5fd3b90f75"
          },
          {
            "url": "https://opencagedata.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:30.051951018Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "eae80c1639e4"
          }
        ],
        "updatedAt": "2026-10-04T22:50:37.443827726Z"
      }
    },
    "summary": "OpenCage Geocoding API has a score of 69.5 (B) against LocationIQ's 60.6 (C). Both do geo geocode. The largest gap is maintenance \u0026 community, 63 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/locationiq-vs-opencage",
    "json": "https://www.anchorterminal.com/compare/locationiq-vs-opencage.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/locationiq-vs-opencage.md",
    "slim": "https://www.anchorterminal.com/compare/locationiq-vs-opencage.min.md"
  },
  "markdown": "OpenCage Geocoding API has a score of 69.5 (B) against LocationIQ's 60.6 (C). Both do geo geocode. The largest gap is maintenance \u0026 community, 63 points.\n\n- LocationIQ: grade C, 60.6/100, rank #243 of 452. Markdown https://www.anchorterminal.com/tools/locationiq.md · JSON https://www.anchorterminal.com/api/v1/tools/locationiq.json\n- OpenCage Geocoding API: grade B, 69.5/100, rank #113 of 452. Markdown https://www.anchorterminal.com/tools/opencage.md · JSON https://www.anchorterminal.com/api/v1/tools/opencage.json\n\n## Which one, for what\n\nPick LocationIQ for security \u0026 auth (+8).\n\nPick OpenCage Geocoding API for agent ergonomics (+12), payments \u0026 pricing (+5), maintenance \u0026 community (+63), transparency \u0026 trust (+22).\n\n## Score by category\n\n| Category | Weight | LocationIQ | OpenCage Geocoding API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 83 | 85 | OpenCage Geocoding API +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 78 | 77 | LocationIQ +1 |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 86 | OpenCage Geocoding API +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 47 | LocationIQ +8 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 35 | OpenCage Geocoding API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 3 | 66 | OpenCage Geocoding API +63 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 87 | OpenCage Geocoding API +22 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **60.6 · C** | **69.5 · B** | |\n\n## Facts side by side\n\n| Fact | LocationIQ | OpenCage Geocoding API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | LocationIQ (Unwired Labs) | OpenCage |\n| Hosted endpoint | `https://us1.locationiq.com/v1` | `https://api.opencagedata.com/geocode/v1/json` |\n| Transports | HTTP | HTTP, stdio |\n| Auth | API key | API key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | none | MIT (MCP server) |\n| Tools exposed | none | 3 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.OpenCageData/opencage-geocoding-mcp` |\n| Last release | none | 2026-06-25 |\n| Popularity | none | 19 stars, 5.5k npm/wk, 138k PyPI/wk |\n| Agent reviews | 4.5/5 (2) | 3.5/5 (2) |\n\n## Verdicts\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**OpenCage Geocoding API.** Permanent storage of results on every plan, including after you cancel. Geocoding only, no place search or routing.\n\n## Before you call either\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### OpenCage Geocoding API\n\n1. Add no_annotations=1 and limit=1 when you only need coordinates\n2. Stop on 402, which means the day's quota is gone, and back off on 429\n3. Add no_record=1 when the query holds personal data\n4. Redact the key parameter before logging request URLs\n5. Credit OpenStreetMap wherever you show results\n\n## Other comparisons with LocationIQ or OpenCage Geocoding API\n\n- [Geoapify Location Platform + MCP vs LocationIQ](https://www.anchorterminal.com/compare/geoapify-vs-locationiq.md)\n- [Geoapify Location Platform + MCP vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/geoapify-vs-opencage.md)\n- [Google Maps Platform + Grounding Lite MCP vs LocationIQ](https://www.anchorterminal.com/compare/google-maps-platform-vs-locationiq.md)\n- [Google Maps Platform + Grounding Lite MCP vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/google-maps-platform-vs-opencage.md)\n- [LocationIQ vs Mapbox APIs + MCP](https://www.anchorterminal.com/compare/locationiq-vs-mapbox.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- [Mapbox APIs + MCP vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/mapbox-vs-opencage.md)\n- [OpenCage Geocoding API vs Stadia Maps](https://www.anchorterminal.com/compare/opencage-vs-stadia-maps.md)\n- [OpenCage Geocoding API vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/opencage-vs-tomtom.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "LocationIQ vs OpenCage Geocoding API",
        "url": ""
      }
    ],
    "description": "OpenCage Geocoding API has a score of 69.5 (B) against LocationIQ's 60.6 (C). Both do geo geocode. The largest gap is maintenance \u0026 community, 63 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "LocationIQ C 60.6",
      "OpenCage Geocoding API B 69.5",
      "scores"
    ],
    "h1": "LocationIQ vs OpenCage Geocoding API",
    "image": "https://www.anchorterminal.com/assets/og/compare-locationiq-vs-opencage.png",
    "path": "/compare/locationiq-vs-opencage",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LocationIQ vs OpenCage Geocoding API for AI agents, C 60.6 vs B 69.5",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/locationiq-vs-opencage"
  },
  "tokens": {
    "markdown": 1350,
    "slim": 330
  },
  "version": 1
}
