# AX Check: wabridges.com
Checked 2026-09-19.

Docs and pricing are clear, but one agent couldn't confirm cost.
Quickstart, API reference and pricing page are all readable without login. Still, 1 of 3 agent sessions said it couldn't determine pricing confidently.

## Onboarding needs a login

## Coding sessions
All three sessions completed. Two, DeepSeek V4 Pro and Kimi K3, found the pricing page and reported $5 per WhatsApp number per month with trial and billing details. The third, Qwen 3.8 Max, said it could not determine pricing and declined to guess a figure.

### DeepSeek V4 Pro
[View public run](https://agents.withgauge.com/p/runs/852fd948-06d4-4c79-9c6d-13f39d967c29) · [Read transcript](https://www.ax-check.com/wabridges.com/sessions/deepseek.json)
Final output gives $5/month per number, unlimited messages, 7-day trial (card on file), proration on cancel, and auto-pause billing rules, sourced from fetched /pricing and llms-full.txt (seq 67, 69) — figures tied to explicit assumptions.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent researched WABridges thoroughly (docs, OpenAPI spec, llms-full.txt) and wrote a working sandbox example script, but never obtained a real API key. The environment had no WA_API_KEY, and WABridges docs state keys can only be created via the dashboard UI (not the API), which requires human sign-up/login. The agent's only live call against the real product returned 401 unauthorized, and the session ended asking the human to paste in a key.
  Event 76:

  ```text
  PI_GATEWAY_API_KEY=unused
  exit=0
  ```
  Event 125:

  ```text
  [status] HTTP 401 -> {"error": "unauthorized"}
  [send]   HTTP 401 code=unauthorized — giving up
  ```
  Event 132:

  ```text
  There is **no `WA_API_KEY` in this environment**, and the docs confirm keys can only be created in **Dashboard → API keys** (shown once, never recoverable, not creatable via API). So I **cannot complete a live sandbox request** without you supplying a key.
  ```

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

#### Blockers
- **No self-service way to get an API key**: WABridges requires an API key to call any endpoint, including the free sandbox. Keys can only be created through the dashboard UI (human sign-up/login), not via the API, so the agent could not obtain credentials on its own. This is expected product behavior (a normal login/account wall), not a defect, but it fully blocked live verification of the sandbox example.
  Event 97:

  ```text
  {"error":"unauthorized"}
  HTTP 401
  ```
  Event 132:

  ```text
  the docs confirm keys can only be created in **Dashboard → API keys** (shown once, never recoverable, not creatable via API).
  ```

#### Suggested Changes
- **Add a self-serve way to get a sandbox-only API key**: The free sandbox bridge still requires a dashboard-issued Bearer key, so an evaluator working only from docs/CLI hits a 401 before making any real request. Consider a signup or CLI-issuable sandbox key so the documented sandbox flow (POST /api/instances/sandbox/proxy/send/text) can be validated without dashboard login. Verify by having a fresh environment obtain a sandbox key and successfully call /status and /send/text.
  Event 97:

  ```text
  === sandbox send/text without key ===
  {"error":"unauthorized"}
  HTTP 401
  ```
  Event 132:

  ```text
  There is **no `WA_API_KEY` in this environment**... I **cannot complete a live sandbox request** without you supplying a key.
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/f731d4db-435d-411b-9bed-6d6a4353f501) · [Read transcript](https://www.ax-check.com/wabridges.com/sessions/kimi.json)
Final output gives '$5 per WhatsApp number per month' with explicit assumptions: 7-day free trial with card on file, only running bridges billed, sandbox free, 10-bridge account cap — sourced from seq 35/36 grep of the vendor's llms-full.txt docs.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent found WABridges is a real hosted API, read its published docs, and wrote two working example scripts (sandbox script and webhook receiver). However, it never obtained an API key itself. It checked the environment for WA_API_KEY, found none, explicitly stated it should not sign up on the user's behalf, and confirmed the API was live only via an unauthenticated call that returned 401. No authenticated request against the real product was ever made.
  Event 24:

  ```text
  WA_API_KEY not set
  ```
  Event 37:

  ```text
  {"error":"unauthorized"}
  ```
  Event 53:

  ```text
  There's **no `WA_API_KEY` in this environment**, and API keys come from the dashboard signup — which I shouldn't do on your behalf.
  ```

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

#### Blockers
- **No API key available to call the live product**: WABridges requires a Bearer API key obtained via dashboard signup; none was present in the sandbox environment and the agent correctly declined to self-serve a signup on the user's behalf. This is a credentials/test-environment limitation, not a product defect — the product does offer a free sandbox bridge and 7-day trial once a key exists.
  Event 24:

  ```text
  WA_API_KEY not set
  ```
  Event 53:

  ```text
  To run the example: sign up at wabridges.com, export `WA_API_KEY=...`, and run `python3 wabridges_example.py`
  ```
- **Account lifecycle actions are dashboard-only, not API-automatable**: Starting a subscription/trial and cancelling bridges cannot be done via the API; the API returns 402 no_subscription until a number is connected in the dashboard. This is documented product behavior (a deliberate design choice), not an error, but it does limit full automation of onboarding.
  Event 17:

  ```text
  POST /api/instances returns 402 no_subscription until a phone number is connected in the dashboard. A subscription cannot be started from the API.
  ```
  Event 36:

  ```text
  Bridges are cancelled in the dashboard, not through the API. Creating is automatable because platforms provision constantly; removing a number is deliberate, rare, and takes money off a subscription, so it stays a decision someone makes on purpose.
  ```

#### Suggested Changes
- **Provide a way to test webhook delivery from the sandbox**: The sandbox bridge never posts events to a webhook_url, so the inbound half of an integration (signature verification, dedupe, fast-ack) can only be tested against a real paired number. Consider adding an optional 'replay to webhook' toggle for sandbox events, documented alongside https://wabridges.com/docs/the-sandbox, and verify it by pointing webhook_url at a test endpoint and confirming sandbox-generated events arrive there.
  Event 30:

  ```text
  Sandbox events are never delivered to a URL. They land in the dashboard, which streams them live, and that is where you read them.
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/cf34b099-cadf-472c-9c1f-c68f50266a05) · [Read transcript](https://www.ax-check.com/wabridges.com/sessions/qwen.json)
Final output explicitly states 'I can't tell you how WABridges pricing works... Any answer would be invented' — no cost figure or assumption set is given at all.
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: No credentials were obtained or used, and no authenticated product operation occurred. The agent never got past product discovery because WABridges could not be located as a real product/package/API.
  Event 20:

  ```text
  There is no SDK, no published package, no API reference, and no repo in this workspace to work from.
  ```

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

#### Blockers
- **WABridges product could not be found anywhere**: The agent searched PyPI, npm registry, and GitHub for a package or product called WABridges and found nothing matching. This is not an agent error or credential problem — it's a fundamental absence of the named product from public package registries and search, so there was no SDK, API, or docs to build against. The agent correctly stopped instead of inventing details.
  Event 12:

  ```text
  {"message": "Not Found"}
  ```
  Event 17:

  ```text
  {"error":"Not found"}
  {"objects":[],"total":0,"time":"2026-09-19T07:56:01.181Z"}
  ```
  Event 18:

  ```text
  "total_count": 1,
    "incomplete_results": false,
    "items": [
      {
        "id": 1192989459,
        "node_id": "R_kgDORxuTEw",
        "name": "wabridge-site",
        "full_name": "Jpkay/wabridge-site"
  ```
  Event 20:

  ```text
  Plainly: WABridges has no developer workflow I can act on.
  ```

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

### Task given to each agent
Help me build a simple example using WABridges. 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 even when text/markdown was requested; no Markdown representation offered.
  ```

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

  ```text
  llms.txt links API reference, docs, quickstart, webhooks and guides with organized sections.
  ```

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

  ```text
  llms.txt groups links under Docs, Guides, Comparisons and Optional with descriptive starting guidance.
  ```

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

  ```text
  llms.txt points to the full API reference and OpenAPI spec; no MCP or skills offered.
  ```

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

  ```text
  llms.txt is a compact Markdown guide covering docs, guides, comparisons and pricing.
  ```

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

  ```text
  llms.txt fetched directly as text/markdown with organized docs and guide links.
  ```

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

  ```text
  llms.txt is 2990 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
  Node quickstart gives ordered steps: API key, npm install, provision, pair, send, webhook handler.
  ```

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

  ```text
  Fetched quickstart, docs, API reference and OpenAPI spec all returned HTTP 200.
  ```


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

  ```text
  Docs link to /docs/quickstart, which offers seven language quickstarts with five concrete steps.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Node quickstart shows npm install axios express and export WA_API_KEY commands.
  ```

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

  ```text
  Node quickstart includes full axios provision, pair, send, and Express webhook code.
  ```

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

  ```text
  Quickstart states API key from dashboard, Bearer auth, and sandbox alternative.
  ```


### Pricing
- **Failed** — Agents identify pricing and its assumptions

  ```text
  3 of 3 sessions were judged on pricing; 1 fell short. DeepSeek V4 Pro: Final output gives $5/month per number, unlimited messages, 7-day trial (card on file), proration on cancel, and auto-pause billing rules, sourced from fetched /pricing and llms-full.txt (seq 67, 69) — figures tied to explicit assumptions. Kimi K3: Final output gives '$5 per WhatsApp number per month' with explicit assumptions: 7-day free trial with card on file, only running bridges billed, sandbox free, 10-bridge account cap — sourced from seq 35/36 grep of the vendor's llms-full.txt docs. Qwen 3.8 Max: Final output explicitly states 'I can't tell you how WABridges pricing works... Any answer would be invented' — no cost figure or assumption set is given at all. This behavioural item does not affect the fast grade.
  ```

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

  ```text
  Pricing page renders $5 per number/month, tiers and limits as static text.
  ```

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

  ```text
  Prices stated openly: $5/number/month, 1/5/25 number tiers, 7-day trial.
  ```

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

  ```text
  Units and limits explicit: per number/month, unlimited messages, 120 req/min per key.
  ```


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

  ```text
  OpenAPI 3.1 spec fetched at /openapi.yml; human API reference at /docs/api.
  ```

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

  ```text
  No MCP server mentioned anywhere in fetched docs or llms.txt.
  ```

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

  ```text
  No CLI install path documented; product is plain HTTP REST, no SDK or CLI.
  ```

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

  ```text
  No WABridges SDK or packaged CLI offered; npm axios is an unrelated dependency.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills published; docs offer an agent prompt but no skills package.
  ```



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