> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://fastpix.com/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fastpix.com/docs/_mcp/server.

# Export raw view data

Raw view exports give you every view FastPix captured, as a CSV file you can load into your own database or data warehouse. FastPix generates one export per UTC day, containing every view that completed on that date, and returns a time-limited URL to download it. Use raw exports when you want to run your own analysis, join view data with other datasets, or archive it beyond the dashboard.

\


## Choose an export method

FastPix delivers raw view data three ways. All three carry the same per-view fields, so pick the one that matches how you consume the data.

* **Daily CSV export**, described on this page. One file per UTC day, pulled on your own schedule. Best for batch loads and archival.
* **[Amazon Kinesis](/docs/video-data/export-to-amazon-kinesis)**, a streaming export that writes each view to a Kinesis data stream in your AWS account in near real time.
* **[Google Cloud Pub/Sub](/docs/video-data/export-to-google-cloud-pubsub)**, a streaming export that publishes each view to a Pub/Sub topic in your Google Cloud project in near real time.

The two streaming methods deliver a byte-for-byte identical record envelope, so a pipeline you build for one keeps working if you switch clouds.

Here is how the daily CSV and the streaming methods compare:

|                 | Daily CSV                                  | Streaming                                        |
| --------------- | ------------------------------------------ | ------------------------------------------------ |
| **Arrives**     | Once a day, one file per UTC day           | Seconds after each view ends                     |
| **You set up**  | Nothing                                    | A stream or topic in your own cloud              |
| **You receive** | A gzipped CSV per day                      | One record per view                              |
| **Kept for**    | 7 days, then deleted                       | As long as your own stream keeps it              |
| **Good for**    | Warehouse loads, ad-hoc analysis, archival | Dashboards, alerting, joining to your own events |

The methods are independent. Run one, the other, or both. The CSV covers the same views whether or not streaming is on, which is why it is the fallback if a streaming destination stops.

\


## Before you begin

Make sure you have the following:

* A FastPix account on a paid plan. Raw view exports aren't available on the free plan.
* Your **Access Token ID** and **Secret Key** for the FastPix API. See [Activate your account](/docs/getting-started/activate-your-account#generate-api-credentials).

\


## How raw view exports work

* **One file per day.** A scheduled job runs once a day and produces a single CSV covering the whole previous UTC day, including views that completed earlier that day.
* **Retained for 7 days.** Each export is available for 7 days, then the file is deleted and its download URL stops working.
* **Enabled two ways.** Turn on daily CSV exports from **Data Exports > CSV exports** in your dashboard, or call the list endpoint, since the first call enables exports automatically. That first request returns an empty list and a `message` naming the date your first file will cover; your first file is produced by the next scheduled run.
* **No backfill.** Only dates on or after the day you enabled exports are available. Earlier dates are never generated.

To turn exports on from the dashboard, go to **Data Exports > CSV exports** and switch on **Daily CSV exports**.

Once enabled, a banner confirms the date your first file will cover and the daily run time.

\


## List available exports

Call the [List raw view exports](/docs/video-data-api/exports/list-raw-view-exports) endpoint to see which daily exports are ready and get a download URL for each.

```bash
curl "https://api.fastpix.com/v1/data/exports/rawViews?timespan[]=7:days" \
  -u "$ACCESS_TOKEN:$SECRET_KEY"
```

The `timespan[]` query parameter accepts a duration string from `1:days` to `7:days`. Because exports are retained for 7 days, that's the widest window available. If you omit it, the full 7-day window is returned.

The key fields in each export record are:

| Field                          | Description                                                                                  |
| ------------------------------ | -------------------------------------------------------------------------------------------- |
| `exportDate`                   | The UTC date the export covers.                                                              |
| `status`                       | `COMPLETED` for a day with views, or `EMPTY` for a day with none.                            |
| `files`                        | The files for this export. Each export produces a single file, returned as a one-item array. |
| `files[].downloadUrl`          | A time-limited URL that downloads the export as `views_{date}.csv`.                          |
| `files[].downloadUrlExpiresAt` | When the download URL stops working. This matches when the file is deleted.                  |
| `files[].rowCount`             | The number of data rows in the file, excluding the header row.                               |
| `files[].version`              | The CSV format version.                                                                      |

\


**Example response**

```json
{
  "success": true,
  "data": {
    "timeFrame": [
      1788348969,
      1788953769
    ],
    "totalRowCount": 7,
    "data": [
      {
        "files": [
          {
            "type": "csv",
            "downloadUrl": "https://storage.fastpix.net/exports/{workspaceId}/v1/views_2026-09-08.csv.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&…&X-Amz-Signature=…",
            "version": "v1",
            "rowCount": 1,
            "downloadUrlExpiresAt": "2026-09-16T04:01:27.960077Z"
          }
        ],
        "exportDate": "2026-09-08",
        "status": "COMPLETED"
      },
      {
        "files": [
          {
            "type": "csv",
            "downloadUrl": "https://storage.fastpix.net/exports/{workspaceId}/v1/views_2026-09-07.csv.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&…&X-Amz-Signature=…",
            "version": "v1",
            "rowCount": 0,
            "downloadUrlExpiresAt": "2026-09-15T04:01:20.729056Z"
          }
        ],
        "exportDate": "2026-09-07",
        "status": "EMPTY"
      },
      {
        "files": [
          {
            "type": "csv",
            "downloadUrl": "https://storage.fastpix.net/exports/{workspaceId}/v1/views_2026-09-04.csv.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&…&X-Amz-Signature=…",
            "version": "v1",
            "rowCount": 7,
            "downloadUrlExpiresAt": "2026-09-12T04:01:28.647078Z"
          }
        ],
        "exportDate": "2026-09-04",
        "status": "COMPLETED"
      }
    ]
  }
}
```

An export with `status` `EMPTY` still returns a valid file whose `rowCount` is 0 (the CSV contains only the header row). This example is truncated to three days; a full response lists every day in the requested window, most recent first.

\


**Example response (first request)**

On the first request that enables exports for your workspace, the `data` array is empty and a `message` names the date your first file will cover.

```json
{
  "success": true,
  "data": {
    "timeFrame": [
      1788351436,
      1788956236
    ],
    "totalRowCount": 0,
    "message": "Exports are now enabled for this workspace. Your first CSV covers today (UTC) and will be generated by the scheduled job at 04:00 UTC. Dates before today are not exported.",
    "data": []
  }
}
```

\


## Download an export

The download is a plain CSV saved as `views_{date}.csv`. Most HTTP clients, including Python `requests` and `httpx` and JavaScript `fetch`, handle it automatically.

The file is compressed in transit to save bandwidth. Clients that don't request compression, such as `curl`, `wget`, and Java's `HttpClient`, receive the compressed bytes instead of the CSV. With `curl`, ask for decompression explicitly:

```bash
curl --compressed -o views_2026-08-16.csv "<downloadUrl>"
```

Exports can be large. A busy day of roughly 200,000 views produces several hundred megabytes of CSV, so stream the file to disk and parse it row by row rather than loading it into memory, and use a database or data warehouse rather than a spreadsheet on high-volume days.

\


## What's in the export

Each row is one view, and each column is a field FastPix captured for that view, such as `asnId`, `avgBitrate`, `browserName`, `country`, `viewStart`, and `watchTime`. New columns are appended over time, so parse by column name, never by position. For the full field reference, see [What Video Data do we capture](/docs/video-data/what-video-data-do-we-capture).

The export includes the following columns, one per captured field, listed in the order they appear in the CSV.

### Fields in the export

| Field                          | Description                                                                                              |
| ------------------------------ | -------------------------------------------------------------------------------------------------------- |
| `asnId`                        | ID of the viewer's Autonomous System (network/ISP).                                                      |
| `asnName`                      | Name of the viewer's Autonomous System (network/ISP).                                                    |
| `avgBitrate`                   | Average bitrate of the video stream during the view, in bits per second.                                 |
| `avgDownscaling`               | Average amount the player downscaled the video below its source resolution during the view.              |
| `avgRequestLatency`            | Average latency of media segment requests during the view.                                               |
| `avgRequestThroughput`         | Average throughput (data received rate) of media segment requests during the view.                       |
| `avgUpscaling`                 | Average amount the player upscaled the video above its source resolution during the view.                |
| `beaconDomain`                 | Domain the FastPix Data beacon sent measurements to.                                                     |
| `browserName`                  | Web browser used by the viewer (for example, Chrome, Firefox).                                           |
| `browserVersion`               | Version of the web browser.                                                                              |
| `bufferCount`                  | Number of rebuffering events during the view.                                                            |
| `bufferFill`                   | Average buffering duration per view, in seconds.                                                         |
| `bufferFrequency`              | Rebuffering events per second.                                                                           |
| `bufferRatio`                  | Fraction of viewing time spent buffering (lower is smoother).                                            |
| `cdn`                          | Content Delivery Network that served the stream.                                                         |
| `city`                         | City the viewer accessed the content from.                                                               |
| `connectionType`               | Network connection type (for example, wifi, cellular).                                                   |
| `continent`                    | Continent the viewer accessed the content from.                                                          |
| `country`                      | Country the viewer accessed the content from (for example, US).                                          |
| `custom1`                      | Optional custom metadata field 1 you set at playback for your own filtering and segmentation.            |
| `custom10`                     | Optional custom metadata field 10 you set at playback for your own filtering and segmentation.           |
| `custom2`                      | Optional custom metadata field 2 you set at playback for your own filtering and segmentation.            |
| `custom3`                      | Optional custom metadata field 3 you set at playback for your own filtering and segmentation.            |
| `custom4`                      | Optional custom metadata field 4 you set at playback for your own filtering and segmentation.            |
| `custom5`                      | Optional custom metadata field 5 you set at playback for your own filtering and segmentation.            |
| `custom6`                      | Optional custom metadata field 6 you set at playback for your own filtering and segmentation.            |
| `custom7`                      | Optional custom metadata field 7 you set at playback for your own filtering and segmentation.            |
| `custom8`                      | Optional custom metadata field 8 you set at playback for your own filtering and segmentation.            |
| `custom9`                      | Optional custom metadata field 9 you set at playback for your own filtering and segmentation.            |
| `deviceManufacturer`           | Manufacturer of the viewer's device (for example, Apple, Samsung).                                       |
| `deviceModel`                  | Specific device model (for example, iPhone 12).                                                          |
| `deviceName`                   | Device name (for example, MacBook Pro).                                                                  |
| `deviceType`                   | Device category (for example, desktop, mobile, tablet, tv).                                              |
| `drmType`                      | Digital Rights Management type applied to the content, if any.                                           |
| `droppedFrameCount`            | Number of frames dropped during playback.                                                                |
| `errorCode`                    | Code for any playback error encountered during the view.                                                 |
| `errorContext`                 | Additional context about the playback error.                                                             |
| `errorMessage`                 | Human-readable message for the playback error.                                                           |
| `events`                       | Playback events recorded during the view.                                                                |
| `exitBeforeVideoStart`         | Whether the viewer left before playback began (true/false).                                              |
| `fpLiveStreamId`               | FastPix live stream ID, if the view was of a live stream.                                                |
| `fpPlaybackId`                 | FastPix playback ID used for the view.                                                                   |
| `fpSdk`                        | FastPix SDK used for playback, if applicable.                                                            |
| `fpSdkVersion`                 | Version of the FastPix SDK used.                                                                         |
| `fpViewerId`                   | FastPix-generated viewer identifier.                                                                     |
| `jumpLatency`                  | Average wait time after seeking to a new position.                                                       |
| `latitude`                     | Approximate latitude of the viewer.                                                                      |
| `liveStreamLatency`            | Delay between the live event and playback (live streams only).                                           |
| `longitude`                    | Approximate longitude of the viewer.                                                                     |
| `maxDownscaling`               | Maximum amount the player downscaled the video during the view.                                          |
| `maxRequestLatency`            | Maximum media segment request latency during the view.                                                   |
| `maxUpscaling`                 | Maximum amount the player upscaled the video during the view.                                            |
| `mediaId`                      | FastPix media identifier for the content, if applicable.                                                 |
| `osName`                       | Operating system of the viewer's device (for example, Windows, iOS).                                     |
| `osVersion`                    | Version of the operating system.                                                                         |
| `pageContext`                  | Context about the page where the video was embedded or viewed.                                           |
| `pageLoadTime`                 | Time for the page to load before playback began.                                                         |
| `playbackScore`                | Playback success score for the view.                                                                     |
| `playerAutoplayOn`             | Whether autoplay was enabled (true/false).                                                               |
| `playerHeight`                 | Rendered height of the player, in pixels.                                                                |
| `playerInitializationTime`     | Time for the player to initialize after page load.                                                       |
| `playerInstanceId`             | Identifier for the player instance.                                                                      |
| `playerLanguage`               | Language configured in the player.                                                                       |
| `playerName`                   | Name of the video player.                                                                                |
| `playerPoster`                 | Poster image URL configured on the player.                                                               |
| `playerPreloadOn`              | Whether preloading of video content was enabled (true/false).                                            |
| `playerRemotePlayed`           | Whether the video was played remotely, for example via casting (true/false).                             |
| `playerResolution`             | Resolution the player was configured to display.                                                         |
| `playerSoftwareName`           | Player software framework (for example, Shaka Player).                                                   |
| `playerSoftwareVersion`        | Version of the player software framework.                                                                |
| `playerSourceDomain`           | Domain the player was served from.                                                                       |
| `playerSourceHeight`           | Height of the source video, in pixels.                                                                   |
| `playerSourceWidth`            | Width of the source video, in pixels.                                                                    |
| `playerVersion`                | Version of the video player.                                                                             |
| `playerViewCount`              | Number of views recorded for this player instance.                                                       |
| `playerWidth`                  | Rendered width of the player, in pixels.                                                                 |
| `propertyId`                   | Identifier of the property (workspace) the view belongs to.                                              |
| `qualityOfExperienceScore`     | Composite score reflecting overall viewer experience.                                                    |
| `region`                       | Region or state within the country the viewer accessed the content from.                                 |
| `renderQualityScore`           | Score based on the visual quality rendered during the view.                                              |
| `sessionId`                    | Identifier for the viewer's session.                                                                     |
| `sign`                         | Internal row-versioning marker (CollapsingMergeTree sign); 1 marks the current row. Ignore for analysis. |
| `stabilityScore`               | Score reflecting playback smoothness; higher means fewer interruptions.                                  |
| `startupScore`                 | Score based on how quickly the video started.                                                            |
| `subPropertyId`                | Identifier for a sub-property associated with the view, if applicable.                                   |
| `totalStartupTime`             | Total time from initiation to the video being ready to play.                                             |
| `usedFullScreen`               | Whether the viewer used fullscreen during the view (true/false).                                         |
| `userAgent`                    | Raw user-agent string of the viewer's client.                                                            |
| `videoContentType`             | Type of content viewed (for example, movie, series).                                                     |
| `videoDuration`                | Duration of the video.                                                                                   |
| `videoEncodingVariant`         | Encoding variant delivered for the view.                                                                 |
| `videoId`                      | Your identifier for the video content.                                                                   |
| `videoLanguage`                | Language of the video content.                                                                           |
| `videoProducer`                | Producer of the video content.                                                                           |
| `videoResolution`              | Resolution of the video played.                                                                          |
| `videoSeries`                  | Series the video belongs to, if applicable.                                                              |
| `videoSourceDomain`            | Domain the video was sourced from.                                                                       |
| `videoSourceDuration`          | Duration of the source video.                                                                            |
| `videoSourceHostname`          | Hostname the video content was served from.                                                              |
| `videoSourceStreamType`        | Stream type of the source (for example, live, on-demand).                                                |
| `videoSourceType`              | Source delivery type (for example, application/dash+xml).                                                |
| `videoSourceUrl`               | URL of the video source.                                                                                 |
| `videoStartupFailed`           | Whether the video failed to start (true/false).                                                          |
| `videoStartupTime`             | Time for the video to begin playback.                                                                    |
| `videoTitle`                   | Title of the video content.                                                                              |
| `videoVariantId`               | Identifier of the video variant.                                                                         |
| `videoVariantName`             | Name of the video variant.                                                                               |
| `viewEnd`                      | Timestamp when the view ended.                                                                           |
| `viewHasAd`                    | Whether an ad played during the view (true/false).                                                       |
| `viewHasError`                 | Whether playback failed due to an error during the view (true/false).                                    |
| `viewId`                       | Unique identifier for this view.                                                                         |
| `viewMaxPlayheadPosition`      | Furthest playhead position the viewer reached.                                                           |
| `viewPageUrl`                  | URL of the page where the view happened.                                                                 |
| `viewPlayingTime`              | Total time the video was actively playing during the view.                                               |
| `viewSeekedCount`              | Number of seek actions during the view.                                                                  |
| `viewSeekedDurations`          | Total duration seeked during the view.                                                                   |
| `viewSessionId`                | Identifier for the viewing session.                                                                      |
| `viewStart`                    | Timestamp when the view started.                                                                         |
| `viewTotalContentPlaybackTime` | Total content playback time for the view.                                                                |
| `viewerId`                     | Your identifier for the viewer.                                                                          |
| `watchTime`                    | Total time the viewer spent watching during the view.                                                    |
| `workspaceId`                  | FastPix workspace identifier.                                                                            |

To see the format before you integrate, download a sample export:

* [Download a sample raw view export (CSV)](https://static.fastpix.com/fastpix-views-export-sample.csv)

\


## Best practices

* **Parse by column name, not position.** New columns are appended over time.
* **Replace by date, don't append.** If you download the same date more than once, replace that date's rows rather than adding duplicates.
* **Handle `EMPTY` days.** A day with no views returns `EMPTY` with a `rowCount` of 0 and a valid file containing only the header row. This is a success, not an error, and needs no retry.
* **Don't store or share download URLs.** Each one grants direct access to your view data and stays valid until the file expires. Fetch a fresh URL from the list endpoint when you need to download again.

\


#### Frequently asked questions

Exports are retained for 7 days, so you can download any daily file from the last 7 days. Dates before you enabled exports are never generated, and older files are deleted once they pass the 7-day window.

The first call to the list endpoint enables exports for your workspace. It returns an empty list and a `message` naming the date your first file will cover. That file is produced by the next scheduled run.

Exports are compressed in transit. Clients that don't request compression (curl, wget, Java's HttpClient) receive the compressed bytes. Pass `--compressed` to curl to get the decoded CSV.

Each column is a per-view field. See [What Video Data do we capture](/docs/video-data/what-video-data-do-we-capture) for the full list of fields and their definitions.

No. Raw view exports are available on paid plans. The first request to the list endpoint checks your plan; if your organization isn't eligible, it returns a 403 and nothing is enabled.

\


## If your plan changes

Moving to a free plan stops daily CSV exports. Existing files stay downloadable until they expire, and returning to a paid plan resumes generation with nothing to set up again.

\


## What's next

* [What Video Data do we capture](/docs/video-data/what-video-data-do-we-capture) for the full field reference.
* [Analyze viewer drop-off with ClickHouse](/docs/video-data/analyze-viewer-drop-off-with-clickhouse) to load exports into a warehouse and query them.
* [List raw view exports](/docs/video-data-api/exports/list-raw-view-exports) API reference.