Metrics and Dimensions Reference

Reference for the metrics, group_by dimensions, and filters supported by the Query Analytics Report endpoint. Last updated April 2025. Use this page to look up valid values for the metrics[].value, group_by[].name, and filters fields in your request payload.

This page lists the built-in metrics and group_by dimensions supported by the
Query Analytics Report endpoint. New metrics and dimensions are added over time — if you don't see a metric here, check the Apollo Analytics UI to confirm availability.

Important — smart reference fields

Every metric object requires two fields beyond value that control which date and user fields
the analytics engine uses when applying filters for that metric:

  • smart_datetime_reference — which date field to use for the date range filter
  • smart_user_id_reference — which user field to use for the team member filter

The tables on this page show the recommended default for each metric. Using the wrong value may return no data or unexpected results for that metric — the API does not validate reference field values against the metric type.

display_name is metadata only

You may include a display_name field on any metric object in the request. This is a UI label
override and has no effect on the API response — bucket keys in the response always use the
original metric value string (e.g. num_emails_sent), regardless of display_name.


Smart Reference Field Values

smart_datetime_reference

ValueDescription
smart_datetime_rangeDefault for most activity metrics (email, phone, meetings, contacts, accounts). Uses the date range set by date_ranges[].modality.
activity_datetimeExact timestamp of the activity — when an email was sent, a call was logged, a meeting was recorded, etc.
contact_created_atDate the contact was created in Apollo
account_created_atDate the account was created in Apollo
task_created_atDate the task was created
task_due_atDue date of the task (default for task metrics)
opportunity_created_atDate the opportunity was created (default for opportunity metrics)
opportunity_close_dateExpected or actual close date of the opportunity

smart_user_id_reference

ValueDescription
smart_user_idThe user who performed or owns the activity. Default for all metrics.

Metrics

Email metrics

metrics[].valueDescriptionsmart_datetime_referencesmart_user_id_reference
num_emails_sentNumber of emails sentsmart_datetime_rangesmart_user_id
num_emails_deliveredNumber of emails delivered (sent minus bounced)smart_datetime_rangesmart_user_id
num_emails_openedNumber of emails openedsmart_datetime_rangesmart_user_id
num_emails_repliedNumber of emails replied tosmart_datetime_rangesmart_user_id
num_emails_bouncedNumber of emails bouncedsmart_datetime_rangesmart_user_id
num_emails_clickedNumber of email link clickssmart_datetime_rangesmart_user_id
num_emails_unsubscribedNumber of email unsubscribessmart_datetime_rangesmart_user_id
num_emails_demoedNumber of demo requests from emailssmart_datetime_rangesmart_user_id
num_contacts_emailedNumber of unique contacts emailedsmart_datetime_rangesmart_user_id
num_contacts_openedNumber of unique contacts that opened an emailsmart_datetime_rangesmart_user_id
num_contacts_repliedNumber of unique contacts that repliedsmart_datetime_rangesmart_user_id
percent_emails_opened_trackedEmail open rate (ratio)smart_datetime_rangesmart_user_id
percent_emails_repliedEmail reply rate (ratio)smart_datetime_rangesmart_user_id
percent_emails_bouncedEmail bounce rate (ratio)smart_datetime_rangesmart_user_id
percent_emails_clicked_trackedEmail click-through rate (ratio)smart_datetime_rangesmart_user_id
percent_emails_demoedEmail demo rate (ratio)smart_datetime_rangesmart_user_id
percent_emails_unsubscribedEmail unsubscribe rate (ratio)smart_datetime_rangesmart_user_id
percent_contacts_repliedProportion of emailed contacts that replied (ratio)smart_datetime_rangesmart_user_id
percent_contacts_interestedProportion of emailed contacts that expressed interest (ratio)smart_datetime_rangesmart_user_id

Phone metrics

