# Update Subtask

`lawmatics_update-subtask` · Lawmatics MCP tool · Subtasks

Update a subtask (checklist item) on a Lawmatics task. Provide the text content, the completion status, or both; an omitted field keeps its current value. Returns a `relationships` envelope with an {id,type} pointer to the parent task.

## Input

- **taskId** `string` (required, pattern: ^\d+$) — ID of the parent task the subtask belongs to; a numeric string
- **subtaskId** `string` (required, pattern: ^\d+$) — ID of the subtask to update; a numeric string
- **body** `string` — New text content of the subtask
- **done** `boolean` — Completion status; true marks the subtask done

## Output

- **id** `string` (required) — Unique ID of the subtask
- **body** `string` (required) — Text content of the subtask
- **order** `integer` (required) — Read-only zero-based position of the subtask within the parent task's checklist
- **done** `boolean` (required) — Whether the subtask is completed
- **createdAt** `string` (required) — When the subtask was created, as an ISO 8601 timestamp
- **updatedAt** `string` (required) — When the subtask was last updated, as an ISO 8601 timestamp
- **relationships** `object` (required) — JSON:API relationship pointers to related records as {id,type} stubs. Not materialized — follow the pointer by calling that resource's own tool (type 'task' -> get-task).
  - **task** `object | null` (required) — Parent task pointer (type 'task'); null when unreported
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
