# Restate > Durable execution runtime from Restate GmbH in Berlin, run as Restate Cloud, in the customer's own cloud account or self-hosted. Handlers pause on durable promises (awakeables and signals) and resume when a person answers over HTTP. - Canonical: https://www.anchorterminal.com/tools/restate - Markdown: https://www.anchorterminal.com/tools/restate.md (~6,950 tokens) - Slim: https://www.anchorterminal.com/tools/restate.min.md (~1,730 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/tools/restate.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 ## Overview **Grade BB · 73.3/100 · rank #78 of 722 · #3 in Human approval & handoff · agent-ready · confidence medium** ## Assessment 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. ## Facts | Field | Value | | --- | --- | | Vendor | Restate GmbH (https://restate.dev) | | Kind | Model platform | | Category | Human approval & handoff (https://www.anchorterminal.com/categories/human-in-the-loop) | | Transport | HTTP | | Auth | API key · Restate Cloud takes an API key (`key_...`) as a Bearer token on each environment's ingress at `https://.env..restate.cloud:8080` and its Admin API on port 9070. Keys are created self-serve in the Developers tab of the Cloud UI with a role (the docs show Full and Admin). Access is self-serve after a browser signup, with no review. A self-hosted server has no authentication on its ingress or admin ports, and the docs expect a reverse proxy in front (https://docs.restate.dev/cloud/getting-started, https://docs.restate.dev/server/security). | | Pricing | Freemium ($75 / mo) · Free $0 with 100,000 durable actions a month, 1 GB of storage and 1-day history, no card, so an agent's owner can start without a contract. Starter $75 a month with 5 million actions, Business $300 with 20 million, Premium $1,000 with 50 million, Enterprise on request. Extra actions cost $25 per million on Starter and Business and $15 on Premium. One action is an invocation, a completion, a step, a sleep, a call or an awakeable, counted per started 64 KiB. Self-hosting is free under BSL 1.1 (https://restate.dev/pricing). | | x402 | No · No x402, MPP or L402 in the docs or on the pricing page (checked 2026-10-08). | | Licence | BSL 1.1 converting to Apache-2.0 four years after release (server), MIT (SDKs) | | Packages | npm: `@restatedev/restate-sdk`; pypi: `restate-sdk`; npm: `@restatedev/restate-sdk-clients` | | Source | https://github.com/restatedev/restate | | Docs | https://docs.restate.dev/ai/patterns/human-in-the-loop | | llms.txt | https://docs.restate.dev/llms.txt | | Last release | 2026-10-01 | | GitHub stars | 4,530 (as of 2026-10-08) | | npm downloads / week | 329,023 | | PyPI downloads / week | 76,080 | | Ways to run it | Restate Cloud (managed, US or EU region, self-serve), Restate BYOC (managed in the customer's AWS or GCP account, set up with the Restate team) or the self-hosted server, a single binary | | How the answer arrives | `POST /restate/awakeables//resolve` or `/reject` on the ingress, or `ctx.resolveAwakeable()` from another handler. Signals and workflow promises are resolved from handlers | | Timeouts | Set in code with `orTimeout` on the promise. The timer is durable. No default timeout on an awakeable | | Channels | None built in. The docs name Slack, email and a dashboard as places the builder sends the awakeable ID | | Audit | Each invocation's journal in the UI and by SQL, kept 1 day on Free, 3 on Starter, 7 on Business and 30 on Premium. OTEL export from Business. No record of who resolved an awakeable was found | | Credentials | Restate Cloud API keys (`key_...`) with a role, sent as a Bearer token. ED25519 request signing from Restate to services. None on a self-hosted server | | Free plan | 100,000 actions a month, 10 actions a second with bursts to 100, 1 GB of storage, 1-day history, community support, no card | | Retries | `Idempotency-Key` header on calls and sends with 24-hour retention by default. Retry ingress errors on 408, 425, 429 and 5xx | | SDKs | TypeScript 1.17.2 (21 September 2026), Python 1.0.5 (2 September 2026), Java and Kotlin, Go and Rust, all MIT | | Coding agent tooling | A plugin and skills in restatedev/skills and a docs MCP server at https://docs.restate.dev/mcp. Both cover documentation, not running environments | | Certifications | SOC 2 Type I with a Type II audit under way, per the BYOC docs. HIPAA BAA as a paid add-on from Business | | Capabilities | hitl.approve, hitl.ask, agent.durable, automation.workflows, automation.code | | Tags | hosted, self-hosted, source-available, freemium, free-tier, no-card, llms-txt, openapi, typescript, python, java, go, rust, status-page | | JSON | https://www.anchorterminal.com/api/v1/tools/restate.json | ## Score breakdown (methodology v0.4, October 2026 research run) Assessed 2026-10-08 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. "This run" is each category's share of the 100 points. | Category | Weight | This run | Score (0–100) | Points | | --- | --- | --- | --- | --- | | Reliability | 16% | 20 | 91 | 18.2 | | Performance | 10% | pending | pending | n/a | | Schema & documentation | 13% | 16.2 | 85 | 13.8 | | Agent ergonomics | 13% | 16.2 | 81 | 13.2 | | Security & auth | 14% | 17.5 | 61 | 10.7 | | Payments & pricing | 10% | 12.5 | 40 | 5.0 | | Task success | 10% | pending | pending | n/a | | Maintenance & community | 7% | 8.8 | 92 | 8.1 | | Transparency & trust (editorial 46, provenance 54) | 7% | 8.8 | 50 | 4.4 | | Negative events | up to −15 | up to −15 | none recorded | 0 | | **Total** | | | | **73.3 → BB** | ### Why each score - Reliability 91: Graded as Restate Cloud, the hosted service, with the hosted lines. Status page at status.restate.dev (incident.io) with two components and a 90-day window (20). One incident in the 90 days to 8 October 2026. On 16 July the Cloud UI was down for 36 minutes during a WorkOS outage, and the page says the API, control plane and data plane were unaffected. Cloud Environments shows 100 per cent and Cloud UI 99.98 per cent (25 of 30). Throughput is published per plan, from 10 actions a second with bursts to 100 on Free up to 500 with bursts to 2,000 on Premium (15). The ingress docs say which calls are safe to retry, name 408, 425, 429 and 5xx as retryable, and take an `Idempotency-Key` header. No Retry-After guidance was found (13 of 15). The pricing table lists 99.9 per cent on Starter, Business and Premium and 99.99 per cent on Enterprise, but no SLA document was found and the terms say availability can't be guaranteed (8 of 10). Restate Cloud, awakeables and the server at 1.7 are generally available (10). - Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes. - Schema & documentation 85: OpenAPI 3.1 for the Admin API, 28 paths, at docs.restate.dev/schemas/openapi-admin.json, and the server generates an OpenAPI 3.1 definition for each registered service. No published spec was found for the ingress routes that resolve and reject awakeables, which are documented in prose with curl examples (20 of 25). llms.txt, llms-full.txt, a .md copy of every page and a docs MCP server at docs.restate.dev/mcp (10). The external-events page compares signals, awakeables and workflow promises in one table with what each is for, and the approval guide lists the five steps of the pattern (16 of 20). Typed SDKs in five language families, with the awakeable payload typed by the caller and sent as JSON (12 of 15). The approval guide has working code for seven agent SDKs plus timeouts, and there is an error-code reference and the `x-restate-error-source` header (12 of 15). Semantic versioning with dated changelogs for the server and each SDK (15). - Agent ergonomics 81: No MCP server for operating Restate was found, so the surface is the HTTP ingress and Admin API. Resolving an awakeable sends one JSON value and returns almost nothing, and run state is read with SQL through the introspection API, where the caller chooses columns and limits (18 of 25). SQL filters over invocations and state, with no cursor pagination found on the Admin list routes (15 of 20). `x-restate-error-source` separates handler errors from ingress errors, the docs name the retryable status codes, and a rejection can carry an error code (16 of 20). `Idempotency-Key` on calls and sends with 24-hour retention by default, attach and output routes that are safe to retry, and an awakeable that resolves or rejects once. MCP annotations don't apply (17 of 20). `ctx.awakeable()` takes no arguments, and official SDKs cover TypeScript, Python, Java and Kotlin, Go and Rust (15). - Security & auth 61: Graded as Restate Cloud. API keys (`key_...`) are created per environment with a role and sent as a Bearer token. The docs show Full and Admin roles and we couldn't read the full list or the revocation controls in the Cloud UI (22 of 30). No documented way to put the key in a query string. Roles on keys, private services that the ingress won't expose, request signing with an ED25519 key so services accept calls only from their environment, and teams with RBAC, with SAML SSO and SCIM on Premium and Enterprise. Nothing asks for confirmation before an Admin key kills or purges an invocation (12 of 20). It returns the caller's own data and the approver's payload (10). Each invocation's journal is visible in the UI and by SQL for 1 day on Free up to 30 days on Premium, and OTEL export starts at Business. No log of who resolved an awakeable was found (8 of 15). The BYOC docs say Restate is SOC 2 Type I certified with a Type II audit under way, and a HIPAA BAA is sold as an add-on. restate.dev/.well-known/security.txt returns 404, the server repository has no SECURITY.md, and no bounty or published advisory was found (9 of 20). The self-hosted server is weaker by design, since the docs say its ingress and admin ports carry no authentication and expect a proxy in front. - Payments & pricing 40: No machine payment protocol (0). Per-unit prices are public on restate.dev/pricing, $25 per million extra actions on Starter and Business and $15 on Premium, though the table is drawn by script and absent from the page's HTML (20). Free plan of 100,000 actions a month with no card (20). A person signs up in the browser for Restate Cloud (0). The server also runs locally with no account, but the rubric scores the hosted option. - Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored. - Maintenance & community 92: Server v1.7.13 tagged on 1 October 2026 and v1.8.0-rc.1 on 2 October (30). The server changelog has ten releases from v1.7.3 on 7 August to v1.7.12 on 22 September, and the TypeScript SDK reached 1.17.2 on 21 September (20). The server repository has 352 open issues and 105 open pull requests. Of eight issues opened from 2 to 8 October, three were closed within three days and two more had replies (18 of 25). Current official SDKs for TypeScript, Python (1.0.5, 2 September), Java and Kotlin, Go and Rust (15). CI, end-to-end and SDK integration checks passed on the latest main commit we read, with one cancelled run (9 of 10). - Transparency & trust 50: Server under BSL 1.1 with a grant for production use other than a public Restate platform service, converting to Apache-2.0 four years after each release. That isn't an OSI licence. The SDKs are MIT (20 of 30). The terms cover Restate Cloud but say its use is free of charge, which disagrees with the paid plans on the pricing page. The privacy statement is dated 23 February 2022 and covers the website, the newsletter and early code access, not customer data in Restate Cloud. History retention by plan is on the pricing page, and no DPA could be read (8 of 30). Semantic versioning, an upgrade policy of one minor version at a time with rollback to the previous minor, and an SDK compatibility table, but no deprecation policy with a notice period (10 of 20). Environments run in a US or an EU region. The privacy statement names Cloudflare and Matomo, a status page incident names WorkOS, and the trust centre at trust.restate.dev didn't load in our reader, so no subprocessor list was read (8 of 20). Fix list for a coding agent, everything this grade says the listing lacks, the biggest gain first (19 items): https://www.anchorterminal.com/fixes/restate.md (JSON https://www.anchorterminal.com/fixes/restate.json) ### What we couldn't check - unchecked: the trust centre at trust.restate.dev (Vanta) needs JavaScript and didn't load, so certifications, the subprocessor list and any DPA there weren't read. The SOC 2 Type I statement comes from the BYOC docs. - unchecked: the full list of API key roles and whether keys can be revoked or rotated, which sit behind the Cloud login. The docs show Full and Admin. - No privacy policy covering customer data in Restate Cloud was found. The only privacy statement is dated 23 February 2022 and covers the website, so `provenance.privacy` is left out. - The terms say the use of Restate Cloud is free of charge while the pricing page lists plans from $75 a month. Whether paid customers sign a different agreement is not stated. - No SLA document was found behind the 99.9 per cent figure on the pricing table. - The Restate Cloud page says the free plan has 50,000 actions a month and the pricing page says 100,000. We used the pricing page. - Whether a published spec covers the ingress routes for awakeables. None was found. ### Sources - approval guide: (seen 2026-10-08) - signals, awakeables and workflow promises: (seen 2026-10-08) - HTTP invocation, idempotency and retries: (seen 2026-10-08) - Restate Cloud getting started and API keys: (seen 2026-10-08) - hosting options: (seen 2026-10-08) - self-hosted server security: (seen 2026-10-08) - service security and request identity: (seen 2026-10-08) - BYOC security model and SOC 2 statement: (seen 2026-10-08) - upgrade and compatibility policy: (seen 2026-10-08) - pricing: (seen 2026-10-08) - Restate Cloud page: (seen 2026-10-08) - status page: (seen 2026-10-08) - status incidents feed: (seen 2026-10-08) - terms and conditions: (seen 2026-10-08) - privacy statement: (seen 2026-10-08) - imprint: (seen 2026-10-08) - server changelog: (seen 2026-10-08) - TypeScript SDK changelog: (seen 2026-10-08) - Admin API OpenAPI: (seen 2026-10-08) - llms.txt: (seen 2026-10-08) - server repository, licence and tags: (seen 2026-10-08) - TypeScript SDK repository: (seen 2026-10-08) - issue on resolving signals over HTTP and recent issues: (seen 2026-10-08) - npm latest: (seen 2026-10-08) - PyPI: (seen 2026-10-08) ## Who's behind it (provenance 54/100, checked 2026-10-08) | Check | Finding | Points | | --- | --- | --- | | Legal entity named | Restate GmbH | 20/20 | | Domain age | restate.dev, registered 2022-02-11 (4 years) | 7/15 | | Endpoint on the vendor's domain | is not on restate.dev | 0/15 | | Terms of service | published, but our reader couldn't read it | 7/10 | | Privacy policy | not found | 0/10 | | Status page | status.restate.dev | 10/10 | | Changelog | published | 10/10 | | security.txt | not found | 0/10 | The imprint names Restate GmbH, Knaackstr. 92, 10435 Berlin, Amtsgericht Charlottenburg HRB 240580 B. The server licence names Restate Software, Inc. and Restate GmbH as licensors. The general terms and conditions cover Restate Cloud by name, under German law with Berlin as the place of jurisdiction, and say its use is free of charge, which the pricing page no longer matches. No privacy field. The privacy statement at https://restate.dev/privacy is dated 23 February 2022 and covers the website, the newsletter and early code access, not customer data in Restate Cloud, and no other privacy policy was found. Restate Cloud environments answer at .env..restate.cloud, a different domain from restate.dev. https://restate.dev/.well-known/security.txt returned 404 on 2026-10-08. The trust centre at trust.restate.dev is hosted by Vanta and didn't load in our reader. RDAP gives 2022-02-11 as the registration date of restate.dev. ### Terms and privacy, as read A reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice. **Terms of service** (https://restate.dev/terms-and-conditions), read 2026-10-08. Our reader couldn't read it (the page has 25 words of text without a browser, so the document is drawn by script or sits elsewhere). **Privacy policy**. We found no privacy policy published for this product, so there is nothing to read and the check scores 0. ## Live (updated 2026-10-08 19:51 UTC) - Vendor status page: none, All Systems Operational - Watching changelog - Watching pricing - Watching terms - Always current: https://www.anchorterminal.com/api/v1/live/restate.json ## Probe metrics Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score. ## Prices | Item | Price | Unit | Note | | --- | --- | --- | --- | | Starter plan | $75 | per month (plan) | 5 million actions, 50 actions a second, 5 GB, 3-day history | | Business plan | $300 | per month (plan) | 20 million actions, 200 actions a second, 20 GB, 7-day history | | Premium plan | $1000 | per month (plan) | 50 million actions, 500 actions a second, 50 GB, 30-day history | | Extra durable actions on Starter and Business | $0.025 | per 1,000 tool calls | $25 per million actions, $15 per million on Premium | | Extra virtual object storage | $0.50 | per GB per month | | Across all listings: https://www.anchorterminal.com/prices/index.md ## Strengths - One HTTP request resolves or rejects an awakeable, and the waiting handler resumes after restarts or redeployment - `orTimeout` puts a durable timer on the wait, so the remaining time survives a crash - Free plan of 100,000 actions a month with no card, and $25 per extra million actions on Starter and Business - Cloud Environments shows 100 per cent on the status page for the 90 days to 8 October 2026 - MIT SDKs for TypeScript, Python, Java and Kotlin, Go and Rust, with llms.txt and Markdown copies of every docs page ## Weaknesses - No reviewer inbox, Slack app or email. The approval request and the reply endpoint are the builder's code - Signals can't be resolved over HTTP yet, only from another handler (open issue of 5 October 2026) - Self-hosted ingress and admin ports have no authentication, so the awakeable ID alone resolves a wait there - The terms say Restate Cloud is free of charge and the privacy statement of 23 February 2022 covers only the website - Server under BSL 1.1, which isn't an OSI licence, with no security.txt or SECURITY.md found ## Before you call it (notes for agents) 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` ## Connect Install: ```bash npm install --global @restatedev/restate-server@latest @restatedev/restate@latest ``` First request: ```bash curl localhost:8080/restate/awakeables/sign_1M28aqY6ZfuwBmRnmyP/resolve --json 'true' ``` Claude Code: ```bash claude mcp add --transport http restate-docs https://docs.restate.dev/mcp ``` ## Similar tools Ranked by shared capabilities, then score. Same-category tools with no shared capability key are listed last. | Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown | | --- | --- | --- | --- | --- | --- | --- | | Temporal | BB | 77.2 | 20 | hitl.approve, hitl.ask, agent.durable, automation.workflows, automation.code | no | https://www.anchorterminal.com/tools/temporal.md | | Trigger.dev | BB | 74.7 | 59 | hitl.approve, hitl.ask, agent.durable, automation.workflows, automation.code | no | https://www.anchorterminal.com/tools/trigger-dev.md | | Inngest | B | 66 | 247 | hitl.approve, hitl.ask, agent.durable, automation.workflows, automation.code | no | https://www.anchorterminal.com/tools/inngest.md | | Orkes Conductor Human tasks | C | 54 | 537 | hitl.approve, hitl.ask, agent.durable, automation.workflows | no | https://www.anchorterminal.com/tools/orkes-conductor.md | | Pipedream API + MCP | B | 65.5 | 255 | automation.workflows, automation.code | no | https://www.anchorterminal.com/tools/pipedream.md | | Workato API + MCP | C | 58 | 460 | automation.workflows, automation.code | no | https://www.anchorterminal.com/tools/workato.md | ## Panel reviews (0) Reviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): . Desk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md ## Notable - The approval guide creates an awakeable, sends its ID to the approver inside a durable step and suspends the handler, with code for Vercel AI, OpenAI Agents, Google ADK, Pydantic AI, LangChain and the plain TypeScript and Python SDKs (source: ) - An external system resolves the wait with `POST /restate/awakeables//resolve` and a JSON body, or rejects it with `/reject` and a text reason, which throws a terminal error in the waiting handler (source: ) - `approval.promise.orTimeout({ hours: 3 })` adds a timeout. Restate persists both the timer and the promise, so a restart continues with the remaining time (source: ) - Signals are addressed by invocation ID and name, can resolve many times and are stored until the handler reads them, but an issue opened on 5 October 2026 asks for a way to resolve them over HTTP as awakeables can be (source: ) - The self-hosted server has no application-level authentication on its ingress (8080) or admin (9070) ports by design, and request headers that reach the ingress are stored in the journal (source: ) - Restate Cloud lists 99.9 per cent on Starter, Business and Premium and history retention of 1, 3, 7 and 30 days from Free to Premium (source: ) ## Compare - [gotoHuman vs Restate](https://www.anchorterminal.com/compare/gotohuman-vs-restate.md): E 43.6 vs BB 73.3 - [Inngest vs Restate](https://www.anchorterminal.com/compare/inngest-vs-restate.md): B 66 vs BB 73.3 - [Orkes Conductor Human tasks vs Restate](https://www.anchorterminal.com/compare/orkes-conductor-vs-restate.md): C 54 vs BB 73.3 - [Permit MCP Gateway vs Restate](https://www.anchorterminal.com/compare/permit-mcp-gateway-vs-restate.md): C 54.1 vs BB 73.3 - [Pushary vs Restate](https://www.anchorterminal.com/compare/pushary-vs-restate.md): D 51.4 vs BB 73.3 - [Restate vs Temporal](https://www.anchorterminal.com/compare/restate-vs-temporal.md): BB 73.3 vs BB 77.2 - [Restate vs Trigger.dev](https://www.anchorterminal.com/compare/restate-vs-trigger-dev.md): BB 73.3 vs BB 74.7 - [Restate vs withHuman](https://www.anchorterminal.com/compare/restate-vs-withhuman.md): BB 73.3 vs D 51.8 ## Verify this listing For the vendor. The badge or a plain link to this page verifies the listing, from a page on restate.dev or one of its subdomains, or the README of github.com/restatedev/restate. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{"slug": "restate", "url": "…"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify HTML badge: ```html Restate on Anchor Terminal ``` Markdown badge, for a README: ```markdown [![Restate on Anchor Terminal](https://www.anchorterminal.com/badges/restate.svg)](https://www.anchorterminal.com/tools/restate) ``` Plain link: ```html Restate on Anchor Terminal ``` ## Share this listing For the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say Restate is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score. - Dark: https://www.anchorterminal.com/assets/share/restate-dark.png - Light: https://www.anchorterminal.com/assets/share/restate-light.png