metrics[].valueDescriptionsmart_datetime_referencesmart_user_id_reference
num_phone_callsNumber of calls dialedsmart_datetime_rangesmart_user_id
num_phone_calls_connectNumber of calls that connected (recipient answered)smart_datetime_rangesmart_user_id
num_phone_calls_connect_positiveNumber of connected calls with a positive outcomesmart_datetime_rangesmart_user_id
num_phone_calls_connect_negativeNumber of connected calls with a negative outcomesmart_datetime_rangesmart_user_id
num_phone_calls_connect_neutralNumber of connected calls with a neutral outcomesmart_datetime_rangesmart_user_id
avg_phone_call_durationAverage call duration in secondssmart_datetime_rangesmart_user_id
num_contacts_calledNumber of unique contacts calledsmart_datetime_rangesmart_user_id
percent_phone_calls_connectCall connect rate (ratio)smart_datetime_rangesmart_user_id
percent_phone_calls_connect_positivePositive outcome rate for connected calls (ratio)smart_datetime_rangesmart_user_id

Meeting metrics

metrics[].valueDescriptionsmart_datetime_referencesmart_user_id_reference
num_all_meetings_scheduledNumber of meetings scheduled (includes later cancelled or rescheduled)smart_datetime_rangesmart_user_id
num_meetings_heldNumber of meetings held (actually occurred)smart_datetime_rangesmart_user_id
num_all_meetings_rescheduledNumber of meetings rescheduledsmart_datetime_rangesmart_user_id
num_calendar_events_scheduledNumber of calendar events createdsmart_datetime_rangesmart_user_id
num_calendar_events_cancelledNumber of calendar events cancelledsmart_datetime_rangesmart_user_id
num_all_meetings_scheduled_via_emailNumber of meetings booked via emailsmart_datetime_rangesmart_user_id
num_all_meetings_scheduled_via_callNumber of meetings booked via callsmart_datetime_rangesmart_user_id

Task metrics

smart_datetime_reference for task metrics

Task completion and scheduling metrics use task_created_at as the smart_datetime_reference value — the date range filter applies to when the task was created.
Overdue task metrics (overdue_tasks, unfinished_overdue_tasks, percent_unfinished_overdue_tasks) use task_due_at instead — the date range filter applies to the task due date.

metrics[].valueDescriptionsmart_datetime_referencesmart_user_id_reference
num_tasksTotal number of taskstask_created_atsmart_user_id
num_tasks_scheduledNumber of tasks scheduledtask_created_atsmart_user_id
num_tasks_completedNumber of tasks completedtask_created_atsmart_user_id
num_tasks_completed_on_timeNumber of tasks completed on timetask_created_atsmart_user_id
num_phone_calls_completedNumber of phone call tasks completedtask_created_atsmart_user_id
num_linkedin_tasks_scheduledNumber of LinkedIn tasks scheduledtask_created_atsmart_user_id
num_linkedin_tasks_completedNumber of LinkedIn tasks completedtask_created_atsmart_user_id
num_linkedin_tasks_skippedNumber of LinkedIn tasks skippedtask_created_atsmart_user_id
num_action_item_tasks_completedNumber of action item tasks completedtask_created_atsmart_user_id
percent_tasks_completedTask completion rate (ratio)task_created_atsmart_user_id
percent_tasks_completed_on_timeOn-time task completion rate (ratio)task_created_atsmart_user_id
percent_linkedin_tasks_completedLinkedIn task completion rate (ratio)task_created_atsmart_user_id
overdue_tasksCount of currently overdue taskstask_due_atsmart_user_id
unfinished_overdue_tasksCount of unfinished overdue taskstask_due_atsmart_user_id
percent_unfinished_overdue_tasksProportion of tasks that are unfinished and overdue (ratio)task_due_atsmart_user_id

Contact metrics

