{
  "data": {
    "a": {
      "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.2,
        "grade": "B",
        "agentReady": false,
        "rank": 193,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 86,
          "maintenance": 66,
          "payments": 35,
          "reliability": 85,
          "schema": 77,
          "security": 47,
          "transparency": 84
        },
        "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.",
        "bestFor": "Bulk or repeated geocoding where results go into a database, and for EU data residency.",
        "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.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.2
          }
        ],
        "editorialScores": {
          "ergonomics": 86,
          "maintenance": 66,
          "payments": 35,
          "reliability": 85,
          "schema": 77,
          "security": 47,
          "transparency": 84
        },
        "provenanceScore": 84
      },
      "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": 84
      },
      "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-10T03:53:36.86571922Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 303,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 168,
          "p95ms24h": 272,
          "samples24h": 249,
          "samples30d": 2274,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.opencagedata.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:06.062037777Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.OpenCageData/opencage-geocoding-mcp",
            "version": "1.0.3",
            "seenAt": "2026-10-10T03:11:32.438759038Z"
          },
          {
            "registry": "npm",
            "name": "@opencage/mcp-opencage-server",
            "version": "1.0.3",
            "seenAt": "2026-10-09T17:10:35.723950228Z"
          },
          {
            "registry": "npm",
            "name": "opencage-api-client",
            "version": "2.2.0",
            "seenAt": "2026-10-09T17:10:36.555646148Z"
          },
          {
            "registry": "pypi",
            "name": "opencage",
            "version": "3.4.0",
            "released": "2026-06-08",
            "seenAt": "2026-10-09T17:10:38.018982568Z"
          }
        ],
        "githubStars": 19,
        "npmWeekly": 30,
        "pypiWeekly": 252522,
        "securityTxt": {
          "url": "https://opencagedata.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-01-31T00:00:00z",
          "checkedAt": "2026-10-09T15:40:03.042100041Z"
        },
        "llmsTxt": {
          "url": "https://opencagedata.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:31.118394032Z"
        },
        "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-09T18:44:39.13790752Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cd00a99974a7"
          },
          {
            "url": "https://opencagedata.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:44.523571679Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2a4d55e4f714"
          },
          {
            "url": "https://opencagedata.com/gdpr",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:42.451451282Z",
            "changedAt": "2026-10-07T18:07:57.615589937Z",
            "fingerprint": "a8a426817cc3"
          },
          {
            "url": "https://opencagedata.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:46.524331898Z",
            "changedAt": "2026-10-07T18:08:01.691588303Z",
            "fingerprint": "30104a7082ce"
          }
        ],
        "updatedAt": "2026-10-10T03:53:36.86571922Z"
      }
    },
    "answer": "OpenCage Geocoding API scores 69.2 (B) on agent readiness against Radar's 53.3 (D), and leads in 5 of 7 scored categories. Radar leads on security \u0026 auth and maintenance \u0026 community.",
    "b": {
      "slug": "radar",
      "name": "Radar",
      "vendor": "Radar Labs",
      "vendorUrl": "https://radar.com",
      "kind": "http-api",
      "category": "maps",
      "summary": "Radar is a location platform from Radar Labs with REST APIs for forward, reverse and IP geocoding, address autocomplete and validation, places search, distance, matrix, directions and route optimisation, plus geofencing, trip tracking and base maps.",
      "url": "https://www.anchorterminal.com/tools/radar",
      "markdownUrl": "https://www.anchorterminal.com/tools/radar.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/radar.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/radar.json",
      "repo": "https://github.com/radarlabs/radar-sdk-js",
      "license": "Proprietary service under Radar's Terms of Use. The web SDK in radarlabs/radar-sdk-js is Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.radar.io/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "radar-sdk-js"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key in the `Authorization` header, with no query-string option documented. Each project has four keys, test and live, publishable and secret. Publishable keys reach 16 of the 36 documented operations, including all geocoding, search and routing calls, and can be restricted by website domain or mobile app identifier. Secret keys reach the rest and can read or write any data. Keys come from the dashboard. Whether sign-up is self-serve was not established, because dashboard.radar.com's robots.txt closes every path.",
      "pricing": "paid",
      "pricingNotes": "Core Maps (forward, reverse and IP geocoding, autocomplete, static maps, distance, directions, matrix) starts at $0.50 per 1,000 API calls and Premium Maps (address validation, places search, route matching, route optimisation, satellite maps) at $2.00. Matrix bills per element. Every plan is an annual commitment with a monthly quota, at a rate Radar sets by quote. The pricing page says there is no free tier, and that teams can start with a technical validation period arranged with sales (https://radar.com/pricing).",
      "priceSummary": "$0.50 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API reference, the docs index or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.radar.com/api",
      "llmsTxt": "https://docs.radar.com/llms.txt",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.places",
        "geo.routing",
        "geo.tiles"
      ],
      "tags": [
        "hosted",
        "api-key",
        "llms-txt",
        "status-page",
        "sales-led",
        "annual-contract",
        "soc2",
        "closed-source"
      ],
      "lastRelease": "2026-09-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.3,
        "grade": "D",
        "agentReady": false,
        "rank": 713,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 12,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 77,
          "payments": 10,
          "reliability": 70,
          "schema": 50,
          "security": 56,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -2,
        "negativeNotes": [
          "9 October 2026. The Maps product page says the geocoding APIs come with 'the right to store, reuse, and export results freely' (https://radar.com/product/maps), while section 2(d) of the Terms of Use forbids storing address or point-of-interest data from the geocoding, autocomplete or place search APIs for more than 30 days (https://radar.com/terms) and the geocoding docs repeat the 30-day limit (https://docs.radar.com/maps/geocoding.md). 2 points for a claim the published terms contradict. A quoted enterprise agreement may differ and is not published."
        ],
        "verdict": "Radar documents 36 REST operations in Markdown with a rate limit on each, and its status feed shows two short API incidents in 90 days. Access is sales-led. The pricing page says there is no free tier, every plan is an annual commitment, and no OpenAPI description or API changelog was found.",
        "bestFor": "A company that already has a Radar contract, or wants geofencing and trip tracking with geocoding and routing on one key.",
        "strengths": [
          "Each of the 36 documented operations states its key level and a default rate limit, from 10 to 100 requests a second",
          "docs.radar.com publishes llms.txt and a Markdown twin of every page, including the whole API reference in one file",
          "Statuspage history lists two API incidents in the 90 days to 9 October 2026, of 3 minutes and about an hour",
          "Publishable keys are limited to 16 client-safe operations and can be restricted by website domain or mobile app identifier",
          "The DPA names two sub-processors (AWS and MongoDB) and the FAQ states default retention periods"
        ],
        "weaknesses": [
          "The pricing page says Radar has no free tier and every plan is an annual commitment set by quote",
          "No OpenAPI description and no API changelog were found in the docs index",
          "The terms cap storage of geocoding, autocomplete and place results at 30 days, while the Maps product page claims a right to store results freely",
          "The terms of 24 May 2023 let Radar change or stop the services without notice, and still describe a free version",
          "A secret key can read or write any project data, with no scopes found",
          "The terms forbid using the services to develop or test other geocoding, autocomplete or place search APIs, which matters before any probe is run"
        ],
        "agentNotes": [
          "Send the key in the `Authorization` header with no `Bearer` prefix, and call `https://api.radar.io/v1`, not radar.com",
          "Use a publishable key for geocoding, search and routing. Keep the secret key for users, trips, geofences and beacons",
          "Call `/v1/search/autocomplete` for partial addresses and place names. `/v1/geocode/forward` is documented as best for complete addresses",
          "Set `units=metric` on routing calls. The default is imperial, with distances in feet",
          "Treat 429 as one of three things (rate limit, no state change or selective throttling) and 402 as usage exceeded. No Retry-After header is documented",
          "Do not keep geocoding, autocomplete or place results for more than 30 days"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.3
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 77,
          "payments": 10,
          "reliability": 70,
          "schema": 50,
          "security": 56,
          "transparency": 51
        },
        "provenanceScore": 58
      },
      "connect": {
        "install": "npm install radar-sdk-js",
        "http": "curl \"https://api.radar.io/v1/geocode/forward?query=20+jay+st+brooklyn+ny\" -H \"Authorization: $RADAR_PUBLISHABLE_KEY\""
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/radar"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Core Maps API calls, starting price",
          "unit": "1k-requests",
          "usd": 0.5,
          "note": "Geocoding, autocomplete, static maps, distance, directions, matrix (per element). Annual commitment, rate set by quote"
        },
        {
          "item": "Premium Maps API calls, starting price",
          "unit": "1k-requests",
          "usd": 2,
          "note": "Address validation, places search, route matching, route optimisation, satellite maps. Annual commitment, rate set by quote"
        }
      ],
      "provenance": {
        "legalEntity": "Radar Labs, Inc.",
        "domain": "radar.com",
        "domainRegistered": "1994-12-16",
        "endpointOnVendorDomain": false,
        "terms": "https://radar.com/terms",
        "privacy": "https://radar.com/privacy",
        "statusPage": "https://status.radar.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The privacy notice (last updated 13 May 2025) names Radar Labs, Inc., a Delaware corporation at 111 5th Ave, 12th Floor, New York, NY 10003.",
          "The Terms of Use (last updated 24 May 2023) cover the SDK and Radar's APIs and incorporate the DPA at radar.com/dpa. They describe a free version, which the pricing page says Radar does not have. Paid plans are by quote, and no enterprise agreement is published.",
          "The API answers at api.radar.io, a second domain. Nothing was sent to it, and its registrant was not checked.",
          "radar.com/.well-known/security.txt answers 404. The FAQ gives security@radar.com for reports.",
          "No API changelog was found in the docs index. The web SDK repository has dated release tags.",
          "RDAP gives 16 December 1994 as the registration date of radar.com.",
          "robots.txt answers on the day. radar.com 200 with a sitemap line only. docs.radar.com 200 with ai-input=yes. status.radar.com 200 disallowing /api/ and /embed/. dashboard.radar.com 200 disallowing every path. trust.radar.com answers the request with its page shell."
        ],
        "score": 58
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/radar.json",
      "live": {
        "slug": "radar",
        "probe": {
          "target": "https://api.radar.io/v1",
          "method": "get",
          "lastAt": "2026-10-10T03:53:39.730180732Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 113,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 122,
          "p95ms24h": 233,
          "samples24h": 125,
          "samples30d": 125,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.radar.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T03:58:44.779248416Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "radarlabs/radar-sdk-js",
            "version": "autocomplete-v1.1.1",
            "released": "2026-09-14",
            "seenAt": "2026-10-09T17:15:51.370576682Z"
          },
          {
            "registry": "npm",
            "name": "radar-sdk-js",
            "version": "5.2.0",
            "seenAt": "2026-10-09T17:15:50.510226325Z"
          }
        ],
        "githubStars": 52,
        "npmWeekly": 62814,
        "pages": [
          {
            "url": "https://radar.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:44:14.0723216Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "22ff53a04e1c"
          },
          {
            "url": "https://radar.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:44:16.223416673Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "12f29204b40d"
          },
          {
            "url": "https://radar.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:44:18.136602575Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "411754a84910"
          }
        ],
        "updatedAt": "2026-10-10T03:58:44.779248416Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "OpenCage",
        "b": "Radar Labs",
        "name": "Vendor"
      },
      {
        "a": "https://api.opencagedata.com/geocode/v1/json",
        "b": "https://api.radar.io/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (MCP server)",
        "b": "Proprietary service under Radar's Terms of Use. The web SDK in radarlabs/radar-sdk-js is Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "3",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.OpenCageData/opencage-geocoding-mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-06-25",
        "b": "2026-09-14",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2023-05-24",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2025-05-13",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "19 stars, 5.5k npm/wk, 138k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "OpenCage Geocoding API scores 69.2 (B) on agent readiness against Radar's 53.3 (D), and leads in 5 of 7 scored categories. Radar leads on security \u0026 auth and maintenance \u0026 community.",
        "question": "Which is better for AI agents, OpenCage Geocoding API or Radar?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do OpenCage Geocoding API and Radar need an API key?"
      },
      {
        "answer": "Yes. OpenCage Geocoding API has a hosted endpoint at https://api.opencagedata.com/geocode/v1/json and Radar at https://api.radar.io/v1.",
        "question": "Can an agent call OpenCage Geocoding API and Radar without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 85 against 70",
          "Schema \u0026 documentation, 77 against 50",
          "Agent ergonomics, 86 against 65",
          "Payments \u0026 pricing, 35 against 10",
          "Transparency \u0026 trust, 84 against 55"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "Bulk or repeated geocoding where results go into a database, and for EU data residency.",
        "slug": "opencage",
        "watchFor": "Geocoding only, no place search or routing"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 56 against 47",
          "Maintenance \u0026 community, 77 against 66"
        ],
        "also": null,
        "goodFor": "A company that already has a Radar contract, or wants geofencing and trip tracking with geocoding and routing on one key.",
        "slug": "radar",
        "watchFor": "The pricing page says Radar has no free tier and every plan is an annual commitment set by quote"
      }
    ],
    "job": {
      "capability": "geo.geocode",
      "name": "Geocoding"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-opencage.json",
        "title": "Amazon Location Service vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-radar.json",
        "title": "Amazon Location Service vs Radar",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-radar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-opencage.json",
        "title": "ArcGIS Location Platform vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcgis-vs-radar.json",
        "title": "ArcGIS Location Platform vs Radar",
        "url": "https://www.anchorterminal.com/compare/arcgis-vs-radar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-maps-vs-opencage.json",
        "title": "Azure Maps vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/azure-maps-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-maps-vs-radar.json",
        "title": "Azure Maps vs Radar",
        "url": "https://www.anchorterminal.com/compare/azure-maps-vs-radar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-opencage.json",
        "title": "Geoapify Location Platform + MCP vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/geoapify-vs-radar.json",
        "title": "Geoapify Location Platform + MCP vs Radar",
        "url": "https://www.anchorterminal.com/compare/geoapify-vs-radar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-maps-platform-vs-opencage.json",
        "title": "Google Maps Platform + Grounding Lite MCP vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/google-maps-platform-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-maps-platform-vs-radar.json",
        "title": "Google Maps Platform + Grounding Lite MCP vs Radar",
        "url": "https://www.anchorterminal.com/compare/google-maps-platform-vs-radar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/here-location-services-vs-opencage.json",
        "title": "HERE Location Services vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/here-location-services-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/here-location-services-vs-radar.json",
        "title": "HERE Location Services vs Radar",
        "url": "https://www.anchorterminal.com/compare/here-location-services-vs-radar"
      },
      {
        "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/mapbox-vs-opencage.json",
        "title": "Mapbox APIs + MCP vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/mapbox-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mapbox-vs-radar.json",
        "title": "Mapbox APIs + MCP vs Radar",
        "url": "https://www.anchorterminal.com/compare/mapbox-vs-radar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mapquest-vs-opencage.json",
        "title": "MapQuest vs OpenCage Geocoding API",
        "url": "https://www.anchorterminal.com/compare/mapquest-vs-opencage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mapquest-vs-radar.json",
        "title": "MapQuest vs Radar",
        "url": "https://www.anchorterminal.com/compare/mapquest-vs-radar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opencage-vs-stadia-maps.json",
        "title": "OpenCage Geocoding API vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/opencage-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opencage-vs-tomtom.json",
        "title": "OpenCage Geocoding API vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/opencage-vs-tomtom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/radar-vs-stadia-maps.json",
        "title": "Radar vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/radar-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/radar-vs-tomtom.json",
        "title": "Radar vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/radar-vs-tomtom"
      }
    ],
    "scores": [
      {
        "by": 15,
        "edge": "opencage",
        "key": "reliability",
        "name": "Reliability",
        "opencage": 85,
        "radar": 70,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "opencage",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "opencage": 77,
        "radar": 50,
        "weight": 13
      },
      {
        "by": 21,
        "edge": "opencage",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "opencage": 86,
        "radar": 65,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "radar",
        "key": "security",
        "name": "Security \u0026 auth",
        "opencage": 47,
        "radar": 56,
        "weight": 14
      },
      {
        "by": 25,
        "edge": "opencage",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "opencage": 35,
        "radar": 10,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "edge": "radar",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "opencage": 66,
        "radar": 77,
        "weight": 7
      },
      {
        "by": 29,
        "edge": "opencage",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "opencage": 84,
        "radar": 55,
        "weight": 7
      }
    ],
    "summary": "OpenCage Geocoding API scores 69.2 (B) on agent readiness against Radar's 53.3 (D), and leads in 5 of 7 scored categories. Radar leads on security \u0026 auth and maintenance \u0026 community. Both do geocoding.",
    "verdicts": {
      "opencage": "Permanent storage of results on every plan, including after you cancel. Geocoding only, no place search or routing.",
      "radar": "Radar documents 36 REST operations in Markdown with a rate limit on each, and its status feed shows two short API incidents in 90 days. Access is sales-led. The pricing page says there is no free tier, every plan is an annual commitment, and no OpenAPI description or API changelog was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/opencage-vs-radar",
    "json": "https://www.anchorterminal.com/compare/opencage-vs-radar.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/opencage-vs-radar.md",
    "slim": "https://www.anchorterminal.com/compare/opencage-vs-radar.min.md"
  },
  "markdown": "OpenCage Geocoding API scores 69.2 (B) on agent readiness against Radar's 53.3 (D), and leads in 5 of 7 scored categories. Radar leads on security \u0026 auth and maintenance \u0026 community. Both do geocoding.\n\n- OpenCage Geocoding API: grade B, 69.2/100, rank #193 of 950. Markdown https://www.anchorterminal.com/tools/opencage.md · JSON https://www.anchorterminal.com/api/v1/tools/opencage.json\n- Radar: grade D, 53.3/100, rank #713 of 950. Markdown https://www.anchorterminal.com/tools/radar.md · JSON https://www.anchorterminal.com/api/v1/tools/radar.json\n- Best maps, geocoding and places APIs for AI agents: https://www.anchorterminal.com/best/maps/index.md\n- All 78 maps comparisons: https://www.anchorterminal.com/compare/maps/index.md\n\n## Which one, for what\n\n### OpenCage Geocoding API (B)\n\nGood for: Bulk or repeated geocoding where results go into a database, and for EU data residency.\n\nAhead on:\n- Reliability, 85 against 70\n- Schema \u0026 documentation, 77 against 50\n- Agent ergonomics, 86 against 65\n- Payments \u0026 pricing, 35 against 10\n- Transparency \u0026 trust, 84 against 55\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: Geocoding only, no place search or routing\n\n### Radar (D)\n\nGood for: A company that already has a Radar contract, or wants geofencing and trip tracking with geocoding and routing on one key.\n\nAhead on:\n- Security \u0026 auth, 56 against 47\n- Maintenance \u0026 community, 77 against 66\n\nWatch for: The pricing page says Radar has no free tier and every plan is an annual commitment set by quote\n\n\n## Score by category\n\n| Category | Weight | OpenCage Geocoding API | Radar | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 85 | 70 | OpenCage Geocoding API +15 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 50 | OpenCage Geocoding API +27 |\n| Agent ergonomics | 13% (16.2 this run) | 86 | 65 | OpenCage Geocoding API +21 |\n| Security \u0026 auth | 14% (17.5 this run) | 47 | 56 | Radar +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 10 | OpenCage Geocoding API +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 66 | 77 | Radar +11 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 84 | 55 | OpenCage Geocoding API +29 |\n| Negative events | ≤15 | 0 | -2 | |\n| **Total** | | **69.2 · B** | **53.3 · D** | |\n\n## Facts side by side\n\n| Fact | OpenCage Geocoding API | Radar |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | OpenCage | Radar Labs |\n| Hosted endpoint | `https://api.opencagedata.com/geocode/v1/json` | `https://api.radar.io/v1` |\n| Transports | HTTP, stdio | HTTP |\n| Auth | API key | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | MIT (MCP server) | Proprietary service under Radar's Terms of Use. The web SDK in radarlabs/radar-sdk-js is Apache-2.0 |\n| Tools exposed | 3 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.OpenCageData/opencage-geocoding-mcp` | not listed |\n| Last release | 2026-06-25 | 2026-09-14 |\n| Terms last updated | no date given | 2023-05-24 |\n| Privacy policy last updated | no date given | 2025-05-13 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 19 stars, 5.5k npm/wk, 138k PyPI/wk | none |\n| Agent reviews | 3.5/5 (2) | none |\n\n## Verdicts\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**Radar.** Radar documents 36 REST operations in Markdown with a rate limit on each, and its status feed shows two short API incidents in 90 days. Access is sales-led. The pricing page says there is no free tier, every plan is an annual commitment, and no OpenAPI description or API changelog was found.\n\n## Before you call either\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### Radar\n\n1. Send the key in the `Authorization` header with no `Bearer` prefix, and call `https://api.radar.io/v1`, not radar.com\n2. Use a publishable key for geocoding, search and routing. Keep the secret key for users, trips, geofences and beacons\n3. Call `/v1/search/autocomplete` for partial addresses and place names. `/v1/geocode/forward` is documented as best for complete addresses\n4. Set `units=metric` on routing calls. The default is imperial, with distances in feet\n5. Treat 429 as one of three things (rate limit, no state change or selective throttling) and 402 as usage exceeded. No Retry-After header is documented\n6. Do not keep geocoding, autocomplete or place results for more than 30 days\n\n## Questions\n\n### Which is better for AI agents, OpenCage Geocoding API or Radar?\n\nOpenCage Geocoding API scores 69.2 (B) on agent readiness against Radar's 53.3 (D), and leads in 5 of 7 scored categories. Radar leads on security \u0026 auth and maintenance \u0026 community.\n\n### Do OpenCage Geocoding API and Radar need an API key?\n\nBoth need an API key.\n\n### Can an agent call OpenCage Geocoding API and Radar without installing anything?\n\nYes. OpenCage Geocoding API has a hosted endpoint at https://api.opencagedata.com/geocode/v1/json and Radar at https://api.radar.io/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/opencage-vs-radar.json, and with the fewest tokens: https://www.anchorterminal.com/compare/opencage-vs-radar.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"opencage\", \"b\": \"radar\"}`. From a terminal: `anchor compare opencage radar`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/opencage.json and https://www.anchorterminal.com/api/v1/tools/radar.json\n\n## Other comparisons with OpenCage Geocoding API or Radar\n\n- [Amazon Location Service vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/amazon-location-vs-opencage.md)\n- [Amazon Location Service vs Radar](https://www.anchorterminal.com/compare/amazon-location-vs-radar.md)\n- [ArcGIS Location Platform vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/arcgis-vs-opencage.md)\n- [ArcGIS Location Platform vs Radar](https://www.anchorterminal.com/compare/arcgis-vs-radar.md)\n- [Azure Maps vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/azure-maps-vs-opencage.md)\n- [Azure Maps vs Radar](https://www.anchorterminal.com/compare/azure-maps-vs-radar.md)\n- [Geoapify Location Platform + MCP vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/geoapify-vs-opencage.md)\n- [Geoapify Location Platform + MCP vs Radar](https://www.anchorterminal.com/compare/geoapify-vs-radar.md)\n- [Google Maps Platform + Grounding Lite MCP vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/google-maps-platform-vs-opencage.md)\n- [Google Maps Platform + Grounding Lite MCP vs Radar](https://www.anchorterminal.com/compare/google-maps-platform-vs-radar.md)\n- [HERE Location Services vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/here-location-services-vs-opencage.md)\n- [HERE Location Services vs Radar](https://www.anchorterminal.com/compare/here-location-services-vs-radar.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- [Mapbox APIs + MCP vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/mapbox-vs-opencage.md)\n- [Mapbox APIs + MCP vs Radar](https://www.anchorterminal.com/compare/mapbox-vs-radar.md)\n- [MapQuest vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/mapquest-vs-opencage.md)\n- [MapQuest vs Radar](https://www.anchorterminal.com/compare/mapquest-vs-radar.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- [Radar vs Stadia Maps](https://www.anchorterminal.com/compare/radar-vs-stadia-maps.md)\n- [Radar vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/radar-vs-tomtom.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "OpenCage Geocoding API vs Radar",
        "url": ""
      }
    ],
    "description": "OpenCage Geocoding scores 69.2 (B) to Radar's 53.3 (D) for geocoding. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "OpenCage Geocoding API B 69.2",
      "Radar D 53.3",
      "scores"
    ],
    "h1": "OpenCage Geocoding API vs Radar",
    "image": "https://www.anchorterminal.com/assets/og/compare-opencage-vs-radar.png",
    "path": "/compare/opencage-vs-radar",
    "published": "2026-10-01",
    "section": "tools",
    "title": "OpenCage Geocoding vs Radar for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/opencage-vs-radar"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 680
  },
  "version": 1
}
