# Restate vs withHuman > Restate scores 73.3 (BB) on agent readiness against withHuman's 51.8 (D), and leads in 5 of 7 scored categories. withHuman leads on security & auth. Both do hitl approve. Category scores, facts, verdicts and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/restate-vs-withhuman - Markdown: https://www.anchorterminal.com/compare/restate-vs-withhuman.md (~2,150 tokens) - Slim: https://www.anchorterminal.com/compare/restate-vs-withhuman.min.md (~730 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/restate-vs-withhuman.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-08 Restate scores 73.3 (BB) on agent readiness against withHuman's 51.8 (D), and leads in 5 of 7 scored categories. withHuman leads on security & auth. Both do hitl approve. - Restate: grade BB, 73.3/100, rank #78 of 722. Markdown https://www.anchorterminal.com/tools/restate.md · JSON https://www.anchorterminal.com/api/v1/tools/restate.json - withHuman: grade D, 51.8/100, rank #573 of 722. Markdown https://www.anchorterminal.com/tools/withhuman.md · JSON https://www.anchorterminal.com/api/v1/tools/withhuman.json ## Which one, for what ### Restate (BB) Good for: A team that already writes agent steps as durable handlers and wants a long, cheap wait for a human answer in TypeScript, Python, Java, Go or Rust, with the option to self-host. Ahead on: - Reliability, 91 against 16 - Agent ergonomics, 81 against 74 - Payments & pricing, 40 against 30 - Maintenance & community, 92 against 49 Also in its favour: - Agent-ready, a grade of BB or better - Free to start without a card Watch for: No reviewer inbox, Slack app or email. The approval request and the reply endpoint are the builder's code ### withHuman (D) Good for: Teams that want tool calls from coding agents or their own agents held for approval by rules, with escalation and an audit log, and no review UI to build. Ahead on: - Security & auth, 73 against 61 Also in its favour: - A hosted endpoint, with nothing to install Watch for: The terms say the service is in early access, and the API document is version 0.1.0 ## Score by category | Category | Weight | Restate | withHuman | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 91 | 16 | Restate +75 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 85 | 81 | Restate +4 | | Agent ergonomics | 13% (16.2 this run) | 81 | 74 | Restate +7 | | Security & auth | 14% (17.5 this run) | 61 | 73 | withHuman +12 | | Payments & pricing | 10% (12.5 this run) | 40 | 30 | Restate +10 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 92 | 49 | Restate +43 | | Transparency & trust | 7% (8.8 this run) | 50 | 53 | withHuman +3 | | Negative events | ≤15 | 0 | -2 | | | **Total** | | **73.3 · BB** | **51.8 · D** | | ## Facts side by side | Fact | Restate | withHuman | | --- | --- | --- | | Kind | Model platform | HTTP API | | Vendor | Restate GmbH | Metoro Inc | | Hosted endpoint | no (local only) | `https://app.withhuman.ai` | | Transports | HTTP | HTTP | | Auth | API key | OAuth or key | | Pricing | Freemium | Freemium | | x402 | no | no | | Licence | BSL 1.1 converting to Apache-2.0 four years after release (server), MIT (SDKs) | Proprietary hosted service under Metoro Inc's terms. The site describes an open-source edition, but the repository it links to returned 404 on 8 October 2026 | | Read-only variant documented | no | no | | llms.txt | yes | yes | | Last release | 2026-10-01 | 2026-10-08 | | Terms last updated | couldn't be read | 2026-09-04 | | Privacy policy last updated | no document linked | 2026-09-04 | | Customer content may train models | couldn't be read | not found in the text | | Terms restrict automated access | couldn't be read | not found in the text | | Terms restrict benchmarking | couldn't be read | not found in the text | | Terms or service can change without notice | couldn't be read | not found in the text | | Arbitration or class-action waiver | couldn't be read | not found in the text | | Popularity | 4.5k stars, 329k npm/wk, 76k PyPI/wk | none | ## Verdicts **Restate.** An awakeable pauses a handler at no compute cost and resumes it from one HTTP request, with a durable timeout, on a free plan of 100,000 actions a month. Restate sends nothing to the approver, so the Slack message, email or inbox is the builder's code, and the published terms and privacy statement predate the paid plans. **withHuman.** The approval API is small and carefully specified, with a public OpenAPI 3.1 document, mandatory idempotency keys and agent credentials that can never approve. The service is in early access under its own terms, with no status page, published rate limits or changelog, and the open-source repository the site links to returned 404 on 8 October 2026. ## Before you call either ### Restate 1. Create the awakeable, send its ID inside `ctx.run`, then await the promise, so a retry doesn't send a second approval request 2. Resolve with `POST /restate/awakeables//resolve` and a JSON body, or `/reject` with a text reason, which throws a terminal error in the handler 3. On Restate Cloud send `Authorization: Bearer key_...` to `https://.env..restate.cloud:8080`. On a self-hosted server put an authenticating proxy in front of port 8080 4. Wrap the wait in `orTimeout` and decide what a timeout means. Without it the handler waits with no limit 5. Retry ingress errors only on 408, 425, 429 or 5xx, and only when `x-restate-error-source` isn't `invocation` ### withHuman 1. Send an `Idempotency-Key` header on `POST /api/aap/v1/requests`. The call answers 400 without one 2. Read the decision with `GET /api/aap/v1/requests/{id}?wait=30s` and repeat while `status` is `pending`. `wait` is capped at 30 seconds 3. Set `timeout` between one second and seven days, and treat `expired` and `cancelled` as a refusal 4. Start an approved call within five minutes of `decided_at`, because the decision carries an `expires_at` 5. Cancel a request when you stop waiting, so reviewers stop seeing it ## Questions ### Which is better for AI agents, Restate or withHuman? Restate scores 73.3 (BB) on agent readiness against withHuman's 51.8 (D), and leads in 5 of 7 scored categories. withHuman leads on security & auth. ### Can an agent call Restate and withHuman without installing anything? No hosted endpoint is listed for Restate. withHuman has a hosted endpoint at https://app.withhuman.ai. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/restate-vs-withhuman.json, and with the fewest tokens: https://www.anchorterminal.com/compare/restate-vs-withhuman.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "restate", "b": "withhuman"}`. From a terminal: `anchor compare restate withhuman` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/restate.json and https://www.anchorterminal.com/api/v1/tools/withhuman.json ## Other comparisons with Restate or withHuman - [gotoHuman vs Restate](https://www.anchorterminal.com/compare/gotohuman-vs-restate.md) - [gotoHuman vs withHuman](https://www.anchorterminal.com/compare/gotohuman-vs-withhuman.md) - [Inngest vs Restate](https://www.anchorterminal.com/compare/inngest-vs-restate.md) - [Inngest vs withHuman](https://www.anchorterminal.com/compare/inngest-vs-withhuman.md) - [Orkes Conductor Human tasks vs Restate](https://www.anchorterminal.com/compare/orkes-conductor-vs-restate.md) - [Orkes Conductor Human tasks vs withHuman](https://www.anchorterminal.com/compare/orkes-conductor-vs-withhuman.md) - [Permit MCP Gateway vs Restate](https://www.anchorterminal.com/compare/permit-mcp-gateway-vs-restate.md) - [Permit MCP Gateway vs withHuman](https://www.anchorterminal.com/compare/permit-mcp-gateway-vs-withhuman.md) - [Pushary vs Restate](https://www.anchorterminal.com/compare/pushary-vs-restate.md) - [Pushary vs withHuman](https://www.anchorterminal.com/compare/pushary-vs-withhuman.md) - [Restate vs Temporal](https://www.anchorterminal.com/compare/restate-vs-temporal.md) - [Restate vs Trigger.dev](https://www.anchorterminal.com/compare/restate-vs-trigger-dev.md) - [Temporal vs withHuman](https://www.anchorterminal.com/compare/temporal-vs-withhuman.md) - [Trigger.dev vs withHuman](https://www.anchorterminal.com/compare/trigger-dev-vs-withhuman.md)