metrics[].valueDescriptionsmart_datetime_referencesmart_user_id_reference
num_contactsNumber of contactssmart_datetime_rangesmart_user_id
num_contacts_touchedNumber of unique contacts that received any activitysmart_datetime_rangesmart_user_id
num_net_new_peopleNumber of net new people (contacts) addedsmart_datetime_rangesmart_user_id
num_contacts_with_job_changeNumber of contacts with a detected job changesmart_datetime_rangesmart_user_id
num_contacts_added_to_sequenceNumber of contacts added to a sequencesmart_datetime_rangesmart_user_id
num_contacts_remove_from_sequenceNumber of contacts removed from a sequencesmart_datetime_rangesmart_user_id

Account metrics

metrics[].valueDescriptionsmart_datetime_referencesmart_user_id_reference
num_accountsNumber of accountssmart_datetime_rangesmart_user_id
num_accounts_touchedNumber of unique accounts that received any activitysmart_datetime_rangesmart_user_id
num_net_new_companiesNumber of net new companies addedsmart_datetime_rangesmart_user_id
revenue_amountTotal revenue amountsmart_datetime_rangesmart_user_id

Opportunity metrics

smart_datetime_reference for opportunity metrics

Opportunity metrics use opportunity_created_at as the smart_datetime_reference value, not smart_datetime_range. The date range filter applies to the opportunity creation date.

metrics[].valueDescriptionsmart_datetime_referencesmart_user_id_reference
num_opportunitiesNumber of opportunities createdopportunity_created_atsmart_user_id
num_wonNumber of opportunities won (closed-won)opportunity_created_atsmart_user_id
num_closedNumber of opportunities closed (closed-lost)opportunity_created_atsmart_user_id
deal_amountTotal deal value of opportunitiesopportunity_created_atsmart_user_id
avg_deal_amountAverage deal value of opportunitiesopportunity_created_atsmart_user_id
avg_won_amountAverage value of won opportunitiesopportunity_created_atsmart_user_id
percent_win_rateProportion of closed opportunities that were won (ratio)opportunity_created_atsmart_user_id
pipeline_amountTotal open pipeline valueopportunity_created_atsmart_user_id
won_amountTotal value of won opportunitiesopportunity_created_atsmart_user_id
avg_salescycle_daysAverage number of days from opportunity creation to closeopportunity_created_atsmart_user_id

Conversation Intelligence metrics

Conversation Intelligence availability

These metrics require the Conversation Intelligence feature to be enabled on your Apollo plan and active call recording to be in use. Queries return no data if the feature is not active.

metrics[].valueDescriptionsmart_datetime_referencesmart_user_id_reference
num_conversations_recordedNumber of conversations recordedsmart_datetime_rangesmart_user_id
num_conversations_listenedNumber of conversations listened tosmart_datetime_rangesmart_user_id
avg_conversation_durationAverage conversation duration in secondssmart_datetime_rangesmart_user_id
total_conversation_durationTotal conversation duration across all recorded conversationssmart_datetime_rangesmart_user_id
avg_talk_ratioAverage ratio of rep talk time to total conversation time (decimal 0–1)smart_datetime_rangesmart_user_id
avg_question_rateAverage number of questions asked per conversationsmart_datetime_rangesmart_user_id
avg_longest_monologueAverage duration of the longest uninterrupted speech per conversation (seconds)smart_datetime_rangesmart_user_id
speaker_switchesAverage number of times the speaker changes per conversationsmart_datetime_rangesmart_user_id

Ratio and rate metrics

All metrics with names beginning with percent_ (e.g. percent_emails_replied, percent_phone_calls_connect, percent_win_rate) return
decimal values between 0 and 1 — not percentages. For example, 0.331 means 33.1%. Multiply by 100
to convert to a percentage for display.

Custom metrics

You can query custom metrics defined by your team using the format custom_metric_{id}, where
{id} is the custom metric's id (e.g. custom_metric_507f1f77bcf86cd799439011).

Custom metric data is team-scoped — the API key you use must belong to the same Apollo team that
owns the custom metric. Group_by dimensions and filters must be compatible with the custom metric's
underlying metric type (same compatibility rules as the equivalent built-in metric).

