# AX Check: leanlabs.com
Checked 2026-10-15.

Pricing is public, but agents often miss or misquote it
Lean Labs posts clear dollar figures for its services, yet 2 of 3 coding sessions failed to state accurate pricing or assumptions.

## Onboarding needs a login

## Coding sessions
All three sessions completed. One agent correctly cited Factor8 AI pricing ($12k setup plus $1,200/mo) from the pricing page. The other two found no usable pricing and guessed at a contact-based or sales model instead of reading the stated figures.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/a03508b3-6b10-4d9e-ba39-576aa1218feb) · [Read transcript](https://www.ax-check.com/leanlabs.com/sessions/deepseek.json)
Quoted Factor8 AI at $12k setup plus $1,200/mo (build or managed) from the pricing page's structured data. Stated pricing is quote/retainer, not per API call. (seq 130, seq 158, seq 164)
#### End-to-end onboarding
- **Onboarding needs a login**: Agent found Factor8's hosted OpenAPI service at app.leanlabs.com and successfully called several unauthenticated public endpoints (health check, public entities list, public chat config, and a live streaming chat completion). However, it had no account or API key in the sandbox, so it never created credentials and never exercised any authenticated operation (tasks, orgs, CMS, payments, api-key creation). All auth-gated endpoints return 401 and remained untested.
  Event 154:

  ```text
  [4] POST /api/public-chat/lean-labs/messages (streaming)
  ------------------------------------------------------------
  HTTP 200
  Assistant: Lean Labs is a growth marketing agency that pulls three growth levers for B2B SaaS startups and scaleups
  ```
  Event 90:

  ```text
  /api/tasks/options -> 401 application/json
  {"error":"Unauthorized"}
  ```
  Event 154:

  ```text
  Skipped: set FACTOR8_API_KEY to call authenticated endpoints.
  Create a key after signing up at https://app.leanlabs.com
  (endpoint: POST /api/auth/api-key/create).
  ```
  Event 164:

  ```text
  I have **no account or API key** in this environment, so authenticated endpoints (tasks, orgs, CMS, payments, API-key creation) are untested.
  ```

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

#### Blockers
- **No self-serve credentials available in the sandbox**: Every authenticated route (tasks, organizations, CMS, payments, API key creation) requires a bearer token or session cookie obtained via signup/login. The sandbox had no credentials and no way to complete human signup, so the agent could only demonstrate the public, unauthenticated slice of the API. This is a session/environment limitation (no human available to sign up), not a product defect — normal login is expected for a SaaS product.
  Event 68:

  ```text
  app.leanlabs.com/signup -> 404
  app.leanlabs.com/register -> 404
  ```
  Event 90:

  ```text
  /api/payments/active-plan -> 401 application/json
  {"error":"Unauthorized"}
  ```
  Event 164:

  ```text
  I have **no account or API key** in this environment, so authenticated endpoints (tasks, orgs, CMS, payments, API-key creation) are untested.
  ```
- **Chat endpoint request schema undocumented, required trial and error**: The OpenAPI spec for POST /api/public-chat/{organizationSlug}/messages lists no request body schema at all, so several plausible payload shapes (message, content, text, prompt, question, userMessage) returned 400 'Invalid request body' before the agent guessed the correct shape (messages array + sessionId UUID). This is a product documentation gap in the generated OpenAPI spec, not agent error, since the agent systematically tried alternatives and succeeded once it guessed correctly.
  Event 102:

  ```text
  "post": {
    "operationId": "postApiPublicChatByOrganizationSlugMessages",
   ...
    "parameters": [
     {
      "schema": {
       "type": "string"
      },
      "in": "path",
      "name": "organizationSlug",
      "required": true
     }
    ]
   }
  ```
  Event 98:

  ```text
  --- {"message":"Hello"}
  Invalid request body
  [400]
  ```
  Event 142:

  ```text
  --- sessionId=33333333-3333-3333-3333-333333333333
  Invalid request body
  ```

#### Suggested Changes
- **Add a request body schema to the public chat messages endpoint in the OpenAPI spec**: In the OpenAPI document served at app.leanlabs.com/api/openapi, the POST /api/public-chat/{organizationSlug}/messages operation has no requestBody schema, so the Scalar-rendered docs at /api/docs give no guidance on the expected shape. Add a requestBody with the messages array and sessionId (UUID) fields and verify it by reloading /api/docs and confirming the schema renders with example values.
  Event 102:

  ```text
  "post": {
    "operationId": "postApiPublicChatByOrganizationSlugMessages",
    "tags": [
     "Public Chat"
    ],
    "summary": "Send message to public chatbot",
    "description": "Send a message to the public chatbot and receive a streaming response with RAG context"
  ```
- **Publish a developer/API landing page linked from the main site**: leanlabs.com's sitemap, robots.txt, and llms.txt contain no link to the Factor8 API or its docs at app.leanlabs.com/api/docs; the agent only found it by brute-force subdomain guessing (app., api., docs., developer.). Add a link to app.leanlabs.com/api/docs from the main leanlabs.com navigation or llms.txt, and verify by confirming the link resolves and is discoverable via the sitemap.
  Event 46:

  ```text
  - [Homepage](https://www.leanlabs.com/)
  - [Connect](https://www.leanlabs.com/connect)
  - [Programs and pricing](https://www.leanlabs.com/pricing)
  - [Search](https://www.leanlabs.com/search?term={query})
  - [Sitemap](https://www.leanlabs.com/sitemap.xml)
  - [Extended context (llms-full.txt)](https://www.leanlabs.com/llms-full.txt)
  - [Company OS handoff (brain.md)](https://www.leanlabs.com/unbound/brain.md)
  ```
  Event 56:

  ```text
  urls containing api/doc/developer/sdk (non-blog):
  
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/c7d25dd4-673b-49c7-b821-2aac1771ad5c) · [Read transcript](https://www.ax-check.com/leanlabs.com/sessions/kimi.json)
Gave no cost figure or assumptions for Lean Labs and only said there was no developer pricing page. Its note that Lean Technologies pricing is 'sales-contact-based' was never checked against any fetched source. (seq 47)
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: No credentials were obtained or used, and no authenticated product operation occurred. The agent determined Lean Labs is a marketing agency website with no SDK, API, or developer platform to onboard to, and stopped without attempting any authentication flow.
  Event 47:

  ```text
  This product has no developer workflow I can act on. There's nothing to authenticate against, no quickstart, and no endpoint to call
  ```

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

#### Blockers
- **No developer product exists for Lean Labs**: Product behavior/research outcome, not agent error: the agent searched PyPI, npm, GitHub, and the company website and found leanlabs.com is a marketing/HubSpot agency with no SDK or API, and leanlabs.dev is an unrelated parked domain for sale. There is no quickstart, pricing page for a dev product, or endpoint to call, so the session could not proceed per the task's own stop condition.
  Event 45:

  ```text
  TITLE: ['Double Your Marketing ROI | Proven Growth Strategies | Lean Labs']
  ```
  Event 34:

  ```text
  leanlabs.dev for sale | Spaceship.com Domain for sale leanlabs.dev
  ```
  Event 47:

  ```text
  No SDK or API exists: no leanlabs package on PyPI or npm, no API docs, no hosted developer platform.
  ```

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

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/f7c13bbb-0f5d-4ba1-bff1-5820b422874b) · [Read transcript](https://www.ax-check.com/leanlabs.com/sessions/qwen.json)
No cost figure or assumptions given; agent asserted an unverified contact-us/consulting model after reading only the homepage head (seq 22, seq 24)
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: No product credentials were ever obtained and no authenticated API/SDK call was made. The agent concluded no developer-facing product named 'Lean Labs' exists (the domain resolves to a marketing agency, not an API/SDK provider), so it stopped before any onboarding step could occur.
  Event 24:

  ```text
  So, plainly: this product has no developer workflow I can act on.
  ```
  Event 24:

  ```text
  No credentials, config, or references in `/sandbox/repo` (empty apart from `.gitignore` + one initial commit) and no `LEAN*`/`LAB*` env vars
  ```

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

#### Blockers
- **No discoverable developer product for 'Lean Labs'**: The agent searched npm, PyPI, GitHub, and common domain variants (leanlabs.io/.ai/.com/.dev/.app) and found only a parked domain and a marketing/growth-consulting agency at leanlabs.com, with zero SDK packages or API repos. This is not an agent error or missing-credential issue — it is an environment/product-identification problem: the named product does not appear to expose any hosted API or SDK matching the seed prompt's request.
  Event 17:

  ```text
  == lean-labs
  404
  == @leanlabs/sdk
  404
  == leanlabs-sdk
  404
  == github repos
  
  ```
  Event 18:

  ```text
  leanlabs.io -> 000
  leanlabs.ai -> 
  leanlabs.com -> 200
  leanlabs.dev -> 200
  leanlabs.app -> 000
  
  ```
  Event 22:

  ```text
  Double Your Marketing ROI | Proven Growth Strategies | Lean Labs
  ```
  Event 24:

  ```text
  "Lean Labs" resolves to leanlabs.com — a marketing/growth agency ("Double Your Marketing ROI"). There is no developer product
  ```

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

### Task given to each agent
Help me build a simple example using Lean Labs. 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: A · 100/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

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

  ```text
  Homepage returned text/markdown (200) when requested with Accept: text/markdown.
  ```

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

  ```text
  llms.txt (200) links homepage, pricing, sitemap, tools, services and llms-full.txt.
  ```

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

  ```text
  llms.txt groups links under Site, Services, Tools, and Get Started sections.
  ```

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

  ```text
  llms.txt describes AI Marketing Agents, Factor8 AI, and free AI tools offered.
  ```

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

  ```text
  llms.txt (6281 tokens) and /schedule/strategy.md both serve as compact Markdown guide representations.
  ```

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

  ```text
  llms.txt is directly retrievable at /llms.txt with 200 and full guide content.
  ```

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

  ```text
  llms.txt is 6281 tokens, under the 8000-token budget for a usable guide.
  ```

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

  ```text
  llms.txt links to pricing, connect, case studies and docs; homepage Markdown also supported.
  ```

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

  ```text
  llms.txt gives a full standalone guide: services, differentiators, markets, FAQs, and a concrete connect/strategy-call next step.
  ```

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

  ```text
  llms.txt's get-started link /schedule/strategy fetched 200 in both Markdown and HTML.
  ```


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

  ```text
  Lean Labs is a marketing agency; no developer docs or quickstart offered in fetched pages.
  ```

- **Skipped** — Installation commands are extractable

  ```text
  No installation or setup commands appear; the product is a service, not installable software.
  ```

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

  ```text
  No code examples offered; fetched pages are marketing and a strategy-call booking page.
  ```

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

  ```text
  No API or auth boundaries; only a contact email and strategy-call booking are shown.
  ```


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

  ```text
  3 of 3 sessions were judged on pricing; 2 fell short. DeepSeek V4.1 Flash: Quoted Factor8 AI at $12k setup plus $1,200/mo (build or managed) from the pricing page's structured data. Stated pricing is quote/retainer, not per API call. (seq 130, seq 158, seq 164) Kimi K3: Gave no cost figure or assumptions for Lean Labs and only said there was no developer pricing page. Its note that Lean Technologies pricing is 'sales-contact-based' was never checked against any fetched source. (seq 47) Qwen 3.8 Max: No cost figure or assumptions given; agent asserted an unverified contact-us/consulting model after reading only the homepage head (seq 22, seq 24) This behavioural item does not affect the fast grade.
  ```

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

  ```text
  Pricing page renders full plan tiers and dollar figures as static Markdown text.
  ```

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

  ```text
  Prices stated openly: websites from $15k, AEO $5k-$12k/mo, HubSpot from $2k.
  ```

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

  ```text
  Units explicit: one-time project, per month, setup fee plus monthly.
  ```


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

  ```text
  No API reference or OpenAPI spec offered; Lean Labs is a marketing agency, not a developer API product.
  ```

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

  ```text
  No MCP server documented anywhere in the fetched Lean Labs pages.
  ```

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

  ```text
  No CLI install path documented; the site offers marketing services, not a CLI tool.
  ```

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

  ```text
  No SDK or developer package offered or checked on any registry.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills published; llms.txt describes marketing services, not skills.
  ```



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