Import Anneal CSV
The Anneal CSV export, column by column
Anneal exports your full history as one CSV, free for every account. This page is the format: one row per completed set, sixteen columns, canonical pounds plus a kilogram copy.
Export it from Settings, then Notifications & privacy, then the CSV button under Your data. The file is named workout-data-export.csv. A JSON export of everything (exercises, workouts, personal bests, body measurements) sits next to it.
Header
Date,Workout,Exercise,Set,Weight_LBS,Weight_KG,Unit_Entered,Reps,Distance_m,RPE,RIR,Warmup,Notes,Logging_Mode,Weight_Entry_Unit,Weight_Entry_LBS
Rules
- Comma separated, UTF-8, header on line one, newline after every row.
- Strings are wrapped in double quotes with any inner quote doubled. Numbers are bare. An empty value is an empty cell with no quotes.
- One row per completed set in a finished session. Draft sets and unfinished sessions are not exported.
- Rows are ordered by session, then exercise, then set number.
Columns
| Column | Meaning |
|---|---|
Date | When the session finished, as YYYY-MM-DD HH:MM:SS in UTC. Rows that share Workout and Date belong to one session. |
Workout | The workout name as it was when the session ran. Empty for a quick session with no template. |
Exercise | Exercise name. |
Set | Set number within the exercise, starting at 1. |
Weight_LBS | The stored weight in pounds. This is the canonical value. Empty for a bodyweight or cardio set. |
Weight_KG | Weight_LBS converted to kilograms, rounded to two decimals. Empty when Weight_LBS is empty. |
Unit_Entered | lbs or kg: the unit the lifter used when the set was logged. |
Reps | Repetitions. When Logging_Mode is time, this holds seconds instead. |
Distance_m | Distance in meters for cardio sets, else empty. |
RPE | Rating of perceived exertion, 1 to 10, or empty. |
RIR | Reps in reserve, 0 to 5, or empty. |
Warmup | Yes or No. |
Notes | Free text, or empty. |
Logging_Mode | reps or time. Empty on sets logged before Anneal recorded the mode; treat Reps as repetitions unless the exercise is a timed one. |
Weight_Entry_Unit | The unit the weight was typed in (lbs or kg), or empty on sets logged before Anneal tracked it. |
Weight_Entry_LBS | The exact pounds value behind that entry, or empty with Weight_Entry_Unit. |
One sample row
A 225 lb bench press set, five reps at RPE 8 with two reps in reserve, from an Upper session on the first of April:
Date,Workout,Exercise,Set,Weight_LBS,Weight_KG,Unit_Entered,Reps,Distance_m,RPE,RIR,Warmup,Notes,Logging_Mode,Weight_Entry_Unit,Weight_Entry_LBS
"2026-04-01 18:30:00","Upper","Barbell Bench Press",1,225,102.06,"lbs",5,,8,2,"No",,"reps","lbs",225
Reading it back
Anneal reads its own export back in. The importer recognises the file by the Weight_LBS, Weight_KG and Unit_Entered columns and requires Date, Workout, Exercise, Set, Weight_LBS, Weight_KG, Unit_Entered and Reps; the rest are optional.
Adding Anneal as a source to another tool: detect the header by those three columns, take Weight_LBS as the weight (Weight_KG is a rounded copy), read Reps as seconds when Logging_Mode is time, and treat Warmup Yes as a warm-up set.