---
title: "Get Activity Details"
method: GET
path: "/user_states/boards/{board_id}/activities/{activity_id}/details"
tags: ["user-states"]
---

# Get Activity Details

`GET /user_states/boards/{board_id}/activities/{activity_id}/details`

## Request

- Base URL: `https://api.imperfect.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.imperfect.co/user_states/boards/{board_id}/activities/{activity_id}/details`
- Auth: HTTP bearer

Generate or return cached activity details (steps, technique_notes).

First request triggers a lightweight agent call (~2-3s).
Subsequent requests return cached details instantly.

## Path parameters

- `board_id` string, required
- `activity_id` string, required

## Query parameters

- `user_id` string, nullable

## Headers

- `accept-language` string, nullable
- `x-device-timezone` string, nullable
- `x-units` string, nullable
- `x-units-source` string, nullable

## Response `200`

Successful Response

- Activity: A discrete unit of action in the user's plan.
  - `id` string
  - `type` 'hydration' | 'nutrition' | 'movement' | 'rest' | 'mental' | 'preparation' | 'facilities', required: Category of the activity
  - `status` 'pending' | 'completed' | 'skipped': Execution status
  - `params` ActivityParams, required: Structured parameters for activity execution and validation.
    - `target_value` number, nullable: Numeric target (e.g., 500, 5, 30)
    - `unit` string, nullable: Unit of measure in the user's system (e.g., ml or oz, km or mi, min)
    - `item` string, nullable: Specific item (e.g., water, zone 2 run, protein)
  - `title` string, required: Short title. E.g. 'Hydration'.
  - `description` string, required: Actionable description with specific amounts in the user's unit system. E.g. 'Drink 500ml water with electrolytes' (metric) / 'Drink 16oz water with electrolytes' (imperial).
  - `headline` string: Imperative + quantified, 3-5 words, in the user's unit system. E.g. 'Toma 500ml Agua', 'Run 5km Easy' (metric) / 'Drink 16oz Water', 'Run 3mi Easy' (imperial). Must include a specific number/amount.
  - `short_description` string: Brief context, 2-4 words. E.g. 'Pre-run Hydration'. Never repeat headline words.
  - `sentiment` 'positive' | 'caution' | 'urgent' | 'neutral': urgent: immediate health needs (dehydration, overtraining). caution: needs attention (poor sleep, high stress). positive: on track. neutral: informational.
  - `requires_completion` boolean: false ONLY for final sleep/rest items in the plan. These passive items must be LAST in the list.
  - `steps` ActivityStep[], nullable: Detailed step-by-step instructions for executing the activity
    - `order` integer, required: Step sequence number (1, 2, 3...)
    - `title` string, required: Short step title, e.g. 'Leg Swings', 'Main Set'
    - `instruction` string, required: Clear instruction of what to do, e.g. 'Swing each leg forward and back 10 times'
    - `duration_seconds` integer, nullable: Duration in seconds if time-based
    - `repetitions` integer, nullable: Number of repetitions if rep-based
    - `tip` string, nullable: Optional technique tip, e.g. 'Keep your core engaged'
  - `technique_notes` TechniqueNote[], nullable: Technique tips and guidance for proper execution
    - `focus` string, required: Area of focus, e.g. 'Breathing', 'Posture', 'Cadence', 'Zone 2'
    - `instruction` string, required: Clear technique instruction, e.g. 'Breathe in through nose for 3 steps, out through mouth for 2'
    - `why` string, nullable: Optional explanation of why this matters, e.g. 'Helps maintain aerobic zone'
  - `estimated_duration_minutes` integer, nullable: Total estimated duration in minutes

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-03** `fe19f3e7e26a`: 1 info
  - added the new optional `header` request parameter `x-units-source`

[Operation history](https://skmtc.dev/imperfect/apis/imperfect-api/changes/user_states/boards/:board_id/activities/:activity_id/details/get.md)

---

[API](https://skmtc.dev/imperfect/apis/imperfect-api.md) - [All operations](https://skmtc.dev/imperfect/apis/imperfect-api/llms.txt) - [OpenAPI document](https://skmtc.dev/imperfect/apis/imperfect-api/revisions/5f9db30c6e6e?raw)
