canonical: https://jentic.com/apis/hourtick.com/hourtick

# Hourtick API

The Hourtick API runs time tracking, task management, and client invoicing for a workspace. All timer changes flow through a single idempotent commands endpoint, while separate endpoints read time entries, reports, and timesheets. It manages a task board of work items with comments, checklists, and dependencies, keeps a catalog of clients, projects, and task types, and generates invoices from billable time through the workspace's own Stripe connection. It also links tasks to Linear, Notion, Teamwork, and Asana and tracks AI agent sessions and costs.

## For AI agents

Track time, manage a task board, and invoice billable work for a workspace. Agents can start and stop timers, create tasks, pull reports, and link work to Linear, Notion, Teamwork, and Asana.

## Scope

Does not run payroll, manage HR records, or host video calls. Use for time tracking, task management, and client invoicing only.

## Capabilities

- Start, stop, and edit time entries through a single idempotent commands endpoint
- Read time entries, reports, and timesheets for a period
- Manage a task board with work items, comments, checklists, and dependencies
- Create clients, projects, and task types in the workspace catalog
- Generate invoices from billable time through the workspace's Stripe connection
- Link tasks to Linear, Notion, Teamwork, and Asana items
- Track AI agent sessions, costs, and outcomes against budgets

## Use cases

### AI Agent Time Logging

An AI agent connected through Jentic can log its own working time against a task without a human filling a timesheet. The agent searches for the commands operation, Hourtick returns its input schema, and the agent sends a start command with a fresh command id, then a stop command when the work is done. This keeps agent and human effort in one ledger.

Example prompt: Start a timer on a task with a fresh command id and stop it when the work is done

### Task Board Automation

Create and update work items on the task board, add checklist items, post comments, and set dependencies so a task cannot move forward until its blockers are done. An automation can keep the board in sync with external events without manual clicking.

Example prompt: Create a task, add a checklist item, and post a comment on it

### Time Reporting

Pull totals, groups, and entries for a period, scoped to a team for managers, with cost and profit figures for admins. This feeds dashboards and periodic summaries without exporting spreadsheets by hand.

Example prompt: Fetch the time report for a project over a date range

### Invoicing from Billable Time

Preview what an invoice would contain, then create and send it from a client's billable, not-yet-invoiced time through the workspace's Stripe account. The invoiced time is locked so it is not billed twice.

Example prompt: Preview an invoice for a client's billable time, then create and send it

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api/v1/commands` | Start, stop, or edit time |
| GET | `/api/v1/time-entries` | Time entries in a date range |
| GET | `/api/v1/reports` | Totals and groups for a period |
| POST | `/api/v1/work-items` | Create a task |
| GET | `/api/v1/work-items` | List tasks on the board |
| POST | `/api/v1/invoices` | Create and send an invoice |
| GET | `/api/v1/bootstrap` | Current user, workspace, and projects |
| POST | `/api/v1/work-items/{id}/comments` | Comment on a task |

## Key resources

- **Time** — Time entries and the idempotent commands endpoint
- **Tasks** — Work items with comments, checklists, and dependencies
- **Reports** — Totals, groups, and timesheets for a period
- **Catalog** — Clients, projects, and task types
- **Invoices** — Invoices created from billable time via Stripe

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 39 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 73 / 100
  - Developer Experience & Jentic Compatibility: 33 / 100
  - AI-Readiness & Agent Experience: 20 / 100
  - Agent Usability: 74 / 100
  - Security: 60 / 100
  - AI Discoverability: 62 / 100
- **View full report:** https://jentic.com/apis/hourtick.com/hourtick/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Hourtick API by hand means setting up a personal Bearer token, routing every timer change through its commands endpoint with a fresh idempotency UUID, and handling RFC 9457 error details. Through Jentic you install once, import Hourtick from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Hourtick separates read endpoints (time entries, reports, tasks) from write and admin operations like invoicing, member cost rates, and deleting tasks or files, so a rule can hold your agent to logging time and reading reports. You choose the operations it may call, so creating an invoice or deleting a task is not included unless you add it.
- **Credential handling:** Your Hourtick token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'start a timer on a task' or 'get my time report', and Jentic returns the matching Hourtick operation with its input schema so the agent calls the right endpoint without reading the docs.

## Related APIs

- **Toggl Track** — Time tracking with projects, tags, and reporting.
- **Clockify** — Free time tracking and timesheets for teams.
- **Everhour** — Time tracking with budgeting and project-tool integrations.
- **Linear** — Issue tracking and project management for software teams.

## FAQ

### What authentication does the Hourtick API use?

The Hourtick API authenticates with a personal Bearer token per its OpenAPI spec: create one in your account settings and send it in the Authorization header. Agents can be issued their own token. Through Jentic the token is stored encrypted by your own Jentic One instance and injected at call time, so it never reaches the agent's prompt or logs.

### Can I start and stop timers with the Hourtick API?

Yes. All timer changes, starting, stopping, continuing, creating, editing, deleting, and restoring time, go through a single commands endpoint that is idempotent per command id, so retrying with the same id is safe.

### Is there a Hourtick MCP server?

You don't need an MCP server to give your agent the Hourtick API. Jentic connects it directly from the API Directory: import the API, store your token once, and your agent calls the time, task, and report endpoints it needs.

### Can I limit what my agent is allowed to do with the Hourtick API?

Yes. Write a rule that allows only the time-logging commands and the read endpoints, so a tracking agent can record and report time while invoicing, cost-rate changes, and deletions stay out of reach, and every call it makes is logged.

### What are the rate limits for the Hourtick API?

The OpenAPI spec does not publish specific rate limits. Every response carries a Server-Time header you can use for client-side pacing. Check hourtick.com for any limits that apply to your plan.

### How do I log time with the Hourtick API through Jentic?

Search Jentic for an intent like 'start a timer on a task', and it returns the Hourtick commands operation with its input schema so your agent calls it with a command id and a task. Your stored token is injected at call time. To run it on your own infrastructure, install Jentic One from its GitHub repo.
