---
title: "Update a focus record"
method: POST
path: "/open/v1/focus/{focusId}"
---

# Update a focus record

`POST /open/v1/focus/{focusId}`

## Request

- Base URL: `https://ticktick.com`
- URL: `https://ticktick.com/open/v1/focus/{focusId}`
- Auth: none declared

Updates the supplied fields of an existing focus record. `type` is required: use `0` for a
Pomodoro record or `1` for a timing record. For Pomodoro records, `taskId` and `status` may
also be updated. A supplied `tasks` array replaces the existing task associations.

## Path parameters

- `focusId` string, required

## Request body

- Focus
  - `id` string: Focus record ID. It is supplied by the path when updating.
  - `type` 0 | 1, required: Focus type: 0 for Pomodoro or 1 for timing.
  - `taskId` string: Task ID associated with a Pomodoro record.
  - `note` string: Focus note. Blank notes are stored as null.
  - `tasks` FocusTaskBrief[]: Replacement list of task associations.
    - `taskId` string
    - `title` string
    - `habitId` string
    - `timerId` string
    - `timerName` string
    - `projectName` string
    - `tags` string[]
    - `startTime` string: Start time in "yyyy-MM-dd'T'HH:mm:ssZ" format.
    - `endTime` string: End time in "yyyy-MM-dd'T'HH:mm:ssZ" format.
  - `status` integer: Pomodoro status.
  - `startTime` string: Start time in "yyyy-MM-dd'T'HH:mm:ssZ" format.
  - `endTime` string: End time in "yyyy-MM-dd'T'HH:mm:ssZ" format. It must not precede startTime.
  - `pauseDuration` integer: Paused duration in seconds.
  - `adjustTime` integer: Manually adjusted duration in seconds.
  - `added` boolean: Whether the focus record was manually added.
  - `duration` integer: Focus duration in seconds.
  - `createdTime` string: Creation time in "yyyy-MM-dd'T'HH:mm:ssZ" format.
  - `modifiedTime` string: Last modification time in "yyyy-MM-dd'T'HH:mm:ssZ" format.
  - `etag` string: Version identifier returned after a change.

## Response `200`

The updated focus record, or null when the record is not found.

- Focus
  - `id` string: Focus record ID. It is supplied by the path when updating.
  - `type` 0 | 1, required: Focus type: 0 for Pomodoro or 1 for timing.
  - `taskId` string: Task ID associated with a Pomodoro record.
  - `note` string: Focus note. Blank notes are stored as null.
  - `tasks` FocusTaskBrief[]: Replacement list of task associations.
    - `taskId` string
    - `title` string
    - `habitId` string
    - `timerId` string
    - `timerName` string
    - `projectName` string
    - `tags` string[]
    - `startTime` string: Start time in "yyyy-MM-dd'T'HH:mm:ssZ" format.
    - `endTime` string: End time in "yyyy-MM-dd'T'HH:mm:ssZ" format.
  - `status` integer: Pomodoro status.
  - `startTime` string: Start time in "yyyy-MM-dd'T'HH:mm:ssZ" format.
  - `endTime` string: End time in "yyyy-MM-dd'T'HH:mm:ssZ" format. It must not precede startTime.
  - `pauseDuration` integer: Paused duration in seconds.
  - `adjustTime` integer: Manually adjusted duration in seconds.
  - `added` boolean: Whether the focus record was manually added.
  - `duration` integer: Focus duration in seconds.
  - `createdTime` string: Creation time in "yyyy-MM-dd'T'HH:mm:ssZ" format.
  - `modifiedTime` string: Last modification time in "yyyy-MM-dd'T'HH:mm:ssZ" format.
  - `etag` string: Version identifier returned after a change.

## Changes

- **2026-09-18** `374ecf8d643c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ticktick/apis/ticktick-openapi/changes/open/v1/focus/:focusId/post.md)

---

[API](https://skmtc.dev/ticktick/apis/ticktick-openapi.md) - [All operations](https://skmtc.dev/ticktick/apis/ticktick-openapi/llms.txt) - [OpenAPI document](https://skmtc.dev/ticktick/apis/ticktick-openapi/revisions/bbd09df38f88?raw)
