Delete a lead or remove it from a campaign
/v1/leads/{lead_id}With the campaign_id query parameter, removes the lead from that campaign and leaves its record unchanged; a lead that isn't enrolled there answers 404 LEAD_NOT_IN_CAMPAIGN.
Without campaign_id, deletes the lead itself. Its personal and company data is erased in place and it disappears from every read, while an anonymised row remains as the record of the activity that happened.
Omitting campaign_id deletes the lead, not just an enrolment, and the erasure can't be undone. To take a lead out of one campaign, always send campaign_id.
Headers
AuthorizationstringRequiredBearerfollowed by a space and your API key, for exampleBearer vk_….
Path parameters
lead_idstring · uuidRequiredID of the lead.
Query parameters
campaign_idstring · uuid or nullUUID of the campaign to remove the lead from. Omit to delete the lead itself
Response
200
messagestringRequiredSuccess message
lead_idstringRequiredID of the deleted or removed lead
campaign_idstring or nullID of the campaign the lead was removed from; null when the lead itself was deleted
successbooleanDefaulttrue
Errors
Errors share one JSON body: success, error, message, optional details, and request_id.
| Status | Code | Meaning |
|---|---|---|
| 400 | VALIDATION_ERROR | The request didn't match the endpoint's schema: a missing or malformed field, a bad query parameter, or a value out of range. |
| 401 | UNAUTHORIZED | The |
| 401 | API_KEY_EXPIRED | The API key is past its expiry date. Create a new key in the Victoria AI app. |
| 403 | INSUFFICIENT_SCOPE | The API key doesn't have the scope this endpoint requires, such as |
| 403 | ORGANIZATION_DEACTIVATED | The organization that owns this API key has been deactivated. |
| 404 | LEAD_NOT_FOUND | No lead with this ID exists in your organization. |
| 404 | LEAD_NOT_IN_CAMPAIGN | The lead isn't enrolled in the campaign given by |
| 404 | NOT_FOUND | No endpoint matches the path. A resource ID in the path that isn't a valid UUID also answers |
| 429 | RATE_LIMITED | Too many requests for this API key: more than 100 a minute to one endpoint, or 600 a minute in total. Retry after the number of seconds in the |
| 500 | INTERNAL_ERROR | Something failed on our side. The response never includes internal details; quote its |
| 503 | UPSTREAM_TIMEOUT | A service the API depends on timed out. The request is safe to retry. |
| 503 | AUTH_UNAVAILABLE | The API key couldn't be checked because the authentication service was unavailable. The request is safe to retry. |
Response headers
| Header | Description |
|---|---|
X-Request-ID | Correlation ID for the request, also returned as |
RateLimit-Limit | Requests allowed to this endpoint per minute. |
RateLimit-Remaining | Requests you can still send to this endpoint right now. |
RateLimit-Reset | Seconds until the endpoint's full limit is available again. |
Retry-After | On a |