# AX Check: docs.omni.co
Checked 2026-10-15.

Docs and setup are solid, but pricing is nowhere to be found.
19 of 23 checklist items passed, covering install, CLI, MCP and API docs. All 3 pricing items were unassessed since no pricing page was ever reached.

## Onboarding needs a login

## Coding sessions
All three independent sessions completed their tasks but struggled on pricing: the pricing page returned a 404 for two sessions, leaving them unable to cite any cost figure, plan or seat count. The third session found only a basis for custom quotes (user count, contract term, credits) via a third-party marketplace listing rather than an official price list.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/c63b4bee-4037-4bd3-a8c5-092d689af021) · [Read transcript](https://www.ax-check.com/docs.omni.co/sessions/deepseek.json)
No list price exists. Gave the basis instead: custom quote by user count and tier, 12/24/36-month terms, plus AI credits and warehouse compute. Sourced from AWS Marketplace; third-party figures marked unverified. (seq 128, seq 182, README.md)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent researched Omni Analytics' docs thoroughly and wrote a working example script calling the hosted REST API (GET /v1/whoami, POST /v1/query/run), but never obtained real credentials. It explicitly identified the lack of an Omni instance URL and API token as a blocker, tested an unauthenticated public host (which 404'd), and had the script exit with a clear blocked message rather than complete any authenticated operation.
  Event 180:

  ```text
  BLOCKED: set OMNI_BASE_URL and OMNI_API_TOKEN before running.
    OMNI_BASE_URL looks like https://<org>.omniapp.co/api
    OMNI_API_TOKEN is an Organization API key or Personal Access Token,
    created in your Omni instance (Settings > API access).
  exit=2
  ```
  Event 144:

  ```text
  404 -> https://blobsrus.playground.exploreomni.dev/api/v1/whoami
  {"error":{"code":404,"message":"Not found"}}
  ```
  Event 182:

  ```text
  this environment has no Omni instance or API token, and every endpoint requires a Bearer token (the public `blobsrus.playground.exploreomni.dev` host 404s without one)
  ```

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

