# Enroll leads

`needleEnrollCampaignLeads`

Enroll existing leads in a campaign, by lead id. Create the leads first with needleCreateLead or needleCreateLeads. A lead without a handle for every channel the campaign sends on is skipped as missing_identity. Contactability skips are suppressed (do-not-contact list), recently_contacted, or unresponsive — not every skip means the lead is on the list. Returns accepted or skipped per lead id.

**Input**

- `campaignId` (string · uuid, required): Campaign id
- `leadIds` (string · uuid[], required): Leads to enroll, by id. Create them first with POST /api/v1/leads or POST /api/v1/leads/bulk.
