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

Grammarly's pricing is clear, but agent docs are basically missing
No documentation index or compact guide exists for agents (5 of 23 checks passed). Pricing itself renders openly: Free $0, Pro $12/month, Enterprise by contact.

## Onboarding needs a login

## Coding sessions
All three independent sessions completed and landed on consistent pricing: a free tier, Pro around $12 per month billed annually, and Enterprise/Teams pricing gated behind sales contact. Each named its assumptions rather than finding a public API price list.

### DeepSeek V4 Pro
[View public run](https://agents.withgauge.com/p/runs/d9245481-8cb2-43c1-b463-7847f681ef19) · [Read transcript](https://www.ax-check.com/grammarly.com/sessions/deepseek.json)
Final output gives concrete figures with named assumptions: 'Grammarly Pro ≈ $12/mo (annual, from Grammarly's plans page), Teams ~$15/user/mo — no API' vs 'Enterprise/Education — custom, sales-only', scraped live from grammarly.com/plans (seq 51).
#### End-to-end onboarding
- **Onboarding needs a login**: Agent researched Grammarly's hosted Writing Score API and wrote a working Python script (token exchange -> score request -> upload -> poll), but never obtained real OAuth credentials. Docs explicitly state API access requires an Enterprise/Education admin to create Client ID/Secret via a sales-gated Admin panel, which the agent has no way to self-serve. The script's only execution ended at the credential-check guard clause with a non-zero exit, so no authenticated call to the actual Grammarly API was ever made.
  Event 46:

  ```text
  Who has access: Admins with Grammarly Enterprise and Grammarly for Education institution-wide licenses. Not a customer yet? Contact sales .
  ```
  Event 76:

  ```text
  Set GRAMMARLY_CLIENT_ID and GRAMMARLY_CLIENT_SECRET environment variables (Grammarly Enterprise/Education admin).
  exit=1
  ```
  Event 78:

  ```text
  I cannot verify a live end-to-end run without your GRAMMARLY_CLIENT_ID / GRAMMARLY_CLIENT_SECRET.
  ```

#### Hallucinated URLs
- **Guessed SDK/embed URLs that returned 404 and were dropped**: The agent probed three URLs it invented (not found anywhere in the fetched docs) to check for an old embeddable SDK: /sdk, /embed on developer.grammarly.com, and a guessed marketing path. All three 404'd and the agent immediately treated this as confirmation the SDK doesn't exist, rather than pursuing them further, so the guesses did not block progress.
  Event 58:

  ```text
  for u in "https://developer.grammarly.com/sdk" "https://developer.grammarly.com/embed" "https://www.grammarly.com/text-editor-sdk"; do
  ```
  Event 59:

  ```text
  https://developer.grammarly.com/sdk -> 404
  https://developer.grammarly.com/embed -> 404
  https://www.grammarly.com/text-editor-sdk -> 404
  ```

#### Blockers
- **API access gated behind Enterprise/Education sales contract**: Product behavior, not agent error: Grammarly's OAuth credentials for the API can only be minted by an admin on an Enterprise or Education institution-wide plan via the Admin panel, and non-customers are directed to Contact sales. This is a normal authentication/licensing wall consistent with a self-service test having no path to real credentials, so it is a session limitation rather than a product defect.
  Event 46:

  ```text
  Who has access: Admins with Grammarly Enterprise and Grammarly for Education institution-wide licenses. Not a customer yet? Contact sales .
  ```
  Event 78:

  ```text
  the friction is entirely organizational: you need an Enterprise/Education admin to create OAuth credentials (Client ID + Secret) in the Admin panel. I can't self-serve those.
  ```

