Metrics and Dimensions Reference

Reference for the metrics, group_by dimensions, and filters supported by the Query Analytics Report endpoint. Last updated July 2026. 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 valid date and user field 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

⚠️

Important

smart_datetime_range or smart_user_id are filter/grouping keys, not valid reference fields. These values are metric-specific. Use the smart_datetime_reference and smart_user_id_reference values listed under the table for the metric family you're reporting on.

smart_datetime_reference

ValueDescription
activity_datetimeExact timestamp of the activity, such as when an email was sent, a call was logged, a task activity occurred, or a meeting was recorded.
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. Commonly used for task metrics.
opportunity_created_atDate the opportunity was created. Commonly used for opportunity metrics.
opportunity_close_dateExpected or actual close date of the opportunity.
start_timeStart time of a calendar event or conversation.
end_timeEnd time of a calendar event.
date_fromDate used for email deliverability score metrics.
conversation_play_histories.listened_atDate and time a conversation recording was listened to.
conversation_comments.created_atDate and time a conversation comment was created.
conversation_scorecard_responses.submitted_atDate and time a conversation scorecard response was submitted.

smart_user_id_reference

ValueDescription
user_idApollo user associated with the activity or event, such as the user who sent an email, logged a call, completed a task, changed a stage, or triggered an enrichment activity.
owner_idOwner of the contact. Used by contact metrics.
account_owner_idOwner of the account. Used by account, and contact metrics.
opportunity_owner_idOwner of the opportunity. Used by opportunity metrics.
contact_owner_idOwner of the contact. Used by contact metrics.
nested_participant_user_idsUsers who participated in a conversation. Used by conversation metrics.
conversation_participants.user_idUser ID for a conversation participant. Used by conversation metrics.
conversation_play_histories.user_idUser ID associated with a conversation playback/listen event. Used by conversation metrics.
conversation_comments.conversation_user_idUser ID associated with a conversation comment. Used by conversation metrics.
conversation_scorecard_responses.conversation_user_idUser ID associated with a submitted conversation scorecard response. Used by conversation metrics.

Metrics

⚠️

Important

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. They are not percentages. For example, 0.331 means 33.1%. Multiply by 100 to convert to a percentage for display.

Email metrics

