Skip to main content
GET
/
scenarios
/
{scenario_id}
/
analytics
/
summary
Get scenario analytics summary
curl --request GET \
  --url https://api.exec.com/rest/v1/scenarios/{scenario_id}/analytics/summary \
  --header 'Authorization: Bearer <token>'
{
  "participant_count": 45,
  "total_sessions": 128,
  "average_best_score": 74.2,
  "average_best_rank": "silver",
  "average_lift_percentage": 18.5,
  "total_practice_minutes": 742,
  "average_session_duration_seconds": 348,
  "score_distribution": [
    {
      "rank": "gold",
      "count": 12,
      "percentage": 26.7
    },
    {
      "rank": "silver",
      "count": 18,
      "percentage": 40
    },
    {
      "rank": "bronze",
      "count": 10,
      "percentage": 22.2
    },
    {
      "rank": "unranked",
      "count": 5,
      "percentage": 11.1
    }
  ]
}

Authorizations

Authorization
string
header
required

API key created in Settings > API.

Format: exec_live_ followed by 40 alphanumeric characters.

Path Parameters

scenario_id
string
required

Scenario identifier (UUID or slug)

Query Parameters

user_ids
string

Comma-separated user IDs to filter by. When combined with user_emails, results are unioned (all matching users from either list are included).

user_emails
string

Comma-separated user email addresses to filter by. When combined with user_ids, results are unioned (all matching users from either list are included).

group_ids
string

Comma-separated workspace group IDs to filter by

start_date
string<date-time>

ISO 8601 datetime — only include sessions on or after this date

end_date
string<date-time>

ISO 8601 datetime — only include sessions on or before this date

exclude_system_users
boolean
default:false

Exclude sessions from system users (emails ending in @exec.com). Default false.

Response

Scenario analytics summary

Aggregate analytics metrics for a scenario.

participant_count
integer

Number of unique participants with graded sessions

total_sessions
integer

Total number of graded sessions

average_best_score
number

Average of each participant's best score (0-100)

average_best_rank
enum<string>

Rank corresponding to the average best score

Available options:
gold,
silver,
bronze,
unranked
average_lift_percentage
number

Average improvement (best - first score) across participants

total_practice_minutes
integer

Total practice time across all sessions in minutes

average_session_duration_seconds
number

Average duration per session in seconds

score_distribution
object[]

Rank distribution across participants based on best scores (Gold ≥90, Silver ≥75, Bronze ≥50, Unranked <50).