Get the sender breakdown
/v1/campaigns/{campaign_id}/senders/breakdownSenders that have since been disconnected still appear, with is_active: false and no account_id, so a campaign's history stays complete after a sender is removed.
date_filter takes a relative window such as 7d or 30d; variation restricts the counts to a or b.
Headers
AuthorizationstringRequiredBearerfollowed by a space and your API key, for exampleBearer vk_….
Path parameters
campaign_idstring · uuidRequiredID of the campaign.
Query parameters
date_filterstring or nullRelative window ('7d', '30d', '90d') or an ISO-8601 timestamp to count from
at most 64 charactersExample"30d"variationstring or nullA/B arm to report on: 'a', 'b', 'unassigned' or 'all' (default)
at most 32 charactersExample"a"One of"a""b""unassigned""all"
Response
200
campaign_idstringRequiredcountintegerDefault0sendersarray of objectsShow 14 child attributesHide child attributes
acceptance_rate_pctnumber or nullaccepted / requests; null when none were sent
acceptedinteger or nullLinkedIn connection requests accepted
account_idstring or nullThe connected account's id, when it is still connected
contacted_leadsinteger or nullis_activeboolean or nullWhether the account is connected now
labelstring or nullThe sender's display name or address
messages_sentinteger or nullplatformstring or null'email' or 'linkedin'
positive_leadsinteger or nullpositive_rate_pctnumber or nullpositive_leads / contacted_leads; null when nobody was contacted
replied_leadsinteger or nullreply_rate_pctnumber or nullreplied_leads / contacted_leads; null when nobody was contacted
requestsinteger or nullLinkedIn connection requests sent
sender_keystring or nullStable key for the sender: the provider account id
successbooleanDefaulttruevariationstringThe A/B arm the report covers
Default"all"window_fromstring or nullStart of the window (ISO-8601); null = all time
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 | CAMPAIGN_NOT_FOUND | No campaign with this ID exists in your organization. |
| 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 |