Skip to main content

POST /v1/replies/:id/send

POST/v1/replies/:id/send
scope: replies.send metered — see Credits

Approve a Corty suggestion and send it via Smartlead. Closes the loop for agencies working in Make or Slack, and for external AI agents — no need to return to the SalesLobe UI.

Autonomy governance

This endpoint is governed by autonomy: depending on your API key's autonomy level, the reply is either sent immediately (200 "sent") or placed as a draft in the human review queue (202 "queued_for_review"). See External AI Agents.

Try it

POST/v1/replies/{id}/send
Saved locally in your browser
Path Parameters
Reply UUID to respond to
Request Body
URLhttps://slazbvfvliieskvkjtav.supabase.co/functions/v1/api-gateway/v1/replies/{id}/send

Enter your API key above to send requests

Parameters

FieldTypeDescription
bodystringrequiredThe reply text to send
original_suggestionstringoptionalCorty's original suggestion — used for learning comparison
editedbooleanoptionalWhether the suggestion was modified (default: false)

Response (200) — sent immediately

Returned when your API key has sufficient autonomy level.

{
"status": "sent",
"sent": true,
"reply_id": "uuid",
"to_email": "john@acme.com",
"body": "Hey John, great that you're curious...",
"learned": true,
"sent_at": "2026-03-21T10:00:00Z"
}

Response (202) — queued for review

Default behavior for new agents/keys (autonomy level 0).

{
"status": "queued_for_review",
"reply_id": "uuid",
"reason": "no_active_autonomy_grant",
"docs": "external-agents"
}
A 202 is not an error

The draft arrived successfully and sits in the SalesLobe review queue awaiting human approval. Don't retry — resending the same call is idempotent and returns the same 202 (one pending draft per reply; the latest draft wins).

reasonMeaning
no_active_autonomy_grantNo active autonomy grant for this API key — all sends go to the review queue
review_required_at_autonomy_level_<n>A grant exists, but this level still requires human review before sending
danger

Returns 404 not_found if the reply doesn't exist. Returns 409 already_sent if this reply was already sent. Returns 502 smartlead_error if the Smartlead API fails.