Do not include the custom_metric_ prefix in the id portion — use the full string including the
prefix as the value:

{
  "value": "custom_metric_507f1f77bcf86cd799439011",
  "smart_datetime_reference": "smart_datetime_range",
  "smart_user_id_reference": "smart_user_id"
}

Group_by Dimensions

The following values are valid for group_by[].name and pivot_group_by[].name.

Note: Only one entry is supported in group_by and one in pivot_group_by per request.
group_by defines the row dimension; pivot_group_by defines the column dimension for pivot queries.

Pivot response structure: In pivot queries, table_response is keyed by the pivot_group_by dimension (columns), with the group_by dimension (rows) nested inside each column bucket. This is the inverse of the conceptual row/column model — iterate the outer buckets array to get columns, then each column's inner buckets array to get row values for that column.

Tip: Not all dimensions are compatible with all metrics. Build a report in
Apollo Analytics to verify which dimensions
are available for your chosen metrics before querying the API.

Time dimensions

group_by[].nameDescription
smart_datetime_hourBreak down by hour (absolute — one bucket per hour across the date range)
smart_datetime_hour_of_dayBreak down by hour of day (0–23, aggregated across all dates in the range)
smart_datetime_day_of_weekBreak down by day of week (aggregated across all dates in the range)
smart_datetime_month_of_yearBreak down by month of year (1–12, aggregated across all years in the range)
smart_datetime_dayBreak down by day
smart_datetime_weekBreak down by week
smart_datetime_monthBreak down by month
smart_datetime_yearBreak down by year

Smart datetime dimensions: All smart_datetime_* dimensions automatically resolve to the correct underlying date field for each metric type. For absolute time series (one bucket per period), use smart_datetime_hour, smart_datetime_day, smart_datetime_week, smart_datetime_month, or smart_datetime_year. For recurring patterns aggregated across the range (e.g. "how does Monday compare to Friday?"), use smart_datetime_hour_of_day, smart_datetime_day_of_week, or smart_datetime_month_of_year.

Note: smart_datetime_quarter is not supported — it returns raw epoch timestamps instead of human-readable values.

User and team dimensions

group_by[].nameDescription
smart_user_idBreak down by Apollo team member (rep)
smart_subteam_idBreak down by sub-team

Account dimensions

group_by[].nameDescription
account_idBreak down by individual account
account_owner_idBreak down by account owner
account_stage_idBreak down by account stage
account_label_idsBreak down by account label
organization_num_current_employeesBreak down by company headcount range
organization_industriesBreak down by industry
organization_hq_location_countryBreak down by company HQ country
organization_hq_location_stateBreak down by company HQ state
organization_hq_location_cityBreak down by company HQ city
organization_latest_funding_stage_cdBreak down by latest funding stage
organization_current_technologiesBreak down by technology in use

Contact dimensions

group_by[].nameDescription
contact_idBreak down by individual contact
contact_owner_idBreak down by contact owner
contact_stage_idBreak down by contact stage
contact_label_idsBreak down by contact label
personaBreak down by persona
person_title_unanalyzedBreak down by job title
person_seniorityBreak down by seniority level
person_location_countryBreak down by contact location country
person_location_stateBreak down by contact location state
person_location_cityBreak down by contact location city

Email and sequence dimensions

group_by[].nameDescription
emailer_campaign_idBreak down by sequence
emailer_template_idBreak down by email template
emailer_message_typeBreak down by email type. Known values include outreach_automatic_email (sequence-automated sends) and outreach_manual_email (manually sent from a sequence step).
emailer_step_idBreak down by sequence step (by step ID)
emailer_touch_idBreak down by sequence step touch number or variant
send_from_domainBreak down by sender domain
send_from_emailBreak down by sender email address
email_account_idBreak down by email account (sender mailbox)

Phone dimensions

group_by[].nameDescription
phone_call_outcome_idBreak down by call disposition (outcome)
phone_call_purpose_idBreak down by call purpose
phone_call_sentimentBreak down by call sentiment

