Head to head · Hitl approve · October 2026 research run

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.

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

CategoryWeight this runRestatewithHumanEdge
Reliability16%209116Restate +75
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28581Restate +4
Agent ergonomics13%16.28174Restate +7
Security & auth14%17.56173withHuman +12
Payments & pricing10%12.54030Restate +10
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.89249Restate +43
Transparency & trust7%8.85053withHuman +3
Negative events≤150-2
Total73.3 · BB51.8 · D

Facts side by side

FactRestatewithHuman
KindModel platformHTTP API
VendorRestate GmbHMetoro Inc
Hosted endpointno (local only)https://app.withhuman.ai
TransportsHTTPHTTP
AuthAPI keyOAuth or key
PricingFreemiumFreemium
x402nono
LicenceBSL 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 documentednono
llms.txtyesyes
Last release2026-10-012026-10-08
Terms last updatedcouldn't be read2026-09-04
Privacy policy last updatedno document linked2026-09-04
Customer content may train modelscouldn't be readnot found in the text
Terms restrict automated accesscouldn't be readnot found in the text
Terms restrict benchmarkingcouldn't be readnot found in the text
Terms or service can change without noticecouldn't be readnot found in the text
Arbitration or class-action waivercouldn't be readnot found in the text
Popularity4.5k stars, 329k npm/wk, 76k PyPI/wknone

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/<id>/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_id>.env.<region>.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.

Other comparisons with Restate or withHuman

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.