Put an independent human before the consequence.
Create a secure decision link, send it through your existing communication channel, and keep the agent blocked until the API reports an explicit approval.
Try every agent-infrastructure product for seven days
Starter includes ApproveMyAction and all 22 REST/MCP tools.
Card required. Unless canceled before the trial ends, Starter renews automatically at $15/month. No automatic overages.
Explain the proposed action to the reviewer
curl https://api.scrubmytext.com/v1/approvals/request \
-H "Authorization: Bearer smt_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Refund customer $725","description":"Duplicate payment for order 82731. Confirm before issuing the refund.","expires_in_seconds":3600}'Save the returned approval_id. Send the returned approval_url only to the intended reviewer.
Use your normal delivery channel
ApproveMyAction creates the secure link but does not email or text it. Your application can send the URL through its existing email, chat, ticketing, or notification workflow.
Poll with the approval ID
curl https://api.scrubmytext.com/v1/approvals/check \
-H "Authorization: Bearer smt_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"approval_id":"ama_RETURNED_ID"}'Act only on status: approved
Keep the agent blocked for pending, rejected, expired, cancelled, missing, and error responses. Re-check your own authorization and business rules immediately before the external action.
Use the same control from an agent
1. request_approval({"title":"Refund customer $725","description":"Duplicate payment for order 82731.","expires_in_seconds":3600})
2. Deliver the returned approval_url to the intended reviewer.
3. check_approval({"approval_id":"ama_RETURNED_ID"})
4. Proceed only if status is exactly "approved".
5. cancel_approval({"approval_id":"ama_RETURNED_ID"}) if the action is abandoned.Limits to design around
- Anyone holding a live approval link can decide, so treat it as a temporary secret.
- Approval is evidence of a link-holder's decision, not proof of identity, authorization, or successful execution.
- Links default to 24 hours and can last at most 7 days.
- The calling application must deliver the approval URL.
