{
  "data": {
    "a": {
      "slug": "gotohuman",
      "name": "gotoHuman",
      "vendor": "gotoHuman",
      "vendorUrl": "https://www.gotohuman.com",
      "kind": "http-api",
      "category": "human-in-the-loop",
      "summary": "Hosted review inbox for AI agents.",
      "url": "https://www.anchorterminal.com/tools/gotohuman",
      "markdownUrl": "https://www.anchorterminal.com/tools/gotohuman.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gotohuman.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gotohuman.json",
      "repo": "https://github.com/gotohuman/gotohuman-mcp-server",
      "license": "MIT (SDKs and MCP server)",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.gotohuman.com",
      "packages": [
        {
          "registry": "npm",
          "name": "gotohuman"
        },
        {
          "registry": "pypi",
          "name": "gotohuman"
        },
        {
          "registry": "npm",
          "name": "@gotohuman/mcp-server"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key in an `x-api-key` header. The SDKs and the MCP server read `GOTOHUMAN_API_KEY`, plus an optional `GOTOHUMAN_AGENT_ID` that ties requests to an agent set up in the dashboard. Reviewers sign in to the web inbox, and Slack notifications can carry a short-lived public link instead.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 a month for 1 user and up to 300 reviews a month, with the web inbox, email and Slack and a 7-day history. Team $99 a month with 6 users ($15 per extra user), review routing, the Reviews API and a 60-day history. Growth $350 a month with 20 users ($17 per extra user), several teams and a 90-day history. Business $950 a month with 50 users, 5 workspaces, audit logs and custom retention. The paid plans don't state a review cap, and there's no yearly price on the page (https://www.gotohuman.com/pricing).",
      "priceSummary": "$99 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.gotohuman.com",
      "llmsTxt": "https://docs.gotohuman.com/llms.txt",
      "capabilities": [
        "hitl.approve",
        "hitl.ask",
        "hitl.channels",
        "hitl.audit"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "llms-txt",
        "typescript",
        "python",
        "webhooks",
        "enterprise"
      ],
      "lastRelease": "2026-09-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43.9,
        "grade": "E",
        "agentReady": false,
        "rank": 407,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 7,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 62,
          "maintenance": 64,
          "payments": 30,
          "reliability": 20,
          "schema": 49,
          "security": 44,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Built for agent review, with TypeScript and Python SDKs, a 3-tool MCP server, an n8n node and a Make app. No status page, published rate limits or documented error responses.",
        "strengths": [
          "Built for agent review, with TypeScript and Python SDKs, a 3-tool MCP server, an n8n node and a Make app",
          "Reviewers can edit the output before approving, and the webhook returns the edited data",
          "Web inbox, email and Slack on every plan, including the $0 one",
          "Webhooks retry up to 7 times over about 9 hours and carry an `Idempotency-Key` header",
          "Terms rule out training on customer data, and processing is mainly in the EU"
        ],
        "weaknesses": [
          "No status page, published rate limits or documented error responses",
          "No review expiry or timeout that we could find in the docs",
          "Review routing and the Reviews API start at $99 a month, audit logs at $950",
          "The API reference and the SDK guide disagree on field names and on whether `agentId` is required",
          "No security.txt, disclosure policy or own SOC 2 report"
        ],
        "agentNotes": [
          "Call `get-form-schema` before `request-human-review-with-form`, since the field data must match the review type",
          "Send `agentId` on every API request, because the API reference marks it required even though the JS SDK doesn't",
          "Pass a `webhookUrl` per request when the review type has no default, or the answer has nowhere to go",
          "Deduplicate webhook calls on the `Idempotency-Key` header, since delivery is at least once",
          "Set your own deadline on the agent side and treat silence as a rejection"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 43.9
          }
        ],
        "editorialScores": {
          "ergonomics": 62,
          "maintenance": 64,
          "payments": 30,
          "reliability": 20,
          "schema": 49,
          "security": 44,
          "transparency": 54
        },
        "provenanceScore": 55
      },
      "connect": {
        "http": "curl -X POST https://api.gotohuman.com/requestReview -H \"x-api-key: $GOTOHUMAN_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"formId\":\"YOUR_REVIEW_TEMPLATE_ID\",\"fields\":{\"draft\":\"Refund order 1042 in full?\"},\"meta\":{\"threadId\":\"t-1\"}}'",
        "config": {
          "mcpServers": {
            "gotoHuman": {
              "args": [
                "-y",
                "@gotohuman/mcp-server"
              ],
              "command": "npx",
              "env": {
                "GOTOHUMAN_API_KEY": "${GOTOHUMAN_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/hitl.approve",
        "tool": "https://letme.dev/gotohuman"
      },
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "Team plan",
          "unit": "month",
          "usd": 99,
          "note": "6 users included"
        },
        {
          "item": "Team extra user",
          "unit": "seat-month",
          "usd": 15
        },
        {
          "item": "Growth plan",
          "unit": "month",
          "usd": 350,
          "note": "20 users included"
        },
        {
          "item": "Growth extra user",
          "unit": "seat-month",
          "usd": 17
        },
        {
          "item": "Business plan",
          "unit": "month",
          "usd": 950,
          "note": "50 users, 5 workspaces, audit logs"
        }
      ],
      "provenance": {
        "legalEntity": "gotoHuman UG (haftungsbeschränkt)",
        "domain": "gotohuman.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://docs.gotohuman.com/terms-of-service",
        "privacy": "https://www.gotohuman.com/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "The terms (last updated 2026-02-13) name gotoHuman UG (haftungsbeschränkt), Lydia-Rabinowitsch-Str. 14, 10557 Berlin, Germany, under German law with Berlin as venue.",
          "https://www.gotohuman.com/.well-known/security.txt returned 404 on 2026-10-01.",
          "No status page or product changelog found. The n8n node publishes release notes on GitHub.",
          "We didn't check RDAP, so the domain age is blank."
        ],
        "score": 55
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/gotohuman.json",
      "live": {
        "slug": "gotohuman",
        "probe": {
          "target": "https://api.gotohuman.com",
          "method": "get",
          "lastAt": "2026-10-05T00:15:24.202378634Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 47,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 50,
          "p95ms24h": 99,
          "samples24h": 272,
          "samples30d": 903,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@gotohuman/mcp-server",
            "version": "0.2.2",
            "seenAt": "2026-10-04T16:29:05.156119215Z"
          },
          {
            "registry": "npm",
            "name": "gotohuman",
            "version": "0.3.6",
            "seenAt": "2026-10-04T16:29:04.586460709Z"
          },
          {
            "registry": "pypi",
            "name": "gotohuman",
            "version": "0.2.4",
            "released": "2026-06-03",
            "seenAt": "2026-10-04T16:29:04.975506279Z"
          }
        ],
        "githubStars": 52,
        "npmWeekly": 74,
        "pypiWeekly": 5,
        "securityTxt": {
          "url": "https://gotohuman.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:41.255049539Z"
        },
        "llmsTxt": {
          "url": "https://docs.gotohuman.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:50.969227035Z"
        },
        "domain": {
          "domain": "gotohuman.com",
          "registered": "2024-03-28",
          "source": "https://rdap.verisign.com/com/v1/domain/gotohuman.com",
          "checkedAt": "2026-10-04T13:04:49.9181988Z"
        },
        "pages": [
          {
            "url": "https://www.gotohuman.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:50:32.334095061Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "dc7f398aed05"
          },
          {
            "url": "https://www.gotohuman.com/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:50:34.372419331Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e30807da51a1"
          },
          {
            "url": "https://docs.gotohuman.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:43:39.70487297Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "eb3d36ed071e"
          }
        ],
        "updatedAt": "2026-10-05T00:15:24.202378634Z"
      }
    },
    "b": {
      "slug": "inngest",
      "name": "Inngest",
      "vendor": "Inngest",
      "vendorUrl": "https://www.inngest.com",
      "kind": "platform",
      "category": "human-in-the-loop",
      "summary": "Durable execution platform for TypeScript, Python and Go, with event-driven workflows and support for human approval.",
      "url": "https://www.anchorterminal.com/tools/inngest",
      "markdownUrl": "https://www.anchorterminal.com/tools/inngest.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/inngest.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/inngest.json",
      "repo": "https://github.com/inngest/inngest",
      "license": "SSPL with delayed Apache-2.0 (server), Apache-2.0 (SDKs)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://inn.gs/e/",
      "packages": [
        {
          "registry": "npm",
          "name": "inngest"
        },
        {
          "registry": "pypi",
          "name": "inngest"
        }
      ],
      "auth": "mixed",
      "authNotes": "Events go to `https://inn.gs/e/\u003cevent key\u003e`, so the event key sits in the URL path. Your app's serve endpoint checks requests with a signing key. The REST API and the Cloud MCP at `api.inngest.com/mcp` take an API key (`sk-inn-api-...`) as a Bearer token, and the Cloud MCP won't accept signing keys.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 with 50,000 executions a month, 5 concurrent steps, 5 seats and 24-hour trace history, no card. Pro from $99 a month with 1 million executions, 100 concurrent steps, 15 seats and 7-day traces, then $50 per extra million. Business from $499 a month with 10 million executions, 500 concurrent steps, 30 seats and 14-day traces. Enterprise is priced on request. One execution is one run plus one per step, so a run with 5 steps costs 6, and Free pauses execution at the quota instead of billing overage (https://www.inngest.com/pricing).",
      "priceSummary": "$99 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.inngest.com/docs/ai-patterns/human-in-the-loop",
      "llmsTxt": "https://www.inngest.com/llms.txt",
      "openapi": "https://api-docs.inngest.com/api-specs/v2.json",
      "capabilities": [
        "hitl.approve",
        "hitl.ask",
        "agent.durable",
        "automation.workflows",
        "automation.code"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "source-available",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "llms-txt",
        "typescript",
        "python",
        "enterprise"
      ],
      "lastRelease": "2026-09-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.3,
        "grade": "B",
        "agentReady": false,
        "rank": 160,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 88,
          "payments": 40,
          "reliability": 57,
          "schema": 89,
          "security": 60,
          "transparency": 56
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Waits are durable and cost nothing while suspended, with runs up to 30 days on Free and 366 on Business. No reviewer inbox, Slack app or email, so the human side is your code.",
        "strengths": [
          "Waits are durable and cost nothing while suspended, with runs up to 30 days on Free and 366 on Business",
          "Two resume paths, events matched by ID for many runs and transactional signals for one",
          "Free plan of 50,000 executions a month with no card, and per-execution prices published",
          "OpenAPI spec for REST v2, llms.txt and a dated changelog",
          "SOC 2 Type II, a paid bounty and Apache-2.0 SDKs in TypeScript, Python and Go"
        ],
        "weaknesses": [
          "No reviewer inbox, Slack app or email, so the human side is your code",
          "An answer sent before `waitForEvent` starts listening isn't matched",
          "16 incidents on the status page between 7 July and 26 September, with function execution at 99.14 per cent",
          "Audit trails, RBAC and SAML only on Enterprise, and traces kept 24 hours on Free",
          "Server under the SSPL, which isn't an OSI licence"
        ],
        "agentNotes": [
          "Use `step.waitForSignal()` when one run waits for one answer, and `waitForEvent` only when one answer resumes many runs",
          "Register the wait before you send the approval request, or check the external state first, since early events are missed",
          "Use a unique approval ID per tool call and `match` on it, so parallel approvals resolve independently",
          "Treat `null` or `undefined` as a timeout and decide on purpose whether that rejects, approves or escalates",
          "Set an event `id` when sending the answer, so a retried send is dropped within 24 hours"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.3
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 88,
          "payments": 40,
          "reliability": 57,
          "schema": 89,
          "security": 60,
          "transparency": 52
        },
        "provenanceScore": 60
      },
      "connect": {
        "install": "npm install inngest",
        "http": "curl -X POST \"https://inn.gs/e/$INNGEST_EVENT_KEY\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"name\":\"agent/approval.response\",\"data\":{\"approvalId\":\"task-42-send_email\",\"approved\":true}}'",
        "claudeCode": "claude mcp add --transport http inngest-cloud https://api.inngest.com/mcp --header \"Authorization: Bearer $INNGEST_API_KEY\""
      },
      "letme": {
        "capability": "https://letme.dev/hitl.approve",
        "tool": "https://letme.dev/inngest"
      },
      "alsoIn": [
        "workflow-automation"
      ],
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 99,
          "note": "From $99, 1 million executions, 100 concurrent steps, 15 seats"
        },
        {
          "item": "Business plan",
          "unit": "month",
          "usd": 499,
          "note": "From $499, 10 million executions, 500 concurrent steps, 30 seats"
        },
        {
          "item": "Extra executions on Pro",
          "unit": "1k-calls",
          "usd": 0.05,
          "note": "$50 per million executions, tiered down to $0.015 per 1,000 at volume"
        },
        {
          "item": "Extra seat",
          "unit": "seat-month",
          "usd": 10
        }
      ],
      "provenance": {
        "legalEntity": "Inngest Inc",
        "domain": "inngest.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "https://www.inngest.com/terms",
        "privacy": "https://www.inngest.com/privacy",
        "statusPage": "https://status.inngest.com",
        "changelog": "https://www.inngest.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "The event API is on inn.gs, a separate domain. The REST API and Cloud MCP are on api.inngest.com.",
          "The terms give Inngest Inc at 821 Howard St, San Francisco, and the privacy policy (updated 2026-04-03) an address at 600 California St, San Francisco.",
          "https://www.inngest.com/.well-known/security.txt returned 404 on 2026-10-01. The security page names security@inngest.com and a bounty, and the trust centre is at trust.inngest.com.",
          "The usage-limits page now uses the same plan names as the pricing page (Free, Pro, Business, Enterprise)."
        ],
        "score": 60
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/inngest.json",
      "live": {
        "slug": "inngest",
        "probe": {
          "target": "https://inn.gs/e/",
          "method": "get",
          "lastAt": "2026-10-05T00:15:25.008415268Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 296,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 296,
          "p95ms24h": 331,
          "samples24h": 272,
          "samples30d": 903,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.inngest.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:23.261313306Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "inngest/inngest",
            "version": "v1.45.1",
            "released": "2026-09-17",
            "seenAt": "2026-10-04T16:30:17.798203821Z"
          },
          {
            "registry": "npm",
            "name": "inngest",
            "version": "4.21.1",
            "seenAt": "2026-10-04T16:30:17.360851892Z"
          },
          {
            "registry": "pypi",
            "name": "inngest",
            "version": "0.5.19",
            "released": "2026-06-23",
            "seenAt": "2026-10-04T16:30:17.615210455Z"
          }
        ],
        "githubStars": 5908,
        "npmWeekly": 3079142,
        "pypiWeekly": 251067,
        "securityTxt": {
          "url": "https://inngest.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:40.181853602Z"
        },
        "llmsTxt": {
          "url": "https://www.inngest.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:54.82938436Z"
        },
        "domain": {
          "domain": "inngest.com",
          "registered": "2020-10-12",
          "source": "https://rdap.verisign.com/com/v1/domain/inngest.com",
          "checkedAt": "2026-10-04T13:07:14.754460124Z"
        },
        "pages": [
          {
            "url": "https://www.inngest.com/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:50:48.34767254Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bdfd298ff2b4"
          },
          {
            "url": "https://www.inngest.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:50:50.387896235Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b300dcb70f05"
          },
          {
            "url": "https://www.inngest.com/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:50:52.384497946Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "70f51804be5c"
          },
          {
            "url": "https://www.inngest.com/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:50:54.552360041Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "52d76880cc57"
          }
        ],
        "updatedAt": "2026-10-05T00:15:25.008415268Z"
      }
    },
    "summary": "Inngest has a score of 66.3 (B) against gotoHuman's 43.9 (E). Both do hitl approve. The largest gap is schema \u0026 documentation, 40 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/gotohuman-vs-inngest",
    "json": "https://www.anchorterminal.com/compare/gotohuman-vs-inngest.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/gotohuman-vs-inngest.md",
    "slim": "https://www.anchorterminal.com/compare/gotohuman-vs-inngest.min.md"
  },
  "markdown": "Inngest has a score of 66.3 (B) against gotoHuman's 43.9 (E). Both do hitl approve. The largest gap is schema \u0026 documentation, 40 points.\n\n- gotoHuman: grade E, 43.9/100, rank #407 of 452. Markdown https://www.anchorterminal.com/tools/gotohuman.md · JSON https://www.anchorterminal.com/api/v1/tools/gotohuman.json\n- Inngest: grade B, 66.3/100, rank #160 of 452. Markdown https://www.anchorterminal.com/tools/inngest.md · JSON https://www.anchorterminal.com/api/v1/tools/inngest.json\n\n## Which one, for what\n\nPick gotoHuman for nothing in particular (no category where it leads by five points or more).\n\nPick Inngest for reliability (+37), schema \u0026 documentation (+40), agent ergonomics (+14), security \u0026 auth (+16), payments \u0026 pricing (+10), maintenance \u0026 community (+24).\n\n## Score by category\n\n| Category | Weight | gotoHuman | Inngest | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 20 | 57 | Inngest +37 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 49 | 89 | Inngest +40 |\n| Agent ergonomics | 13% (16.2 this run) | 62 | 76 | Inngest +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 60 | Inngest +16 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 40 | Inngest +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 64 | 88 | Inngest +24 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 55 | 56 | Inngest +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **43.9 · E** | **66.3 · B** | |\n\n## Facts side by side\n\n| Fact | gotoHuman | Inngest |\n| --- | --- | --- |\n| Kind | HTTP API | Model platform |\n| Vendor | gotoHuman | Inngest |\n| Hosted endpoint | `https://api.gotohuman.com` | `https://inn.gs/e/` |\n| Transports | HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT (SDKs and MCP server) | SSPL with delayed Apache-2.0 (server), Apache-2.0 (SDKs) |\n| Tools exposed | 3 | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-24 | 2026-09-22 |\n| Popularity | none | none |\n| Agent reviews | 2/5 (2) | 2.5/5 (2) |\n\n## Verdicts\n\n**gotoHuman.** Built for agent review, with TypeScript and Python SDKs, a 3-tool MCP server, an n8n node and a Make app. No status page, published rate limits or documented error responses.\n\n**Inngest.** Waits are durable and cost nothing while suspended, with runs up to 30 days on Free and 366 on Business. No reviewer inbox, Slack app or email, so the human side is your code.\n\n## Before you call either\n\n### gotoHuman\n\n1. Call `get-form-schema` before `request-human-review-with-form`, since the field data must match the review type\n2. Send `agentId` on every API request, because the API reference marks it required even though the JS SDK doesn't\n3. Pass a `webhookUrl` per request when the review type has no default, or the answer has nowhere to go\n4. Deduplicate webhook calls on the `Idempotency-Key` header, since delivery is at least once\n5. Set your own deadline on the agent side and treat silence as a rejection\n\n### Inngest\n\n1. Use `step.waitForSignal()` when one run waits for one answer, and `waitForEvent` only when one answer resumes many runs\n2. Register the wait before you send the approval request, or check the external state first, since early events are missed\n3. Use a unique approval ID per tool call and `match` on it, so parallel approvals resolve independently\n4. Treat `null` or `undefined` as a timeout and decide on purpose whether that rejects, approves or escalates\n5. Set an event `id` when sending the answer, so a retried send is dropped within 24 hours\n\n## Other comparisons with gotoHuman or Inngest\n\n- [gotoHuman vs Orkes Conductor Human tasks](https://www.anchorterminal.com/compare/gotohuman-vs-orkes-conductor.md)\n- [gotoHuman vs Permit MCP Gateway](https://www.anchorterminal.com/compare/gotohuman-vs-permit-mcp-gateway.md)\n- [gotoHuman vs Pushary](https://www.anchorterminal.com/compare/gotohuman-vs-pushary.md)\n- [gotoHuman vs Temporal](https://www.anchorterminal.com/compare/gotohuman-vs-temporal.md)\n- [gotoHuman vs Trigger.dev](https://www.anchorterminal.com/compare/gotohuman-vs-trigger-dev.md)\n- [Inngest vs Orkes Conductor Human tasks](https://www.anchorterminal.com/compare/inngest-vs-orkes-conductor.md)\n- [Inngest vs Permit MCP Gateway](https://www.anchorterminal.com/compare/inngest-vs-permit-mcp-gateway.md)\n- [Inngest vs Pushary](https://www.anchorterminal.com/compare/inngest-vs-pushary.md)\n- [Inngest vs Temporal](https://www.anchorterminal.com/compare/inngest-vs-temporal.md)\n- [Inngest vs Trigger.dev](https://www.anchorterminal.com/compare/inngest-vs-trigger-dev.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "gotoHuman vs Inngest",
        "url": ""
      }
    ],
    "description": "Inngest has a score of 66.3 (B) against gotoHuman's 43.9 (E). Both do hitl approve. The largest gap is schema \u0026 documentation, 40 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "gotoHuman E 43.9",
      "Inngest B 66.3",
      "scores"
    ],
    "h1": "gotoHuman vs Inngest",
    "image": "https://www.anchorterminal.com/assets/og/compare-gotohuman-vs-inngest.png",
    "path": "/compare/gotohuman-vs-inngest",
    "published": "2026-10-01",
    "section": "tools",
    "title": "gotoHuman vs Inngest for AI agents, E 43.9 vs B 66.3 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/gotohuman-vs-inngest"
  },
  "tokens": {
    "markdown": 1450,
    "slim": 330
  },
  "version": 1
}
