# AX Check: nationbuilder.com
Checked 2026-09-28.

NationBuilder's docs and pricing are clear and agent-ready.
17 of 23 checklist items pass, including a quickstart with working auth steps and API examples. Pricing is public: Starter $34/mo, Pro $160/mo, Enterprise custom.

## Onboarding needs a login

## Coding sessions
All three independent sessions completed the task. Each found and reported pricing without hitting a login wall, citing the Starter $34/mo, Pro $160/mo, and custom Enterprise tiers, with one session noting contact-list size affects cost.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/05078512-21ad-471e-9bc2-3b314dde4f7a) · [Read transcript](https://www.ax-check.com/nationbuilder.com/sessions/deepseek.json)
README.md and final output give a pricing table (Starter $34/mo, Pro $160/mo, Enterprise custom) with named assumptions: monthly vs annual billing, contact-count tiers, add-ons, free trial, and the API-gating caveat that only Enterprise/Network includes developer tools.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained NationBuilder credentials. No NB_SLUG or NB_TOKEN existed in the sandbox environment, and the docs confirm API/developer access requires either an Enterprise/Network plan or acceptance into the Certified Developer program (a human-gated application process) to get a sandbox nation. The agent wrote and syntax-checked a CLI but never made a live authenticated call to the hosted API, and explicitly flagged this as the blocking issue.
  Event 4:

  ```text
  no nationbuilder env vars
  ```
  Event 39:

  ```text
  Developer tools are only available to NationBuilder certified developers or nations on an Enterprise or Network plan.
  ```
  Event 86:

  ```text
  Error: NB_SLUG is required (your nation slug, e.g. my-nation)
  ```

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

#### Blockers
- **No path to real API credentials without a paid plan or approval**: NationBuilder gates its developer API behind Enterprise/Network plans or a Certified Developer application, both of which require human/business action outside the session. This is product behavior (a plan/access-tier restriction), not an agent error or environment misconfiguration — the agent correctly identified it and stopped rather than fabricating a token.
  Event 39:

  ```text
  Developer tools are only available to NationBuilder certified developers or nations on an Enterprise or Network plan.
  ```
  Event 61:

  ```text
   Getting API Access If you already have an account, just login to the control panel and continue below. To get an account, please apply to become a Certified Developer .
  ```
- **Full OpenAPI spec blocked by Cloudflare challenge**: Fetching the raw OpenAPI YAML (nationbuilder.com/docs/v2/released.yaml) returned a Cloudflare 'Just a moment...' JS challenge page instead of the spec, likely because the sandbox's curl requests lack a browser fingerprint/JS execution. This is a test-environment limitation (no headless browser) rather than a broken product; the agent worked around it using the rendered support docs.
  Event 54:

  ```text
  <!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title>
  ```

#### Suggested Changes
- **Fix or clarify the broken direct links from the API help center article**: Several links surfaced from nationbuilder.com/api_documentation resolve to nationbuilder.com/<slug> paths that 404 (e.g. quickstart, auth guide, token generation, rate limit policy), even though the actual content lives on support.nationbuilder.com. Check the anchor hrefs on the API help center page (nationbuilder.com/api_documentation) so they point to the working support.nationbuilder.com URLs directly instead of a redirect chain that dead-ends.
  Event 35:

  ```text
  404 https://nationbuilder.com/nationbuilder_api_quickstart_guide
  ```
  Event 35:

  ```text
  404 https://nationbuilder.com/api_authentication_guide
  ```
- **Serve the OpenAPI spec file without a Cloudflare JS challenge**: Requesting nationbuilder.com/docs/v2/released.yaml with a plain HTTP client returns a Cloudflare interstitial instead of the YAML, blocking any programmatic tooling (linters, codegen, simple curl scripts) from fetching the spec. Consider exempting this static docs path from the bot-challenge rule, or publish the spec at a CDN URL without challenge protection, then verify with a plain curl request that it returns YAML content-type instead of text/html.
  Event 54:

  ```text
  Enable JavaScript and cookies to continue
  ```
- **State the API plan/access requirement earlier in the quickstart**: The quickstart guide only mentions the Enterprise/Network or Certified Developer gating requirement as an aside partway through the 'Getting started' section, after describing the API design and auth flow in detail. Move this access-tier requirement to the top of the quickstart (before the API design section) so developers on Starter/Pro plans learn immediately that they cannot use the API without upgrading or applying, saving time spent building against docs they cannot execute against.
  Event 39:

  ```text
  Developer API access is limited by plan type. If you don't yet have an account with API access, you can review our non-interactive reference resource .
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/7e4316a3-5f02-4b29-a621-289733389218) · [Read transcript](https://www.ax-check.com/nationbuilder.com/sessions/kimi.json)
Seq 2 gives a pricing figure (~$29/month entry) with named assumptions: no free tier, pricing scales with contact-list size, 14-day trial, and flags to verify against nationbuilder.com/pricing.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained NationBuilder credentials on its own. There is no public sandbox or anonymous test endpoint, so the agent wrote example code but explicitly stopped and asked the human to supply a nation slug and API token before it could run anything against the real hosted product.
  Event 2:

  ```text
  every API call requires a live "nation" (their word for an account/site) plus OAuth credentials or an API token. There's no public sandbox or anonymous test endpoint — you have to sign up (free trial or paid) to get one. I can't create an account, so I can write you working example code but I can't run it against anything real.
  ```
  Event 7:

  ```text
  A nation slug (from a trial or paid account — the 14-day trial works)
  2. An API token from **Settings → Developer → API token** (or an OAuth app if you prefer the v2 flow)
  
  Give me those and I'll run the script, verify the calls
  ```

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

#### Blockers
- **No self-serve sandbox or anonymous API access**: Product behavior: NationBuilder requires a paid or trial account (a "nation") plus an API token/OAuth credential to call any endpoint. There is no public sandbox, so the agent could not sign up or generate credentials itself and had to stop after writing untested example code, asking the human to provide a nation slug and API token.
  Event 2:

  ```text
  There's no public sandbox or anonymous test endpoint — you have to sign up (free trial or paid) to get one. I can't create an account, so I can write you working example code but I can't run it against anything real.
  ```

#### Suggested Changes
- **Offer a public sandbox nation or anonymous test endpoint for developers**: On the developer/API docs page, provide a way to obtain a throwaway test nation with API credentials without requiring a full trial signup. This would let automated agents and evaluators exercise the example code (listing/creating people) without human intervention, closing the gap observed at seq 2 and seq 7.
  Event 2:

  ```text
  There's no public sandbox or anonymous test endpoint — you have to sign up (free trial or paid) to get one.
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/566069cb-f691-490a-a34b-0fbf52133f7d) · [Read transcript](https://www.ax-check.com/nationbuilder.com/sessions/qwen.json)
Final output gives concrete pricing (Starter $34/mo for 500-5,000 contacts, Pro $160/mo, Enterprise custom) sourced live from nationbuilder.com/pricing (seq 9-11) with named assumptions: contact-tier, monthly vs annual billing, add-on packs, and flags API-access-per-tier and rate limits as unverified.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained real NationBuilder credentials during the session. It explicitly states a token requires an existing trial/paid nation account created by a human, and it never made any authenticated call against a live nation. All 'success' output (people list, created person id 99, tag, pages) came from a hand-written local fixture replay in offline_demo.py, not a hosted product response. Probing the real API host only returned 404s for non-existent nations, which does not constitute an authenticated operation.
  Event 64:

  ```text
  no live authenticated call was made. NationBuilder has no public sandbox nation and a token requires an existing trial/paid nation account (`Settings → Developer → API access`)
  ```
  Event 64:

  ```text
  Verified: `python3 nb_client.py --offline` runs green (lists people → creates person id 99 → `PUT /people/99/tag/volunteer` → lists pages, all four calls logged)
  ```
  Event 38:

  ```text
  Set NB_NATION_SLUG and NB_ACCESS_TOKEN, or run with --offline
  ```

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

#### Blockers
- **No self-serve credential path for the NationBuilder API**: Getting an API token requires an existing trial or paid NationBuilder nation account provisioned by a human (via Settings -> Developer -> API access); there is no public sandbox nation. This is a normal login/account requirement, not a product defect, and it stopped the agent from exercising the live API at all.
  Event 64:

  ```text
  NationBuilder has no public sandbox nation and a token requires an existing trial/paid nation account (`Settings → Developer → API access`)
  ```
- **Developer docs unreachable without a signed-in nation**: Every anonymous probe of the API reference (nationbuilder.com/api_docs, developers.nationbuilder.com root and /api, /api_docs, /api_docs_types) returned 404, one initially returning HTTP 429. The agent concluded docs sit behind a signed-in nation, forcing it to write the client from a third-party gem's README instead of primary docs.
  Event 24:

  ```text
  == https://nationbuilder.com/api
  404 https://nationbuilder.com/api
  == https://developers.nationbuilder.com
  429 https://developers.nationbuilder.com/
  ```
  Event 58:

  ```text
  developers/api         404
  developers/api_docs    404
  api_docs_v1            404
  api/v1/people          404
  ```

#### Suggested Changes
- **Fix or redirect the broken /api_docs and developers.nationbuilder.com links**: nationbuilder.com/api_docs, developers.nationbuilder.com/, and several guessed variants under it all returned 404 (one after an initial 429) when accessed anonymously. Point these routes to the actual public API reference or add a clear redirect/banner explaining docs require sign-in, then confirm with an anonymous curl request that the URL now resolves to real content instead of a generic 404 page.
  Event 54:

  ```text
  404 https://developers.nationbuilder.com/
   The page you were looking for doesn’t exist (404 Not found) Page cannot be found.
  ```
  Event 17:

  ```text
  The page you were looking for was not found.
  ```
- **Publish a lightweight sandbox or trial nation for API testing**: Because there is no public sandbox nation, an unattended developer cannot obtain a token or exercise the live API without a human first creating a trial/paid account. Offering a self-serve API-only sandbox nation (even rate-limited) would let developer tooling validate real request/response shapes; verify by having a script request a token and call GET /api/v1/people without any manual account setup.
  Event 64:

  ```text
  Blocked (one thing, stated plainly): no live authenticated call was made. NationBuilder has no public sandbox nation and a token requires an existing trial/paid nation account
  ```

### Task given to each agent
Help me build a simple example using NationBuilder. 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, API guides, support, pricing and getting-started pages in organized sections.
  ```

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

  ```text
  llms.txt groups links under Product, Getting started, Support, Developers, Partners and Company headings.
  ```

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

  ```text
  llms.txt lists Developer API v2, API docs, quickstart, auth and endpoint explorer; no MCP or skills offered.
  ```

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

  ```text
  llms.txt is a compact Markdown guide covering products, getting started, support, and developers.
  ```

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

  ```text
  API QuickStart guide retrievable as standalone Markdown with auth and first-endpoint steps.
  ```

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

  ```text
  Markdown quickstart is 4539 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
  API QuickStart gives auth, token generation, and concrete POST/GET signup examples with responses.
  ```

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

  ```text
  Fetched install/next-step links (setup trial, docs, API reference, OpenAPI spec) all returned 200.
  ```


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

  ```text
  llms.txt links an API QuickStart Guide with concrete first steps for v2 API calls.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Quickstart gives extractable curl and HTTP request commands for OAuth token exchange and endpoints.
  ```

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

  ```text
  Quickstart shows inline POST/GET request and JSON response examples without interaction.
  ```

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

  ```text
  Auth guide states API access requires Enterprise/Network plan or certified developer, and token setup.
  ```


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

  ```text
  Pricing page renders Starter $34/mo, Pro $160/mo, Enterprise custom without interaction.
  ```

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

  ```text
  Starter $34/mo and Pro $160/mo stated publicly; Enterprise is contact-sales.
  ```

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

  ```text
  Contact tiers, database caps, email caps and add-on prices are explicit.
  ```

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

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4.1 Flash: README.md and final output give a pricing table (Starter $34/mo, Pro $160/mo, Enterprise custom) with named assumptions: monthly vs annual billing, contact-count tiers, add-ons, free trial, and the API-gating caveat that only Enterprise/Network includes developer tools. Kimi K3: Seq 2 gives a pricing figure (~$29/month entry) with named assumptions: no free tier, pricing scales with contact-list size, 14-day trial, and flags to verify against nationbuilder.com/pricing. Qwen 3.8 Max: Final output gives concrete pricing (Starter $34/mo for 500-5,000 contacts, Pro $160/mo, Enterprise custom) sourced live from nationbuilder.com/pricing (seq 9-11) with named assumptions: contact-tier, monthly vs annual billing, add-on packs, and flags API-access-per-tier and rate limits as unverified. This behavioural item does not affect the fast grade.
  ```


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

  ```text
  Non-interactive v2 reference page links a downloadable OpenAPI spec (released.yaml), which fetched successfully.
  ```

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

  ```text
  No MCP server documentation appears in any fetched NationBuilder page.
  ```

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

  ```text
  No CLI install path is documented; only cURL examples for API calls appear.
  ```

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

  ```text
  No SDK or packaged CLI registry lookup was supplied for NationBuilder.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills are published or referenced in the fetched NationBuilder pages.
  ```



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