metrics[].valueDescriptionValid smart_datetime_referenceValid smart_user_id_reference
num_emails_scheduledNumber of Emails scheduled.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_sentNumber of Emails sent — emails delivered or bounced.activity_datetime, contact_created_at, account_created_atuser_id
num_contacts_emailedNumber of Contacts emailed — unique contacts emailed.activity_datetime, contact_created_at, account_created_atuser_id
num_accounts_emailedNumber of Accounts emailed — unique accounts emailed.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_deliveredNumber of Emails delivered.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_delivered_open_trackedNumber of Emails delivered with open tracking enabled.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_delivered_click_trackedNumber of Emails delivered with click tracking enabled.activity_datetime, contact_created_at, account_created_atuser_id
percent_emails_deliveredPercentage of Emails delivered out of sent.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_bouncedNumber of Emails bounced.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_bounced_waterfall_enrichedNumber of Emails bounced that were Waterfall-enriched.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_bounced_waterfall_validatedNumber of Emails bounced that were Waterfall-validated.activity_datetime, contact_created_at, account_created_atuser_id
percent_emails_bouncedPercentage of Emails bounced out of sent.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_openedNumber of Emails opened (bots filtered).activity_datetime, contact_created_at, account_created_atuser_id
num_emails_opened_unfilteredNumber of Emails opened including bot opens.activity_datetime, contact_created_at, account_created_atuser_id
percent_emails_opened_trackedPercentage of Emails opened out of delivered with tracking enabled.activity_datetime, contact_created_at, account_created_atuser_id
percent_emails_opened_unfiltered_trackedPercentage of Emails opened (bots included) out of delivered with tracking enabled.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_clickedNumber of Emails clicked (bots filtered).activity_datetime, contact_created_at, account_created_atuser_id
num_emails_clicked_unfilteredNumber of Emails clicked including bot clicks.activity_datetime, contact_created_at, account_created_atuser_id
percent_emails_clicked_trackedPercentage of Emails clicked out of delivered with tracking enabled.activity_datetime, contact_created_at, account_created_atuser_id
percent_emails_clicked_unfiltered_trackedPercentage of Emails clicked (bots included) out of delivered with tracking enabled.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_repliedNumber of Emails replied.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_replied_waterfall_enrichedNumber of Emails replied that were Waterfall-enriched.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_replied_waterfall_validatedNumber of Emails replied that were Waterfall-validated.activity_datetime, contact_created_at, account_created_atuser_id
percent_emails_repliedPercentage of Emails replied out of delivered.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_positiveNumber of Emails with positive sentiment.activity_datetime, contact_created_at, account_created_atuser_id
percent_num_emails_positivePercentage of Positive-sentiment emails out of delivered.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_negativeNumber of Emails with negative sentiment.activity_datetime, contact_created_at, account_created_atuser_id
percent_num_emails_negativePercentage of Negative-sentiment emails out of delivered.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_demoedNumber of Emails marked "interested".activity_datetime, contact_created_at, account_created_atuser_id
percent_emails_demoedPercentage of Emails interested out of delivered.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_unsubscribedNumber of Unsubscribes from emails.activity_datetime, contact_created_at, account_created_atuser_id
percent_emails_unsubscribedPercentage of Unsubscribes out of delivered.activity_datetime, contact_created_at, account_created_atuser_id
num_contacts_demoedNumber of Unique contacts marked "interested".activity_datetime, contact_created_at, account_created_atuser_id
num_contacts_openedNumber of Unique contacts who opened at least one email.activity_datetime, contact_created_at, account_created_atuser_id
num_contacts_repliedNumber of Unique contacts who replied to at least one email.activity_datetime, contact_created_at, account_created_atuser_id
percent_contacts_openedPercentage of Contacts opened.activity_datetime, contact_created_at, account_created_atuser_id
percent_contacts_repliedPercentage of Contacts replied.activity_datetime, contact_created_at, account_created_atuser_id
percent_contacts_interestedPercentage of Contacts interested.activity_datetime, contact_created_at, account_created_atuser_id
num_emails_spam_blockedNumber of Emails blocked as spam.activity_datetime, contact_created_at, account_created_atuser_id
percent_emails_spam_blockedPercentage of Emails spam-blocked.activity_datetime, contact_created_at, account_created_atuser_id
email_deliverability_scoreAverage deliverability score across email accounts (metric_type: email_deliverability_score).date_fromuser_id

Phone metrics

