# The settings object

> Your daily targets over time, display preferences and body measurements.

Settings hold what your days are measured against: daily calorie and macro targets, the units to show amounts in, and body measurements. Both settings endpoints return them in this shape.

```json
{
  "targets": [
    { "startsOn": "2026-09-01", "values": { "caloriesKcal": 2200, "proteinG": 130, "carbsG": 250, "fatG": 70 } },
    { "startsOn": "2026-10-01", "values": { "caloriesKcal": 2000, "proteinG": 130, "carbsG": 220, "fatG": 65 } }
  ],
  "preferences": { "units": null, "deviceUnits": "metric", "showTargets": true, "assistantShortcut": "chatgpt" },
  "body": { "weightKg": 76, "heightCm": 175, "age": 34, "sex": "male", "activity": "somewhat" }
}
```

## Fields

| Field | Type | Description |
| --- | --- | --- |
| `targets` | array | Your daily targets over time, oldest first. Each period applies from `startsOn` until the next one. |
| `preferences` | object | Display preferences. |
| `body` | object | Body measurements, each `null` until set. |

## Daily targets

Targets are kept as periods, so past days keep the targets they had. A period applies from its `startsOn` until the next one starts. To find the targets for a day, take the last period that starts on or before it; with none, or with `values` set to `null`, that day has no targets.

| Field | Type | Description |
| --- | --- | --- |
| `startsOn` | date | The first day of the period. |
| `values` | object or null | The targets in the period, or `null` for none. |

Targets are always kilocalories and grams, whatever `units` says. To see how a day went, compare them with the `nutrition` of that day's [meals](https://splot.health/docs/api/meals/list).

| Field | Type | Description |
| --- | --- | --- |
| `caloriesKcal` | number | Energy, in kcal. |
| `proteinG` | number | Protein, in grams. |
| `carbsG` | number | Carbohydrates, in grams. |
| `fatG` | number | Fat, in grams. |

## Preferences

| Field | Type | Description |
| --- | --- | --- |
| `units` | string or null | The units to show amounts in; `imperial` is US customary. `null` follows the phone. One of `metric`, `imperial` or `uk`. |
| `deviceUnits` | string or null | The units the phone uses, as the app last reported them. One of `metric`, `imperial` or `uk`. |
| `showTargets` | boolean | Whether the app shows progress towards your targets. |
| `assistantShortcut` | string or null | The assistant the app's shortcut opens, or `off`. One of `claude`, `chatgpt` or `off`. |

## Body

| Field | Type | Description |
| --- | --- | --- |
| `weightKg` | number or null | Weight, in kilograms. |
| `heightCm` | number or null | Height, in centimetres. |
| `age` | integer or null | Age, in years. From 1 to 130. |
| `sex` | string or null | Sex, for estimating energy needs. One of `female`, `male` or `unspecified`. |
| `activity` | string or null | How active a usual day is. One of `sitting`, `somewhat` or `very`. |
