---
title: "Start timer"
method: POST
path: "/v3/timer/start"
tags: ["[v3] Timer"]
---

# Start timer

`POST /v3/timer/start`

Start a timer for the authenticated user.

## Headers

- `Accept` string
- `Content-Type` string

## Request body

- object
  - `taskId` integer, nullable — Local task id. When provided without externalTaskId, the response contains the local task name.
  - `externalTaskId` string, nullable — External task id from the requesting integration.
  - `externalTaskName` string, nullable — External task name used as the entry note when the external task is not synchronized locally.
  - `entryId` union — Existing entry id or "create" to create a new entry.
    - integer
    - string
  - `sourceEntryId` integer, nullable — Previous entry id used to preserve pending timer synchronization for external tasks.
  - `startedAt` string, nullable — Local timer start time.
  - `place` string, nullable — Optional analytics source.
  - `note` string, nullable — Timer note saved on a created entry.
  - `browserPluginButtonHash` string, nullable — Browser plugin button hash assigned to the timer.
  - `tags` object[] — Tags assigned to the created entry when the tags module is enabled.

## Response `200`

OK

- object
  - `timer` object, required
    - `id` integer, nullable, required — New or already running timer id.
    - `isNew` boolean, required — Whether this call created a new timer.
    - `stoppedTimerId` integer, nullable, required — Timer id stopped by this start call, when applicable.
    - `elapsed` integer, nullable, required — Elapsed time for the stopped timer, when applicable.
    - `userId` integer, nullable
    - `startedAt` string, nullable
    - `startedAtUtc` string, nullable
    - `service` string, nullable
    - `lastActive` string, nullable
    - `billable` integer, nullable
    - `browserPluginButtonHash` string, nullable
  - `entry` object, required
    - `id` integer, nullable, required — Time entry id assigned to the timer.
    - `note` string, nullable, required — Timer note saved on the entry.
  - `task` object, required
    - `id` integer, nullable, required — Local task id assigned to the timer.
    - `name` string, nullable, required — Local or synchronized task name.
    - `externalTaskId` string, nullable, required — External task id assigned to the timer.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden

---

[API](https://skmtc.dev/timecamp/apis/timecamp-api.md) · [All operations](https://skmtc.dev/timecamp/apis/timecamp-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/timecamp/timecamp-api/revisions/047f6ac362aa/schema)