metrics[].valueDescriptionValid smart_datetime_referenceValid smart_user_id_reference
num_phone_callsNumber of Outbound phone calls logged.activity_datetime, contact_created_at, account_created_atuser_id
num_contacts_calledNumber of Unique contacts called.activity_datetime, contact_created_at, account_created_atuser_id
num_accounts_calledNumber of Unique accounts called.activity_datetime, contact_created_at, account_created_atuser_id
num_phone_calls_connectNumber of Calls connected.activity_datetime, contact_created_at, account_created_atuser_id
num_phone_calls_connect_waterfall_enrichedNumber of Calls connected on Waterfall-enriched numbers.activity_datetime, contact_created_at, account_created_atuser_id
percent_phone_calls_connectPercentage of Calls connected out of total logged.activity_datetime, contact_created_at, account_created_atuser_id
num_phone_calls_connect_positiveNumber of Connected calls with disposition "positive".activity_datetime, contact_created_at, account_created_atuser_id
percent_phone_calls_connect_positivePercentage of Connected calls with positive disposition.activity_datetime, contact_created_at, account_created_atuser_id
num_phone_calls_connect_neutralNumber of Connected calls with neutral disposition.activity_datetime, contact_created_at, account_created_atuser_id
percent_phone_calls_connect_neutralPercentage of Connected calls with neutral disposition.activity_datetime, contact_created_at, account_created_atuser_id
num_phone_calls_connect_negativeNumber of Connected calls with negative disposition.activity_datetime, contact_created_at, account_created_atuser_id
percent_phone_calls_connect_negativePercentage of Connected calls with negative disposition.activity_datetime, contact_created_at, account_created_atuser_id
avg_phone_call_durationAverage call duration.activity_datetime, contact_created_at, account_created_atuser_id
dialer_total_callsNumber of Dials — outbound + inbound calls via the dialer.activity_datetime, contact_created_at, account_created_atuser_id
dialer_calls_answeredNumber of Dialer connects — calls with duration ≥ 1 second.activity_datetime, contact_created_at, account_created_atuser_id
dialer_calls_conversationsNumber of Dialer conversations — calls with duration ≥ 30 seconds.activity_datetime, contact_created_at, account_created_atuser_id
dialer_calls_bridgedNumber of Calls successfully bridged.activity_datetime, contact_created_at, account_created_atuser_id
dialer_calls_callbacksNumber of Callbacks — inbound calls received.activity_datetime, contact_created_at, account_created_atuser_id
percent_phone_calls_answeredDial-to-connect rate — Percentage of dialed calls that connected.activity_datetime, contact_created_at, account_created_atuser_id
percent_callbacks_answeredCallbacks-to-connect rate — Percentage of callbacks that connected.activity_datetime, contact_created_at, account_created_atuser_id
percent_phone_calls_bridgedBridged-to-connect rate — Percentage of total calls bridged.activity_datetime, contact_created_at, account_created_atuser_id
percent_connects_to_conversationsConnect-to-conversation rate — Percentage of connected calls ≥ 30s.activity_datetime, contact_created_at, account_created_atuser_id

Meeting metrics

metrics[].valueDescriptionValid smart_datetime_referenceValid smart_user_id_reference
num_calendar_events_scheduledNumber of Meetings scheduled via Apollo Meetings.activity_datetime, start_time, end_timeuser_id
num_calendar_events_scheduled_inboundNumber of Meetings scheduled via the Inbound router.activity_datetime, start_time, end_timeuser_id
num_calendar_events_cancelledNumber of Meetings cancelled via Apollo Meetings.activity_datetime, start_time, end_timeuser_id
num_calendar_events_cancelled_inboundNumber of Meetings cancelled via the Inbound router.activity_datetime, start_time, end_timeuser_id
num_calendar_events_rescheduledNumber of Meetings rescheduled via Apollo Meetings.activity_datetime, start_time, end_timeuser_id
num_all_meetings_scheduledNumber of All meetings scheduled (Apollo + external).activity_datetime, start_time, end_timeuser_id
num_all_meetings_rescheduledNumber of All meetings rescheduled.activity_datetime, start_time, end_timeuser_id
num_all_meetings_scheduled_via_emailNumber of All meetings scheduled in response to email.activity_datetime, start_time, end_timeuser_id
num_all_meetings_scheduled_via_callNumber of All meetings scheduled in response to phone calls.activity_datetime, start_time, end_timeuser_id
num_meetings_attendedNumber of Meetings where the guest attended.activity_datetime, start_time, end_timeuser_id
num_meetings_no_showNumber of Meetings where the guest did not show up.activity_datetime, start_time, end_timeuser_id
percent_meeting_show_ratePercentage of scheduled meetings where the guest attended.activity_datetime, start_time, end_timeuser_id
num_contacts_with_meetingsNumber of Unique contacts with at least one meeting.activity_datetime, start_time, end_timeuser_id
percent_contact_to_meeting_ratePercentage of Sequence-enrolled contacts with at least one meeting.activity_datetime, start_time, end_timeuser_id

Task metrics

