Human-in-the-Loop Approvals
AI agents and automation pipelines request human approval via Telegram or WhatsApp. Every decision is cryptographically signed — a proof token you can verify offline.
Built for Agents, Pipelines, and Automation
Add human checkpoints wherever trust matters. No web UI to build — approvals arrive in messaging apps your team already uses.
AI Agent Approvals
Give Claude, LangChain, or CrewAI agents a trust layer. 131 MCP tools let any agent request human approval before irreversible actions.
CI/CD Deploy Gates
Require human approval before production deploys. Integrate with any CI/CD pipeline via API or MCP. Cryptographic proof of every release decision.
Automation Checkpoints
Add human checkpoints to Make, n8n, or Zapier workflows. Pause automation for sensitive decisions, resume when approved.
How It Works
Your agent asks, the human decides, you get cryptographic proof
Create Confirmation
Your agent or pipeline calls POST /v1/confirmations with a message like "Deploy to production?" and the HITL config ID for the approval channel.
Human Decides
The human receives the approval request via Telegram or WhatsApp. They tap Approve or Deny, optionally adding a comment with their decision.
Proof Generated
You receive a signed proof token (RS256 JWT) of the decision — approved or denied, with timestamp and optional comment. Verify it offline with your public key.
Approval Channels
Humans approve via the messaging apps they already use
Telegram
Inline keyboard buttons
Deploy v2.1 to production?
Interactive button messages
Deploy v2.1 to production?
API Integration
Add human approvals to your agent or pipeline in minutes
1. Create Verification Request
curl -X POST https://api.proof.holdings/api/v1/confirmations \
-H "Authorization: Bearer pk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"hitl_id": "YOUR_HITL_CONFIG_ID",
"message": "Deploy v2.1 to production?",
"timeout": 3600
}'2. Verify the Proof Token
# Poll for approval status
curl https://api.proof.holdings/api/v1/confirmations/CONFIRMATION_ID \
-H "Authorization: Bearer pk_live_YOUR_API_KEY"Response Example
{
"id": "507f1f77bcf86cd799439011",
"hitl_id": "YOUR_HITL_CONFIG_ID",
"message": "Deploy v2.1 to production?",
"status": "approved",
"response": {
"action": "approve",
"text": "Looks good, ship it!",
"responded_at": "2026-03-15T10:51:30Z"
},
"proof": {
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_at": "2026-04-14T10:51:30Z"
},
"timeout_at": "2026-03-15T11:50:00Z",
"created_at": "2026-03-15T10:50:00Z"
}