# AX Check: geocod.io
Checked 2026-09-18.

Geocodio's quickstart and pricing are clear and machine-readable.
20 of 23 checklist items pass: docs, install commands, and pricing are all stated plainly. Homepage just lacks a Markdown version.

## Onboarding needs a login

## Coding sessions
Of three independent sessions, two completed and both reported exact pricing details straight from the live pricing page, including free-tier limits, per-lookup rates, and paid plan costs. The third session did not complete.

### DeepSeek V4 Pro
[View public run](https://agents.withgauge.com/p/runs/74696524-7459-4cd1-81ad-2369d7156b2b) · [Read transcript](https://www.ax-check.com/geocod.io/sessions/deepseek.json)
Final output gives the lookup formula (records x (1+appends)), free tier (2,500/day), pay-as-you-go rate ($1/1000), Flex plan range ($325-775/mo), and geography scope (US/Canada/Mexico) as explicit assumptions behind the cost figures.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained a Geocodio API key on its own. It searched the environment for existing credentials, found none, wrote a demo script that reads a key from an env var or CLI arg, then ran it twice: once with no key (prints signup instructions, exits) and once with a deliberately invalid placeholder key, which correctly reached the live API and got a 403 Invalid API key. No real key was ever created or used, so no authenticated product operation (e.g., a successful geocode) was demonstrated.
  Event 43:

  ```text
  env | grep -i -E 'geocod|api_key|apikey|GEOCODIO' || echo "no environment API key found"
  ```
  Event 98:

  ```text
  cd /sandbox/repo && python3 geocodio_demo.py; echo "exit:$?"
  ```
  Event 100:

  ```text
  Error response: 403 - {"error":"Invalid API key","reference":"https:\/\/www.geocod.io\/geocodio-403-forbidden-error\/"}
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No Geocodio API key available in the sandbox**: The environment has no Geocodio account or API key, and the agent has no self-service way to sign up for one. This is a normal credentialing requirement (a human must create a dash.geocod.io account), not a product defect. The agent correctly identified this, tested both the no-key and invalid-key paths of its script, and stopped short of a live authenticated geocode.
  Event 45:

  ```text
  PI_GATEWAY_API_KEY=unused
  ```
  Event 100:

  ```text
  Error response: 403 - {"error":"Invalid API key","reference":"https:\/\/www.geocod.io\/geocodio-403-forbidden-error\/"}
  ```

#### Suggested Changes
None identified in this transcript.

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/c6dd2471-062d-4c1d-b0e8-98b45d3488ec) · [Read transcript](https://www.ax-check.com/geocod.io/sessions/kimi.json)
Final output gives concrete pricing (2,500 free credits/day, Flex 350 = $325/mo, $1/1,000 credit top-ups) sourced from the live pricing page fetched at seq 16-19, with credit-per-lookup assumptions spelled out.
#### End-to-end onboarding
- **Onboarding needs a login**: No API key existed in the sandbox environment. The agent hit a live 403 Invalid API key response, correctly identified that Geocodio requires signing up with an email-verified account to obtain a key, and explicitly stated it could not complete that signup step itself. It never obtained real credentials or performed an authenticated operation against the hosted API.
  Event 7:

  ```text
  {"error":"Invalid API key","reference":"https:\/\/www.geocod.io\/geocodio-403-forbidden-error\/"
  ```
  Event 30:

  ```text
  I'm blocked on getting an API key. There's no key in the environment, and key issuance requires signing up at geocod.io with an email-verified account, which I can't complete.
  ```
  Event 28:

  ```text
  403 {"error":"Invalid API key","reference":"https:\/\/www.geocod.io\/geocodio-403-forbidden-error\/"
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No API key available, signup requires human email verification**: The sandbox had no Geocodio credentials, and the agent could not self-serve a key because account creation requires email verification. This is a missing-credentials limitation of the test environment/product's normal signup flow, not a product defect — the API itself behaved correctly by rejecting the placeholder key with a clear error.
  Event 30:

  ```text
  I'm blocked on getting an API key. There's no key in the environment, and key issuance requires signing up at geocod.io with an email-verified account, which I can't complete.
  ```
  Event 28:

  ```text
  403 {"error":"Invalid API key","reference":"https:\/\/www.geocod.io\/geocodio-403-forbidden-error\/"
  ```

#### Suggested Changes
None identified in this transcript.

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/4a3d6f49-a5b2-40a1-a396-2862c3c0afb9) · [Read transcript](https://www.ax-check.com/geocod.io/sessions/qwen.json)

#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: Session never obtained a working Geocodio API key. The only key used was a placeholder that returned HTTP 403 Invalid API key, and the rest of the session built local library/CLI code (cost estimator, cache, retry logic, CSV parser) without ever executing an authenticated call against the hosted API. No dashboard signup or key issuance flow was run by the agent.
  Event 10:

  ```text
  curl -s -m 20 -w "\nHTTP %{http_code}\n" "https://api.geocod.io/v1.7/geocode?q=1109+N+Highland+St+Arlington+VA&api_key=REDACTED" | head -40
  ```
  Event 14:

  ```text
  {"error":"Invalid API key","reference":"https:\/\/www.geocod.io\/geocodio-403-forbidden-error\/","_warnings":["There is a newer API version available, please consider upgrading to v2. See changelog here: https:\/\/www.geocod.io\/docs\/#changelog"]}
  HTTP 403
  
  ```
  Event 146:

  ```text
  Successfully wrote 4604 bytes to /sandbox/repo/src/lib/report.js
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No real Geocodio API key available in sandbox**: Every call made against the live API used a placeholder/redacted key and returned HTTP 403 Invalid API key. This is a missing-credentials limitation of the test environment, not a product defect — Geocodio requires signup at dash.geocod.io to get a key, and the agent had no path to self-serve one without human interaction. As a result, all example code was written and structured correctly but never proven against the live API with real data.
  Event 14:

  ```text
  {"error":"Invalid API key","reference":"https:\/\/www.geocod.io\/geocodio-403-forbidden-error\/"}
  ```
  Event 10:

  ```text
  curl -s -m 20 -w "\nHTTP %{http_code}\n" "https://api.geocod.io/v1.7/geocode?q=1109+N+Highland+St+Arlington+VA&api_key=REDACTED" | head -40
  ```

#### Suggested Changes
None identified in this transcript.

### Task given to each agent
Help me build a simple example using Geocodio. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: B · 84/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Failed** — Homepage answers Markdown requests

  ```text
  Homepage returned text/html for a text/markdown request; no Markdown representation offered.
  ```

- **Pass** — llms.txt provides an actionable documentation index

  ```text
  llms.txt links docs, OpenAPI specs, CLI, AGENTS.md, and quick-start endpoints.
  ```

- **Pass** — llms.txt provides navigation guidance

  ```text
  llms.txt organizes sections with base URLs, quick reference, and starting guidance.
  ```

- **Pass** — llms.txt mentions offered API, MCP, and skills

  ```text
  llms.txt mentions API endpoints, OpenAPI specs, CLI, and agent skill.
  ```

- **Pass** — A compact guide representation exists

  ```text
  llms.txt is a compact Markdown guide covering API, CLI, pricing and appends.
  ```

- **Pass** — A focused guide is directly retrievable

  ```text
  llms.txt fetched directly as text/plain Markdown with quick-start endpoints and auth.
  ```

- **Pass** — Equivalent instructions fit a token budget

  ```text
  llms.txt is 5602 tokens, well under the 8000-token budget.
  ```

- **Skipped** — Product-docs links survive format changes

  ```text
  Homepage Markdown unsupported, so link preservation across formats cannot be measured.
  ```

- **Pass** — The compact guide is independently actionable

  ```text
  llms.txt gives base URL, auth, endpoints, cost rules, CLI and SDK installs as a standalone actionable guide.
  ```

- **Pass** — Install and next-step links resolve

  ```text
  Fetched docs, OpenAPI spec, CLI skill and register pages all resolve successfully.
  ```


### Onboarding
- **Pass** — Docs lead to a relevant quickstart

  ```text
  llms.txt Quick Start gives concrete first steps: base URL, endpoints, and example requests.
  ```

- **Pass** — Installation commands are extractable

  ```text
  CLI README and llms.txt give extractable install commands: curl install.sh, go install, pip/npm/composer/gem.
  ```

- **Pass** — Code examples are available without interaction

  ```text
  llms.txt and CLI README show many code examples inline without interaction.
  ```

- **Pass** — Prerequisites and auth boundaries are explicit

  ```text
  llms.txt states API key via query param or Bearer header, obtainable at dash.geocod.io.
  ```


### Pricing
- **Pass** — Pricing is readable without interaction

  ```text
  Pricing page renders plan prices, credits, and limits as static text without interaction.
  ```

- **Pass** — Prices are stated, not gated

  ```text
  Self-serve and enterprise prices are stated in USD/GBP, not gated behind contact.
  ```

- **Pass** — Pricing units and limits are explicit

  ```text
  Credits, per-lookup costs, rate limits, and seat pricing are explicitly defined.
  ```

- **Pass** — Agents identify pricing and its assumptions

  ```text
  2 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4 Pro: Final output gives the lookup formula (records x (1+appends)), free tier (2,500/day), pay-as-you-go rate ($1/1000), Flex plan range ($325-775/mo), and geography scope (US/Canada/Mexico) as explicit assumptions behind the cost figures. Kimi K3: Final output gives concrete pricing (2,500 free credits/day, Flex 350 = $325/mo, $1/1,000 credit top-ups) sourced from the live pricing page fetched at seq 16-19, with credit-per-lookup assumptions spelled out. This behavioural item does not affect the fast grade.
  ```


### Activation
- **Pass** — An API reference or OpenAPI spec is reachable

  ```text
  OpenAPI spec JSON and YAML both fetched HTTP 200; docs list endpoints and parameters.
  ```

- **Skipped** — An MCP server is documented and well-formed

  ```text
  No MCP server is documented anywhere in the fetched Geocodio pages.
  ```

- **Pass** — A CLI install path is documented

  ```text
  CLI install documented: curl install.sh, go install, and npx skills add.
  ```

- **Pass** — SDK packages resolve on their registries

  ```text
  PyPI and npm registry lookups for Geocodio libraries both returned HTTP 200.
  ```

- **Pass** — Agent skills are published

  ```text
  Agent skill published at skills/geocodio/SKILL.md, installable via npx skills add.
  ```



[Full report data](https://www.ax-check.com/geocod.io/report.json)
