Import Format Details
This page documents all files you can import into Slek, as well as all supported columns for each CSV file.
FIT Files
FIT files (
.fit or .fit.gz) can be imported individually or in bulk via a ZIP file. These files contain raw data recorded by your GPS/cardio device.Note: FIT files are a standard binary exchange format. You should never have to modify them. They are documented here if you want to know more.
Activity CSV File
The activity CSV file allows you to import metadata and statistics associated with your activities that are not in the FIT file or that you have corrected (aberrant data, ...)
Required Columns
| Column | Type | Description |
|---|---|---|
DATE | String | Activity date in ISO format (2026-01-08-12-48-27+0100) |
ACTUAL_SPORT | String | Sport identifier (see below) |
Optional Columns
| Column | Type | Description |
|---|---|---|
NAME | String | Activity name |
HAS_FIT | Boolean or auto | Indicates if the activity has an associated FIT file. Accepted values: true, false, 1, 0, auto. If empty: auto (no validation) |
MULTI | Number | For multi-activities (e.g.: triathlon) index in the event (default: 0) |
TAGS | String | Tags separated by vertical bar (e.g.:tag1 | tag2 | tag3) |
EDITED | Boolean | Indicates if the activity has been manually modified |
ELEV_CORR_HYSTERESIS_M | Number | Altitude correction hysteresis in meters |
Dynamic Columns: Metrics (METRIC_*)
Columns starting with
METRIC_ allow you to import activity metrics.Format:
METRIC_{metric_name}Built-in Metrics:
METRIC_FEELING- FeelingMETRIC_FOCUS- FocusMETRIC_RPE- RPE (Rate of Perceived Exertion)
Custom Metrics:
METRIC_CUSTOM_{data name}- Custom metrics (e.g.:METRIC_CUSTOM_Envie)
Note: Custom metrics must be configured in settings before import, otherwise they will be ignored.
Dynamic Columns: Targets (TARGET_*)
Columns starting with
TARGET_ allow you to import session targets.Note: for now target import is not supported. The format documented here already applies to export.
Simple Targets:
TARGET_rpe- Target RPE (positive number)TARGET_distanceM- Target distance in meters (number ≥ 0)TARGET_cadenceRpm- Target cadence in RPM (positive number)TARGET_ascentM- Target positive elevation in meters (number ≥ 0)TARGET_descentM- Target negative elevation in meters (number ≥ 0)
Duration:
TARGET_durationMinS- Minimum duration in seconds (number ≥ 0)TARGET_durationMaxS- Maximum duration in seconds (number ≥ 0)- If
durationMinS=durationMaxSor if onlydurationMinSis provided, this creates a fixed duration target - If
durationMinS≠durationMaxS, this creates a duration range
- If
Zone Targets (format: zone names separated by
|):TARGET_hr- Heart rate zones (e.g.:Zone 1 | Zone 2)TARGET_powerW- Power zones (e.g.:Zone 3 | Zone 4)TARGET_speedMps- Speed zones (e.g.:Zone 2 | Zone 3)
Dynamic Columns: Completed Statistics (DONE_*)
Columns starting with
DONE_ allow you to import statistics completed during the activity.Format:
DONE_{statistic_name}Available Statistics:
DONE_elapsedTimeS- Elapsed time in secondsDONE_timerTimeS- Timer time in secondsDONE_movingTimeS- Moving time in secondsDONE_distanceM- Distance in metersDONE_caloriesKcal- Calories in kilocaloriesDONE_avgHeartRateBpm- Average heart rate in bpmDONE_maxHeartRateBpm- Maximum heart rate in bpmDONE_avgSpeedMps- Average speed in m/sDONE_maxSpeedMps- Maximum speed in m/sDONE_avgPowerW- Average power in wattsDONE_maxPowerW- Maximum power in wattsDONE_normalizedPowerW- Normalized power in wattsDONE_avgCadence- Average cadenceDONE_maxCadence- Maximum cadenceDONE_avgVerticalOscillationMm- Average vertical oscillation in mmDONE_avgVerticalRatio- Average vertical ratioDONE_avgStanceTimePercent- Average ground contact time in percentageDONE_avgStanceTimeMs- Average ground contact time in millisecondsDONE_avgStanceTimeBalance- Average ground contact time balanceDONE_avgStepLengthMm- Average step length in mmDONE_ascentM- Positive elevation in metersDONE_descentM- Negative elevation in metersDONE_minAltitudeM- Minimum altitude in metersDONE_maxAltitudeM- Maximum altitude in meters
Dynamic Columns: Time in Zones (*_TIZ_*)
Time in zones columns allow you to import time spent in each training zone.
Format:
{KIND}_TIZ_{ZONE_NUMBER}Available Kinds:
HR- Heart rateSPEED- SpeedPOWER- Power
Zone Numbers: From
1 to 9 (maximum 9 zones)Examples:
HR_TIZ_1- Time spent in HR zone 1 (in seconds)HR_TIZ_2- Time spent in HR zone 2 (in seconds)SPEED_TIZ_1- Time spent in speed zone 1 (in seconds)POWER_TIZ_3- Time spent in power zone 3 (in seconds)
Dynamic Columns: Zone Definitions (*_ZONE_*)
Zone definition columns allow you to import training zone limits used to calculate time spent in each zone.
Format:
{KIND}_ZONE_{ZONE_NUMBER}_{PROPERTY}Available Kinds:
HR- Heart rateSPEED- SpeedPOWER- Power
Zone Numbers: From
1 to 9 (maximum 9 zones)Available Properties:
MIN- Minimum zone value (required)MAX- Maximum zone value (optional)NAME- Zone name (optional)
Examples:
HR_ZONE_1_MIN- Minimum value of HR zone 1 (in bpm)HR_ZONE_1_MAX- Maximum value of HR zone 1 (in bpm)HR_ZONE_1_NAME- Name of HR zone 1 (e.g.: "Zone 1")SPEED_ZONE_2_MIN- Minimum value of speed zone 2 (in m/s)POWER_ZONE_3_MAX- Maximum value of power zone 3 (in watts)
Note: Given that zones vary over time, zone definitions are essential to interpret time in zones values (*_TIZ_*). If definitions are not provided during import, time in zones values (*_TIZ_*) will be ignored.
Dynamic Columns: Peaks (*_PEAK_*)
Peak columns allow you to import maximum average values over different durations.
Format:
{KIND}_PEAK_{DURATION}Available Kinds:
HR- Heart rateSPEED- SpeedPOWER- Power
Available Durations (in seconds):
1,2,5,10,20,3060(1 min),120(2 min),180(3 min)300(5 min),360(6 min),600(10 min),720(12 min)1200(20 min),1800(30 min)3600(1 h),5400(1 h 30),7200(2 h)10800(3 h),14400(4 h),18000(5 h)21600(6 h),25200(7 h),28800(8 h)32400(9 h),36000(10 h)
Examples:
HR_PEAK_60- Average HR peak over 1 minute (in bpm)POWER_PEAK_300- Average power peak over 5 minutes (in watts)SPEED_PEAK_3600- Average speed peak over 1 hour (in m/s)
Daily Metrics CSV File
The daily metrics CSV file allows you to import your daily data (morning checkup, weight, HR max, etc.).
Required Columns
| Column | Type | Description |
|---|---|---|
DAY | String | Date in ISO format (YYYY-MM-DD) |
KEY | String | Metric key (can be scoped with /SPORT) |
VALUE | Number | Metric value |
Built-in Metric Keys
General Well-being:
FRESHNESS_GENERAL- General freshnessFRESHNESS_INTESTINAL- Intestinal freshnessFRESHNESS_MUSCULAR- Muscular freshnessFRESHNESS_MUSCULAR_TOP- Upper body muscular freshnessFRESHNESS_MUSCULAR_BOTTOM- Lower body muscular freshnessSERENITY- SerenityQUALITY_EAT- Food qualityQUALITY_DRINK- Hydration quality
Health:
HEIGHT- HeightWEIGHT_TOTAL- Total weightHRV_RMSSD_NIGHT_AVG- Average night HRV RMSSDHRV_RMSSD_SNAPSHOT- Instantaneous HRV RMSSDSPO2_SNAPSHOT- Instantaneous SpO2SLEEP_SCORE- Sleep scoreSLEEP_TOTAL- Total sleep duration
Performance:
HR_MAX- Maximum HRHR_REST- Resting HRHR_THRESHOLD- HR thresholdPOWER_THRESHOLD- Power thresholdSPEED_THRESHOLD- Speed thresholdSPEED_VO2MAX- VO2max speed
Scoped Metrics
Metrics can be "scoped" by sport by adding
/SPORT after the key:Examples:
HR_MAX/RUNNING- HR max for runningPOWER_THRESHOLD/CYCLING- Power threshold for cyclingSPEED_VO2MAX/RUNNING- VO2max speed for running
Custom Metrics
Custom metrics use the format
CUSTOM_{name}:Examples:
CUSTOM_Envie- First custom metricCUSTOM_Chrono- Second custom metricCUSTOM_Chrono/RUNNING- Custom metric scoped for running
Note: Custom metrics must be configured in settings before import, otherwise they will be ignored.
Library CSV File
The library CSV file allows you to import your workout library. This file can be accompanied by a ZIP file containing attachments.
Required Columns
| Column | Type | Description |
|---|---|---|
SPORT | String | Sport identifier (e.g.: RUNNING, CYCLING, etc.) |
TITLE | String | Workout title |
Optional Columns
| Column | Type | Description |
|---|---|---|
TAGS | String | Tags separated by a | (e.g.:tag1 | tag2) |
IS_PLAIN_TEXT | Boolean | Indicates if the description is in plain text. Accepted values: true, false, 1, 0 |
DESCRIPTION | String | Workout description (can contain Markdown if IS_PLAIN_TEXT is false) |
ATTACHMENTS | String | Attachment paths separated by vertical bar. Files must be in the attachments/ folder of the ZIP |
Dynamic Columns: Targets (TARGET_*)
The same
TARGET_* columns as for activities are supported. See the Dynamic Columns: Targets (TARGET_*) section above.Events CSV File
The events CSV file allows you to import events (notes, races, pain).
Required Columns
| Column | Type | Description |
|---|---|---|
START | String | Start date in ISO format (YYYY-MM-DD) |
END | String | End date in ISO format (YYYY-MM-DD) |
KIND | String | Event type: NOTE, RACE, or PAIN |
Common Optional Columns
| Column | Type | Description |
|---|---|---|
TITLE | String | Event title |
Race-Specific Columns (KIND = RACE)
| Column | Type | Description |
|---|---|---|
RACE_PRIORITY | Number | Race priority (1, 2, or 3) |
Pain/Discomfort-Specific Columns (KIND = PAIN)
| Column | Type | Description |
|---|---|---|
PAIN_ZONE | String | Affected body zones, separated by vertical bar (list below) |
PAIN_INVALIDITY | Number | Invalidity from 1 to 100 |
PAIN_ALLOWED_SPORTS | String | Allowed sports, separated by vertical bar (list below) |
Sport Identifiers
| Identifier | Sport |
|---|---|
| RUNNING__GENERIC | Running |
| RUNNING__TREADMILL | Treadmill |
| RUNNING__STREET | Road running |
| RUNNING__TRAIL | Trail |
| RUNNING__TRACK | Track running |
| RUNNING__INDOOR | Indoor running |
| RUNNING__ORIENTEERING | Orienteering |
| CYCLING__GENERIC | Cycling |
| CYCLING__INDOOR | Turbo trainer |
| CYCLING__ROAD | Road cycling |
| CYCLING__MOUNTAIN | MTB |
| CYCLING__DOWNHILL | Downhill MTB |
| CYCLING__RECUMBENT | Recumbent bike |
| CYCLING__CYCLOCROSS | Cyclocross |
| CYCLING__HAND | Hand cycling |
| CYCLING__TRACK | Track cycling |
| CYCLING__BMX | BMX |
| CYCLING__GRAVEL | Gravel |
| CYCLING__COMMUTING | Commuting |
| ECYCLING__GENERIC | E-bike |
| ECYCLING__MOUNTAIN | Electric MTB |
| SWIMMING__GENERIC | Swimming |
| SWIMMING__POOL | Pool |
| SWIMMING__OPEN_WATER | Open water swimming |
| MULTISPORT__GENERIC | Multi-sport |
| MULTISPORT__TRANSITION | Transition |
| OUTDOOR__GENERIC | Outdoor activity |
| OUTDOOR__HIKING | Hiking |
| OUTDOOR__SNOWSHOEING | Snowshoes |
| OUTDOOR__CLIMBING | Climbing |
| OUTDOOR__MOUNTAINEERING | Mountaineering |
| SKIING__GENERIC | Skiing |
| SKIING__ALPINE | Alpine skiing |
| SKIING__SNOWBOARDING | Snowboarding |
| SKIING__XC_SKATE | Skating |
| SKIING__XC | Cross-country skiing |
| SKIING__TOURING | Ski touring |
| FITNESS__GENERIC | Fitness |
| FITNESS__HIIT | Fitness HIIT |
| FITNESS__INDOOR_ROWING | Rowing machine |
| FITNESS__ELLIPTICAL | Elliptical |
| FITNESS__FLEXIBILITY_TRAINING | Stretching |
| FITNESS__STRENGTH_TRAINING | Strength training |
| FITNESS__CARDIO_TRAINING | Cardio Training |
| FITNESS__YOGA | Yoga |
| FITNESS__PILATES | Pilates |
| RACKET__GENERIC | Racket sport |
| RACKET__TENNIS | Tennis |
| RACKET__BADMINTON | Badminton |
| RACKET__PADEL | Padel |
| RACKET__SQUASH | Squash |
| RACKET__TABLE_TENNIS | Table tennis |
| TEAM__GENERIC | Team sports |
| TEAM__BASKETBALL | Basketball |
| TEAM__SOCCER | Soccer |
| TEAM__HANDBALL | Handball |
| TEAM__VOLLEYBALL | Volleyball |
| FIGHTING__GENERIC | Combat sports |
| FIGHTING__BOXING | Boxing |
| FIGHTING__JUDO | Judo |
| WATER__GENERIC | Aquatic activity |
| WATER__ROWING | Rowing |
| WATER__KAYAKING | Kayaking |
| OTHER__HORSE_RIDING | Horseback riding |
| OTHER__INLINE_SKATING | Inline skating |
| OTHER__ICE_SKATING | Ice skating |
| OTHER__GENERIC | Other sport |
Body Zone Identifiers
| Identifier | Zone |
|---|---|
| Trapezius | Back |
| RightLat | Side |
| LeftLat | Side |
| RightTricep | Arm |
| LeftTricep | Arm |
| LeftGlute | Buttock |
| RightGlute | Buttock |
| RightHamstring | Thigh |
| LeftHamstring | Thigh |
| RightCalf | Calf |
| LeftCalf | Calf |
| RightAnkle | Ankle |
| LeftAnkle | Ankle |
| LeftRearDeltoid | Shoulder |
| RightRearDeltoid | Shoulder |
| LowerBack | Back |
| LeftElbow | Elbow |
| RightElbow | Elbow |
| LeftHandFingers | Hand |
| RightHandFingers | Hand |
| BackHead | Head |
| RightDeltoid | Shoulder |
| LeftDeltoid | Shoulder |
| RightBicep | Arm |
| LeftBicep | Arm |
| RightPectoral | Chest |
| LeftPectoral | Chest |
| RightOblique | Side |
| LeftOblique | Side |
| RightQuad | Thigh |
| LeftQuad | Thigh |
| RightKnee | Knee |
| LeftKnee | Knee |
| RightShin | Shin |
| LeftShin | Shin |
| RightWrist | Wrist |
| LeftWrist | Wrist |
| RightForearm | Forearm |
| LeftForearm | Forearm |
| LeftHip | Hip |
| RightHip | Hip |
| RightAdductor | Groin |
| LeftAdductor | Groin |
| Abdomen | Abdomen |
| RightNeck | Neck |
| LeftNeck | Neck |
| RightFoot | Foot |
| LeftFoot | Foot |
| FrontHead | Head |
Important Notes
-
Encoding: ⚠️ CSV files must be encoded in UTF-8
-
Custom Metrics: Custom metrics must be configured in settings before import, otherwise lines containing them will be ignored.
-
FIT Files: For activities with
HAS_FIT = true, the corresponding FIT file must be imported before importing the activity CSV. -
Attachments: For the library, attachments must be in a ZIP file with the CSV, in the
attachments/folder.