Now in preview · Built on Cloudflare

The workflow engine
built for AI agents.

Ratify gives your agents governed, observable workflows with human‑in‑the‑loop approvals, step artifacts, and a full audit trail — all at the edge.

trigger a run
POST /v1/runs
Authorization: Bearer sk_ratify_...

{
  "workflowId": "deal-alert-pipeline",
  "input": { "dealId": "d_8k2x" }
}

// → 201 { runId: "run_f4a9c2", status: "running" }

How it works

From trigger to audit trail

01

Trigger

Start a run via webhook, cron schedule, or direct API call. Agents trigger runs programmatically with a scoped API key.

02
🔗

Execute

Steps run sequentially or in parallel using typed connectors — Workers AI, Email, Slack, HTTP, Webhook. Each step produces named artifacts.

03

Approve

Gate any step on a human or agent decision. Approvers see full context and artifacts. One click — or one API call — to resolve and resume.

04
📋

Audit

Every step, every decision, every artifact — immutably logged. Replay any run from any step. Export for compliance.

Features

Built for the agent era

🤖

Agent-native API

Agents trigger runs, consume artifact payloads, and resolve approvals via signed API. No browser required.

📦

Step artifacts

Every step can produce named, typed outputs — email drafts, LLM responses, scored lists. Structured JSON for agents, rich previews for humans.

🛡️

Human-in-the-loop

Approval gates pause execution at any step. Approvers receive full context and artifacts. One click or API call to resume.

🔄

Replay any step

Failed runs don't mean starting over. Replay from any step with the original input, or a modified one.

📋

Full audit trail

Every run, step, and decision is immutably logged. Export for compliance or query via API.

🌐

Global by default

Cloudflare Workers + Durable Objects. No servers to manage, no regions to configure. Edge-native latency everywhere.

Agent-native

Workflows your agents can drive

Most workflow tools are built for humans clicking through a UI. Ratify is built for agents calling an API. Trigger runs, consume artifacts as structured JSON, and resolve approvals — all without a browser.

  • Trigger runs with a signed API key — webhook or direct POST
  • Receive approval context via signed URL — no login needed
  • Read step artifacts as typed JSON payloads
  • Resolve approvals via API — approve or reject with a note
  • Subscribe to real-time run events via WebSocket stream
  • Replay any run from any step programmatically
agent resolves approval
// Agent receives signed URL in notification
// No API key required — token is the auth

GET /v1/approvals/apr_x9f2/context
  ?token=eyJhbGci...

// → { artifacts: [...], runContext: {...} }
// Agent reads artifacts, makes decision

POST /v1/approvals/apr_x9f2/resolve
  ?token=eyJhbGci...
{ "decision": "approved" }

// → 200 { message: "Workflow resuming." }

Connectors

Plug into your stack

🤖 Workers AI
📧 Email (Resend)
💬 Slack
🔗 HTTP
🪝 Webhook

More connectors coming. Or build your own with the Connector Adapter interface.

Ready to govern your agents?

Start building with Ratify today. Free during preview.

Get started →