BrowserStack AI Evals
Settings & ConfigurationExports

Cloud Storage Exports

Continuously export traces, observations, and scores from AI Evals to your own AWS S3 bucket on a schedule.

Cloud Storage Exports

Cloud Storage Exports push your project's trace, observation, and score data from AI Evals into an AWS S3 bucket you own — on a repeating schedule. Each run exports only rows that arrived since the previous run, so the feature acts as an incremental, append-only pipeline into your data warehouse or analytics system.

Access via Settings → Exports in your project, then open the Cloud Storage Exports tab.

For one-off, on-demand downloads from a data table, see Batched Exports instead.


How It Works

  1. You configure one or more export automations in project settings.
  2. AI Evals polls for due exports and fans out one processing job per automation.
  3. Each run reads from the AI Evals data store within a time window, compresses the result, and writes Hive-partitioned files to your S3 bucket.
  4. The run cursor advances only on success, so a failed run retries cleanly from where it left off.

Each export is project-scoped and exports one data type (traces, observations, or scores).


Create an Export

Click Create export on the Cloud Storage Exports settings page. A three-step wizard opens.

Step 1 — Data

FieldDescription
NameA unique label shown in the exports list and audit log.
Export typeThe data grain: Traces, Observations, or Scores (see Export types).
SQL Filter (Optional)A SQL WHERE-clause body that restricts which rows are exported. Leave empty to export all rows.

The SQL filter uses the same column vocabulary as the Logs page SQL filter for the selected export type.

Click Continue to validate the filter and advance.

Step 2 — Destination

Choose how AI Evals authenticates to your bucket, then fill in the bucket details.

Authentication

MethodDescription
Role assumption (recommended)AI Evals assumes a cross-account IAM role you create. No credentials are stored.
Static access keysUse an AWS access key/secret. The secret is encrypted at rest and never shown again after saving.

Additional destination fields:

FieldDescription
BucketYour S3 bucket name.
PrefixOptional path prefix within the bucket (e.g. ai-evals/exports/prod).
RegionAWS region of the bucket (e.g. us-east-1).
FormatOutput file format: JSON Lines (gzip), CSV, or JSON (see Output format).

Click Test & continue to verify that AI Evals can write to the destination. A probe object is written and deleted at s3://<bucket>/<prefix>/.testai-probe. The wizard advances automatically on success.

Step 3 — Schedule

FieldDescription
IntervalHow often the export runs: Every 5 minutes, Every 15 minutes, Every hour, Every 6 hours, or Every day.

Click Save export to create the export. It becomes active immediately.


IAM Setup for Role Assumption

When using Role assumption, the wizard walks you through three steps.

Step 1 — Create a cross-account IAM role with the displayed trust policy.

The wizard generates a trust policy JSON pre-loaded with the per-export External ID and the AI Evals principal ARN. In the AWS console, go to IAM → Roles → Create role → Custom trust policy and paste it.

The External ID is unique to each export and acts as a confused-deputy guard — the role can only be assumed for this specific export.

Step 2 — Attach the displayed permission policy to the role.

The wizard generates a minimal permission policy scoped to exactly your bucket and prefix. Open the role (IAM → Roles → your role → Permissions → Add permissions → Create inline policy → JSON) and paste it.

Step 3 — Paste the role ARN.

Copy the ARN from the role's summary page (IAM → Roles → your role) and paste it into the Role ARN field, then click Test & continue.


Export Types

Export typeWhat it containsGrain
TracesTop-level requests tracked by your applicationOne row per trace
ObservationsIndividual spans and LLM calls within tracesOne row per observation
ScoresEvaluation results — LLM-as-judge, human, or custom scoresOne row per score

Output Format

FormatDescription
JSON Lines (gzip)One JSON object per line, gzip-compressed. Best for streaming ingestion, Spark, and fine-tuning datasets.
CSVComma-separated, gzip-compressed. Nested objects are flattened into dot-notation columns.
JSONA JSON array per file, gzip-compressed.

All files are gzip-compressed regardless of format.


S3 File Layout

Files land under the following path:

<prefix>/<project-slug>-<projectId>/<type>/date=YYYY-MM-DD/<window-tag>-part-NNNNN.<ext>.gz
SegmentDescription
<prefix>The prefix you configured (omitted if empty).
<project-slug>-<projectId>Human-readable project name slug plus unique project ID.
<type>traces, spans, or scores.
date=YYYY-MM-DDHive-style date partition (UTC). Files always fall within a single calendar date.
<window-tag>Compact ISO-8601 window range: 20260617T130000Z-20260617T140000Z. Lexicographically sortable.
part-NNNNNPart index within the window (files are rolled over at ~256 MB).
.<ext>.gz.jsonl.gz, .csv.gz, or .json.gz based on the chosen format.

Example:

ai-evals/exports/prod/review-agent-proj_abc123/spans/date=2026-06-17/20260617T130000Z-20260617T140000Z-part-00000.jsonl.gz

The date= prefix makes the layout compatible with Hive metastore, AWS Glue, and Spark partition discovery out of the box.


Managing Exports

From the Cloud Storage Exports settings page:

ActionHow
View status and run historyClick any row, or click View status in the row actions menu.
Edit configurationClick the row actions menu → Edit.
Pause / resumeClick the row actions menu → Pause or Resume.
DeleteClick the row actions menu → Delete.

Export Status

StatusMeaning
ActiveThe export is enabled and running on schedule.
PausedThe export is disabled and will not run until resumed.
ErrorThe most recent run failed. Open the status panel to see the failure reason.

The status panel shows per-run history including rows exported, bytes written, duration, and any failure reason.


Permissions

ActionRequired Role
View exports and run historyAll project roles
Create / edit / delete exportsOwner or Admin
Pause / resume exportsOwner or Admin

Notes and Limitations

  • AWS S3 only. Other cloud storage providers are not supported in the current release.
  • One export, one data type. A single export automation covers traces, observations, or scores. Create separate automations to export multiple data types into the same bucket.
  • Cursor safety. The export cursor advances only after a successful run. A failed run retries (up to 5 attempts with exponential backoff) and resumes from where it left off — no rows are skipped or duplicated.