# AX Check: fh.co
Checked 2026-09-18.

Agents can't find fh.co pricing anywhere on the site.
All 3 coding sessions refused to state a price, finding no published cost. The site also lacks a documentation index for agents, scoring 1 pass of 23 checklist items.

## Onboarding needs a login

## Coding sessions
Three independent sessions (DeepSeek V4 Pro, Kimi K3, Qwen 3.8 Max) explored fh.co looking for cost details. All three found only a consumer quiz funnel with no stated price, and each explicitly declined to guess a dollar figure rather than invent one.

### DeepSeek V4 Pro
[View public run](https://agents.withgauge.com/p/runs/814015fe-43a9-41bd-81d4-51291323a430) · [Read transcript](https://www.ax-check.com/fh.co/sessions/deepseek.json)
Agent explicitly declined to quote a dollar figure ('I don't want to state inaccurate numbers', seq 71) and final output only says pricing is a 'monthly membership/subscription' with no actual cost figure or named assumptions (plan/region/size).
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: The agent never attempted to create a FuturHealth account, obtain API credentials, or make any authenticated call. It only ran read-only curl probes against futurhealth.com, search engines, npm, PyPI, and GitHub, then concluded no developer workflow exists. No credential acquisition or authenticated product operation was demonstrated.
  Event 39:

  ```text
  for u in https://docs.futurhealth.com https://developers.futurhealth.com https://api.futurhealth.com https://www.futurhealth.com/developers https://www.futurhealth.com/api; do code=$(curl -s -m 8 -o /dev/null -w "%{http_code}" "$u" 2>/dev/null); echo "$code  $u"; done
  ```
  Event 72:

  ```text
  there is no hosted API or SDK surface to integrate, authenticate against, or automate. The only code I found is an internal leak of a dependency with no credentials or docs, so I can't build against it.
  ```

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

#### Blockers
- **No public developer portal or API docs found for FuturHealth**: Product-owned subdomains meant for developers (docs., developers., api., /developers, /api) all redirect to a generic marketing landing page instead of documentation or a signup flow. This is a product/documentation gap rather than agent error or environment issue -- the agent correctly probed the obvious developer entry points and found nothing.
  Event 45:

  ```text
  302  https://docs.futurhealth.com
  302  https://developers.futurhealth.com
  302  https://api.futurhealth.com
  301  https://www.futurhealth.com/developers
  301  https://www.futurhealth.com/api
  
  ```
  Event 55:

  ```text
  https://landing.fh.co/ -> 200
  https://landing.fh.co/ -> 200
  
  ```
- **Only discoverable API client requires unpublished partner credentials**: The one API-shaped artifact found, an npm package, is a generated client for a third-party vendor (SteadyMD) with no README, default base path of localhost, and credential fields (apiKey/username/password/accessToken) with no documented signup path. This blocked any attempt to actually call a live endpoint.
  Event 54:

  ```text
  versions: ['1.0.0', '1.0.1', '1.0.2', '1.0.3', '1.0.4', '1.0.5', '1.0.6', '1.0.7', '1.0.9']
  latest: {'latest': '1.0.9'}
  README:
   ERROR: No README data found!
  
  ```
  Event 65:

  ```text
  exports.BASE_PATH = "http://localhost".replace(/\/+$/, "");
  ```

#### Suggested Changes
- **Add a visible developer/API landing page at the developers subdomain**: developers.futurhealth.com, docs.futurhealth.com, api.futurhealth.com, and the /developers and /api paths on the main site all currently redirect to a generic marketing splash page (landing.fh.co) instead of any developer content. Point these at real documentation or a clear 'no public API' notice so agents and developers stop guessing. Verify by curling these URLs and confirming they resolve to developer-relevant content instead of the marketing redirect.
  Event 45:

  ```text
  302  https://docs.futurhealth.com
  302  https://developers.futurhealth.com
  302  https://api.futurhealth.com
  301  https://www.futurhealth.com/developers
  301  https://www.futurhealth.com/api
  
  ```
- **Publish a README for the public steadymd-api-client npm package**: The @futurhealth/steadymd-api-client package on npm ships with no README and a default localhost base path, giving no indication of what service it targets, how to get credentials, or whether it's meant for external partners. Add a README describing the intended audience (internal vs. SteadyMD partners), the real base URL, and how to request API keys. Verify by checking the rendered README on the npm package page.
  Event 54:

  ```text
  README:
   ERROR: No README data found!
  
  ```
  Event 65:

  ```text
  exports.BASE_PATH = "http://localhost".replace(/\/+$/, "");
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/604c0e33-bbfe-4421-a735-eb10024d5c90) · [Read transcript](https://www.ax-check.com/fh.co/sessions/kimi.json)
No cost figure was ever stated — the agent reports 'no published pricing' for the developer product and vague 'varies by medication/plan' for the consumer side, with no dollar amount, plan tier, or workload assumption attached to any number.
#### End-to-end onboarding
- **Onboarding needs a login**: Agent never obtained credentials of any kind. It discovered a published SDK (@futurhealth/steadymd-api-client) but found no self-serve signup, no API key mechanism, and the SDK's base host med.steadymd.com does not even resolve publicly. It stopped and recommended a human email the partnerships team for credentials.
  Event 33:

  ```text
  Could not resolve host: med.steadymd.com
  ```
  Event 35:

  ```text
  Access is partnership/sales-led ("contact us" on steadymd.com).
  ```
  Event 35:

  ```text
  the next step is a human one: email their partnerships team for API credentials and documentation, then I can pick it up from there.
  ```

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

#### Blockers
- **No self-serve API key or signup for the SteadyMD/FuturHealth developer API**: Product behavior: access to the SDK's backing API is partnership/sales-gated. No signup flow, sandbox, or key-issuance mechanism was found on steadymd.com or futurhealth.com, so the agent could not obtain credentials without a human contacting sales.
  Event 35:

  ```text
  The package has no README, no docs site, no sandbox, and no API-key self-service. Access is partnership/sales-led ("contact us" on steadymd.com).
  ```
- **SDK's base API host does not resolve publicly**: Product/infrastructure limitation: the published npm SDK targets med.steadymd.com, but DNS resolution for that host fails from the agent's sandbox, meaning even a hypothetical API key could not be used to make a live call in this environment.
  Event 33:

  ```text
  Could not resolve host: med.steadymd.com
  ```
  Event 33:

  ```text
  no DNS
  ```
- **No public pricing information for the developer/API product**: Product behavior: FuturHealth's consumer subscription pricing is public, but the SteadyMD developer API pricing is not published anywhere the agent could find; it is negotiated per partner, which the agent could only infer rather than confirm from a pricing page.
  Event 35:

  ```text
  no published pricing. It's enterprise/B2B partnership pricing — you contact sales, and cost is negotiated based on volume/services
  ```

#### Suggested Changes
- **Publish a README or quickstart guide for the steadymd-api-client npm package**: The package @futurhealth/steadymd-api-client currently ships with no README. Add a README to the npm package covering authentication setup and a minimal usage example; verify by re-running npm view @futurhealth/steadymd-api-client readme and confirming content is returned instead of the error.
  Event 13:

  ```text
  ERROR: No README data found!
  ```
- **Add a public developer/API pricing page for SteadyMD or FuturHealth's developer program**: The agent could not find any published pricing for the developer API tier and had to describe it as sales-negotiated. Add a pricing or plans page linked from steadymd.com describing at least indicative volume-based rates or a free-tier/sandbox option; verify by fetching the page and confirming pricing figures are present without needing to contact sales.
  Event 35:

  ```text
  no published pricing. It's enterprise/B2B partnership pricing — you contact sales, and cost is negotiated based on volume/services (clinician network, white-label telehealth APIs, pharmacy fulfillment).
  ```
- **Stand up a reachable public sandbox/demo endpoint for the API**: The SDK's configured host med.steadymd.com fails DNS resolution externally, preventing any developer from testing the SDK even with credentials. Provide a resolvable sandbox hostname (documented in the SDK's configuration or README) and verify with a basic curl/DNS lookup returning a valid response instead of 'Could not resolve host'.
  Event 33:

  ```text
  Could not resolve host: med.steadymd.com
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/d0bfd829-5505-4057-ad82-780afb7e8dae) · [Read transcript](https://www.ax-check.com/fh.co/sessions/qwen.json)
Agent explicitly refuses to state a price ('I can't tell you how pricing works, because it isn't published anywhere I can reach... I won't invent numbers') — no cost figure or assumption set is given.
#### End-to-end onboarding
- **Onboarding needs a login**: No self-service onboarding occurred. The agent never obtained real product credentials during the session; it only found that the underlying SteadyMD Partner API requires an Authorization API key/OAuth token that it does not have, and no public sandbox key or base URL exists. No authenticated operation against a hosted product was attempted or demonstrated.
  Event 66:

  ```text
  No credentials and no reachable endpoint. The client requires a SteadyMD Authorization key/OAuth token I don't have, and there's no sandbox/demo key.
  ```
  Event 58:

  ```text
  exports.BASE_PATH = "http://localhost".replace(/\/+$/, "");
  ```

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

#### Blockers
- **No public FuturHealth product, docs, or credentials exist**: FuturHealth turned out to be only an npm publisher of two packages, not a hosted product with public docs or a self-serve API. The primary package is an auto-generated OpenAPI client for a third-party partner API (SteadyMD) that requires a partner Authorization key which was never available in the session, and the client's default base path is localhost with no discoverable public host. This is a product/data-availability limitation, not an agent error — the agent searched npm, pip, and general connectivity before concluding this.
  Event 34:

  ```text
  @futurhealth/steadymd-api-client@1.0.9 | ISC | deps: 1 | versions: 9
  SteadyMD API client
  ```
  Event 58:

  ```text
  exports.BASE_PATH = "http://localhost".replace(/\/+$/, "");
  ```
  Event 66:

  ```text
  No README, no quickstart, no docs, no pricing in either package or the registry metadata. npm test is literally "echo Error: no test specified && exit 1".
  ```
- **Pricing information unavailable for the underlying partner API**: The agent could not answer the pricing question because SteadyMD's Partner API pricing is not published anywhere reachable; it is described as a negotiated B2B arrangement. This is a product/business limitation rather than something the agent could resolve with more searching.
  Event 66:

  ```text
  Pricing: I can't tell you how pricing works, because it isn't published anywhere I can reach... the underlying SteadyMD Partner API is a commercial partner/B2B telehealth service with negotiated, non-public pricing.
  ```

#### Suggested Changes
- **Publish a README or quickstart inside the npm packages**: Neither @futurhealth/steadymd-api-client nor @futurhealth/cloud-functions-utils ships any README, quickstart, or usage doc in the published tarball (confirmed by extracting and listing package contents). Add a README.md to each package's files array covering base URL, auth setup, and a minimal call example; verify by running npm pack and checking the extracted tarball contains the README.
  Event 43:

  ```text
  === steadymd-api-client file tree ===
  smd/dist/api.d.ts
  ...
  smd/package.json
  ```
  Event 45:

  ```text
  Neither package ships a README. Let me read the package.json files and the code to understand what these actually do.
  ```
- **Set a real default base path instead of localhost**: The steadymd-api-client's compiled base.js hardcodes BASE_PATH to http://localhost, giving no signal of the real production or sandbox host. Update the generated OpenAPI client's default server config (or document the required basePath override) so a first-time developer can identify where requests should actually go; verify by checking dist/base.js after regeneration shows a real hosted URL.
  Event 58:

  ```text
  exports.BASE_PATH = "http://localhost".replace(/\/+$/, "");
  ```

### Task given to each agent
Help me build a simple example using FuturHealth. 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: F · 7/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.
  ```

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

  ```text
  /llms.txt returns the homepage HTML, not a documentation index.
  ```

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

  ```text
  /llms.txt serves homepage HTML with no navigation guidance for agents.
  ```

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

  ```text
  No llms.txt index exists, so API/MCP/skills mentions cannot be assessed.
  ```

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

  ```text
  No site-published Markdown guide found; /llms.txt returned HTML, not a compact guide.
  ```

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

  ```text
  No focused guide or quickstart page was fetched; only marketing and funnel pages.
  ```

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

  ```text
  No compact guide representation exists to measure against a token budget.
  ```

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

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

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

  ```text
  No compact agent guide or standalone Markdown doc was fetched; only homepage and funnel pages.
  ```

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

  ```text
  Sampled install/next-step links (funnel quiz, sign-in, app stores) returned HTTP 200.
  ```


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

  ```text
  No developer docs or quickstart fetched; site is a consumer weight-loss funnel, not a developer product.
  ```

- **Skipped** — Installation commands are extractable

  ```text
  No installation or developer setup instructions appear in any fetched page.
  ```

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

  ```text
  No code examples offered; fetched pages are consumer marketing and quiz funnels.
  ```

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

  ```text
  No API, auth, or developer prerequisites documented in fetched content.
  ```


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

  ```text
  3 of 3 sessions were judged on pricing; 3 fell short. DeepSeek V4 Pro: Agent explicitly declined to quote a dollar figure ('I don't want to state inaccurate numbers', seq 71) and final output only says pricing is a 'monthly membership/subscription' with no actual cost figure or named assumptions (plan/region/size). Kimi K3: No cost figure was ever stated — the agent reports 'no published pricing' for the developer product and vague 'varies by medication/plan' for the consumer side, with no dollar amount, plan tier, or workload assumption attached to any number. Qwen 3.8 Max: Agent explicitly refuses to state a price ('I can't tell you how pricing works, because it isn't published anywhere I can reach... I won't invent numbers') — no cost figure or assumption set is given. This behavioural item does not affect the fast grade.
  ```

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

  ```text
  No pricing page fetched; homepage shows no prices, only 'See if you qualify' funnel.
  ```

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

  ```text
  No pricing page fetched; homepage states no prices, only qualification funnel.
  ```

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

  ```text
  No pricing page fetched; no units or limits stated on homepage.
  ```


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

  ```text
  No API reference or OpenAPI spec found; site is a consumer weight-loss funnel.
  ```

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

  ```text
  No MCP server documentation found in fetched FuturHealth pages.
  ```

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

  ```text
  No CLI install path documented; site offers only consumer app and quiz.
  ```

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

  ```text
  No developer SDK or package registry evidence found for FuturHealth.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills published in any fetched FuturHealth document.
  ```



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