# TrackTimer

> Time tracking for freelancers and agencies, with a REST API and hosted MCP server.

Public documentation only. API keys and MCP authorization are workspace-bound. Follow the authentication and retry guides before making changes to time entries.

## Getting started

- [Overview](https://www.tracktimer.app/docs.md): Start here to understand API capabilities and make a first request.

- [TrackTimer MCP setup for AI agents](https://www.tracktimer.app/docs/mcp.md): Connect TrackTimer to Codex, Claude, Claude Code, Cursor, or VS Code. Copy one setup prompt to track time, review entries, and check earnings from your AI agent.

- [Authentication and API keys](https://www.tracktimer.app/docs/authentication.md): Create a workspace-bound API key and understand scopes, expiration, and request authentication.

- [Errors, rate limits, and safe retries](https://www.tracktimer.app/docs/errors-and-retries.md): Handle API failures, the 120-request rate limit, and idempotent timer mutations.

- [Paginate personal time entries](https://www.tracktimer.app/docs/pagination.md): Read time-entry history with opaque cursors and understand ordering and concurrent changes.

## REST API reference

- [Create a project](https://www.tracktimer.app/docs/create-project.md): POST /api/v1/projects. Create a project as a workspace admin and automatically join it.

- [List clients](https://www.tracktimer.app/docs/list-clients.md): GET /api/v1/clients. Discover active workspace clients according to the API key owner’s role.

- [List projects for a client](https://www.tracktimer.app/docs/list-projects.md): GET /api/v1/projects. Find assigned, unarchived projects for a client in the key’s workspace.

- [Get the active timer](https://www.tracktimer.app/docs/get-active-timer.md): GET /api/v1/timer. Read the key owner’s current timer in the bound workspace.

- [Start or switch a timer](https://www.tracktimer.app/docs/start-timer.md): POST /api/v1/timers/start. Start a project timer and atomically complete any timer already running for the user.

- [Stop a timer](https://www.tracktimer.app/docs/stop-timer.md): POST /api/v1/timers/{timerId}/stop. Complete a timer owned by the key user in the bound workspace.

- [List personal time entries](https://www.tracktimer.app/docs/list-time-entries.md): GET /api/v1/time-entries. Read personal workspace history with project filtering and cursor pagination.

## Downloads

- [OpenAPI specification](https://www.tracktimer.app/openapi.json): REST API schemas, authentication, parameters, and responses.

- [Complete documentation](https://www.tracktimer.app/llms-full.txt): All public documentation as Markdown.