#### Suggested Changes
- **Add a free or sandbox tier for the Writing Score API**: Docs at developer.grammarly.com/oauth-credentials.html state only Enterprise/Education admins can create OAuth credentials, forcing any evaluator or small developer into a sales call before writing a single line of working code. Adding a self-serve trial or sandbox credential path (checkable by having a new signup obtain a Client ID/Secret without a sales call) would let developers validate integrations like the one built in this session end-to-end.
  Event 46:

  ```text
  Who has access: Admins with Grammarly Enterprise and Grammarly for Education institution-wide licenses. Not a customer yet? Contact sales .
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/f235c8b8-ee78-49bd-be9e-df1dc05a47da) · [Read transcript](https://www.ax-check.com/grammarly.com/sessions/kimi.json)
Final output states SDK is free with end-user tiers (free vs Pro ~$12/mo billed annually) and REST APIs have no public pricing/free tier and require Enterprise/Education licensing — assumptions named per product/plan.
#### End-to-end onboarding
- **Onboarding needs a login**: Agent wrote two example files (SDK HTML page, Writing Score API script) but never obtained real credentials or called a live Grammarly endpoint. SDK client ID requires human sign-in at developer.grammarly.com/apps; Writing Score API requires an Enterprise/Education contract with admin-issued OAuth credentials. Both scripts remain placeholders (YOUR_CLIENT_ID, unset env vars); no authenticated request was executed.
  Event 90:

  ```text
  I can't run the SDK demo end-to-end myself**: the client ID requires a human to sign into a Grammarly account at developer.grammarly.com/apps. It's self-serve and takes ~2 minutes; paste the ID into `index.html` and it works.
  ```
  Event 90:

  ```text
  The REST API is fully blocked for me** — no self-serve credentials exist; it requires an Enterprise contract.
  ```
  Event 88:

  ```text
  syntax OK
  
  ```

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

#### Blockers
- **No self-serve credentials for Text Editor SDK**: Getting a client ID for the free SDK requires a human to sign in at developer.grammarly.com/apps; this is normal product authentication, not a defect, but it stopped the agent from running the demo end-to-end.
  Event 90:

  ```text
  the client ID requires a human to sign into a Grammarly account at developer.grammarly.com/apps
  ```
- **Writing Score REST API requires an Enterprise contract**: The Writing Score/Analytics/License/AI-Detection APIs have no public signup or free tier; OAuth credentials are only issued through an Enterprise or Education admin panel to existing customers, per the docs pulled at seq 27. This is a product access-tier limitation, not an agent error.
  Event 27:

  ```text
  Not a customer yet? Contact sales .
  ```
  Event 90:

  ```text
  The REST API is fully blocked for me — no self-serve credentials exist; it requires an Enterprise contract.
  ```

#### Suggested Changes
- **Add a working README or quickstart to the grammarly-for-developers GitHub repo**: The npm README links to 'Grammarly for Developers Code Examples on GitHub' and the agent tried fetching https://raw.githubusercontent.com/grammarly/grammarly-for-developers/main/README.md and https://api.github.com/repos/grammarly/grammarly-for-developers, both of which returned 'Not Found'. Confirm the repo is public with a valid README at the referenced path, then re-check the raw README URL returns 200.
  Event 47:

  ```text
  404: Not Found
  ```
  Event 52:

  ```text
  "message": "Not Found",
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/349faa27-51ec-48be-9dba-20d4faf9c414) · [Read transcript](https://www.ax-check.com/grammarly.com/sessions/qwen.json)
README.md and final summary state Core SDK is free, GrammarlyAI premium requires enterprise/per-seat sales pricing with no pay-as-you-go tier, and explicitly caveat 'as of this writing — verify at developer.grammarly.com/pricing' since the page is JS-rendered and couldn't be scraped.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained or used real Grammarly product credentials. It only verified that the SDK package exists on npm and that a CDN URL for the bundle resolves. The example page still contains a placeholder client ID, and the agent explicitly states it is blocked on the manual step of signing up for a client ID at developer.grammarly.com — a human-gated credential step it could not complete itself.
  Event 36:

  ```text
  Blocked on one manual step**: getting a client ID requires signing up at developer.grammarly.com with a human account — I can't automate that, so the demo won't fully activate until you paste your `CLIENT_ID` into `index.html`.
  ```
  Event 20:

  ```text
  const CLIENT_ID = "YOUR_CLIENT_ID_HERE"; // <-- paste your client ID
  ```
  Event 36:

  ```text
  I verified the CDN bundle URL returns 200 (and corrected the path — the IIFE bundle lives under `lib/`).
  ```

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

#### Blockers
- **No self-service way to get a Grammarly client ID**: Product behavior/session limitation: the SDK requires a client ID obtained by signing up as a human at developer.grammarly.com. The agent could not create this credential on its own, so the example cannot be authenticated or run end-to-end during the session. This is a normal login/signup requirement rather than a product defect.
  Event 36:

  ```text
  getting a client ID requires signing up at developer.grammarly.com with a human account — I can't automate that, so the demo won't fully activate until you paste your `CLIENT_ID` into `index.html`.
  ```
- **Pricing page could not be scraped**: Test environment limitation: the agent tried to curl the pricing page directly but got no output because the page is JS-rendered, so pricing details were written from general knowledge/assumption rather than confirmed page content.
  Event 17:

  ```text
  (no output)
  ```
  Event 36:

  ```text
  their page is JS-rendered so I couldn't scrape it
  ```
- **Wrong CDN sub-path guessed initially**: Agent error (self-corrected): the first index.html referenced the SDK bundle at the package root path, which 404'd; the agent caught this immediately via a HEAD request and fixed the path to the lib/ subfolder, which returned 200. This was a quickly recovered mistake, not a lasting blocker.
  Event 30:

  ```text
  HTTP/2 404 
  HTTP/2 200 
  
  ```
  Event 34:

  ```text
  Successfully replaced 1 block(s) in /sandbox/repo/index.html.
  ```

#### Suggested Changes
- **Add a copy-pasteable CDN script tag with correct path to the quickstart**: On the Text Editor SDK quickstart/docs page, show the exact jsDelivr/unpkg URL including the lib/ subpath (e.g. https://cdn.jsdelivr.net/npm/@grammarly/editor-sdk@<version>/lib/index.iife.js) since the root-level path 404s. Verify by confirming a fresh HEAD request against the documented URL returns 200 without trial and error.
  Event 30:

  ```text
  HTTP/2 404 
  HTTP/2 200 
  
  ```
- **Publish a static, crawlable pricing page**: The developer.grammarly.com/pricing page returned no scrapable content via curl, forcing the agent to rely on unverified assumptions about free vs. enterprise tiers. Add a server-rendered or static HTML summary of tiers so automated tools and quick curl checks can confirm pricing without executing JavaScript. Check by curling the page and confirming plan/price text appears in the raw HTML.
  Event 15:

  ```text
  curl -s --max-time 10 https://developer.grammarly.com/pricing -L | sed 's/<[^>]*>/ /g'
  ```
  Event 17:

  ```text
  (no output)
  ```

### Task given to each agent
Help me build a simple example using Grammarly. 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: D · 29/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 Markdown Accept header; no Markdown representation offered.
  ```

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

  ```text
  https://grammarly.com/llms.txt returns HTTP 404, so no documentation index exists.
  ```

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

  ```text
  No compact guide representation found; /llms.txt returns 404 and homepage Markdown is unsupported.
  ```

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

  ```text
  No llms.txt body was returned (404), so navigation guidance cannot be judged.
  ```

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

  ```text
  No llms.txt body was returned (404), so API/MCP/skills mentions cannot be judged.
  ```

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

  ```text
  No standalone Markdown guide or negotiated Markdown representation was fetched.
  ```

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

  ```text
  No compact guide was retrieved, so token budget cannot be measured.
  ```

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

  ```text
  Homepage Markdown is 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 upgrade pages.
  ```

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

  ```text
  Homepage install links (desktop, browser, mobile) and upgrade/pro next-step link returned HTTP 200.
  ```


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

  ```text
  No docs or quickstart pages were fetched; only a 404 llms.txt and a plan-selection page.
  ```

- **Skipped** — Installation commands are extractable

  ```text
  No installation or CLI guide was fetched, so no install commands are available to extract.
  ```

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

  ```text
  No API, SDK or docs pages were fetched, so no code examples could be observed.
  ```

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

  ```text
  No developer docs or API reference were fetched to show prerequisites or auth boundaries.
  ```


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

  ```text
  Pricing page renders Free $0, Pro $12, Enterprise contact sales without interaction.
  ```

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

  ```text
  Prices stated openly: Free $0/month, Pro $12/member/month billed annually, $30 monthly.
  ```

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

  ```text
  Units explicit: per month, per member, billed annually; AI prompt limits per plan.
  ```

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

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4 Pro: Final output gives concrete figures with named assumptions: 'Grammarly Pro ≈ $12/mo (annual, from Grammarly's plans page), Teams ~$15/user/mo — no API' vs 'Enterprise/Education — custom, sales-only', scraped live from grammarly.com/plans (seq 51). Kimi K3: Final output states SDK is free with end-user tiers (free vs Pro ~$12/mo billed annually) and REST APIs have no public pricing/free tier and require Enterprise/Education licensing — assumptions named per product/plan. Qwen 3.8 Max: README.md and final summary state Core SDK is free, GrammarlyAI premium requires enterprise/per-seat sales pricing with no pay-as-you-go tier, and explicitly caveat 'as of this writing — verify at developer.grammarly.com/pricing' since the page is JS-rendered and couldn't be scraped. This behavioural item does not affect the fast grade.
  ```


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

  ```text
  No API reference or OpenAPI spec was fetched; sample only covers homepage, 404, and upgrade pages.
  ```

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

  ```text
  No MCP server documentation was fetched in the supplied evidence.
  ```

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

  ```text
  No CLI install path was fetched; only desktop/browser apps appear in the 404 footer.
  ```

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

  ```text
  No SDK package registry lookup was supplied for any Grammarly developer package.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills documentation was fetched in the supplied evidence.
  ```



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