---
title: "Creates a Ticket Timer that starts running"
method: POST
path: "/ticket_timers"
tags: ["Ticket Timer"]
---

# Creates a Ticket Timer that starts running

`POST /ticket_timers`

Required permission: Ticket Timers - Overview

Creates a Ticket Timer that starts directly in status_running (start_time is set to
now, end_time is left unset). The timer always belongs to the authenticated
technician — any client-supplied user_id is ignored.

A technician holds at most one active timer per ticket. If they already have a running or
paused timer on the ticket it is resumed and returned with a 200 rather than a second timer
being created, and the request body is ignored.

An omitted or null `billable` resolves to the account's "time is non-billable by default"
setting, matching the Web App.

## Request body

- object
  - `ticket_id` integer, required
  - `product_id` integer
  - `comment_id` integer
  - `notes` string
  - `billable` boolean

## Response `200`

the technician already has an active timer on the ticket

## Other responses

- `201` — successful
- `404` — not found
- `422` — ticket_id is missing

## Changes

- **2026-08-29** `dfc1c332d2c2` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/syncromsp/apis/syncro/changes/ticket_timers/post.md)

---

[API](https://skmtc.dev/syncromsp/apis/syncro.md) · [All operations](https://skmtc.dev/syncromsp/apis/syncro/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/syncromsp/syncro/revisions/dfc1c332d2c2/schema)
