Availability. The CSV of the results table is on the Starter
plan and above. The raw event export (the async job that pulls
every row from the ledger) is on the Business plan and above. Free
readers can still read the numbers on the page, they just cannot
download them. See pricing.
CSV of the results table
Fast. Formatted for reading in a spreadsheet. Four variants of the CSV:- Per goal, one file per goal, per variant, with visitors and fires.
- Aggregated, one row per variant across all goals.
- Daily, one row per (variant, day) with cumulative visitors and fires.
- Tabular, one row per (variant, goal, day), the fullest shape, best for pivot tables.
Raw event export
For anything the CSV table cannot answer, a custom join, a segmentation the dashboard does not support, an audit, the raw event export gives you every event on this experiment. Formats: CSV and JSONL. Because the file can be large, the export runs asynchronously:- Click Export raw events in the modal.
- Pick a format.
- ABTestly kicks off a background job. The modal shows the job’s status: queued, running, ready, or failed.
- When ready, download the file. The download link is valid for a while afterwards; the file itself is cold-stored.
Where the raw event data comes from
The raw export reads from the Exact Experiment Ledger, not from Cloudflare Analytics Engine. Every accepted event, in the order it was received. Not a sample. Fields you get per row:- Event id and timestamp.
- Site id, experiment id, variant key.
- Visitor id (a hash, not a raw identifier).
- Goal id if this is a goal event.
- Revenue and currency if this is a revenue goal.
- Order id if provided.
- Segment fields, device, browser, OS, country, source, entry path, UTM campaign, new-vs-returning.
Refresh vs Export
Refresh data at the top of the results page recomputes the verdict and metrics right now, using the latest events. Use it after a burst of traffic, for example, right after a paid campaign launch. Export captures the current view as a file. It does not recompute first; if you want the very latest, hit Refresh and then Export.What Export does not include
- PII. No raw IP, no user agent string, no email, visitor id is a hash of a stable identifier, deliberately unlinkable to a person.
- Draft or paused experiments. Only running or archived experiments have exports.
Programmatic export
The dashboard’s Export button hits the same worker endpoints your own code could call,POST /api/experiments/:id/events/exports to start
a job, GET .../:jobId to poll, GET .../:jobId/download to pull the
file. Auth is a Clerk session JWT; ABTestly does not issue long-lived
API keys today. The full endpoint contract lives in the
REST API reference.