{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "tool": {
    "slug": "geocodio",
    "name": "Geocodio",
    "vendor": "Dotsquare LLC",
    "vendorUrl": "https://www.geocod.io",
    "kind": "http-api",
    "category": "maps",
    "summary": "Geocodio is a hosted geocoding API from Dotsquare LLC for addresses in the US, Canada, Mexico, the UK, Australia and New Zealand. It does forward, reverse and batch geocoding, distance matrices and census, district and timezone data appends.",
    "url": "https://www.anchorterminal.com/tools/geocodio",
    "markdownUrl": "https://www.anchorterminal.com/tools/geocodio.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/geocodio.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/geocodio.json",
    "dns": "geocodio.grade.anchorterminal.com",
    "repo": "https://github.com/Geocodio/geocodio-cli",
    "transports": [
      "http"
    ],
    "packages": [
      {
        "registry": "pypi",
        "name": "geocodio-library-python"
      },
      {
        "registry": "npm",
        "name": "geocodio-library-node"
      }
    ],
    "auth": "api-key",
    "authNotes": "API key from the dashboard at dash.geocod.io after a browser signup, sent as `Authorization: Bearer` (since March 2025) or the `api_key` query parameter, which the docs and the OpenAPI spec still lead with. Five keys on pay-as-you-go. A new key reaches single and batch geocoding only; the Lists and Distance APIs must be enabled per key.",
    "pricing": "freemium",
    "pricingNotes": "2,500 lookups a day free on pay-as-you-go with no card until usage passes the free tier, then $1 per 1,000 lookups billed on the 1st of the next month. Each data append is one more lookup. Flex plans from $315 a month for 350,000 credits, Unlimited from $1,600 a month per dedicated instance.",
    "priceSummary": "$1 / 1k req",
    "where": "local",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in llms.txt, AGENTS.md, the docs or the OpenAPI spec (checked 2026-11-06). Billing is by card on file, monthly in arrears on pay-as-you-go.",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": null,
      "npmWeekly": 20984,
      "pypiWeekly": 921,
      "asOf": "2026-11-06"
    },
    "docsUrl": "https://www.geocod.io/docs/",
    "llmsTxt": "https://www.geocod.io/llms.txt",
    "openapi": "https://api.geocod.io/openapi-spec.json",
    "capabilities": [
      "geo.geocode",
      "geo.reverse",
      "geo.routing"
    ],
    "tags": [
      "hosted",
      "api-key",
      "freemium",
      "free-tier",
      "no-card",
      "llms-txt",
      "openapi",
      "official",
      "cli",
      "agent-skills",
      "python",
      "typescript",
      "php",
      "ruby",
      "batch",
      "async-jobs",
      "status-page",
      "security-txt",
      "enterprise",
      "soc2",
      "closed-source"
    ],
    "lastRelease": "2026-11-03",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 72.2,
      "grade": "BB",
      "agentReady": true,
      "rank": 137,
      "ranked": true,
      "rankOf": 1486,
      "categoryRank": 4,
      "methodology": "0.7",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 80,
        "maintenance": 86,
        "payments": 40,
        "reliability": 70,
        "schema": 92,
        "security": 58,
        "transparency": 87
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 70,
          "points": 14,
          "reason": "Hosted lines. incident.io status page at status.geocod.io with five components (Geocodio API, Dashboard, Enterprise API, Enterprise Dashboard, Website) and an incidents feed at /api/v2/incidents.json (20). In the 90 days to 6 November 2026 the feed lists one incident marked major, 'Spreadsheet geocoding jobs are failing' on 27 October from 12:35 to 15:15 UTC, and a PHP security patch on 21 October marked no impact, so one major outage of a core feature (10). 1,000 requests a minute on single geocoding for pay-as-you-go and Flex, 100 on Enterprise Flex (15). 429 carries X-RateLimit-Remaining, -Limit and -Period, and llms.txt and AGENTS.md give a retry rule per status code with capped backoff, plus client-side idempotency guidance for the non-idempotent list and batch writes (15). The pricing page lists custom SLAs as an add-on on Unlimited and Enterprise plans, with no published terms, so no SLA (0). GA (10). 20+10+15+15+0+10 = 70.",
          "checked": "2026-11-06"
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 92,
          "points": 14.95,
          "reason": "OpenAPI 3.0.1 spec, version 2.1.0, with 11 paths (25). llms.txt and an AGENTS.md written for agents (10). llms.txt and AGENTS.md say when to use each endpoint and when not to, such as the Lists API over looping single calls, the upload tool for a one-off spreadsheet and straightline over driving distance unless road distance is needed (19). Typed parameters with country values, component fields and documented limits, though `fields` is a comma-separated string (12). Error table with retry guidance, examples throughout, but the spec documents 200, 400, 403, 404, 422 and 424 and not 429 or 500 (11). Versioned paths from v1 to v2.1 and a dated public changelog with entries back to 2024 (15). 25+10+19+12+11+15 = 92.",
          "checked": "2026-11-06"
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 80,
          "points": 13,
          "reason": "API reading. `limit`, opt-in `fields` appends and `stable_address_key` re-lookups size responses and cost, and results are ordered best first (20). Batches of 10,000 lookups, Lists for 10 million, distance filters (max_distance, max_results, order_by) and paginated list listings (17). Codes 403, 422, 429 and 500 each carry a documented meaning and retry rule, error bodies link a help page, and `_warnings` reports ignored parameters (18). Geocoding reads are safe to retry, but there's no idempotency key on batch or list creation and AGENTS.md says a retried request is billed again (10). One required parameter on a single geocode, and official libraries for Python, Node, PHP and Ruby plus a CLI with `--agent` output (15). 20+17+18+10+15 = 80.",
          "checked": "2026-11-06"
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 58,
          "points": 10.15,
          "reason": "Revocable keys, five on pay-as-you-go, each with permissions (Lists and Distance off by default), which earns 25. Less 10 because the docs say 'All requests require \u0026api_key=YOUR_API_KEY' and the OpenAPI spec defines only the query scheme, though an Authorization header has worked since March 2025 (15). Per-key permissions limit what a key can reach. DELETE on lists and distance jobs needs no confirmation (13). Results are addresses and government district, census and legislator data rather than user-written text. No prompt-injection guidance found (9). Usage per API key in the dashboard, downloadable as CSV, and billable-lookup headers on every response (8). Valid security.txt to 30 January 2030 with a PGP key and a responsible disclosure policy. SOC 2 Type II and annual penetration tests apply to the Enterprise platform only. No bug bounty found (13). 15+13+9+8+13 = 58.",
          "checked": "2026-11-06"
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 40,
          "points": 5,
          "reason": "No x402, MPP or L402 (0). $1 per 1,000 lookups after the free tier, and per-credit rates for every Flex tier, public without login (20). 2,500 lookups a day free with no card until usage passes the free tier (20). Signup and key creation are a browser flow at dash.geocod.io (0). 0+20+20+0 = 40.",
          "checked": "2026-11-06"
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 86,
          "points": 7.53,
          "reason": "API v2.1 released 3 November 2026 (Australia and New Zealand), and PHP library 3.4.1 on 4 November (30). Dated changelog entries on 8 September, 1, 8, 9, 19, 22 and 31 October and 3 November 2026, plus library releases in October (20). Public changelog, support by email and a team-staffed help desk named on the pricing page. We didn't read GitHub issue reply times (12). Official Python 1.6.0 and Node 2.3.0 from 12 October and PHP 3.4.1 from 4 November are current (15). Each library and the CLI run CI on GitHub Actions; we didn't check whether the runs pass (9). 30+20+12+15+9 = 86.",
          "checked": "2026-11-06"
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 87,
          "points": 7.61,
          "note": "editorial 80, provenance 93",
          "reason": "Editorial half only. Closed service with clear, dated terms under Virginia law, and libraries and CLI under MIT (20). The privacy policy says API and spreadsheet input and results are deleted within 45 days, error logs kept 90 days, and customer data isn't used to train AI models. A separate data retention policy and llms.txt put Lists API data at 72 hours. Results may be stored permanently by the customer (27). Replaced API versions are guaranteed for at least 12 months, breaking changes come only with a new version, and the changelog marks each one 'Breaking' (18). The privacy policy names its processors, such as Sentry and Laravel Nightwatch, and the security page says self-serve is hosted in Europe (15). 20+27+18+15 = 80.",
          "checked": "2026-11-06"
        }
      ],
      "assessment": {
        "date": "2026-11-06",
        "basis": "public evidence",
        "confidence": "high",
        "notes": {
          "ergonomics": "API reading. `limit`, opt-in `fields` appends and `stable_address_key` re-lookups size responses and cost, and results are ordered best first (20). Batches of 10,000 lookups, Lists for 10 million, distance filters (max_distance, max_results, order_by) and paginated list listings (17). Codes 403, 422, 429 and 500 each carry a documented meaning and retry rule, error bodies link a help page, and `_warnings` reports ignored parameters (18). Geocoding reads are safe to retry, but there's no idempotency key on batch or list creation and AGENTS.md says a retried request is billed again (10). One required parameter on a single geocode, and official libraries for Python, Node, PHP and Ruby plus a CLI with `--agent` output (15). 20+17+18+10+15 = 80.",
          "maintenance": "API v2.1 released 3 November 2026 (Australia and New Zealand), and PHP library 3.4.1 on 4 November (30). Dated changelog entries on 8 September, 1, 8, 9, 19, 22 and 31 October and 3 November 2026, plus library releases in October (20). Public changelog, support by email and a team-staffed help desk named on the pricing page. We didn't read GitHub issue reply times (12). Official Python 1.6.0 and Node 2.3.0 from 12 October and PHP 3.4.1 from 4 November are current (15). Each library and the CLI run CI on GitHub Actions; we didn't check whether the runs pass (9). 30+20+12+15+9 = 86.",
          "payments": "No x402, MPP or L402 (0). $1 per 1,000 lookups after the free tier, and per-credit rates for every Flex tier, public without login (20). 2,500 lookups a day free with no card until usage passes the free tier (20). Signup and key creation are a browser flow at dash.geocod.io (0). 0+20+20+0 = 40.",
          "reliability": "Hosted lines. incident.io status page at status.geocod.io with five components (Geocodio API, Dashboard, Enterprise API, Enterprise Dashboard, Website) and an incidents feed at /api/v2/incidents.json (20). In the 90 days to 6 November 2026 the feed lists one incident marked major, 'Spreadsheet geocoding jobs are failing' on 27 October from 12:35 to 15:15 UTC, and a PHP security patch on 21 October marked no impact, so one major outage of a core feature (10). 1,000 requests a minute on single geocoding for pay-as-you-go and Flex, 100 on Enterprise Flex (15). 429 carries X-RateLimit-Remaining, -Limit and -Period, and llms.txt and AGENTS.md give a retry rule per status code with capped backoff, plus client-side idempotency guidance for the non-idempotent list and batch writes (15). The pricing page lists custom SLAs as an add-on on Unlimited and Enterprise plans, with no published terms, so no SLA (0). GA (10). 20+10+15+15+0+10 = 70.",
          "schema": "OpenAPI 3.0.1 spec, version 2.1.0, with 11 paths (25). llms.txt and an AGENTS.md written for agents (10). llms.txt and AGENTS.md say when to use each endpoint and when not to, such as the Lists API over looping single calls, the upload tool for a one-off spreadsheet and straightline over driving distance unless road distance is needed (19). Typed parameters with country values, component fields and documented limits, though `fields` is a comma-separated string (12). Error table with retry guidance, examples throughout, but the spec documents 200, 400, 403, 404, 422 and 424 and not 429 or 500 (11). Versioned paths from v1 to v2.1 and a dated public changelog with entries back to 2024 (15). 25+10+19+12+11+15 = 92.",
          "security": "Revocable keys, five on pay-as-you-go, each with permissions (Lists and Distance off by default), which earns 25. Less 10 because the docs say 'All requests require \u0026api_key=YOUR_API_KEY' and the OpenAPI spec defines only the query scheme, though an Authorization header has worked since March 2025 (15). Per-key permissions limit what a key can reach. DELETE on lists and distance jobs needs no confirmation (13). Results are addresses and government district, census and legislator data rather than user-written text. No prompt-injection guidance found (9). Usage per API key in the dashboard, downloadable as CSV, and billable-lookup headers on every response (8). Valid security.txt to 30 January 2030 with a PGP key and a responsible disclosure policy. SOC 2 Type II and annual penetration tests apply to the Enterprise platform only. No bug bounty found (13). 15+13+9+8+13 = 58.",
          "transparency": "Editorial half only. Closed service with clear, dated terms under Virginia law, and libraries and CLI under MIT (20). The privacy policy says API and spreadsheet input and results are deleted within 45 days, error logs kept 90 days, and customer data isn't used to train AI models. A separate data retention policy and llms.txt put Lists API data at 72 hours. Results may be stored permanently by the customer (27). Replaced API versions are guaranteed for at least 12 months, breaking changes come only with a new version, and the changelog marks each one 'Breaking' (18). The privacy policy names its processors, such as Sentry and Laravel Nightwatch, and the security page says self-serve is hosted in Europe (15). 20+27+18+15 = 80."
        },
        "sources": [
          {
            "what": "llms.txt",
            "url": "https://www.geocod.io/llms.txt",
            "seen": "2026-11-06"
          },
          {
            "what": "agent guide",
            "url": "https://www.geocod.io/AGENTS.md",
            "seen": "2026-11-06"
          },
          {
            "what": "API docs and changelog",
            "url": "https://www.geocod.io/docs/",
            "seen": "2026-11-06"
          },
          {
            "what": "OpenAPI spec",
            "url": "https://api.geocod.io/openapi-spec.json",
            "seen": "2026-11-06"
          },
          {
            "what": "pricing",
            "url": "https://www.geocod.io/pricing",
            "seen": "2026-11-06"
          },
          {
            "what": "terms of use",
            "url": "https://www.geocod.io/terms-of-use",
            "seen": "2026-11-06"
          },
          {
            "what": "privacy policy",
            "url": "https://www.geocod.io/privacy-policy",
            "seen": "2026-11-06"
          },
          {
            "what": "security page",
            "url": "https://www.geocod.io/security",
            "seen": "2026-11-06"
          },
          {
            "what": "security.txt",
            "url": "https://www.geocod.io/security.txt",
            "seen": "2026-11-06"
          },
          {
            "what": "status incidents feed",
            "url": "https://status.geocod.io/api/v2/incidents.json",
            "seen": "2026-11-06"
          },
          {
            "what": "about page",
            "url": "https://www.geocod.io/about",
            "seen": "2026-11-06"
          },
          {
            "what": "CLI repository",
            "url": "https://github.com/Geocodio/geocodio-cli",
            "seen": "2026-11-06"
          },
          {
            "what": "PHP library tags",
            "url": "https://github.com/Geocodio/geocodio-library-php",
            "seen": "2026-11-06"
          }
        ],
        "openQuestions": [
          "unchecked: GitHub stars and issue reply times, because the GitHub API was rate-limited for us on 6 November 2026",
          "unchecked: whether CI passes on the default branch of each library",
          "llms.txt points to https://www.geocod.io/pricing.md, which returned a 404 page on 6 November 2026",
          "The investors and ownership beyond Dotsquare LLC were not found on Geocodio's own pages"
        ]
      },
      "negative": 0,
      "verdict": "Geocodio publishes llms.txt, an AGENTS.md on cost and retries, an OpenAPI spec and a dated changelog, and its results may be stored permanently. Coverage stops at six countries, there's no MCP server or published SLA for self-serve plans, and the docs still put the key in the query string by default.",
      "bestFor": "Batch geocoding and district or census enrichment of addresses in the US, Canada, Mexico, the UK, Australia and New Zealand, where results must be stored.",
      "strengths": [
        "llms.txt and AGENTS.md cover billing arithmetic, retry rules, idempotency on the client and when not to use the API",
        "2,500 free lookups a day with no card, then $1 per 1,000, and zero-result lookups aren't billed",
        "Results may be stored and reused permanently, except UK reverse geocoding addresses",
        "Dated API changelog with versioned paths, and replaced versions kept for at least 12 months",
        "Official Python, Node, PHP and Ruby libraries and a CLI with an agent output mode, all MIT"
      ],
      "weaknesses": [
        "Covers only the US, Canada, Mexico, the UK, Australia and New Zealand, and UK needs a Flex or Unlimited plan",
        "The docs lead with the api_key query parameter, and the OpenAPI spec defines only that scheme",
        "No idempotency key on batch or list creation, so a retried upload is billed again",
        "No MCP server, and no published SLA on self-serve plans",
        "SOC 2 Type II and penetration tests apply to the separate Enterprise platform only"
      ],
      "agentNotes": [
        "Always set `country`, because an address with none falls back to the US and is billed even when it's wrong",
        "Send the key as `Authorization: Bearer`, not in the query string, so it stays out of logs",
        "Use batch POST /geocode (up to 10,000 lookups) or the Lists API rather than looping single requests",
        "Treat accuracy_type place, county or state as not found, and check `_warnings` for appends that were billed but skipped",
        "Don't retry 403 or 422. On 429 read X-RateLimit headers and back off, and never re-upload a list sitting in ENQUEUED"
      ],
      "metrics": {
        "kind": "remote",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "high",
          "grade": "BB",
          "methodology": "0.7",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 72.2
        }
      ],
      "editorialScores": {
        "ergonomics": 80,
        "maintenance": 86,
        "payments": 40,
        "reliability": 70,
        "schema": 92,
        "security": 58,
        "transparency": 80
      },
      "provenanceScore": 93,
      "checked": {
        "categories": {
          "ergonomics": "2026-11-06",
          "maintenance": "2026-11-06",
          "payments": "2026-11-06",
          "reliability": "2026-11-06",
          "schema": "2026-11-06",
          "security": "2026-11-06",
          "transparency": "2026-11-06"
        },
        "last": "2026-11-06",
        "oldest": "2026-11-06",
        "stale": false,
        "staleAfterDays": 90
      },
      "scoreHistory": [
        {
          "date": "2026-11-06",
          "grade": "BB",
          "kind": "listed",
          "method": "0.7",
          "score": 72.2
        }
      ]
    },
    "connect": {
      "install": "pip install geocodio-library-python",
      "http": "curl -H \"Authorization: Bearer $GEOCODIO_API_KEY\" \"https://api.geocod.io/v2.1/geocode?q=1109+N+Highland+St,+Arlington+VA\u0026country=USA\""
    },
    "letme": {
      "capability": "https://letme.dev/geo.geocode",
      "tool": "https://letme.dev/geocodio"
    },
    "notable": [
      "llms.txt and an AGENTS.md written for agents running jobs on someone's behalf, with cost estimation, retry, checkpointing and stop rules (https://www.geocod.io/AGENTS.md)",
      "OpenAPI 3.0.1 spec, version 2.1.0, with 11 paths covering geocode, reverse, parse, distance, distance matrix, distance jobs and lists (https://api.geocod.io/openapi-spec.json)",
      "API v2.1 released 3 November 2026 with Australia and New Zealand geocoding, after the UK on 11 June 2026, per the dated API changelog (https://www.geocod.io/docs/#changelog)",
      "Results may be stored permanently, reused and resold, except UK reverse geocoding addresses under Royal Mail PAF licensing (https://www.geocod.io/llms.txt)",
      "Official CLI with an `--agent` Markdown output mode and a bundled agent skill, MIT, v3.3.0 on 31 August 2026 (https://github.com/Geocodio/geocodio-cli)",
      "Zero-result lookups aren't billed, and responses carry X-Billable-Lookups-Count headers (https://www.geocod.io/llms.txt)"
    ],
    "area": "everyday",
    "details": [
      {
        "label": "Surface listed",
        "value": "The REST API at api.geocod.io/v2.1, read from www.geocod.io/docs, llms.txt, AGENTS.md, the OpenAPI spec, the pricing, terms, privacy and security pages, status.geocod.io and the Geocodio GitHub repositories on 6 November 2026. No account was made and no key was used"
      },
      {
        "label": "Coverage",
        "value": "Forward and reverse geocoding and distance for the US, Canada, Mexico, the UK, Australia and New Zealand. No other countries"
      },
      {
        "label": "Endpoints",
        "value": "/geocode and /reverse (single GET or batch POST up to 10,000 lookups), /parse, /distance, /distance-matrix (10,000 calculations), /distance-jobs (50,000), /lists for spreadsheets up to 10 million lookups, and a Google Maps compatible /maps/api/geocode/json"
      },
      {
        "label": "Data appends",
        "value": "Congressional and state legislative districts with legislators, census geographies and ACS data, school districts, ZIP+4, FFIEC, Canadian ridings, UK constituencies and census, Australian census and electorates, and timezone, each billed as one more lookup"
      },
      {
        "label": "Rate limits",
        "value": "1,000 requests a minute on single GET /geocode and /reverse on pay-as-you-go and Flex, 100 a minute on Enterprise Flex. Batch and lists aren't limited by these numbers. 429 with X-RateLimit headers"
      },
      {
        "label": "Errors",
        "value": "403 bad key, missing permission or daily limit reached, 422 bad input, 429 rate limited, 500 server error, with a retry rule for each in llms.txt"
      },
      {
        "label": "Data retention",
        "value": "API and spreadsheet input and results deleted within 45 days, Lists API data after 72 hours, error logs 90 days. The privacy policy says customer data isn't used to train AI models"
      },
      {
        "label": "Hosting",
        "value": "Self-serve is hosted in Europe. Enterprise runs on separate infrastructure with SOC 2 Type II, HIPAA, SAML SSO, US hosting and on-premises options"
      },
      {
        "label": "SDKs",
        "value": "Python 1.6.0 (12 October 2026), Node 2.3.0 (12 October 2026), PHP 3.4.1 (4 November 2026) and a Ruby gem, plus a Go CLI, all MIT"
      },
      {
        "label": "Legal entity",
        "value": "Dotsquare LLC, dba Geocodio, Norfolk, Virginia, under Virginia law"
      }
    ],
    "unitPrices": [
      {
        "item": "Lookup after the free tier, pay-as-you-go",
        "unit": "1k-requests",
        "usd": 1,
        "note": "2,500 lookups a day free. A lookup is one address or coordinate, and each data append is one more"
      },
      {
        "item": "Flex 350 plan",
        "unit": "month",
        "usd": 315,
        "note": "350,000 credits a month ($0.90 per 1,000), rolling over while subscribed"
      },
      {
        "item": "Unlimited Geocoding plan",
        "unit": "month",
        "usd": 1600,
        "note": "One dedicated instance, up to 5 million lookups a day; distance credits extra at $1 per 1,000"
      }
    ],
    "provenance": {
      "legalEntity": "Dotsquare LLC",
      "domain": "geocod.io",
      "domainRegistered": "2013-06-05",
      "endpointOnVendorDomain": true,
      "terms": "https://www.geocod.io/terms-of-use",
      "privacy": "https://www.geocod.io/privacy-policy",
      "statusPage": "https://status.geocod.io",
      "changelog": "https://www.geocod.io/docs/#changelog",
      "securityTxt": "valid",
      "checked": "2026-11-06",
      "notes": [
        "The terms name Dotsquare LLC, dba Geocodio, 440 Monticello Ave Ste 1802 #43146, Norfolk, Virginia, and choose Virginia law.",
        "The terms' acceptable use section bars customers from 'web scraping or data scraping on or related to the System, including ... any bot or web crawler'. Recorded as a fact; robots.txt on www.geocod.io allows all agents.",
        "security.txt at www.geocod.io/security.txt names security@geocod.io, a PGP key and a responsible disclosure policy, and expires 30 January 2030.",
        "RDAP gives geocod.io a registration date of 5 June 2013. The about page says Geocodio launched in 2014.",
        "llms.txt links https://www.geocod.io/pricing.md as the current pricing in Markdown, but that URL returned a 404 page on 6 November 2026, so prices come from the HTML pricing page."
      ],
      "score": 93,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Dotsquare LLC",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "geocod.io, registered 2013-06-05 (13 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "geocod.io",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 6 of the 7 things a reader expects, and has 3 clauses that cost points",
          "points": 3.1,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 8 of the 8 things a reader expects",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Status page",
          "value": "status.geocod.io",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "valid",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "People named",
          "value": "2 named with their role, none with a public profile",
          "points": 7,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Support route",
          "value": "a support address, help pages",
          "points": 5,
          "max": 5,
          "state": "ok"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://www.geocod.io/terms-of-use",
          "state": "read",
          "readAt": "2026-11-06",
          "words": 12714,
          "points": 3.1,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": false
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "This Agreement and any claims arising will be governed solely by the internal laws of the Commonwealth of Virginia, including without limitation applicable federal law, without reference to any conflicts of laws principles.",
              "says": "The law of the Commonwealth of Virginia"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "COMPANY’S CUMULATIVE LIABILITY FOR ALL CLAIMS ARISING OUT OF OR RELATED TO THIS AGREEMENT SHALL NOT EXCEED THE AGGREGATE AMOUNT OF FEES FOR SERVICES DELIVERED BY COMPANY ACTUALLY PAID BY CUSTOMER PURSUANT TO THIS AGREEMENT DURING THE TWELVE (12) MONTHS PRIOR TO THE ASSERTION OR INSTITUTION OF SUCH CLAIM.",
              "says": "Capped at the fees paid in the 12 months before the claim"
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "Either party may terminate this Agreement based on the other’s material breach by providing written notice specifying in detail the nature of the breach, and such termination shall be effective (a) after thirty (30) days unless the other party cures such breach, or (b) immediately in the event of non-payment or misuse…"
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "Company may amend this Agreement under Section 12.1 (Amendments) and will notify the Covered Customer of the amendment, which takes effect as provided in that Section.",
              "says": "Says it gives notice of a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "Except as otherwise provided in this Agreement, Customer will not be entitled to any refund, credit, or reimbursement for: (i) partial use of the Services;"
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": true,
              "quote": "(c) any addenda, schedules, or exhibits to this Agreement (including the Plan Terms Schedule, SLA Addendum, Enterprise Addendum, Australia Addendum, New Zealand Addendum, Business Associate Agreement, Data Processing Agreement, and any UK Data Services Attachment), each solely with respect to its subject matter;"
            }
          ],
          "toKnow": [
            {
              "key": "terms.automated",
              "label": "Restricts automated access",
              "found": true,
              "quote": "(v) engage in web scraping or data scraping on or related to the System, including without limitation collection of information through any software that simulates human activity or any bot or web crawler;",
              "costsPoints": true
            },
            {
              "key": "terms.benchmark",
              "label": "Restricts benchmarking or competitive use",
              "found": true,
              "quote": "(iv) access the System in order to build a competitive product or service, to build a product using similar ideas, features, functions or graphics of the System, or to copy any ideas, features, functions or graphics of the System;",
              "costsPoints": true
            },
            {
              "key": "terms.nonotice",
              "label": "Says the terms or the service can change without notice",
              "found": true,
              "quote": "Company reserves the right to update, change, and remove Plan features at any time with or without advance notice.",
              "costsPoints": true
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://www.geocod.io/privacy-policy",
          "state": "read",
          "readAt": "2026-11-06",
          "statedDate": "2018-05-25",
          "words": 6503,
          "points": 10,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "General Data Protection Regulation (GDPR) - European Union legislation effective May 25, 2018",
              "says": "Last updated 2018-05-25"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "Right to Know - Request information about what personal data we collect, use, and share"
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "Spreadsheet/API Data: Input data you send to us for processing (such as addresses and coordinates), whether through the API or a spreadsheet upload, and the results are deleted within 45 days.",
              "says": "Names a period of 45 days"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "Customers with a signed Data Processing Agreement: this list is the canonical sub-processor list referenced in our DPA."
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": true,
              "quote": "We do not sell your personal information, and we do not provide it to LinkedIn for any purpose other than showing and measuring Geocodio ads.",
              "says": "Says it does not sell personal data"
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "Right to Know - Request information about what personal data we collect, use, and share"
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "Data Protection Officer: Available for EU, UK, and Canadian-related inquiries",
              "says": "Names a data protection officer"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "For EU users, we rely on adequacy decisions, Standard Contractual Clauses (SCCs), or other approved transfer mechanisms as required by GDPR.",
              "says": "Relies on standard contractual clauses"
            }
          ],
          "toKnow": [
            {
              "key": "privacy.sells",
              "label": "Says it sells personal data or shares it for advertising",
              "found": true,
              "quote": "We also share our users’ email addresses, and no other personal information, with LinkedIn for advertising, and LinkedIn may store and process them in the United States and other countries."
            },
            {
              "key": "old",
              "label": "Has not been updated for three years or more",
              "found": true,
              "quote": "General Data Protection Regulation (GDPR) - European Union legislation effective May 25, 2018"
            }
          ]
        }
      ]
    },
    "humans": {
      "slug": "geocodio",
      "checked": "2026-11-06",
      "company": "Geocodio",
      "people": [
        {
          "name": "Michele Hansen",
          "role": "CEO and co-founder",
          "founder": true,
          "page": "/people/michele-hansen/"
        },
        {
          "name": "Mathias Hansen",
          "role": "CTO and co-founder",
          "founder": true,
          "page": "/people/mathias-hansen/"
        }
      ],
      "peopleNote": "Geocodio's about page, read on 6 November 2026, names Michele Hansen as CEO and co-founder and Mathias Hansen as CTO and co-founder, and says the company is led by the two of them as a small team. It links no personal LinkedIn, X or GitHub accounts, so none are added. The terms name the legal entity as Dotsquare LLC, dba Geocodio, of Norfolk, Virginia. No investors are named on the about, terms or security pages. A web search on 6 November 2026 found no funding round or investor in a reputable report, and the about page names none, so investors, totalRaised and valuation are left out.",
      "companySocial": {
        "github": "https://github.com/Geocodio"
      },
      "support": {
        "emails": [
          "support@geocod.io"
        ],
        "urls": [
          "https://www.geocod.io/contact",
          "https://www.geocod.io/guides/"
        ],
        "contactEmails": [
          "security@geocod.io"
        ],
        "contactUrls": [
          "https://www.geocod.io/contact"
        ]
      },
      "sources": [
        "https://www.geocod.io/about",
        "https://www.geocod.io/terms-of-use",
        "https://www.geocod.io/llms.txt",
        "https://www.geocod.io/security.txt",
        "https://github.com/Geocodio/geocodio-cli"
      ],
      "ownership": {
        "status": "private",
        "checked": "2026-11-06",
        "sources": [
          "https://www.geocod.io/about",
          "https://www.geocod.io/terms-of-use"
        ]
      }
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/geocodio.json",
    "live": {
      "slug": "geocodio",
      "vendorStatus": {
        "page": "https://status.geocod.io",
        "indicator": "none",
        "summary": "All Systems Operational",
        "checkedAt": "2026-11-07T18:21:12.773016207Z"
      },
      "versions": [
        {
          "registry": "github",
          "name": "Geocodio/geocodio-cli",
          "version": "v3.3.0",
          "released": "2026-08-31",
          "seenAt": "2026-11-06T23:28:00.884456202Z"
        },
        {
          "registry": "npm",
          "name": "geocodio-library-node",
          "version": "2.2.0",
          "seenAt": "2026-11-06T23:28:00.414999469Z"
        },
        {
          "registry": "pypi",
          "name": "geocodio-library-python",
          "version": "1.6.0",
          "released": "2026-10-16",
          "seenAt": "2026-11-06T23:27:57.978816079Z"
        }
      ],
      "githubStars": 3,
      "npmWeekly": 20984,
      "pypiWeekly": 921,
      "securityTxt": {
        "url": "https://geocod.io/.well-known/security.txt",
        "state": "valid",
        "expires": "2030-01-30T00:00:00.000Z",
        "checkedAt": "2026-11-07T16:01:17.012285777Z"
      },
      "llmsTxt": {
        "url": "https://www.geocod.io/llms.txt",
        "ok": true,
        "status": 200,
        "checkedAt": "2026-11-07T15:32:35.723551581Z"
      },
      "pages": [
        {
          "url": "https://www.geocod.io/docs/",
          "kind": "changelog",
          "status": 200,
          "checkedAt": "2026-11-07T14:29:02.899876797Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "9bcdba9ab6f4"
        },
        {
          "url": "https://www.geocod.io/privacy-policy",
          "kind": "privacy",
          "status": 200,
          "checkedAt": "2026-11-07T14:29:05.843886759Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "712b2145deac"
        },
        {
          "url": "https://www.geocod.io/terms-of-use",
          "kind": "terms",
          "status": 200,
          "checkedAt": "2026-11-07T14:29:07.288294893Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "ff5d2a37483d"
        }
      ],
      "updatedAt": "2026-11-07T18:21:12.773016207Z"
    }
  }
}
