---
title: "Activate Leads"
method: POST
path: "/api/sales/leads/activate"
tags: ["Sales"]
---

# Activate Leads

`POST /api/sales/leads/activate`

## Request

- Base URL: `https://api.ruzora.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ruzora.com/api/sales/leads/activate`
- Auth: HTTP bearer

Flip selected leads from 'pending_activation' to 'ready_to_send'.

Only leads currently at 'pending_activation' are touched — already-
activated, sent, or paused leads are silently skipped (idempotent).
Restricted to founder + internal_admin: this is the gate that opens
real outbound sends, same blast-radius class as the global flag flip.

Returns count of leads actually activated (may be < lead_ids if some
were already past pending_activation).

## Request body

- ActivateLeadsRequest: Move selected leads from auto_send_status='pending_activation' to 'ready_to_send'. Used by the dashboard "Activate selected" button. Founder + internal_admin only because this opens the gate to real outbound sends — same blast-radius class as flipping the global flag, just per-lead. UUID4 validation rejects malformed IDs at the API edge so we return a clean 422 instead of asyncpg's 500 on a bad CAST.
  - `lead_ids` string[], required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api.md) · [All operations](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/revisions/f9b8223f3ac4?raw)
