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
valuethat 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 filtersmart_user_id_reference— which user field to use for the team member filterThe 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_nameis metadata onlyYou may include a
display_namefield 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 ofdisplay_name.
Smart Reference Field Values
smart_datetime_reference
smart_datetime_reference| Value | Description |
|---|---|
smart_datetime_range | Default for most activity metrics (email, phone, meetings, contacts, accounts). Uses the date range set by date_ranges[].modality. |
activity_datetime | Exact timestamp of the activity — when an email was sent, a call was logged, a meeting was recorded, etc. |
contact_created_at | Date the contact was created in Apollo |
account_created_at | Date the account was created in Apollo |
task_created_at | Date the task was created |
task_due_at | Due date of the task (default for task metrics) |
opportunity_created_at | Date the opportunity was created (default for opportunity metrics) |
opportunity_close_date | Expected or actual close date of the opportunity |
smart_user_id_reference
smart_user_id_reference| Value | Description |
|---|---|
smart_user_id | The user who performed or owns the activity. Default for all metrics. |
Metrics
Email metrics
metrics[].value | Description | smart_datetime_reference | smart_user_id_reference |
|---|---|---|---|
num_emails_sent | Number of emails sent | smart_datetime_range | smart_user_id |
num_emails_delivered | Number of emails delivered (sent minus bounced) | smart_datetime_range | smart_user_id |
num_emails_opened | Number of emails opened | smart_datetime_range | smart_user_id |
num_emails_replied | Number of emails replied to | smart_datetime_range | smart_user_id |
num_emails_bounced | Number of emails bounced | smart_datetime_range | smart_user_id |
num_emails_clicked | Number of email link clicks | smart_datetime_range | smart_user_id |
num_emails_unsubscribed | Number of email unsubscribes | smart_datetime_range | smart_user_id |
num_emails_demoed | Number of demo requests from emails | smart_datetime_range | smart_user_id |
num_contacts_emailed | Number of unique contacts emailed | smart_datetime_range | smart_user_id |
num_contacts_opened | Number of unique contacts that opened an email | smart_datetime_range | smart_user_id |
num_contacts_replied | Number of unique contacts that replied | smart_datetime_range | smart_user_id |
percent_emails_opened_tracked | Email open rate (ratio) | smart_datetime_range | smart_user_id |
percent_emails_replied | Email reply rate (ratio) | smart_datetime_range | smart_user_id |
percent_emails_bounced | Email bounce rate (ratio) | smart_datetime_range | smart_user_id |
percent_emails_clicked_tracked | Email click-through rate (ratio) | smart_datetime_range | smart_user_id |
percent_emails_demoed | Email demo rate (ratio) | smart_datetime_range | smart_user_id |
percent_emails_unsubscribed | Email unsubscribe rate (ratio) | smart_datetime_range | smart_user_id |
percent_contacts_replied | Proportion of emailed contacts that replied (ratio) | smart_datetime_range | smart_user_id |
percent_contacts_interested | Proportion of emailed contacts that expressed interest (ratio) | smart_datetime_range | smart_user_id |
Phone metrics
metrics[].value | Description | smart_datetime_reference | smart_user_id_reference |
|---|---|---|---|
num_phone_calls | Number of calls dialed | smart_datetime_range | smart_user_id |
num_phone_calls_connect | Number of calls that connected (recipient answered) | smart_datetime_range | smart_user_id |
num_phone_calls_connect_positive | Number of connected calls with a positive outcome | smart_datetime_range | smart_user_id |
num_phone_calls_connect_negative | Number of connected calls with a negative outcome | smart_datetime_range | smart_user_id |
num_phone_calls_connect_neutral | Number of connected calls with a neutral outcome | smart_datetime_range | smart_user_id |
avg_phone_call_duration | Average call duration in seconds | smart_datetime_range | smart_user_id |
num_contacts_called | Number of unique contacts called | smart_datetime_range | smart_user_id |
percent_phone_calls_connect | Call connect rate (ratio) | smart_datetime_range | smart_user_id |
percent_phone_calls_connect_positive | Positive outcome rate for connected calls (ratio) | smart_datetime_range | smart_user_id |
Meeting metrics
metrics[].value | Description | smart_datetime_reference | smart_user_id_reference |
|---|---|---|---|
num_all_meetings_scheduled | Number of meetings scheduled (includes later cancelled or rescheduled) | smart_datetime_range | smart_user_id |
num_meetings_held | Number of meetings held (actually occurred) | smart_datetime_range | smart_user_id |
num_all_meetings_rescheduled | Number of meetings rescheduled | smart_datetime_range | smart_user_id |
num_calendar_events_scheduled | Number of calendar events created | smart_datetime_range | smart_user_id |
num_calendar_events_cancelled | Number of calendar events cancelled | smart_datetime_range | smart_user_id |
num_all_meetings_scheduled_via_email | Number of meetings booked via email | smart_datetime_range | smart_user_id |
num_all_meetings_scheduled_via_call | Number of meetings booked via call | smart_datetime_range | smart_user_id |
Task metrics
smart_datetime_referencefor task metricsTask completion and scheduling metrics use
task_created_atas thesmart_datetime_referencevalue — the date range filter applies to when the task was created.
Overdue task metrics (overdue_tasks,unfinished_overdue_tasks,percent_unfinished_overdue_tasks) usetask_due_atinstead — the date range filter applies to the task due date.
metrics[].value | Description | smart_datetime_reference | smart_user_id_reference |
|---|---|---|---|
num_tasks | Total number of tasks | task_created_at | smart_user_id |
num_tasks_scheduled | Number of tasks scheduled | task_created_at | smart_user_id |
num_tasks_completed | Number of tasks completed | task_created_at | smart_user_id |
num_tasks_completed_on_time | Number of tasks completed on time | task_created_at | smart_user_id |
num_phone_calls_completed | Number of phone call tasks completed | task_created_at | smart_user_id |
num_linkedin_tasks_scheduled | Number of LinkedIn tasks scheduled | task_created_at | smart_user_id |
num_linkedin_tasks_completed | Number of LinkedIn tasks completed | task_created_at | smart_user_id |
num_linkedin_tasks_skipped | Number of LinkedIn tasks skipped | task_created_at | smart_user_id |
num_action_item_tasks_completed | Number of action item tasks completed | task_created_at | smart_user_id |
percent_tasks_completed | Task completion rate (ratio) | task_created_at | smart_user_id |
percent_tasks_completed_on_time | On-time task completion rate (ratio) | task_created_at | smart_user_id |
percent_linkedin_tasks_completed | LinkedIn task completion rate (ratio) | task_created_at | smart_user_id |
overdue_tasks | Count of currently overdue tasks | task_due_at | smart_user_id |
unfinished_overdue_tasks | Count of unfinished overdue tasks | task_due_at | smart_user_id |
percent_unfinished_overdue_tasks | Proportion of tasks that are unfinished and overdue (ratio) | task_due_at | smart_user_id |
Contact metrics
metrics[].value | Description | smart_datetime_reference | smart_user_id_reference |
|---|---|---|---|
num_contacts | Number of contacts | smart_datetime_range | smart_user_id |
num_contacts_touched | Number of unique contacts that received any activity | smart_datetime_range | smart_user_id |
num_net_new_people | Number of net new people (contacts) added | smart_datetime_range | smart_user_id |
num_contacts_with_job_change | Number of contacts with a detected job change | smart_datetime_range | smart_user_id |
num_contacts_added_to_sequence | Number of contacts added to a sequence | smart_datetime_range | smart_user_id |
num_contacts_remove_from_sequence | Number of contacts removed from a sequence | smart_datetime_range | smart_user_id |
Account metrics
metrics[].value | Description | smart_datetime_reference | smart_user_id_reference |
|---|---|---|---|
num_accounts | Number of accounts | smart_datetime_range | smart_user_id |
num_accounts_touched | Number of unique accounts that received any activity | smart_datetime_range | smart_user_id |
num_net_new_companies | Number of net new companies added | smart_datetime_range | smart_user_id |
revenue_amount | Total revenue amount | smart_datetime_range | smart_user_id |
Opportunity metrics
smart_datetime_referencefor opportunity metricsOpportunity metrics use
opportunity_created_atas thesmart_datetime_referencevalue, notsmart_datetime_range. The date range filter applies to the opportunity creation date.
metrics[].value | Description | smart_datetime_reference | smart_user_id_reference |
|---|---|---|---|
num_opportunities | Number of opportunities created | opportunity_created_at | smart_user_id |
num_won | Number of opportunities won (closed-won) | opportunity_created_at | smart_user_id |
num_closed | Number of opportunities closed (closed-lost) | opportunity_created_at | smart_user_id |
deal_amount | Total deal value of opportunities | opportunity_created_at | smart_user_id |
avg_deal_amount | Average deal value of opportunities | opportunity_created_at | smart_user_id |
avg_won_amount | Average value of won opportunities | opportunity_created_at | smart_user_id |
percent_win_rate | Proportion of closed opportunities that were won (ratio) | opportunity_created_at | smart_user_id |
pipeline_amount | Total open pipeline value | opportunity_created_at | smart_user_id |
won_amount | Total value of won opportunities | opportunity_created_at | smart_user_id |
avg_salescycle_days | Average number of days from opportunity creation to close | opportunity_created_at | smart_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[].value | Description | smart_datetime_reference | smart_user_id_reference |
|---|---|---|---|
num_conversations_recorded | Number of conversations recorded | smart_datetime_range | smart_user_id |
num_conversations_listened | Number of conversations listened to | smart_datetime_range | smart_user_id |
avg_conversation_duration | Average conversation duration in seconds | smart_datetime_range | smart_user_id |
total_conversation_duration | Total conversation duration across all recorded conversations | smart_datetime_range | smart_user_id |
avg_talk_ratio | Average ratio of rep talk time to total conversation time (decimal 0–1) | smart_datetime_range | smart_user_id |
avg_question_rate | Average number of questions asked per conversation | smart_datetime_range | smart_user_id |
avg_longest_monologue | Average duration of the longest uninterrupted speech per conversation (seconds) | smart_datetime_range | smart_user_id |
speaker_switches | Average number of times the speaker changes per conversation | smart_datetime_range | smart_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.331means 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_byand one inpivot_group_byper request.
group_bydefines the row dimension;pivot_group_bydefines the column dimension for pivot queries.Pivot response structure: In pivot queries,
table_responseis keyed by thepivot_group_bydimension (columns), with thegroup_bydimension (rows) nested inside each column bucket. This is the inverse of the conceptual row/column model — iterate the outerbucketsarray to get columns, then each column's innerbucketsarray 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[].name | Description |
|---|---|
smart_datetime_hour | Break down by hour (absolute — one bucket per hour across the date range) |
smart_datetime_hour_of_day | Break down by hour of day (0–23, aggregated across all dates in the range) |
smart_datetime_day_of_week | Break down by day of week (aggregated across all dates in the range) |
smart_datetime_month_of_year | Break down by month of year (1–12, aggregated across all years in the range) |
smart_datetime_day | Break down by day |
smart_datetime_week | Break down by week |
smart_datetime_month | Break down by month |
smart_datetime_year | Break 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), usesmart_datetime_hour,smart_datetime_day,smart_datetime_week,smart_datetime_month, orsmart_datetime_year. For recurring patterns aggregated across the range (e.g. "how does Monday compare to Friday?"), usesmart_datetime_hour_of_day,smart_datetime_day_of_week, orsmart_datetime_month_of_year.Note:
smart_datetime_quarteris not supported — it returns raw epoch timestamps instead of human-readable values.
User and team dimensions
group_by[].name | Description |
|---|---|
smart_user_id | Break down by Apollo team member (rep) |
smart_subteam_id | Break down by sub-team |
Account dimensions
group_by[].name | Description |
|---|---|
account_id | Break down by individual account |
account_owner_id | Break down by account owner |
account_stage_id | Break down by account stage |
account_label_ids | Break down by account label |
organization_num_current_employees | Break down by company headcount range |
organization_industries | Break down by industry |
organization_hq_location_country | Break down by company HQ country |
organization_hq_location_state | Break down by company HQ state |
organization_hq_location_city | Break down by company HQ city |
organization_latest_funding_stage_cd | Break down by latest funding stage |
organization_current_technologies | Break down by technology in use |
Contact dimensions
group_by[].name | Description |
|---|---|
contact_id | Break down by individual contact |
contact_owner_id | Break down by contact owner |
contact_stage_id | Break down by contact stage |
contact_label_ids | Break down by contact label |
persona | Break down by persona |
person_title_unanalyzed | Break down by job title |
person_seniority | Break down by seniority level |
person_location_country | Break down by contact location country |
person_location_state | Break down by contact location state |
person_location_city | Break down by contact location city |
Email and sequence dimensions
group_by[].name | Description |
|---|---|
emailer_campaign_id | Break down by sequence |
emailer_template_id | Break down by email template |
emailer_message_type | Break 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_id | Break down by sequence step (by step ID) |
emailer_touch_id | Break down by sequence step touch number or variant |
send_from_domain | Break down by sender domain |
send_from_email | Break down by sender email address |
email_account_id | Break down by email account (sender mailbox) |
Phone dimensions
group_by[].name | Description |
|---|---|
phone_call_outcome_id | Break down by call disposition (outcome) |
phone_call_purpose_id | Break down by call purpose |
phone_call_sentiment | Break down by call sentiment |
Opportunity dimensions
group_by[].name | Description |
|---|---|
opportunity_id | Break down by individual opportunity |
opportunity_owner_id | Break down by opportunity owner |
opportunity_stage_id | Break down by opportunity stage |
forecast_category | Break down by forecast category |
lead_source | Break down by lead source |
opportunity_deal_source | Break down by deal source |
opportunity_pipeline_id | Break down by pipeline |
Task dimensions
group_by[].name | Description |
|---|---|
task_type | Break down by task type |
task_status | Break down by task status |
Conversation Intelligence dimensions
group_by[].name | Description |
|---|---|
conversation_state | Break down by conversation state |
conversation_type | Break down by conversation type |
tracker_names_unanalyzed | Break down by conversation tracker or topic keyword |
Calendar dimensions
group_by[].name | Description |
|---|---|
calendar_event_setting_type | Break 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 outgoingsync_report
network request in your browser's DevTools — thefiltersobject in that payload contains
the exact IDs to use.
| Filter key | Value type | Description | How to get IDs |
|---|---|---|---|
smart_user_id | array of strings | Filter to specific team members. Use "current" for the authenticated user. | Get a List of Users → id field |
smart_subteam_id | array of strings | Filter to specific sub-teams. | Apollo Settings → Sub-teams — IDs visible in the page URL when editing a sub-team (admin access required) |
emailer_campaign_ids | array of strings | Filter to specific sequences. | Search for Sequences → id field |
contact_stage_ids | array of strings | Filter to specific contact stages. | List Contact Stages → id field |
account_stage_ids | array of strings | Filter to specific account stages. | List Account Stages → id field |
opportunity_stage_ids | array of strings | Filter to specific opportunity/deal stages. | List Deal Stages → id field |
email_account_ids | array of strings | Filter to specific sender mailboxes. | Get a List of Email Accounts → id field |
smart_datetime_range | object | Required 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:
| Parameter | Default | Effect when true |
|---|---|---|
group_by_totals_selected | false | Response 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_selected | false | Response 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:
| Modality | Period |
|---|---|
today | Current day |
yesterday | Previous day |
current_week | Current calendar week (Mon–Sun) |
current_month | Current calendar month |
current_quarter | Current calendar quarter |
current_year | Current calendar year |
last_7_days | Rolling last 7 days |
last_2_weeks | Rolling last 14 days |
last_30_days | Rolling last 30 days |
last_3_months | Rolling last 3 months |
last_6_months | Rolling last 6 months |
last_12_months | Rolling last 12 months |
last_4_quarters | Rolling last 4 quarters |
last_2_years | Rolling last 2 years |
previous_week | Full previous calendar week |
previous_month | Full previous calendar month |
previous_quarter | Full previous calendar quarter |
previous_year | Full previous calendar year |
all_time | All available data |
custom_range | Custom date range (requires smart_datetime_range filter — see above) |