# Approval Gates Over the API: Safe Writes for Any Agent

URL: https://docs.zevari.ai/api/connect/approval-gates

> How Zevari's approval gate works over the REST API - stage a write with confirmations.requestAction, a human approves, then you execute. A self-hosted agent cannot send unattended.

## Why the gate exists

An autonomous agent that can send on LinkedIn unattended is a banned account waiting to happen. Zevari inverts it: the agent does all the research and drafting, then stops at the gate, and a human approves before any write executes. This works the same whether the agent is Claude over MCP or a self-hosted bot over REST.

## The three-step handshake

### 1. Stage

Call confirmations.requestAction with the action_type that matches the write you intend. You receive a confirmation id.

### 2. Approve

The human approves out of band - in chat, Slack, a daily digest, or via an approval endpoint - which flips the confirmation to approved.

### 3. Execute

Call the actual write endpoint referencing the approved confirmation. Without an approved confirmation, the write is refused.

## Which actions are gated

LinkedIn writes (connection request, message, comment, post), content publishing, and campaign launches are gated, along with anything outbound or paid. Reads - search, score, draft - are not gated.

## Polling vs webhooks

A headless or self-hosted agent learns a confirmation was approved by polling the confirmation status or by receiving a notification, then proceeds to execute. Until then, it waits.

## Why this matters for self-hosted agents

OpenClaw and Hermes Agent run 24/7 on a VPS. The gate guarantees no unattended sends - the difference between this and cookie-driven tools that advertise no approval required.

- [OpenClaw integration](https://docs.zevari.ai/api/connect/openclaw)
- [Hermes Agent integration](https://docs.zevari.ai/api/connect/hermes-agent)
- [Safety model](https://zevari.ai/safety)

## Docs Links

- [Help Center](https://docs.zevari.ai/help): Human-facing guide to Zevari skills, workflows, agents, videos, safety, and support.
- [Workflow Guide](https://docs.zevari.ai/help/workflows): LinkedIn outreach, content, prospect research, audience analysis, campaign, inbox, and GTM workflows for Claude.
- [Prompting Guide](https://docs.zevari.ai/help/prompting-guide): Copy-ready prompts that require AI assistants to read the MCP reference before acting.
- [Workspaces and Sender Seats](https://docs.zevari.ai/help/workspaces-and-seats): Human-facing setup guide for free workspaces, payer-account billing, members, funded LinkedIn seats, and sender associations.
- [Safety Center](https://docs.zevari.ai/help/safetycenter): Human-facing guide to Zevari safety guardrails, warm-up, pauses, blocked actions, and recovery state.
- [Warm-Up](https://docs.zevari.ai/help/warm-up): Human-facing guide to LinkedIn sender warm-up and gradual activity ramping.
- [API Playbooks](https://docs.zevari.ai/api/playbooks): Ordered REST call flows for developers and AI agents using the Zevari API.
- [MoltSets + LinkedIn Workflows](https://docs.zevari.ai/api/moltsets-linkedin-workflows): Use MoltSets verified contact data with Zevari's LinkedIn enrichment, campaign, and approval-gated execution layer.
- [MCP Reference](https://docs.zevari.ai/mcp/reference): Agent-facing tool schemas, capability contracts, examples, gotchas, and recovery guidance.
- [API Reference](https://docs.zevari.ai/api/reference): Public REST API reference powered by the Zevari OpenAPI document.
- [MCP Reference JSON](https://api.zevari.ai/v1/mcp-reference.json): Machine-readable MCP tool reference.
- [LLMs Full](https://api.zevari.ai/llms-full.txt): AI-readable Zevari documentation bundle.
- [Support](mailto:issues@zevari.ai): Send bug reports, support handoffs, and feature requests.
