VocalDocscontracts 1.65.0

Read a Campaign's progress

GET /v1/campaigns/{campaign_id}/progress

PropertyValue
Operationget_campaign_progress
GroupCampaigns
Scopecampaigns:read
Route classread
IdempotencyNo Idempotency-Key
AuditNot audited: Aggregates and number health: counts, rates and ids, never content.
Released in1.65.0
Phase 0 hostServed (the hosted api pins 1.65.0)

Answers the progress of a Campaign (1.65.0; section 6): enrollments by status and disposition, attempts by result, reach, spend, opt-outs, the per-arm results with intervals, and an estimated completion labelled an estimate. Counts only; a draft answers zeros.

Request

Set VOCAL_API to the base URL of your API and VOCAL_API_KEY to an API key with the campaigns:read scope (Authentication and keys). Replace each placeholder, such as agt_... or <name>, with your own value.

curl "$VOCAL_API/v1/campaigns/cmp_.../progress" \
  -H "Authorization: Bearer $VOCAL_API_KEY"

Parameters

NameInTypeRequiredDescription
campaign_idpathCampaignIdyesThe id of a Campaign: cmp_ and the row's UUIDv7 in 26 Crockford base32 characters. Opaque and safe to log.

Responses

StatusContent typeShapeError codes
200application/jsonCampaignProgress
400application/jsonErrorEnvelopeinvalid_request
401application/jsonErrorEnvelopeunauthenticated
403application/jsonErrorEnvelopeforbidden
404application/jsonErrorEnvelopenot_found
429application/jsonErrorEnveloperate_limited
500application/jsonErrorEnvelopeinternal_error

Fields of the 200 answer

The shape is CampaignProgress.

FieldTypeRequiredDescription
armsarray of CampaignArmProgressyes
as_ofTimestampyes
attemptsCampaignAttemptCountsyes
campaign_idCampaignIdyes
enrollments_by_dispositionmap of integeryes
enrollments_by_statusmap of integeryes
estimated_completion_atTimestamp or nullyesAn estimate: remaining eligible enrollments over the current rate.
mean_attempts_to_reachnumber or nullyes
mean_duration_snumber or nullyes
numbers_throttledintegeryes
object"campaign_progress"yes
opt_outsintegeryes
reach_ratenumber or nullyes
spend_microsintegeryes
spend_per_reached_microsinteger or nullyes
statusCampaignStatusyes