Naughty Pinching Mannequins


    1.9.3 • Public • Published


    Parse your .FIT files easily, directly from JS. Written in ES6. (Hope to change)


    $ npm install fit-file-parser --save

    How to use

    See in examples folder:

    // Require the module
    var FitParser = require('./../dist/fit-file-parser.js').default;
    // Read a .FIT file
    var fs = require('fs');
    fs.readFile('./', function (err, content) {
      // Create a FitParser instance (options argument is optional)
      var fitParser = new FitParser({
        force: true,
        speedUnit: 'km/h',
        lengthUnit: 'km',
        temperatureUnit: 'kelvin',
        elapsedRecordField: true,
        mode: 'cascade',
      // Parse your file
      fitParser.parse(content, function (error, data) {
        // Handle result of parse method
        if (error) {
        } else {

    API Documentation

    new FitParser(Object options)

    Needed to create a new instance. options is optional, and is used to customize the returned object.

    Allowed properties :

    • mode: String
      • cascade: Returned object is organized as a tree, eg. each lap contains a records fields, that is an array of its records (default)
      • list: Returned object is organized as lists of sessions, laps, records, etc..., without parent-child relation
      • both: A mix of the two other modes, eg. records are available inside the root field as well as inside each laps
    • lengthUnit: String
      • m: Lengths are in meters (default)
      • km: Lengths are in kilometers
      • mi: Lengths are in miles
    • temperatureUnit: String
      • celsius:Temperatures are in °C (default)
      • kelvin: Temperatures are in °K
      • fahrenheit: Temperatures are in °F
    • speedUnit: String
      • m/s: Speeds are in meters per seconds (default)
      • km/h: Speeds are in kilometers per hour
      • mph: Speeds are in miles per hour
    • force: Boolean
      • true: Continues even if they are errors (default for now)
      • false: Stops if an error occurs
    • elapsedRecordField: Boolean
      • true: Includes elapsed_time, containing the elapsed time in seconds since the first record, and timer_time, containing the time shown on the device, inside each record field
      • false (default)

    fitParser.parse(Buffer file, Function callback)

    callback receives two arguments, the first as a error String, and the second as Object, result of parsing.


    All started thanks to Pierre Jacquier

    Big thanks to Mikael Lofjärd for his early prototype. See CONTRIBUTORS.


    MIT license; see LICENSE.

    (c) 2019 Dimitrios Kanellopoulos


    npm i fit-file-parser

    DownloadsWeekly Downloads






    Unpacked Size

    226 kB

    Total Files


    Last publish


    • jimmykane