/v2/campaigns/:id/leadsAdds one or more leads to a campaign you own. Duplicates (by email, within the request or already in the campaign) are skipped, not errored.
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | Required | Campaign ID. |
| leads | object[] | Required | { fields: { email, firstName, ... } }[] — email is required inside fields, other fields are free-form (up to 100 entries). |
curl -X POST "https://api.stynar.com/v2/campaigns/cmp_abc123/leads" \
-H "Authorization: Bearer esk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"leads":[{"fields":{"email":"jane@acme.com","firstName":"Jane","company":"Acme"}}]}'{
"added": 1,
"skipped": {
"duplicatesInRequest": 0,
"duplicatesInDB": 0,
"invalidLeads": 0
}
}| Status | Code | Meaning |
|---|---|---|
| ✕ 404 Not Found | NOT_FOUND | Campaign doesn't exist or isn't yours. |
| ✕ 401 Unauthorized | UNAUTHORIZED | Missing, malformed, unknown, revoked, or expired key. |
| ✕ 403 Forbidden | API_ACCESS_DISABLED | API access is turned off for your account. |
| ✕ 403 Forbidden | INSUFFICIENT_SCOPE | The key doesn't have the scope this endpoint requires. |
| ✕ 409 Conflict | CONFLICT | The action can't be applied to the resource's current state. |
| ✕ 429 Too Many Requests | RATE_LIMIT_EXCEEDED | Per-minute or per-second limit hit. |
| ✕ 429 Too Many Requests | QUOTA_EXCEEDED | Monthly quota exhausted. |
| ✕ 500 Internal Server Error | INTERNAL_ERROR | Something broke on Stynar's end. |