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",
"suggestion_id": "uuid",
"replaced": false,
"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). A repeat send returns "replaced": true with the same suggestion_id. See Autonomy Levels for the full level table.

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.

Response (429) - send rate limits​

The direct-send path (autonomy level 2+) is rate limited; the 202 queue path is not (it sends nothing). Both codes include a Retry-After header and are logged in the Decision Trail:

CodeLimitRetry-After
send_rate_limit_exceededMax 5 sends per API key per minute60 seconds
lead_recently_contactedSame lead contacted within the last 15 minutes900 seconds

See Rate Limits & Security for the X-RateLimit-* response headers.