metrics[].valueDescriptionValid smart_datetime_referenceValid smart_user_id_reference
num_phone_calls_scheduledNumber of phone call tasks scheduled.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_phone_calls_completedNumber of phone call tasks completed.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_tasksNumber of Tasks — completed, scheduled, or archived.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_tasks_scheduledNumber of Tasks scheduled and not yet completed.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_email_item_tasks_scheduledNumber of Email tasks scheduled.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_action_item_tasks_scheduledNumber of Action-item tasks scheduled.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_tasks_completed_or_skippedNumber of Tasks completed or archived.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_tasks_completedNumber of Tasks completed.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
percent_tasks_completedPercentage Tasks completed out of completed + archived.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_email_item_tasks_completedNumber of Email tasks completed.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_action_item_tasks_completedNumber of Action-item tasks completed.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_tasks_completed_on_timeNumber of Tasks completed by their due date.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
percent_tasks_completed_on_timePercentage Tasks completed on time out of completed.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
percent_total_tasks_completed_on_timePercentage Tasks completed on time out of scheduled + completed + archived.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_tasks_skippedNumber of Tasks archived.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
percent_tasks_skippedPercentage Tasks archived.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
overdue_tasksNumber of Overdue tasks — scheduled or completed past due date.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
unfinished_overdue_tasksNumber of Overdue tasks not completed by the due date.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
percent_unfinished_overdue_tasksPercentage Unfinished overdue tasks.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_tasks_from_sequencesNumber of Tasks created from sequences.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
percent_tasks_from_sequencesPercentage Tasks from sequences.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_linkedin_tasks_scheduledNumber of LinkedIn-type tasks scheduled.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_linkedin_tasks_completed_or_skippedNumber of LinkedIn tasks completed or archived.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_linkedin_tasks_completedNumber of LinkedIn tasks completed.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
percent_linkedin_tasks_completedPercentage of LinkedIn tasks completed out of completed + archived.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_linkedin_tasks_completed_on_timeNumber of LinkedIn tasks completed by their due date.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
percent_linkedin_tasks_completed_on_timePercentage of LinkedIn tasks completed on time.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
num_linkedin_tasks_skippedNumber of LinkedIn tasks archived.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id
percent_linkedin_tasks_skippedPercentage of LinkedIn tasks archived.task_created_at, activity_datetime, task_due_at, contact_created_at, account_created_atuser_id

Contact metrics

metrics[].valueDescriptionValid smart_datetime_referenceValid smart_user_id_reference
num_contactsNumber of Total contacts prospected.contact_created_at, account_created_atowner_id, account_owner_id
num_crm_contactsNumber of Contacts and leads connected to your CRM.contact_created_at, account_created_atowner_id, account_owner_id
num_salesforce_contactsNumber of Contacts connected to Salesforce.contact_created_at, account_created_atowner_id, account_owner_id
num_salesforce_leadsNumber of Leads connected to Salesforce.contact_created_at, account_created_atowner_id, account_owner_id
num_contacts_with_job_changeNumber of Contacts who have changed jobs.contact_created_at, account_created_atowner_id, account_owner_id
num_contacts_with_missing_emailNumber of Contacts whose email is missing.contact_created_at, account_created_atowner_id, account_owner_id
num_total_contacts_in_sequenceNumber of Cumulative contacts ever added to any sequence.contact_created_at, account_created_atowner_id, account_owner_id
num_total_accounts_in_sequenceNumber of Cumulative unique accounts with ever-sequenced contacts.contact_created_at, account_created_atowner_id, account_owner_id
num_contacts_touchedNumber of unique contacts touched via phone calls or emails.activity_datetime, contact_created_atuser_id, contact_owner_id
num_contacts_added_to_sequenceNumber of unique contacts added to a sequence.activity_datetime, contact_created_at, account_created_atuser_id
num_contacts_remove_from_sequenceNumber of unique contacts removed from a sequence.activity_datetime, contact_created_at, account_created_atuser_id
num_net_new_peopleNumber of people that have not been prospected yet.

Note: num_net_new_people does not use date or user reference fields — any values you pass for smart_datetime_reference and smart_user_id_reference are ignored. You must still include both keys in each metric object, as the API rejects a metric that is missing either key.

Account metrics

metrics[].valueDescriptionValid smart_datetime_referenceValid smart_user_id_reference
num_accountsNumber of Total accounts prospected.account_created_ataccount_owner_id
num_accounts_touchedNumber of unique accounts touched via phone calls or emails.activity_datetime, account_created_atuser_id, account_owner_id
num_net_new_companiesNumber of companies that have not been prospected yet.
revenue_amount$ Sum of account revenue (thousand-dollar units).account_created_ataccount_owner_id
avg_revenue_amount$ Average account revenue (thousand-dollar units).account_created_ataccount_owner_id
num_crm_accountsNumber of Accounts connected to your CRM.account_created_ataccount_owner_id
num_stage_change_accountsNumber of Unique accounts that changed stage at least once.activity_datetime, account_created_atuser_id

