Skip to content

Get Campaign Visitors

GET
/analytics/campaign-visitors

Campaign Visitors report for the authenticated org (analytics report a23).

Returns, for the resolved window:

  • summary — KPI tiles (page events, campaign clicks, unique contacts / steps, identified visitors, and the encrypted/plaintext/unparseable diagnostic split). Click counters are email-security-scanner filtered (humans only) so they match the in-app report — raw scanner traffic (Microsoft Defender / SafeLinks) is excluded.
  • top_campaign_steps — per sequencer step: clicks, unique contacts, a human-readable label, and send-side context (emails sent / with link).
  • link_engagement — per clicked destination URL: human clicks, unique contacts, the emails-with-link denominator, and CTR% (clamped 0–100).
  • top_contacts — who clicked, with resolved name/email (PII; omit via include_contacts=false).

Enrichment (labels, email, send counts, CTR) is best-effort: a field is null when it couldn’t be resolved, never a fabricated zero. An org with no visitor-tracking pipeline returns an empty report with summary.jitsu_wired = false.

Agency keys: pass X-Target-Org-Id to run the report for a specific client org within your authorized set.

Authorizations

Parameters

Query Parameters

start_date
Any of:
string format: date

Window start (inclusive), YYYY-MM-DD. If omitted, derived from days.

end_date
Any of:
string format: date

Window end (inclusive), YYYY-MM-DD. If omitted, today.

days
Any of:
integer
>= 1 <= 365

Rolling ‘last N days from today’. Ignored when start_date/end_date are supplied.

limit

Row cap for the steps + contacts tables

integer
default: 50 >= 1 <= 200

Row cap for the steps + contacts tables

include_contacts

Include the Top contacts table (contact name + email — PII). Set false to omit it entirely for a privacy-lean response.

boolean
default: true

Include the Top contacts table (contact name + email — PII). Set false to omit it entirely for a privacy-lean response.

Header Parameters

X-Target-Org-Id
Any of:
string

Responses

200

Successful Response

object
data
required

Composite Campaign Visitors report for a single org (analytics report a23).

object
link_engagement
required
Array<object>

One row of the Email Link Engagement table (a clicked destination URL).

object
ctr_percent
Any of:
number
emails_with_link
Any of:
integer
events
required

Human click events on this URL (scanner-filtered)

integer
host
required

Clicked destination host

string
last_seen
Any of:
string
path
required

Clicked destination path

string
step_ids

Sequencer steps whose links drove these clicks

Array<string>
step_labels
Any of:
Array<string>
unique_contacts
required

Distinct contacts who clicked this URL

integer
summary
required

KPI tiles for the org’s campaign-click activity in the window.

All click-derived counters are email-security-scanner filtered (humans only) when SEQUENCER_VISITOR_SCANNER_FILTER=enforce — the same honest counts the in-app report shows. total_page_events is all page volume (not filtered).

object
contact_rows
required

Total (contact, step) click groups before the limit cap

integer
encrypted_pageviews
required

Diagnostic: campaign clicks with an encrypted (#c=e1.) hash

integer
identified_visitors
required

Distinct identified web sessions on campaign clicks

integer
jitsu_wired
required

False when the org has no visitor-tracking pipeline / no page events

boolean
link_rows
required

Total distinct clicked (host, path) before the ceiling

integer
pageview_events
required

Parseable campaign-attributed click events

integer
plaintext_pageviews
required

Diagnostic: campaign clicks with a plaintext hash

integer
step_rows
required

Total distinct campaign steps before the limit cap

integer
total_page_events
required

All page events in the window (campaign + non-campaign)

integer
unique_campaign_steps
required

Distinct sequencer steps that drew clicks

integer
unique_contacts
required

Distinct contacts who clicked a campaign link

integer
unparseable_pageviews
required

Campaign clicks whose tracking hash could not be decoded

integer
top_campaign_steps
required
Array<object>

One row of the Top campaign steps table.

object
emails_sent
Any of:
integer
emails_with_link
Any of:
integer
events
required

Campaign click events attributed to this step

integer
first_seen
Any of:
string
last_seen
Any of:
string
step_id
required

Sequencer step id (globally-unique CUID)

string
step_label
Any of:
string
unique_contacts
required

Distinct contacts who clicked from this step

integer
top_contacts
required
Array<object>

One row of the Top contacts table.

Carries PII (name / email) for the org’s own contacts. Omitted entirely from the response when the request passes include_contacts=false.

object
contact_id
required

Per-org contact id

integer
email
Any of:
string
last_path
Any of:
string
last_seen
Any of:
string
name
Any of:
string
step_id
Any of:
string
step_label
Any of:
string
visits
required

Click events by this contact in the window

integer
window
required

The resolved reporting window echoed back to the caller.

object
days
required

Inclusive calendar-day span of the window

integer
end_date
required

Window end (inclusive), YYYY-MM-DD

string
mode
required

‘anchored’ (explicit start/end) or ‘rolling’ (last-N-days)

string
start_date
required

Window start (inclusive), YYYY-MM-DD

string
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string