Data Export

Export event data and parser results for analysis in external tools.

Configuration is usually set up for you

Most LaBrowser studies have their configuration provided as a managed service — you typically won't need to assemble this by hand. This reference documents every option in full, so you can understand what's configured for your study, or self-serve the details if you prefer.

Export Formats

Two formats are available: JSON and CSV. Both contain the same data, just structured differently. JSON preserves nested payload objects. CSV keeps the raw payload JSON column and also adds flattened top-level payload_* columns for easier analysis.

Nested arrays or objects inside payloads remain JSON strings in CSV cells. For example, payload_result_clicks or payload_prompts may contain a JSON array.

Session-Level Export

Export events for a single session. In the Session Viewer, click "Export" and choose JSON or CSV. The export includes all events for that session with full payloads, including raw correlation fields such as capture_id, prompt_capture_id, and resolved prompt_event_id when those are present.

Example JSON structure:

session_events.json
[
  {
    "event_type": "INPUT_SUBMIT",
    "timestamp_utc": "2025-01-15T10:30:00.000Z",
    "session_id": "abc-123",
    "tab_id": "tab-1",
    "page_id": "page-1",
    "url": "https://chatgpt.com",
    "payload": {
      "field_role": "chat_prompt",
      "service": "chatgpt",
      "text": "Summarize this article.",
      "selector": "#prompt-textarea",
      "submit_method": "enter_key",
      "capture_id": "cap_01JQ4FW5E0J8S2Y7TK3J5W9Q3V"
    }
  }
]

Study-Level Export

Export all events across all sessions in a study. On the study detail page, click "Export Events".

Study-level exports can be large. For studies with many sessions, consider exporting session-by-session.

Derived Session Export

Export parser results from the study detail page: go to the "Derived" tab and click "Export". This gives you structured parser output as JSON or CSV.

Derived exports are often the most useful for analysis — structured summaries rather than raw events. For example, a Google Search parser produces one row per search with the query, result count, and clicked results, rather than dozens of raw navigation and click events.

ChatGPT-derived exports also include conversation-level truth about truncation and response counts. Nested prompt/response objects stay in the JSON payload, while top-level summary fields such as payload_response_count and payload_any_response_truncated are flattened into CSV columns.

Example derived JSON structure:

derived_chatgpt.json
[
  {
    "parser_id": "chatgpt_session_v1",
    "type": "chatgpt_conversation",
    "payload": {
      "prompt_count": 1,
      "response_count": 2,
      "truncated_response_count": 1,
      "any_response_truncated": true,
      "prompts": [
        {
          "text": "Summarize this article.",
          "timestamp": "2025-01-15T10:30:00.000Z",
          "response": {
            "text": "Here is the summary...",
            "timestamp": "2025-01-15T10:30:12.000Z",
            "char_count": 1532,
            "truncated": true,
            "response_event_count": 2,
            "linkage_method": "prompt_capture_id"
          }
        }
      ]
    }
  }
]

Working with Exports

Tips for loading exported data into common analysis tools.

Python (pandas)

analysis.py
import pandas as pd
import json

# JSON events
events = pd.read_json("session_events.json")

# Access nested payload fields
events["trigger"] = events["payload"].apply(
    lambda p: p.get("trigger") if isinstance(p, dict) else None
)

# Filter to specific event types
navigations = events[events["event_type"] == "NAVIGATE"]

R

analysis.R
library(jsonlite)
library(dplyr)

events <- fromJSON("session_events.json", flatten = TRUE)

# Filter and analyze
searches <- events %>%
  filter(event_type == "INPUT_SUBMIT") %>%
  filter(payload.field_role == "search_query")

Excel

CSV exports open directly in Excel. For JSON, use Power Query: Data → Get Data → From File → From JSON. Nested payload fields are expanded into separate columns.