Note: num_net_new_companies does not use date or user reference fields — any values you pass for smart_datetime_reference and smart_user_id_reference are ignored. You must still include both keys in each metric object, as the API rejects a metric that is missing either key.

Opportunity metrics

metrics[].valueDescriptionValid smart_datetime_referenceValid smart_user_id_reference
num_opportunitiesNumber of Deals total.opportunity_created_at, opportunity_close_dateopportunity_owner_id
num_wonNumber of Deals in Closed/Won.opportunity_created_at, opportunity_close_dateopportunity_owner_id
num_closedNumber of Deals in Closed/Won or Closed/Lost.opportunity_created_at, opportunity_close_dateopportunity_owner_id
won_amount$ Sum of amounts across Closed/Won deals (revenue).opportunity_created_at, opportunity_close_dateopportunity_owner_id
avg_won_amount$ Average deal size across Closed/Won deals.opportunity_created_at, opportunity_close_dateopportunity_owner_id
total_forecasted_revenue$ Total weighted forecasted revenue, weighted by stage probability.opportunity_created_at, opportunity_close_dateopportunity_owner_id
avg_forecasted_revenue$ Average weighted forecasted revenue.opportunity_created_at, opportunity_close_dateopportunity_owner_id
deal_amount$ Sum of amounts across all deals.opportunity_created_at, opportunity_close_dateopportunity_owner_id
avg_deal_amount$ Average amount across all deals.opportunity_created_at, opportunity_close_dateopportunity_owner_id
avg_salescycle_daysAverage sales-cycle length in days (first touch to close).opportunity_created_at, opportunity_close_dateopportunity_owner_id
percent_win_ratePercentage Win rate — Closed/Won ÷ (Closed/Won + Closed/Lost).opportunity_created_at, opportunity_close_dateopportunity_owner_id
pipeline_amount$ Pipeline generated — sum across Pipeline/Best Case/Commit/Closed forecast categories.opportunity_created_at, opportunity_close_dateopportunity_owner_id
num_stage_change_opportunitiesNumber of Unique deals that changed stage at least once.activity_datetime, opportunity_created_at, opportunity_close_dateuser_id, opportunity_owner_id
avg_stage_change_daysAverage days between stage changes.activity_datetime, opportunity_created_at, opportunity_close_dateuser_id, opportunity_owner_id

Conversation Intelligence metrics

⚠️

Feature Required

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[].valueDescriptionValid smart_datetime_referenceValid smart_user_id_reference
num_meetings_heldNumber of Meetings recorded as conversations.start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
num_conversations_recordedNumber of Conversations recorded.start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
num_conversations_upcomingNumber of Upcoming (scheduled) conversations.start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
speaker_switchesNumber of Times the speaker switched between customer and team member.start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
avg_longest_customer_storyAverage of the longest customer monologue per conversation (ms).start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
avg_patienceAverage patience — duration between customer and team-member speaking (ms).start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
avg_talk_ratioAverage talk ratio (team vs. customer).start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
avg_question_rateAverage question rate.start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
avg_longest_monologueAverage of the team member's longest monologue per conversation (ms).start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
num_conversations_listenedNumber of Conversations listened to.start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
num_conversations_with_commentsNumber of Conversations that received at least one comment.start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
num_conversations_with_scorecardsNumber of Conversations with a scorecard response.start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
avg_conversation_durationAverage duration of conversations (ms).start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id
total_conversation_durationTotal duration of conversations (ms).start_time, conversation_play_histories.listened_at, conversation_comments.created_at, conversation_scorecard_responses.submitted_atnested_participant_user_ids, conversation_participants.user_id, conversation_play_histories.user_id, conversation_comments.conversation_user_id, conversation_scorecard_responses.conversation_user_id

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)