Human approval API

Add human approval
before AI agents act.

Ambedo HITL lets an agent pause, send context to a reviewer, and resume only after an approve or reject decision. Use it when a workflow is useful to automate but too risky to run unattended.

How It Works
01

Agent pauses

Your agent calls POST /api/pause with the action and context. It gets back a watchId and status URL.

02

Reviewer decides

A human approver receives the request, reviews the context, and approves or rejects it.

03

Agent resumes

The agent polls the status endpoint or receives a webhook and continues based on the decision.

Use Cases

Deployment approvals

Pause before production deploys, migrations, or risky infrastructure changes.

Outbound communications

Review customer emails, DMs, or agent-generated outreach before anything is sent.

CRM and system writes

Add a decision point before an agent updates records, submits tickets, or changes account data.

Integration

Simple HTTP integration.

If your agent can make HTTP requests, it can use Ambedo HITL. Use the pause endpoint, then either poll for a decision or listen for a webhook.

POST
/api/pause

Create a pause request

GET
/api/pause/:watchId

Check approval status

GET
/api/pause

List pauses

POST
/api/pause/:watchId/approve

Approve or reject in the dashboard

JavaScript Example
const res = await fetch("https://hitl.ambedo.dev/api/pause", {
  method: "POST",
  headers: {
    "Authorization": "Bearer hitl_your_api_key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    action: "Deploy to production (v2.4.1)",
    context: { environment: "prod", commit: "a3f9b2e" }
  })
});

const { watchId, statusUrl } = await res.json();

while (true) {
  const status = await fetch(statusUrl, {
    headers: { "Authorization": "Bearer hitl_your_api_key" }
  }).then(r => r.json());

  if (status.status !== "pending") {
    if (status.status === "approved") continueWithDeploy();
    else abortDeploy();
    break;
  }
  await sleep(3000);
}
Webhook Payload
{
  "watchId": "wch_a3f9b2e...",
  "status": "approved",
  "resolvedAt": "2026-03-30T21:00:00.000Z",
  "agentContext": {
    "action": "Deploy to production (v2.4.1)",
    "context": { "environment": "prod", "commit": "a3f9b2e" }
  }
}
Pricing
Free
$0
forever
  • 50 pauses / month
  • 1 approver
  • Email notifications
  • Webhook callbacks
  • Audit log
  • Priority support
Start Free
Starter
$29
/ month
  • 500 pauses / month
  • 3 approvers
  • Email notifications
  • Webhook callbacks
  • Basic audit log
  • Priority support
Get Started
Pro
$99
/ month
  • Unlimited pauses
  • Unlimited approvers
  • Email + Slack notifications
  • Webhook callbacks
  • Full audit log
  • Priority support
Go Pro
FAQ

What kinds of actions should pause for approval?

Anything expensive, external, sensitive, or hard to undo: production deploys, outbound messages, data writes, or customer-facing changes.

Do I need a specific agent framework?

No. Ambedo HITL is just an API plus a review workflow. If your agent can make an HTTP request, it can use it.

How does the agent learn the decision?

You can poll the status endpoint or receive a webhook when the pause is approved or rejected.