Analytics & Product · Amplitude Analytics

Amplitude event export (chart CSV / raw Export API)

Two different artifacts people conflate: the CSV you download from an Amplitude chart (a rendering of that chart's series) and the raw Export API dump (zipped, hourly, gzipped JSON), treated as interchangeable event tables when they are partitioned and defined differently.

The shape, how the file is really laid out

Chart CSV: a header plus one row per segment or date bucket, carrying the exact

numbers the chart displayed, with a summary/"Totals" line and null groups shown

as "(none)". Raw Export API: NOT a CSV, a zip containing one gzipped

newline-delimited JSON file per hour, each line an event object with nested

event_properties and user_properties, and multiple timestamps: client_event_time,

server_upload_time, server_received_time, plus event_time in the project's

timezone. Every project has a single fixed reporting timezone set at creation;

unique-user counts are computed on amplitude_id, Amplitude's merged identity,

not on the raw device_id or user_id.

The traps

The raw export is partitioned by server upload time, not by when the event occurred, so an event that happened at 11:50pm but uploaded at 12:10am lands in the next hour's, and possibly next day's, file; re-bucket on event_time or the daily counts will drift.

In the Format LibraryGet the Format Library

Reference: Amplitude Docs, "Export API" (hourly gzipped JSON, server-upload-time partitioning) · Amplitude Docs, "Export chart data / CSV" · Amplitude Docs, "Amplitude ID and identity resolution" · Amplitude Docs, "Project timezone settings" and "Sampling"