Analytics
The Analytics API gives you detailed insights into video performance, user engagement, and content effectiveness. You can filter data by organization, entitlements, watch history, and key engagement metrics to track viewership trends and measure content impact. Whether you need high-level summaries or granular breakdowns, this API gives you the flexibility to drive data-driven content optimization and monetization strategies.
Use this API when you need:
- Programmatic analytics reporting and data extraction
- Custom dashboards and performance monitoring
- Integration with reporting tools and external platforms
- Automated analysis of video engagement and content effectiveness
Authentication Type
Use the read-write-update endpoint authentication.
Endpoint
GET https://external.parone.io/v2/analytics/{TYPE}/{FORMAT}
URL Parameters
| Parameter | Type | Description |
|---|---|---|
TYPE | string (required) | The type of analytics data to retrieve. Use videos, ads, or ecommerce |
FORMAT | string (required) | Use summary for aggregated totals over the date range or detailed for breakdowns by day. Results are always broken out by contentKey and tput (if requested). |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
startDate | string (required) | The start date for the analytics data. In UTC (YYYY-MM-DD). |
endDate | string (required) | The end date for the analytics data. In UTC (YYYY-MM-DD). |
fields | list of strings | Specify which metrics to retrieve. |
tput | string (optional) | Specify the tput to retrieve. |
contentKey | string (optional) | Specify the contentKey to retrieve. |
page | integer (optional) | Which page of the results to retrieve. Defaults to 1 |
pageSize | integer (optional) | The number of results per page. Defaults to 100. |
Fields for videos
If you don’t specify fields, the default fields will be returned.
video_impression default
Fires when a video player or thumbnail becomes visible in the viewport.
video_played default
Triggered when a user clicks play or video playback actively starts.
played_1s default
Milestone event indicating the video was viewed for at least 1 second.
played_3s
Milestone event indicating the video was viewed for at least 3 seconds.
played_15s
Milestone event indicating the video was viewed for at least 15 seconds.
played_30s
Milestone event indicating the video was viewed for at least 30 seconds.
played_25percent
Progress milestone tracking when playback reaches 25% of total duration.
played_50percent
Progress milestone tracking when playback reaches 50% of total duration.
played_75percent
Progress milestone tracking when playback reaches 75% of total duration.
video_ended
Fires when the video completes playback entirely.
video_docked
Triggered when the player is docked.
video_undocked
Triggered when the player is restored from docked mode back to its standard container.
video_entered_fullscreen
Fires when the user expands the video player to fullscreen view.
video_exited_fullscreen
Fires when the user exits fullscreen mode back to standard layout.
video_pause
Tracks when a user or system action pauses video playback.
video_resume
Tracks when video playback resumes after being paused.
video_autoplay
Fires when the video automatically begins playing without direct user interaction.
video_muted
Triggered when the audio volume of the video is turned off or set to zero.
video_unmuted
Triggered when the audio volume of the video is turned back on.
video_played_muted
Tracks a video playback session initiated or continued in a muted state.
video_played_unmuted
Tracks a video playback session initiated or continued with audio active.
video_caption_enabled
Fires when closed captions or subtitles are turned on during playback.
video_downloaded
Tracks when a user downloads the video file for offline viewing.
video_entered_airplay
Triggered when the video stream is cast to an external device via AirPlay.
Fields for ads
If you don’t specify fields, the default fields will be returned.
ad_impression default
Fires when an advertisement becomes visible or starts rendering.
ad_25
Milestone tracking when an advertisement reaches 25% of its total duration.
ad_50
Milestone tracking when an advertisement reaches 50% of its total duration.
ad_75
Milestone tracking when an advertisement reaches 75% of its total duration.
ad_100
Milestone tracking when an advertisement completes full playback.
ad_done default
Fires when the ad sequence finishes or is successfully dismissed.
ad_muted
Tracks when an advertisement’s audio is muted.
ad_unmuted
Tracks when an advertisement’s audio is unmuted.
ad_played_muted
Tracks ad playback occurring while the audio is muted.
ad_played_unmuted
Tracks ad playback occurring while the audio is active.
ad_skip
Tracks when a user explicitly skips an advertisement.
ad_autoplayed
Fires when an advertisement starts playing automatically without user initiation.
ad_paused
Tracks when an advertisement playback is explicitly paused.
ad_resumed
Tracks when an advertisement resumes playing after a pause.
ad_clicked default
Tracks when a user clicks on the advertisement element or call-to-action link.
Fields for ecommerce
If you don’t specify fields, the default fields will be returned.
ecom_viewed default
Tracks impressions when an ecommerce element or product section is shown to the user.
ecom_clicked default
Triggered when a user clicks an ecommerce item, product card, or shop link.
ecom_hidden
Fires when an ecommerce overlay or shopping widget is closed or hidden.
ecom_bar_hidden
Fires specifically when the horizontal ecommerce item bar is minimized or closed.
ecom_bar_shown
Fires when the horizontal ecommerce item bar is rendered or opened on screen.
Success Response
This call will return a JSON object that contains the analytics for your organization
# Example: Making an authenticated request with required headers for an ecommerce summary
curl -H "X-ParOne-API-Key: YOUR_API_KEY" \
-H "X-ParOne-API-Secret: YOUR_API_SECRET" \
"https://api.parone.io/v2/analytics/ecommerce/summary?startDate=2026-06-01&endDate=2026-06-31"
{
"count": 2,
"message": "200",
"data": [
{
"contentKey": "LdfTQI4Fp",
"ecom_clicked": "0",
"ecom_viewed": "14",
"ecommerceKey": "9ba3f441"
},
{
"contentKey": "LBaru2O2b",
"ecom_clicked": "0",
"ecom_viewed": "34",
"ecommerceKey": "WBwrTkdx"
}
]
}
# Example: Making an authenticated request with required headers for video analytics
curl -H "X-ParOne-API-Key: YOUR_API_KEY" \
-H "X-ParOne-API-Secret: YOUR_API_SECRET" \
"https://api.parone.io/v2/analytics/videos/summary?startDate=2026-06-01&endDate=2026-06-30&fields=played_1s,tput"
{
"count": 24,
"data": [
{
"contentKey": "AVA00305h_f1cec01aa",
"played_1s": "1",
"tput": "none"
},
{
"contentKey": "AVA00290h_f582dc418",
"played_1s": "5",
"tput": "none"
},
{
"contentKey": "AVA00282h_49b0c9183",
"played_1s": "2",
"tput": "none"
},
...
],
"message": "200"
}
# Example: Making an authenticated request with required headers for ad analytics
curl -H "X-ParOne-API-Key: YOUR_API_KEY" \
-H "X-ParOne-API-Secret: YOUR_API_SECRET" \
"https://api.parone.io/v2/analytics/ads/summary?startDate=2026-01-01&endDate=2026-01-31"
{
"count": 2988,
"data": [
{
"ad_clicked": "0",
"ad_done": "6",
"ad_impression": "9",
"contentKey": "ZZzS5yd5e"
},
{
"ad_clicked": "0",
"ad_done": "3",
"ad_impression": "3",
"contentKey": "Zrshvgck8"
}
...
],
"message": "200"
}
Structure of the Returned Results
| Field Name | Description |
|---|---|
contentKey | the contentKey for the video in question |
ecommerceKey | if requesting ecommerce type, this is the ecommerceKey |
tput | if a tput is requested, this will be the tput value |
field name | the value of the field |
date | if format=detailed, the date (in UTC) that the values were for |