# AX Check: inngest.com
Checked 2026-09-30.

Inngest's docs and pricing are clear and immediately usable
21 of 23 checklist items pass: quickstarts are concrete and fit well within budget, and pricing states exact tiers and units with no gating.

## Onboarding needs a login

## Coding sessions
All three independent sessions completed the pricing task using the live pricing page. Each reported the Free, Pro ($99/mo), Business ($499/mo) and Enterprise tiers, with per-execution billing details and metered add-ons like events, concurrency and seats.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/85b41f97-1c9d-4917-98a8-bc9e64704c31) · [Read transcript](https://www.ax-check.com/inngest.com/sessions/deepseek.json)
Pricing table cites plan tiers, per-execution billing basis (1/run + 1/step), overage rates, and notes events/concurrency/seats are metered separately — sourced from inngest.com/pricing (get_web_activity seq 4/10/16).
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: The agent never obtained real Inngest credentials or performed any authenticated operation against the hosted product. It wrote a local SDK example and ran only offline/local checks (npm run check, npm run send which failed immediately on a missing key). No sign-up flow, API key issuance, or hosted call ever occurred.
  Event 68:

  ```text
  Missing INNGEST_EVENT_KEY. Copy .env.example and export it first.
  ```
  Event 61:

  ```text
  function id : onboard-user
  name        : Onboard user
  triggers    : [{"event":"app/user.signup"}]
  ```
  Event 71:

  ```text
  No `INNGEST_EVENT_KEY` / `INNGEST_SIGNING_KEY` exist in this environment.
  ```

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

#### Blockers
- **No self-service credentials available to reach the hosted product**: The sandbox environment had no Inngest event key or signing key, and the agent had no way to sign up or generate one without human interaction. This is a test-environment/missing-credentials limitation, not a product defect: Inngest's normal flow requires a human to sign up and copy keys from the dashboard.
  Event 68:

  ```text
  Missing INNGEST_EVENT_KEY. Copy .env.example and export it first.
  ```
  Event 71:

  ```text
  No `INNGEST_EVENT_KEY` / `INNGEST_SIGNING_KEY` exist in this environment.
  ```
- **Hosted execution requires a publicly reachable endpoint or a long-running local dev server**: Inngest Cloud triggers functions only by calling a publicly hosted /api/inngest endpoint, and the documented local alternative (inngest-cli dev) is a long-running local stack. Per the task's own constraints against starting local service stacks or long-running commands, the agent correctly declined both paths and stopped rather than fake a workaround. This reflects the product's architecture, not an agent error.
  Event 71:

  ```text
  Inngest Cloud only runs code at a **publicly reachable** `/api/inngest` URL — there's no "upload function" mode, so without a deployment there's nothing for it to call.
  ```
  Event 71:

  ```text
  The local alternative, `npx inngest-cli dev`, is exactly the **local service stack / long-running process** you told me not to start, so I didn't.
  ```

#### Suggested Changes
- **Add a no-signup sandbox event key for quickstart testing**: The quickstart/pricing docs assume a human completes sign-up in a browser to get INNGEST_EVENT_KEY and INNGEST_SIGNING_KEY; there is no API- or CLI-based path to provision a throwaway key. Consider adding a CLI command (e.g. a headless login or scoped trial-key API) so first-time evaluators can send a real event without a human copying dashboard values. Verify by having a fresh environment obtain a key and successfully POST to the Event API end-to-end without manual browser steps.
  Event 71:

  ```text
  No `INNGEST_EVENT_KEY` / `INNGEST_SIGNING_KEY` exist in this environment.
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/182be27d-0d53-4a7a-b79b-5b008138187c) · [Read transcript](https://www.ax-check.com/inngest.com/sessions/kimi.json)
Final output gives Free/Pro $99/Enterprise $499 tiers with the executions-per-run definition and add-on costs, sourced live from inngest.com/pricing (seq 61-63), plus a caveat to verify before budgeting.
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: Agent never created an Inngest Cloud account, obtained an event key or signing key, or sent a request that reached the hosted product with authentication. It ran the app locally, hit its own /api/inngest endpoint, and saw a 500 error demanding INNGEST_SIGNING_KEY (cloud mode) or INNGEST_DEV=1 (local dev). It chose the INNGEST_DEV=1 local-only path, which is explicitly a local mock/dev server, not the hosted product. No authenticated operation against Inngest's real backend was demonstrated.
  Event 52:

  ```text
  In cloud mode but no signing key found. For local dev, set the INNGEST_DEV=1 env var. For production, set the INNGEST_SIGNING_KEY env var
  ```
  Event 57:

  ```text
  {
      "extra": {
          "native_crypto": true
      },
      "has_event_key": false,
      "has_signing_key": false,
      "function_count": 2,
      "mode": "dev",
      "schema_version": "2024-05-24"
  }
  ```
  Event 65:

  ```text
  Inngest Cloud — requires signing up for an account to get an event key and signing key (and a publicly reachable app URL to sync against). I have no credentials and can't create an account, so `send-event.js` can't be run against the hosted product from here.
  ```

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

#### Blockers
- **No self-service path to Inngest Cloud credentials**: Running the function end-to-end against the real hosted product requires either the local dev server (npx inngest-cli dev, a long-running local service explicitly excluded by the task) or an Inngest Cloud account to obtain an event key and signing key. The agent had no way to create an account or obtain these credentials autonomously, so it could not exercise the hosted product. This is a session/environment limitation (no login flow available) rather than a product defect — needing a normal signup is expected for a SaaS product.
  Event 65:

  ```text
  Inngest Cloud — requires signing up for an account to get an event key and signing key (and a publicly reachable app URL to sync against). I have no credentials and can't create an account, so `send-event.js` can't be run against the hosted product from here.
  ```
- **Default serve endpoint fails without explicit dev/prod mode flag**: Starting the generated server.js and hitting /api/inngest with no environment variables set returned a 500 error rather than a helpful default, because the SDK assumes cloud/production mode unless INNGEST_DEV=1 or a signing key is present. This is product behavior (SDK's default assumption), and the agent correctly diagnosed and worked around it by setting INNGEST_DEV=1.
  Event 52:

  ```text
  In cloud mode but no signing key found. For local dev, set the INNGEST_DEV=1 env var. For production, set the INNGEST_SIGNING_KEY env var
  ```
- **Installed SDK's createFunction signature differs from example code the agent first wrote**: The agent's initial code used the older two-positional-argument form (id/options, then trigger object), but the installed SDK version 4.21.0 requires triggers nested inside the first options object. This caused a runtime TypeError on first load. It was an agent error based on outdated assumptions about the SDK API, quickly self-corrected after reading the error message and inspecting the type definitions.
  Event 31:

  ```text
  Error: "createFunction" expected a handler function as the second argument. Triggers belong in the first argument: createFunction({ id, triggers: { event: "..." } }, handler)
  ```

#### Suggested Changes
- **Return a clearer error or safe default from the serve handler when no mode is configured**: When neither INNGEST_SIGNING_KEY nor INNGEST_DEV is set, hitting the serve endpoint currently returns a generic 500 with the code internal_server_error and a console-only hint. Consider having the HTTP response body itself include the same actionable message ("set INNGEST_DEV=1 for local dev or INNGEST_SIGNING_KEY for production") so developers debugging via curl/browser see it without checking server logs. Verify by hitting GET /api/inngest with no env vars set and confirming the JSON response includes the guidance text.
  Event 52:

  ```text
  {"code":"internal_server_error"}
  ```
- **Update quickstart/example snippets to match current createFunction signature**: The two-argument createFunction({id}, {event}, handler) pattern the agent initially wrote (matching older docs/memory) fails against SDK 4.21.0, which requires triggers nested under the options object. Check the quickstart and example docs on the Inngest site for this outdated signature and update them to createFunction({id, triggers: {...}}, handler). Verify by copy-pasting the quickstart snippet into a fresh project with the current SDK version and confirming it runs without the "Triggers belong in the first argument" error.
  Event 31:

  ```text
  Error: "createFunction" expected a handler function as the second argument. Triggers belong in the first argument: createFunction({ id, triggers: { event: "..." } }, handler)
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/3b56b71d-446e-44c8-8884-98a8274b3cc7) · [Read transcript](https://www.ax-check.com/inngest.com/sessions/qwen.json)
Final output gives Free/Pro/Enterprise tier figures (100k runs, ~$60/mo for 1M runs) and states assumptions: billed per run not per step, self-hosted option pays only infra, and notes to check current pricing on inngest.com.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained real Inngest Cloud credentials. It only ran the SDK's serve handler locally without a signing key, which returned a local 500 error, then retried with a fabricated dummy key string, which produced a local 'Unauthorized' response. No signup, API call, or credential-issuance step touched the real Inngest product. The agent explicitly states it does not have real Inngest Cloud keys and that end-to-end verification requires the user's real signing/event keys and a public deployment, which never happened.
  Event 40:

  ```text
  In cloud mode but no signing key found. For local dev, set the INNGEST_DEV=1 env var. For production, set the INNGEST_SIGNING_KEY env var
  ```
  Event 44:

  ```text
  {"message":"Unauthorized"}
  ```
  Event 46:

  ```text
  End-to-end runs require your real Inngest Cloud keys, which I don't have — but nothing is blocked; the example is complete.
  ```

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

#### Blockers
- **No real Inngest Cloud credentials available**: The agent cannot self-service sign up for Inngest or mint signing/event keys, so it could not test the function against the actual hosted service. It substituted a fabricated placeholder signing key to produce a local 401, calling this sufficient. This is a missing-credentials limitation of the test setup, not a product defect — normal SaaS products require account signup and key provisioning.
  Event 43:

  ```text
  INNGEST_SIGNING_KEY="signingkey-test-000000000000000000000000000000000000000000000000" node server.js
  ```
  Event 46:

  ```text
  End-to-end runs require your real Inngest Cloud keys, which I don't have — but nothing is blocked; the example is complete.
  ```
- **SDK v4 createFunction signature mismatch caused initial crash**: The agent wrote code using an older two-argument createFunction call style, which crashed immediately against the installed v4 SDK because triggers must live in the first argument object. This is an agent authoring error (using outdated API knowledge) rather than a product defect, and it was self-corrected within two tool calls.
  Event 20:

  ```text
  Error: "createFunction" expected a handler function as the second argument. Triggers belong in the first argument: createFunction({ id, triggers: { event: "..." } }, handler)
  ```

#### Suggested Changes
- **Surface the v4 createFunction signature change more prominently in generated/scaffolded examples**: The agent's first attempt used the deprecated two-object createFunction call, crashing on the currently installed inngest@4.21.0 package. If any quickstart templates or in-repo type hints still reflect the older signature, updating them to the triggers-in-first-argument form (as seen in the runtime error message) would prevent this failure for new SDK users going in cold.
  Event 20:

  ```text
  Error: "createFunction" expected a handler function as the second argument. Triggers belong in the first argument: createFunction({ id, triggers: { event: "..." } }, handler)
  ```

### Task given to each agent
Help me build a simple example using Inngest. 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 for a Markdown Accept header; no Markdown representation offered.
  ```

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

  ```text
  llms.txt links to docs, quickstarts, SDK references, examples and a full single-file index.
  ```

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

  ```text
  llms.txt organizes docs into Learn, Reference, Examples with nested navigation guidance.
  ```

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

  ```text
  llms.txt links to Inngest MCP, Agent Plugins and Skills, and REST API docs.
  ```

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

  ```text
  llms.txt and docs-markdown routes serve Inngest docs as Markdown, e.g. quickstarts and agent-skills pages.
  ```

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

  ```text
  Next.js and Node.js quickstarts fetched as text/markdown with concrete install, dev server, and function steps.
  ```

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

  ```text
  Markdown quickstarts measure ~2,000-3,300 tokens, well under the 8,000-token budget.
  ```

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

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

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

  ```text
  Next.js and Node.js quickstarts give concrete install, dev server, client, function and trigger steps.
  ```

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

  ```text
  Fetched quickstart pages and their Markdown variants all returned HTTP 200.
  ```


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

  ```text
  llms.txt and homepage link to Next.js, Node.js, and Python quickstarts with concrete steps.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Quickstarts show npm/yarn/pnpm/bun install and CLI install via curl or npx.
  ```

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

  ```text
  Quickstarts embed full TypeScript, JSON, and shell code examples inline without interaction.
  ```

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

  ```text
  CLI guide states API key prerequisite and where to create it in dashboard.
  ```


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

  ```text
  Pricing page renders all plan tiers, limits and prices as static text without interaction.
  ```

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

  ```text
  Free $0, Pro $99/mo, Business $499/mo stated; Enterprise contact-sales.
  ```

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

  ```text
  Units explicit: executions, events, seats, concurrency, span data with overage rates.
  ```

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

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4.1 Flash: Pricing table cites plan tiers, per-execution billing basis (1/run + 1/step), overage rates, and notes events/concurrency/seats are metered separately — sourced from inngest.com/pricing (get_web_activity seq 4/10/16). Kimi K3: Final output gives Free/Pro $99/Enterprise $499 tiers with the executions-per-run definition and add-on costs, sourced live from inngest.com/pricing (seq 61-63), plus a caveat to verify before budgeting. Qwen 3.8 Max: Final output gives Free/Pro/Enterprise tier figures (100k runs, ~$60/mo for 1M runs) and states assumptions: billed per run not per step, self-hosted option pays only infra, and notes to check current pricing on inngest.com. This behavioural item does not affect the fast grade.
  ```


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

  ```text
  api-docs.inngest.com serves the REST API reference and links the v2 OpenAPI spec JSON.
  ```

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

  ```text
  MCP docs give Cloud and Dev Server endpoints, auth, client configs, and tool lists.
  ```

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

  ```text
  CLI page documents curl, brew, and npm install paths plus npx inngest-cli usage.
  ```

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

  ```text
  npm registry lookups for inngest and inngest-cli both returned HTTP 200.
  ```

- **Pass** — Agent skills are published

  ```text
  Agent skills page and inngest-skills repo publish installable SKILL.md-based skills.
  ```



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