---
title: "Record an activity by hand"
method: POST
path: "/activities"
tags: ["Activities"]
---

# Record an activity by hand

`POST /activities`

## Request

- Base URL: `https://bodylab.lol/api/v1`
- URL: `https://bodylab.lol/api/v1/activities`
- Auth: HTTP bearer

## Headers

- `X-Client-Platform` string
- `X-Client-Version` string

## Request body

- ManualActivityInput
  - `activityType` string, required
  - `name` string, nullable
  - `startTime` string, date-time, required: An instant: ISO-8601 with offset, e.g. 2026-09-13T06:30:00Z.
  - `durationS` integer, required
  - `distanceM` number, nullable
  - `elevationGainM` number, nullable
  - `avgHr` integer, nullable
  - `maxHr` integer, nullable
  - `avgPowerW` integer, nullable
  - `sessionRpe` number, nullable
  - `notes` string, nullable

## Response `201`

OK

- CreatedActivity
  - `id` string, required: Opaque identifier.

## Other responses

- `401`: Error: UNAUTHORIZED.
- `422`: Error: MISSING_EFFORT, START_IN_FUTURE.

---

[API](https://skmtc.dev/bodylab/apis/body-lab-api.md) · [All operations](https://skmtc.dev/bodylab/apis/body-lab-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bodylab/apis/body-lab-api/revisions/544c201eaf88?raw)