Opportunity dimensions

group_by[].nameDescription
opportunity_idBreak down by individual opportunity
opportunity_owner_idBreak down by opportunity owner
opportunity_stage_idBreak down by opportunity stage
forecast_categoryBreak down by forecast category
lead_sourceBreak down by lead source
opportunity_deal_sourceBreak down by deal source
opportunity_pipeline_idBreak down by pipeline

Task dimensions

group_by[].nameDescription
task_typeBreak down by task type
task_statusBreak down by task status

Conversation Intelligence dimensions

group_by[].nameDescription
conversation_stateBreak down by conversation state
conversation_typeBreak down by conversation type
tracker_names_unanalyzedBreak down by conversation tracker or topic keyword

Calendar dimensions

group_by[].nameDescription
calendar_event_setting_typeBreak down by calendar event type

Filters

Filters are passed as a flat key/value object. Most filter values are arrays of IDs for the
corresponding entity, or the special string "current" where noted.

Tip: The easiest way to discover filter IDs for your account is to open
Apollo Analytics → Start from scratch,
configure a report with the filters you want, then inspect the outgoing sync_report
network request in your browser's DevTools — the filters object in that payload contains
the exact IDs to use.

Filter keyValue typeDescriptionHow to get IDs
smart_user_idarray of stringsFilter to specific team members. Use "current" for the authenticated user.Get a List of Usersid field
smart_subteam_idarray of stringsFilter to specific sub-teams.Apollo Settings → Sub-teams — IDs visible in the page URL when editing a sub-team (admin access required)
emailer_campaign_idsarray of stringsFilter to specific sequences.Search for Sequencesid field
contact_stage_idsarray of stringsFilter to specific contact stages.List Contact Stagesid field
account_stage_idsarray of stringsFilter to specific account stages.List Account Stagesid field
opportunity_stage_idsarray of stringsFilter to specific opportunity/deal stages.List Deal Stagesid field
email_account_idsarray of stringsFilter to specific sender mailboxes.Get a List of Email Accountsid field
smart_datetime_rangeobjectRequired for custom date ranges (see below).

Custom date range filter

When you set date_ranges[0].modality to custom_range, you must also include a
smart_datetime_range filter that specifies the exact dates:

{
  "date_ranges": [
    { "modality": "custom_range" }
  ],
  "filters": {
    "smart_datetime_range": {
      "min": "2024-01-01",
      "max": "2024-03-31"
    }
  }
}

Totals Rows and Columns

Two boolean request fields control whether aggregated totals are appended to the response alongside per-dimension-value rows:

ParameterDefaultEffect when true
group_by_totals_selectedfalseResponse includes a group_by_total_response field alongside table_response. For most queries, group_by_total_response mirrors the per-dimension buckets from table_response; it does not collapse them into a single aggregate row.
pivot_group_by_totals_selectedfalseResponse includes aggregated totals per pivot column value in pivot_group_by_total_response, summing across all row values for each column. Only meaningful in pivot queries.

Both fields default to false and can be set independently.


Date Range Presets

Use one of the following values for date_ranges[].modality:

ModalityPeriod
todayCurrent day
yesterdayPrevious day
current_weekCurrent calendar week (Mon–Sun)
current_monthCurrent calendar month
current_quarterCurrent calendar quarter
current_yearCurrent calendar year
last_7_daysRolling last 7 days
last_2_weeksRolling last 14 days
last_30_daysRolling last 30 days
last_3_monthsRolling last 3 months
last_6_monthsRolling last 6 months
last_12_monthsRolling last 12 months
last_4_quartersRolling last 4 quarters
last_2_yearsRolling last 2 years
previous_weekFull previous calendar week
previous_monthFull previous calendar month
previous_quarterFull previous calendar quarter
previous_yearFull previous calendar year
all_timeAll available data
custom_rangeCustom date range (requires smart_datetime_range filter — see above)