---
url: /docs/api/fit/functions/encodeBodyCompositionFit.md
---
[**@kaiord/fit**](../README.md)

***

[@kaiord/fit](../README.md) / encodeBodyCompositionFit

# Function: encodeBodyCompositionFit()

> **encodeBodyCompositionFit**(`krd`, `logger?`): `Uint8Array`

Defined in: [fit/src/adapters/garmin-fitsdk.ts:55](https://github.com/pablo-albaladejo/kaiord/blob/3eacbe62ef72342d970523967cc5155b5935bb85/packages/fit/src/adapters/garmin-fitsdk.ts#L55)

Converts a KRD carrying weight and/or body composition into real FIT file
bytes (a `weight_scale`/mesgNum-30 message) ready to POST to Garmin's upload
endpoint. Emits `weight_scale`, not `body_composition` (mesgNum 41), which is
absent from the SDK Profile and would throw at the Encoder.

## Parameters

### krd

#### events?

`object`\[]

#### extensions?

{\[`key`: `string`]: `unknown`; `course?`: `unknown`; `course_points?`: `unknown`; `fit?`: `unknown`; `health?`: {\[`key`: `string`]: `unknown`; `bodyComposition?`: { `basalMetabolicRateKcal?`: `number`; `bmi?`: `number`; `bodyFatPercent?`: `number`; `bodyWaterPercent?`: `number`; `boneMassKilograms?`: `number`; `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"bodyComposition"`; `leanMassKilograms?`: `number`; `measuredAt`: `string`; `sourceBridgeId?`: `string`; `version`: `string`; `visceralFatRating?`: `number`; }; `daily?`: { `activeCalories`: `number`; `date`: `string`; `externalId?`: `string`; `floorsClimbed?`: `number`; `intensityMinutes`: { `moderate`: `number`; `vigorous`: `number`; }; `kaiordRecordId?`: `string`; `kind`: `"daily"`; `restingCalories`: `number`; `sourceBridgeId?`: `string`; `steps`: `number`; `version`: `string`; }; `hrv?`: { `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"hrv"`; `measuredAt`: `string`; `measurementWindow`: `"overnight"` | `"spot"`; `rMSSD`: `number`; `score?`: `number`; `sourceBridgeId?`: `string`; `version`: `string`; }; `sleep?`: { `endTime`: `string`; `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"sleep"`; `restingHeartRate?`: `number`; `score?`: `number`; `sourceBridgeId?`: `string`; `stages`: `object`\[]; `startTime`: `string`; `totalDurationSeconds?`: `number`; `version`: `string`; }; `stress?`: { `averageLevel`: `number`; `endTime`: `string`; `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"stress"`; `peakLevel`: `number`; `sourceBridgeId?`: `string`; `startTime`: `string`; `version`: `string`; }; `weight?`: { `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"weight"`; `measuredAt`: `string`; `sourceBridgeId?`: `string`; `version`: `string`; `weightKilograms`: `number`; }; }; `structured_workout?`: `unknown`; }

#### extensions.course?

`unknown`

#### extensions.course_points?

`unknown`

#### extensions.fit?

`unknown`

#### extensions.health?

{\[`key`: `string`]: `unknown`; `bodyComposition?`: { `basalMetabolicRateKcal?`: `number`; `bmi?`: `number`; `bodyFatPercent?`: `number`; `bodyWaterPercent?`: `number`; `boneMassKilograms?`: `number`; `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"bodyComposition"`; `leanMassKilograms?`: `number`; `measuredAt`: `string`; `sourceBridgeId?`: `string`; `version`: `string`; `visceralFatRating?`: `number`; }; `daily?`: { `activeCalories`: `number`; `date`: `string`; `externalId?`: `string`; `floorsClimbed?`: `number`; `intensityMinutes`: { `moderate`: `number`; `vigorous`: `number`; }; `kaiordRecordId?`: `string`; `kind`: `"daily"`; `restingCalories`: `number`; `sourceBridgeId?`: `string`; `steps`: `number`; `version`: `string`; }; `hrv?`: { `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"hrv"`; `measuredAt`: `string`; `measurementWindow`: `"overnight"` | `"spot"`; `rMSSD`: `number`; `score?`: `number`; `sourceBridgeId?`: `string`; `version`: `string`; }; `sleep?`: { `endTime`: `string`; `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"sleep"`; `restingHeartRate?`: `number`; `score?`: `number`; `sourceBridgeId?`: `string`; `stages`: `object`\[]; `startTime`: `string`; `totalDurationSeconds?`: `number`; `version`: `string`; }; `stress?`: { `averageLevel`: `number`; `endTime`: `string`; `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"stress"`; `peakLevel`: `number`; `sourceBridgeId?`: `string`; `startTime`: `string`; `version`: `string`; }; `weight?`: { `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"weight"`; `measuredAt`: `string`; `sourceBridgeId?`: `string`; `version`: `string`; `weightKilograms`: `number`; }; }

#### extensions.health.bodyComposition?

{ `basalMetabolicRateKcal?`: `number`; `bmi?`: `number`; `bodyFatPercent?`: `number`; `bodyWaterPercent?`: `number`; `boneMassKilograms?`: `number`; `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"bodyComposition"`; `leanMassKilograms?`: `number`; `measuredAt`: `string`; `sourceBridgeId?`: `string`; `version`: `string`; `visceralFatRating?`: `number`; }

#### extensions.health.bodyComposition.basalMetabolicRateKcal?

`number`

#### extensions.health.bodyComposition.bmi?

`number`

#### extensions.health.bodyComposition.bodyFatPercent?

`number`

#### extensions.health.bodyComposition.bodyWaterPercent?

`number`

#### extensions.health.bodyComposition.boneMassKilograms?

`number`

#### extensions.health.bodyComposition.externalId?

`string`

#### extensions.health.bodyComposition.kaiordRecordId?

`string`

#### extensions.health.bodyComposition.kind

`"bodyComposition"`

#### extensions.health.bodyComposition.leanMassKilograms?

`number`

#### extensions.health.bodyComposition.measuredAt

`string`

#### extensions.health.bodyComposition.sourceBridgeId?

`string`

#### extensions.health.bodyComposition.version

`string`

#### extensions.health.bodyComposition.visceralFatRating?

`number`

#### extensions.health.daily?

{ `activeCalories`: `number`; `date`: `string`; `externalId?`: `string`; `floorsClimbed?`: `number`; `intensityMinutes`: { `moderate`: `number`; `vigorous`: `number`; }; `kaiordRecordId?`: `string`; `kind`: `"daily"`; `restingCalories`: `number`; `sourceBridgeId?`: `string`; `steps`: `number`; `version`: `string`; }

#### extensions.health.daily.activeCalories

`number`

#### extensions.health.daily.date

`string`

#### extensions.health.daily.externalId?

`string`

#### extensions.health.daily.floorsClimbed?

`number`

#### extensions.health.daily.intensityMinutes

{ `moderate`: `number`; `vigorous`: `number`; }

#### extensions.health.daily.intensityMinutes.moderate

`number`

#### extensions.health.daily.intensityMinutes.vigorous

`number`

#### extensions.health.daily.kaiordRecordId?

`string`

#### extensions.health.daily.kind

`"daily"`

#### extensions.health.daily.restingCalories

`number`

#### extensions.health.daily.sourceBridgeId?

`string`

#### extensions.health.daily.steps

`number`

#### extensions.health.daily.version

`string`

#### extensions.health.hrv?

{ `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"hrv"`; `measuredAt`: `string`; `measurementWindow`: `"overnight"` | `"spot"`; `rMSSD`: `number`; `score?`: `number`; `sourceBridgeId?`: `string`; `version`: `string`; }

#### extensions.health.hrv.externalId?

`string`

#### extensions.health.hrv.kaiordRecordId?

`string`

#### extensions.health.hrv.kind

`"hrv"`

#### extensions.health.hrv.measuredAt

`string`

#### extensions.health.hrv.measurementWindow

`"overnight"` | `"spot"`

#### extensions.health.hrv.rMSSD

`number`

#### extensions.health.hrv.score?

`number`

#### extensions.health.hrv.sourceBridgeId?

`string`

#### extensions.health.hrv.version

`string`

#### extensions.health.sleep?

{ `endTime`: `string`; `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"sleep"`; `restingHeartRate?`: `number`; `score?`: `number`; `sourceBridgeId?`: `string`; `stages`: `object`\[]; `startTime`: `string`; `totalDurationSeconds?`: `number`; `version`: `string`; }

#### extensions.health.sleep.endTime

`string`

#### extensions.health.sleep.externalId?

`string`

#### extensions.health.sleep.kaiordRecordId?

`string`

#### extensions.health.sleep.kind

`"sleep"`

#### extensions.health.sleep.restingHeartRate?

`number`

#### extensions.health.sleep.score?

`number`

#### extensions.health.sleep.sourceBridgeId?

`string`

#### extensions.health.sleep.stages

`object`\[]

#### extensions.health.sleep.startTime

`string`

#### extensions.health.sleep.totalDurationSeconds?

`number`

#### extensions.health.sleep.version

`string`

#### extensions.health.stress?

{ `averageLevel`: `number`; `endTime`: `string`; `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"stress"`; `peakLevel`: `number`; `sourceBridgeId?`: `string`; `startTime`: `string`; `version`: `string`; }

#### extensions.health.stress.averageLevel

`number`

#### extensions.health.stress.endTime

`string`

#### extensions.health.stress.externalId?

`string`

#### extensions.health.stress.kaiordRecordId?

`string`

#### extensions.health.stress.kind

`"stress"`

#### extensions.health.stress.peakLevel

`number`

#### extensions.health.stress.sourceBridgeId?

`string`

#### extensions.health.stress.startTime

`string`

#### extensions.health.stress.version

`string`

#### extensions.health.weight?

{ `externalId?`: `string`; `kaiordRecordId?`: `string`; `kind`: `"weight"`; `measuredAt`: `string`; `sourceBridgeId?`: `string`; `version`: `string`; `weightKilograms`: `number`; }

#### extensions.health.weight.externalId?

`string`

#### extensions.health.weight.kaiordRecordId?

`string`

#### extensions.health.weight.kind

`"weight"`

#### extensions.health.weight.measuredAt

`string`

#### extensions.health.weight.sourceBridgeId?

`string`

#### extensions.health.weight.version

`string`

#### extensions.health.weight.weightKilograms

`number`

#### extensions.structured_workout?

`unknown`

#### laps?

`object`\[]

#### metadata

{ `created`: `string`; `manufacturer?`: `string`; `product?`: `string`; `serialNumber?`: `string`; `sport?`: `string`; `subSport?`: `string`; }

#### metadata.created

`string`

#### metadata.manufacturer?

`string`

#### metadata.product?

`string`

#### metadata.serialNumber?

`string`

#### metadata.sport?

`string`

#### metadata.subSport?

`string`

#### records?

`object`\[]

#### sessions?

`object`\[]

#### type

`"body_composition"` | `"course"` | `"daily_wellness"` | `"hrv_summary"` | `"recorded_activity"` | `"sleep_record"` | `"stress_episode"` | `"structured_workout"` | `"weight_measurement"`

#### version

`string`

### logger?

`Logger`

## Returns

`Uint8Array`