#### Blockers
- **No Omni instance or API token available in the sandbox**: Every Omni REST endpoint requires a Bearer token tied to a live instance (e.g. https://<org>.omniapp.co). This is a missing-credentials limitation of the test environment, not a product defect — Omni has no public sandbox/playground to try without signing up. The agent correctly identified this, tried the public playground host and got a 404, then had its own script fail fast with a clear exit code rather than fake success.
  Event 144:

  ```text
  404 -> https://blobsrus.playground.exploreomni.dev/api/v1/whoami
  {"error":{"code":404,"message":"Not found"}}
  ```
  Event 180:

  ```text
  BLOCKED: set OMNI_BASE_URL and OMNI_API_TOKEN before running.
    OMNI_BASE_URL looks like https://<org>.omniapp.co/api
    OMNI_API_TOKEN is an Organization API key or Personal Access Token,
    created in your Omni instance (Settings > API access).
  ```
- **No public pricing page; ambiguous product name**: omni.co/pricing returns 404 and the homepage/sitemap have no pricing path, forcing the agent to rely on a third-party AWS Marketplace listing and competitor blog content instead of an authoritative source. Separately, "Omni" is a generic name (Omni Hotels, Gemini Omni, etc.), which cost several search/fetch cycles before landing on Omni Analytics — a product-side ambiguity rather than an agent error, though the agent flagged its assumption to the user.
  Event 83:

  ```text
  pricing -> 404
  plans -> 404
  pricing/ -> 404
  company/pricing -> 404
  product/pricing -> 404
  ```
  Event 68:

  ```text
  Omni Hotels & Resorts | Book Your Stay
  ```

#### Suggested Changes
- **Add a public pricing page or clear link to request a quote**: omni.co/pricing and similar guessed paths all 404, and the homepage HTML has no pricing link grep could find. Add a /pricing route (even one that only lists the contact-sales flow and AI-credit cost model) so developers don't have to cross-reference AWS Marketplace listings and third-party blogs for basic cost structure. Verify by curling https://omni.co/pricing and confirming a 200.
  Event 83:

  ```text
  pricing -> 404
  plans -> 404
  pricing/ -> 404
  company/pricing -> 404
  product/pricing -> 404
  ```
- **Publish the Python SDK to PyPI**: The omni-python-sdk is only installable via git clone + pip install ., and pip search style checks for common package names (omni-sdk, omni-python, omniapp, omni-analytics, omni-client) all 404 on PyPI. Publishing it as an installable package would remove a step from the quickstart. Verify by running `pip install omni-python-sdk` (or chosen name) successfully.
  Event 152:

  ```text
  omni-sdk -> 404
  omni-python -> 404
  omniapp -> 404
  omni-analytics -> 404
  omni-client -> 404
  ```
  Event 156:

  ````text
  HTTP 200
  66 /tmp/sdk_readme.md
  # omni-python-sdk
  
  Python SDK for interacting with the Omni API
  
  ## Installation
  
  ```bash
  pip install -r requirements.txt
  ```
  ````
- **Offer a no-signup sandbox/demo instance for the REST API**: Every API call requires a Bearer token tied to a provisioned instance; the only unauthenticated playground host found (blobsrus.playground.exploreomni.dev) returned a 404 rather than a usable demo. A read-only demo instance or short-lived trial API key (similar to the CLI's OAuth quickstart) would let first-time developers run the quickstart end-to-end before contacting sales. Verify by confirming an unauthenticated or self-serve-token request against the demo host returns real whoami/query data.
  Event 144:

  ```text
  404 -> https://blobsrus.playground.exploreomni.dev/api/v1/whoami
  {"error":{"code":404,"message":"Not found"}}
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/916706bc-f7a1-41ae-8e1d-b10507e8a9a2) · [Read transcript](https://www.ax-check.com/docs.omni.co/sessions/kimi.json)
Gave no cost figure, plan, seat count or workload assumptions; based on a pricing-page 404, only called pricing quote-based and mentioned an unverified seat-plus-platform-fee model (seq 24, seq 94)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent installed and verified the real Omni CLI (v1.4.0) and the official omni-python-sdk, and wrote working example scripts, but never obtained an Omni instance URL or API token. Omni's trial signup is a sales-contact form (name, email, phone, company), not self-serve, so no credential could be acquired without human intervention. Both example scripts were run and failed at the credential check, so no authenticated product operation was ever demonstrated.
  Event 94:

  ```text
  I can't execute an authenticated call.** This sandbox has no Omni instance URL or API token, and Omni's free trial is a sales-contact form (name, work email, phone, company) — there's no self-serve signup I can complete.
  ```
  Event 92:

  ```text
  ./example.sh: line 6: OMNI_BASE_URL: copy .env.example to .env, fill it in, and source it
  exit=0
  ===
  Missing credentials: copy .env.example to .env, fill it in, and `source .env` (or use python-dotenv).
  ```
  Event 41:

  ```text
  Request a free trial First name * Last name * Work email * Phone number Company name *
  ```

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

#### Blockers
- **No self-serve way to get Omni credentials**: Omni's trial signup requires submitting a sales contact form (name, email, phone, company) rather than instant self-serve signup, and no API token or instance URL was available in the sandbox environment. This is a product/business-model limitation (sales-led onboarding), not an agent error — the agent correctly identified and stopped at this wall after installing and testing the CLI/SDK.
  Event 41:

  ```text
  Request a free trial First name * Last name * Work email * Phone number Company name *
  ```
  Event 94:

  ```text
  Omni's free trial is a sales-contact form (name, work email, phone, company) — there's no self-serve signup I can complete.
  ```
- **No public pricing page**: The /pricing URL returns a 404 and the site redirects all pricing inquiries to a demo/trial request, meaning pricing information could not be retrieved programmatically or via docs.
  Event 24:

  ```text
  Page not found - Omni Analytics Request Demo Free Trial Menu Product Solutions Resources Engineering Demos Company
  ```

#### Suggested Changes
- **Add a self-serve trial or sandbox credential path for developers**: The current /free-trial flow only collects contact info and routes to sales, blocking any automated or self-serve developer evaluation of the CLI/SDK. Adding an instant trial instance (even time-boxed) with an auto-issued API token would let developers complete the documented CLI/SDK quickstart end-to-end. Verify by having a new user run `omni config login` or set an API token immediately after signup without waiting on a sales call.
  Event 41:

  ```text
  Request a free trial First name * Last name * Work email * Phone number Company name *
  ```
- **Publish a pricing page at /pricing**: Requesting https://omni.co/pricing returns a 404; developers evaluating the product have no way to see cost tiers without contacting sales. Add a real page at that path with at least indicative pricing or tiers, and confirm the fix by curling omni.co/pricing and checking for a 200 with pricing content instead of the 404 page.
  Event 24:

  ```text
  Page not found - Omni Analytics Request Demo Free Trial Menu Product Solutions Resources Engineering Demos Company
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/9d14a8b6-f5c4-4ee4-9efa-e268c1abf70b) · [Read transcript](https://www.ax-check.com/docs.omni.co/sessions/qwen.json)
Gave no cost figure or assumptions; its 'seat-based, no free tier' claim had no support from fetched pages (the pricing page returned 404) (seq 17, seq 57)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent correctly identified Omni as a BI platform requiring a hosted account (instance subdomain + Organization API Key or Personal Access Token) and never obtained real credentials. No sign-up flow was attempted and no authenticated API call was made; the agent's own environment only exposed an unrelated internal gateway key, not an Omni credential. Session ended with the agent explicitly stopping because it needed a human to sign up and supply a key.
  Event 57:

  ```text
  There's no public/sandbox API, no anonymous tier, and no `omni-sdk` package on npm I could demo against. I can't build a working example or make a single authenticated call without you signing up.
  ```
  Event 57:

  ```text
  Endpoints explicitly return `401 — "Unauthorized: Missing or invalid API key"` without one, and many (including admin ones) additionally require Organization Admin permissions.
  ```
  Event 11:

  ```text
  PI_GATEWAY_API_KEY=***
  ```

#### Hallucinated URLs
- **Guessed omni.co/api and npm package names before finding real docs**: The agent guessed at an npm package name and an API path before discovering the real documentation site. These were exploratory guesses that failed, but since the agent quickly self-corrected by checking docs.omni.co and never asserted these as real working endpoints to the user, this is more exploratory probing than a hard hallucination claim. Listed for visibility since both failed on first try.
  Event 17:

  ```text
  npm error 404 Not Found - GET https://registry.npmjs.org/omni-sdk - Not found
  ```
  Event 25:

  ```text
  == https://omni.co/api
  404 https://omni.co/api
  ```

#### Blockers
- **Omni requires a paid hosted account with instance-specific credentials**: Product behavior, not agent error: every Omni API endpoint needs a Bearer token (Organization API Key or Personal Access Token) tied to a specific Omni instance subdomain, and there is no public or sandbox tier. The agent had no way to self-serve a credential, so it could not make any authenticated call or build a working example.
  Event 57:

  ```text
  Auth is `Authorization: Bearer YOUR_TOKEN`, where the token must be either an **Organization API Key** or a **Personal Access Token (PAT)** — both generated from within an Omni workspace
  ```
  Event 57:

  ```text
  There's no public/sandbox API, no anonymous tier, and no `omni-sdk` package on npm I could demo against.
  ```
- **Empty sandbox repo gave no starting context for which 'Omni' product was meant**: Test environment limitation: the workspace contained only an empty git commit and .gitignore, with no project files, README, or environment variables referencing Omni, forcing the agent to search blindly for the right product and docs.
  Event 5:

  ```text
  .
  ..
  .git
  .gitignore
  
  ```
  Event 6:

  ```text
  (no output)
  ```

#### Suggested Changes
- **Add a direct link from omni.co/pricing to the actual pricing page**: Requesting https://omni.co/pricing returned a 404 instead of redirecting to a live pricing page. Add a redirect or link from the marketing root domain so prospective developers following the obvious URL pattern land on real pricing info. Verify by curling https://omni.co/pricing and confirming a 200 response with pricing content.
  Event 17:

  ```text
  404
  
  ```
- **Publish a lightweight sandbox or trial API key path for the REST API**: The API reference at docs.omni.co/api requires an Organization API Key or PAT from an existing paid workspace for every endpoint, with no anonymous or sandbox tier mentioned. Adding a free trial/sandbox instance (similar to the existing 'Playground' server variable seen in the OpenAPI spec) would let first-time developers test the API without signing up for a paid seat-based plan. Verify by confirming a documented path to obtain a working key without sales contact.
  Event 55:

  ```text
  \"baseUrlOptions\":[\"https://{instance}.omniapp.co/api\",\"https://{instance}.playground.exploreomni.dev/api\"]
  ```

### Task given to each agent
Help me build a simple example using Omni. 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 lists guides, library, developers, OpenAPI spec and recursive /_llms/ indexes.
  ```

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

  ```text
  llms.txt instructs following /_llms/ indexes recursively to reach documentation pages.
  ```

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

  ```text
  llms.txt links OpenAPI spec and indexes covering REST APIs, MCP and agent skills.
  ```

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

  ```text
  Standalone .md guide pages are served as text/markdown, e.g. the Looker migration guide.
  ```

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

  ```text
  Focused .md guides fetch directly with 200 and full content, e.g. bulk-update-model-yaml.
  ```

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

  ```text
  Compact .md guides measure ~2.5k-4.5k tokens, well under the 8000 budget.
  ```

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

  ```text
  Homepage Markdown is supported and preserves docs links like /api and /developers/cli.
  ```

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

  ```text
  Looker migration guide gives concrete setup, commands, scripts and next steps for an independent workflow.
  ```

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

  ```text
  Fetched install and next-step pages (developers, agent-skills, CLI, MCP) all returned HTTP 200.
  ```


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

  ```text
  Developers page links CLI, MCP, REST API cards; CLI page links install, authenticate, quickstart.
  ```

- **Pass** — Installation commands are extractable

  ```text
  CLI install commands shown: brew tap/install, curl install script, npm install -g @omni-co/model-local-editor.
  ```

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

  ```text
  Code examples inline: curl auth header, npm install, omni-sync commands, omni config init, omni models list.
  ```

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

  ```text
  Prerequisites listed (Node.js 16+, database connection, Admin permissions); API auth requires Bearer token from Settings > API access.
  ```


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

  ```text
  3 of 3 sessions were judged on pricing; 2 fell short. DeepSeek V4.1 Flash: No list price exists. Gave the basis instead: custom quote by user count and tier, 12/24/36-month terms, plus AI credits and warehouse compute. Sourced from AWS Marketplace; third-party figures marked unverified. (seq 128, seq 182, README.md) Kimi K3: Gave no cost figure, plan, seat count or workload assumptions; based on a pricing-page 404, only called pricing quote-based and mentioned an unverified seat-plus-platform-fee model (seq 24, seq 94) Qwen 3.8 Max: Gave no cost figure or assumptions; its 'seat-based, no free tier' claim had no support from fetched pages (the pricing page returned 404) (seq 17, seq 57) This behavioural item does not affect the fast grade.
  ```

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

  ```text
  No Omni pricing page was fetched; only GitHub's foreign pricing page appears.
  ```

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

  ```text
  No Omni pricing page was fetched; only GitHub's foreign pricing page appears.
  ```

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

  ```text
  No Omni pricing page was fetched; only GitHub's foreign pricing page appears.
  ```


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

  ```text
  llms.txt lists an OpenAPI spec at /api/openapi.yaml, and API reference pages are fetched.
  ```

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

  ```text
  MCP server documented with features, tools, auth methods, and client setup guides.
  ```

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

  ```text
  CLI install documented via Homebrew, install script, and GitHub releases.
  ```

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

  ```text
  npm registry lookup for @omni-co/model-local-editor returned HTTP 200.
  ```

- **Pass** — Agent skills are published

  ```text
  Agent skills published with install paths for Claude Code, Cursor, Codex, and more.
  ```



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