{
  "data": {
    "a": {
      "slug": "amazon-location",
      "name": "Amazon Location Service",
      "vendor": "Amazon Web Services",
      "vendorUrl": "https://aws.amazon.com/location/",
      "kind": "http-api",
      "category": "maps",
      "summary": "Amazon Location Service is AWS's API for geocoding, place search, routing and map tiles, with geofences and device tracking. Agents call regional REST endpoints with an API key or IAM credentials, or through the AWS SDKs and CLI.",
      "url": "https://www.anchorterminal.com/tools/amazon-location",
      "markdownUrl": "https://www.anchorterminal.com/tools/amazon-location.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/amazon-location.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/amazon-location.json",
      "repo": "https://github.com/aws-geospatial/amazon-location-agent-context",
      "license": "Proprietary service under the AWS Customer Agreement and AWS Service Terms. The AWS SDK clients and the agent context package on GitHub are Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://places.geo.us-east-1.amazonaws.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@aws-sdk/client-geo-places"
        },
        {
          "registry": "npm",
          "name": "@aws-sdk/client-geo-routes"
        },
        {
          "registry": "npm",
          "name": "@aws-sdk/client-geo-maps"
        },
        {
          "registry": "pypi",
          "name": "boto3"
        }
      ],
      "auth": "api-key",
      "authNotes": "Access needs an AWS account. Maps, Places and Routes accept an Amazon Location API key in the `key` query parameter, created in the console, the CLI or the `CreateKey` call, limited to named actions and resources, with optional expiry and referrer or mobile app restrictions. Every API also accepts AWS Signature Version 4 with IAM credentials or a role, and Amazon Cognito identity pools for unauthenticated clients. Geofences, trackers and the Jobs API refuse API keys. API keys can't be used over AWS PrivateLink (https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html).",
      "pricing": "usage",
      "pricingNotes": "Geocoding, reverse geocoding and place search cost $0.50 per 1,000 requests (core), $1.50 with advanced fields and $4.00 when results are stored, in US East (N. Virginia). Routes cost $0.50 per 1,000 for car, truck or pedestrian, map tiles $0.04 per 1,000. No sandbox or contract is needed, but an AWS account is. The pricing page lists monthly allowances for the first three months (20,000 core Places requests, 10,000 routes, 500,000 tiles) and up to $200 of credits for customers who joined after 15 July 2025. Volume discounts above $5,000 a month are by quote (https://aws.amazon.com/location/pricing/, checked 2026-10-08).",
      "priceSummary": "$0.50 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer guide's llms.txt, the service models or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 426988,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.aws.amazon.com/location/latest/developerguide/what-is.html",
      "llmsTxt": "https://docs.aws.amazon.com/location/latest/developerguide/llms.txt",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.places",
        "geo.routing",
        "geo.tiles"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "python",
        "typescript",
        "enterprise",
        "llms-txt",
        "card-required",
        "sla",
        "status-page",
        "batch"
      ],
      "lastRelease": "2026-08-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 74.1,
        "grade": "BB",
        "agentReady": true,
        "rank": 68,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 88,
          "maintenance": 60,
          "payments": 20,
          "reliability": 95,
          "schema": 87,
          "security": 73,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Places, Routes and Maps calls work over plain HTTPS with an API key limited to named actions, and every one of the 17 operations is read-only with typed inputs. Access starts with an AWS account a person opens, the key travels in the URL query string, and stored results cost eight times the single-use rate.",
        "bestFor": "Operators already on AWS who want geocoding, places and routing inside IAM, CloudTrail and one bill, with HERE data and GrabMaps for Southeast Asia.",
        "strengths": [
          "API keys are limited to named actions and resources, can expire, and can be restricted by referrer or mobile app identifier",
          "All 17 Places, Routes and Maps operations are marked read-only in the public Smithy models, with enums and numeric ranges on inputs",
          "Default rates are published per operation (100 a second for each Places call, 20 for `CalculateRoutes`) and can be doubled by self-service",
          "An SLA of 99.9 per cent monthly uptime per region, with credits of 10, 25 and 100 per cent",
          "llms.txt, a Markdown twin of every guide page and an Apache-2.0 agent context package (v1.2.0, 11 September 2026)"
        ],
        "weaknesses": [
          "The API key is sent as the `key` query parameter, the only documented way to present it",
          "Storing or caching results is barred unless `IntendedUse` is `Storage`, billed at $4.00 per 1,000 against $0.50 for single use",
          "An AWS account opened by a person in a browser is needed before any call, and no keyless or machine-payment route exists",
          "The developer guide gives no backoff or `Retry-After` guidance for `ThrottlingException` (429)",
          "The guide's document history holds one entry, dated 31 October 2024, so API changes have to be read from the SDK models"
        ],
        "agentNotes": [
          "Call the v2 endpoints (`places.geo.\u003cregion\u003e.amazonaws.com/v2/geocode`, `routes.geo`, `maps.geo`). They need no resource creation, unlike the v1 place index and route calculator calls",
          "Set `IntendedUse` to `Storage` before saving or caching any Places result. The default `SingleUse` results may not be stored under section 82.4 of the AWS Service Terms",
          "Read `PricingBucket` in each response. Requesting `Contact`, `Access`, `TimeZone` or `Phonemes` in `AdditionalFeatures` moves a Places call from $0.50 to $1.50 per 1,000",
          "Keep the API key out of logs and shared URLs, since it travels as `?key=`. Use SigV4 with an IAM role for server-side work, and for the Jobs API, which refuses API keys",
          "Back off on HTTP 429 `ThrottlingException`. The burst allowance is 80 per cent of the per-second rate within any part of a second"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 74.1
          }
        ],
        "editorialScores": {
          "ergonomics": 88,
          "maintenance": 60,
          "payments": 20,
          "reliability": 95,
          "schema": 87,
          "security": 73,
          "transparency": 52
        },
        "provenanceScore": 88
      },
      "connect": {
        "install": "pip install boto3   # or: npm i @aws-sdk/client-geo-places",
        "http": "curl --request POST \\\n  --url 'https://places.geo.eu-central-1.amazonaws.com/v2/geocode?key=Your_Key' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"QueryText\": \"510 W Georgia St, Vancouver, BC\"}'",
        "claudeCode": "/plugin install amazon-location-service@claude-plugins-official"
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/amazon-location"
      },
      "sameCompany": [
        "amazon-bedrock-guardrails",
        "amazon-transcribe",
        "amazon-polly",
        "aws-secrets-manager",
        "aws-mcp-servers",
        "amazon-ses",
        "amazon-translate",
        "amazon-ads-api"
      ],
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Geocode, reverse geocode, place search (core)",
          "unit": "1k-requests",
          "usd": 0.5,
          "note": "US East. `SingleUse` results, not for storage"
        },
        {
          "item": "Geocode, reverse geocode, place search (advanced)",
          "unit": "1k-requests",
          "usd": 1.5,
          "note": "With contacts, opening hours, access points or time zone"
        },
        {
          "item": "Geocode, reverse geocode, place search (stored)",
          "unit": "1k-requests",
          "usd": 4,
          "note": "`IntendedUse` set to `Storage`"
        },
        {
          "item": "Autocomplete and Suggest (label)",
          "unit": "1k-requests",
          "usd": 0.2
        },
        {
          "item": "Routes calculated (core)",
          "unit": "1k-requests",
          "usd": 0.5,
          "note": "Car, truck or pedestrian. A matrix bills origins times destinations"
        },
        {
          "item": "Routes with toll cost (premium)",
          "unit": "1k-requests",
          "usd": 4
        },
        {
          "item": "Dynamic map tiles",
          "unit": "1k-requests",
          "usd": 0.04
        },
        {
          "item": "Static map images",
          "unit": "1k-requests",
          "usd": 0.5
        }
      ],
      "provenance": {
        "legalEntity": "Amazon Web Services, Inc.",
        "domain": "amazon.com",
        "domainRegistered": "1994-11-01",
        "endpointOnVendorDomain": true,
        "terms": "https://aws.amazon.com/service-terms/",
        "privacy": "https://aws.amazon.com/privacy/",
        "statusPage": "https://health.aws.amazon.com/health/status",
        "changelog": "https://docs.aws.amazon.com/location/latest/developerguide/doc-history.html",
        "securityTxt": "expired",
        "checked": "2026-10-08",
        "notes": [
          "The AWS Service Terms (last updated 1 October 2026) govern the service, with Amazon Location Service at section 82. The AWS Customer Agreement sits above them.",
          "The AWS Privacy Notice (last updated 18 May 2026) names Amazon Web Services, Inc., 410 Terry Avenue North, Seattle, WA 98109-5210.",
          "The endpoints are on amazonaws.com and api.aws, both AWS domains.",
          "aws.amazon.com/.well-known/security.txt carries Expires 2026-09-24T16:25:03Z, which had passed on the day of the check. It points to a HackerOne disclosure programme.",
          "RDAP for amazon.com gives a registration date of 1994-11-01.",
          "The document history page has one entry, dated 31 October 2024. API changes are otherwise visible in AWS What's New posts and the SDK service models."
        ],
        "score": 88
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/amazon-location.json",
      "live": {
        "slug": "amazon-location",
        "probe": {
          "target": "https://places.geo.us-east-1.amazonaws.com",
          "method": "get",
          "lastAt": "2026-10-08T21:12:03.434350122Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 239,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 253,
          "p95ms24h": 307,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "updatedAt": "2026-10-08T21:12:03.434350122Z"
      }
    },
    "answer": "Amazon Location Service scores 74.1 (BB) on agent readiness against OpenCage Geocoding API's 69.2 (B), and leads in 4 of 7 scored categories. OpenCage Geocoding API leads on payments \u0026 pricing, maintenance \u0026 community and transparency \u0026 trust.",
    "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.2,
        "grade": "B",
        "agentReady": false,
        "rank": 164,
        "ranked": true,
        "rankOf": 722,
        "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-08T21:12:17.672387521Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 101,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 170,
          "p95ms24h": 308,
          "samples24h": 271,
          "samples30d": 1955,
          "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": 239,
              "ok": 239
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.opencagedata.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:39:00.291025391Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.OpenCageData/opencage-geocoding-mcp",
            "version": "1.0.3",
            "seenAt": "2026-10-08T02:42:52.272076636Z"
          },
          {
            "registry": "npm",
            "name": "@opencage/mcp-opencage-server",
            "version": "1.0.3",
            "seenAt": "2026-10-08T16:23:55.161303445Z"
          },
          {
            "registry": "npm",
            "name": "opencage-api-client",
            "version": "2.2.0",
            "seenAt": "2026-10-08T16:23:56.067649427Z"
          },
          {
            "registry": "pypi",
            "name": "opencage",
            "version": "3.4.0",
            "released": "2026-06-08",
            "seenAt": "2026-10-08T16:23:57.393962667Z"
          }
        ],
        "githubStars": 19,
        "npmWeekly": 48,
        "pypiWeekly": 221890,
        "securityTxt": {
          "url": "https://opencagedata.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-01-31T00:00:00z",
          "checkedAt": "2026-10-08T15:38:42.225778876Z"
        },
        "llmsTxt": {
          "url": "https://opencagedata.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:43.267080726Z"
        },
        "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-08T18:23:47.73540823Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cd00a99974a7"
          },
          {
            "url": "https://opencagedata.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:37.582488199Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2a4d55e4f714"
          },
          {
            "url": "https://opencagedata.com/gdpr",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:35.517366396Z",
            "changedAt": "2026-10-07T18:07:57.615589937Z",
            "fingerprint": "a8a426817cc3"
          },
          {
            "url": "https://opencagedata.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:39.594813576Z",
            "changedAt": "2026-10-07T18:08:01.691588303Z",
            "fingerprint": "30104a7082ce"
          }
        ],
        "updatedAt": "2026-10-08T21:12:17.672387521Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Amazon Web Services",
        "b": "OpenCage",
        "name": "Vendor"
      },
      {
        "a": "https://places.geo.us-east-1.amazonaws.com",
        "b": "https://api.opencagedata.com/geocode/v1/json",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "$0.50 per 1,000 requests",
        "b": "not published",
        "name": "Price for geo geocode"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the AWS Customer Agreement and AWS Service Terms. The AWS SDK clients and the agent context package on GitHub are Apache-2.0",
        "b": "MIT (MCP server)",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "3",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.OpenCageData/opencage-geocoding-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-08-17",
        "b": "2026-06-25",
        "name": "Last release"
      },
      {
        "a": "2026-10-01",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-18",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "427k npm/wk",
        "b": "19 stars, 5.5k npm/wk, 138k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Amazon Location Service scores 74.1 (BB) on agent readiness against OpenCage Geocoding API's 69.2 (B), and leads in 4 of 7 scored categories. OpenCage Geocoding API leads on payments \u0026 pricing, maintenance \u0026 community and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Amazon Location Service or OpenCage Geocoding API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Amazon Location Service and OpenCage Geocoding API need an API key?"
      },
      {
        "answer": "Yes. Amazon Location Service has a hosted endpoint at https://places.geo.us-east-1.amazonaws.com and OpenCage Geocoding API at https://api.opencagedata.com/geocode/v1/json.",
        "question": "Can an agent call Amazon Location Service and OpenCage Geocoding API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 95 against 85",
          "Schema \u0026 documentation, 87 against 77",
          "Security \u0026 auth, 73 against 47"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "Operators already on AWS who want geocoding, places and routing inside IAM, CloudTrail and one bill, with HERE data and GrabMaps for Southeast Asia.",
        "slug": "amazon-location",
        "watchFor": "The API key is sent as the `key` query parameter, the only documented way to present it"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 35 against 20",
          "Maintenance \u0026 community, 66 against 60",
          "Transparency \u0026 trust, 84 against 70"
        ],
        "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"
      }
    ],
    "job": {
      "capability": "geo.geocode",
      "name": "Geo geocode"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-arcgis.json",
        "title": "Amazon Location Service vs ArcGIS Location Platform",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-arcgis"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-azure-maps.json",
        "title": "Amazon Location Service vs Azure Maps",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-azure-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-geoapify.json",
        "title": "Amazon Location Service vs Geoapify Location Platform + MCP",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-geoapify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-google-maps-platform.json",
        "title": "Amazon Location Service vs Google Maps Platform + Grounding Lite MCP",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-google-maps-platform"
      },
      {
        "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/amazon-location-vs-mapbox.json",
        "title": "Amazon Location Service vs Mapbox APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-mapbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-mapquest.json",
        "title": "Amazon Location Service vs MapQuest",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-mapquest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-stadia-maps.json",
        "title": "Amazon Location Service vs Stadia Maps",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-stadia-maps"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-location-vs-tomtom.json",
        "title": "Amazon Location Service vs TomTom Maps APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/amazon-location-vs-tomtom"
      },
      {
        "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/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/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/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/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/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/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/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"
      }
    ],
    "scores": [
      {
        "amazon-location": 95,
        "by": 10,
        "edge": "amazon-location",
        "key": "reliability",
        "name": "Reliability",
        "opencage": 85,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "amazon-location": 87,
        "by": 10,
        "edge": "amazon-location",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "opencage": 77,
        "weight": 13
      },
      {
        "amazon-location": 88,
        "by": 2,
        "edge": "amazon-location",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "opencage": 86,
        "weight": 13
      },
      {
        "amazon-location": 73,
        "by": 26,
        "edge": "amazon-location",
        "key": "security",
        "name": "Security \u0026 auth",
        "opencage": 47,
        "weight": 14
      },
      {
        "amazon-location": 20,
        "by": 15,
        "edge": "opencage",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "opencage": 35,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "amazon-location": 60,
        "by": 6,
        "edge": "opencage",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "opencage": 66,
        "weight": 7
      },
      {
        "amazon-location": 70,
        "by": 14,
        "edge": "opencage",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "opencage": 84,
        "weight": 7
      }
    ],
    "summary": "Amazon Location Service scores 74.1 (BB) on agent readiness against OpenCage Geocoding API's 69.2 (B), and leads in 4 of 7 scored categories. OpenCage Geocoding API leads on payments \u0026 pricing, maintenance \u0026 community and transparency \u0026 trust. Both do geo geocode.",
    "verdicts": {
      "amazon-location": "Places, Routes and Maps calls work over plain HTTPS with an API key limited to named actions, and every one of the 17 operations is read-only with typed inputs. Access starts with an AWS account a person opens, the key travels in the URL query string, and stored results cost eight times the single-use rate.",
      "opencage": "Permanent storage of results on every plan, including after you cancel. Geocoding only, no place search or routing."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/amazon-location-vs-opencage",
    "json": "https://www.anchorterminal.com/compare/amazon-location-vs-opencage.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/amazon-location-vs-opencage.md",
    "slim": "https://www.anchorterminal.com/compare/amazon-location-vs-opencage.min.md"
  },
  "markdown": "Amazon Location Service scores 74.1 (BB) on agent readiness against OpenCage Geocoding API's 69.2 (B), and leads in 4 of 7 scored categories. OpenCage Geocoding API leads on payments \u0026 pricing, maintenance \u0026 community and transparency \u0026 trust. Both do geo geocode.\n\n- Amazon Location Service: grade BB, 74.1/100, rank #68 of 722. Markdown https://www.anchorterminal.com/tools/amazon-location.md · JSON https://www.anchorterminal.com/api/v1/tools/amazon-location.json\n- OpenCage Geocoding API: grade B, 69.2/100, rank #164 of 722. 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\n### Amazon Location Service (BB)\n\nGood for: Operators already on AWS who want geocoding, places and routing inside IAM, CloudTrail and one bill, with HERE data and GrabMaps for Southeast Asia.\n\nAhead on:\n- Reliability, 95 against 85\n- Schema \u0026 documentation, 87 against 77\n- Security \u0026 auth, 73 against 47\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: The API key is sent as the `key` query parameter, the only documented way to present it\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- Payments \u0026 pricing, 35 against 20\n- Maintenance \u0026 community, 66 against 60\n- Transparency \u0026 trust, 84 against 70\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\n## Score by category\n\n| Category | Weight | Amazon Location Service | OpenCage Geocoding API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 95 | 85 | Amazon Location Service +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 87 | 77 | Amazon Location Service +10 |\n| Agent ergonomics | 13% (16.2 this run) | 88 | 86 | Amazon Location Service +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 73 | 47 | Amazon Location Service +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 35 | OpenCage Geocoding API +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 60 | 66 | OpenCage Geocoding API +6 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 70 | 84 | OpenCage Geocoding API +14 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **74.1 · BB** | **69.2 · B** | |\n\n## Facts side by side\n\n| Fact | Amazon Location Service | OpenCage Geocoding API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Amazon Web Services | OpenCage |\n| Hosted endpoint | `https://places.geo.us-east-1.amazonaws.com` | `https://api.opencagedata.com/geocode/v1/json` |\n| Transports | HTTP | HTTP, stdio |\n| Auth | API key | API key |\n| Pricing | Pay per use | Paid |\n| Price for geo geocode | $0.50 per 1,000 requests | not published |\n| x402 | no | no |\n| Licence | Proprietary service under the AWS Customer Agreement and AWS Service Terms. The AWS SDK clients and the agent context package on GitHub are Apache-2.0 | MIT (MCP server) |\n| Tools exposed | none | 3 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.OpenCageData/opencage-geocoding-mcp` |\n| Last release | 2026-08-17 | 2026-06-25 |\n| Terms last updated | 2026-10-01 | no date given |\n| Privacy policy last updated | 2026-05-18 | no date given |\n| Customer content may train models | yes, with an opt-out | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 427k npm/wk | 19 stars, 5.5k npm/wk, 138k PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\n\n## Verdicts\n\n**Amazon Location Service.** Places, Routes and Maps calls work over plain HTTPS with an API key limited to named actions, and every one of the 17 operations is read-only with typed inputs. Access starts with an AWS account a person opens, the key travels in the URL query string, and stored results cost eight times the single-use rate.\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### Amazon Location Service\n\n1. Call the v2 endpoints (`places.geo.\u003cregion\u003e.amazonaws.com/v2/geocode`, `routes.geo`, `maps.geo`). They need no resource creation, unlike the v1 place index and route calculator calls\n2. Set `IntendedUse` to `Storage` before saving or caching any Places result. The default `SingleUse` results may not be stored under section 82.4 of the AWS Service Terms\n3. Read `PricingBucket` in each response. Requesting `Contact`, `Access`, `TimeZone` or `Phonemes` in `AdditionalFeatures` moves a Places call from $0.50 to $1.50 per 1,000\n4. Keep the API key out of logs and shared URLs, since it travels as `?key=`. Use SigV4 with an IAM role for server-side work, and for the Jobs API, which refuses API keys\n5. Back off on HTTP 429 `ThrottlingException`. The burst allowance is 80 per cent of the per-second rate within any part of a second\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## Questions\n\n### Which is better for AI agents, Amazon Location Service or OpenCage Geocoding API?\n\nAmazon Location Service scores 74.1 (BB) on agent readiness against OpenCage Geocoding API's 69.2 (B), and leads in 4 of 7 scored categories. OpenCage Geocoding API leads on payments \u0026 pricing, maintenance \u0026 community and transparency \u0026 trust.\n\n### Do Amazon Location Service and OpenCage Geocoding API need an API key?\n\nBoth need an API key.\n\n### Can an agent call Amazon Location Service and OpenCage Geocoding API without installing anything?\n\nYes. Amazon Location Service has a hosted endpoint at https://places.geo.us-east-1.amazonaws.com and OpenCage Geocoding API at https://api.opencagedata.com/geocode/v1/json.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/amazon-location-vs-opencage.json, and with the fewest tokens: https://www.anchorterminal.com/compare/amazon-location-vs-opencage.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"amazon-location\", \"b\": \"opencage\"}`. From a terminal: `anchor compare amazon-location opencage`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/amazon-location.json and https://www.anchorterminal.com/api/v1/tools/opencage.json\n\n## Other comparisons with Amazon Location Service or OpenCage Geocoding API\n\n- [Amazon Location Service vs ArcGIS Location Platform](https://www.anchorterminal.com/compare/amazon-location-vs-arcgis.md)\n- [Amazon Location Service vs Azure Maps](https://www.anchorterminal.com/compare/amazon-location-vs-azure-maps.md)\n- [Amazon Location Service vs Geoapify Location Platform + MCP](https://www.anchorterminal.com/compare/amazon-location-vs-geoapify.md)\n- [Amazon Location Service vs Google Maps Platform + Grounding Lite MCP](https://www.anchorterminal.com/compare/amazon-location-vs-google-maps-platform.md)\n- [Amazon Location Service vs LocationIQ](https://www.anchorterminal.com/compare/amazon-location-vs-locationiq.md)\n- [Amazon Location Service vs Mapbox APIs + MCP](https://www.anchorterminal.com/compare/amazon-location-vs-mapbox.md)\n- [Amazon Location Service vs MapQuest](https://www.anchorterminal.com/compare/amazon-location-vs-mapquest.md)\n- [Amazon Location Service vs Stadia Maps](https://www.anchorterminal.com/compare/amazon-location-vs-stadia-maps.md)\n- [Amazon Location Service vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/amazon-location-vs-tomtom.md)\n- [ArcGIS Location Platform vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/arcgis-vs-opencage.md)\n- [Azure Maps vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/azure-maps-vs-opencage.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 OpenCage Geocoding API](https://www.anchorterminal.com/compare/google-maps-platform-vs-opencage.md)\n- [LocationIQ vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/locationiq-vs-opencage.md)\n- [Mapbox APIs + MCP vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/mapbox-vs-opencage.md)\n- [MapQuest vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/mapquest-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-08",
    "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": "Amazon Location Service vs OpenCage Geocoding API",
        "url": ""
      }
    ],
    "description": "Amazon Location Service scores 74.1 (BB) on agent readiness against OpenCage Geocoding API's 69.2 (B), and leads in 4 of 7 scored categories. OpenCage Geocoding API leads on payments \u0026 pricing, maintenance \u0026 community and transparency \u0026 trust. Both do geo geocode. Category…",
    "facts": [
      "Amazon Location Service BB 74.1",
      "OpenCage Geocoding API B 69.2",
      "scores"
    ],
    "h1": "Amazon Location Service vs OpenCage Geocoding API",
    "image": "https://www.anchorterminal.com/assets/og/compare-amazon-location-vs-opencage.png",
    "path": "/compare/amazon-location-vs-opencage",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Amazon Location Service vs OpenCage Geocoding API for AI agents",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/amazon-location-vs-opencage"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 830
  },
  "version": 1
}
