POST /v1/replies/:id/approve
POST
scope: replies.approve
0 credits
/v1/replies/:id/approveApprove a pending draft and trigger send. The approver field is logged in the Decision Trail. Idempotent: already-sent replies return 409 already_sent.
Parameters
| Field | Type | Description | |
|---|---|---|---|
approver | string | required | Name or ID of the human approver. Logged in the Decision Trail. |
Request
{
"approver": "Daley van Nooij"
}
Response (200) — approved and sent
{
"status": "approved",
"sent": true,
"reply_id": "uuid",
"to_email": "john@acme.com",
"approver": "Daley van Nooij",
"sent_at": "2026-03-21T10:05:00Z"
}
Triggers a reply.approved webhook event.
Errors
400 invalid_request—approverfield missing404 not_found— Reply not found404 no_pending_draft— No pending draft for this reply409 already_sent— Reply has already been sent502 smartlead_error— Email provider API call failed