Integrations

TimeTrack is designed to fit into your stack. Connect with payment processors, auth providers, AI assistants, and your own tools via webhooks or the REST API.

๐Ÿ’ณ Stripe (Billing)

TimeTrack uses Stripe for subscription billing. The integration supports checkout, customer portal, and webhook-driven subscription management.

Setup

  1. Create a Stripe account at stripe.com
  2. Create three products in Stripe Dashboard: Monthly, Yearly, Lifetime
  3. Copy the price IDs to your .env file
  4. Configure webhook endpoint: https://api.timetracker.cargoffer.com/api/v1/billing/webhook
  5. Set STRIPE_WEBHOOK_SECRET in your env

Endpoints

Test Mode

For development, use Stripe test keys and the Stripe CLI to forward webhooks:

stripe listen --forward-to localhost:8017/api/v1/billing/webhook

๐Ÿ” Clerk (Authentication)

TimeTrack uses Clerk for user authentication. Clerk provides social login, MFA, session management, and JWT-based API authentication.

Setup

  1. Create a Clerk application at clerk.com
  2. Enable authentication methods (email, Google, GitHub, etc.)
  3. Copy the publishable key (frontend) and secret key (backend) to your env
  4. Configure CLERK_JWKS_URL for JWT verification
  5. Set the frontend URL in Clerk's allowed origins

Frontend Integration

The React frontend uses Clerk's React SDK:

import {{ ClerkProvider }} from '@clerk/clerk-react'

function App() {{
  return (
    <ClerkProvider publishableKey={{import.meta.env.VITE_CLERK_PUBLISHABLE_KEY}}>
      {{/* Your app */}}
    </ClerkProvider>
  )
}}

Backend JWT Verification

All authenticated endpoints verify the JWT signature using Clerk's JWKS endpoint. Tokens expire automatically; refresh is handled by the Clerk SDK.

๐Ÿค– Model Context Protocol (MCP)

TimeTrack provides a built-in Model Context Protocol server, enabling AI assistants like Claude and ChatGPT to interact with your time tracking data.

What is MCP?

MCP is an open protocol that lets AI assistants call tools and access resources. TimeTrack's MCP server exposes time tracking operations as tools that any MCP-compatible client can invoke.

Endpoint

The MCP server runs on SSE transport:

https://mcp.timetracker.cargoffer.com (SSE on port 8000)

Available Tools

ToolDescription
start_timerStart a timer for a project/task with optional description
stop_timerStop the currently active timer
get_active_timerCheck if there's an active timer
log_hoursCreate a manual time entry for past work
list_projectsList all accessible projects
create_projectCreate a new project
list_clientsList all clients
create_clientCreate a new client
get_reportGenerate a time report (today, week, month, custom range)
get_dashboardGet dashboard summary

Example: Connect Claude Desktop

Add to your claude_desktop_config.json:

{{
  "mcpServers": {{
    "timetrack": {{
      "url": "https://mcp.timetracker.cargoffer.com/sse",
      "transport": "sse",
      "headers": {{
        "Authorization": "Bearer YOUR_CLERK_JWT"
      }}
    }}
  }}
}}

Example Conversation

Once connected, you can ask your AI assistant:

๐Ÿ”Œ REST API (Custom Integrations)

For any custom integration, use the REST API directly. See the complete API reference for all 79 endpoints.

Authentication

Two options:

  1. Clerk JWT - for user-context requests
  2. API Key - for server-to-server automation

Rate Limits

PlanReq/minReq/day
Free601,000
Pro30050,000
EnterpriseCustomCustom

SDKs and Client Libraries

You can generate a client SDK from the OpenAPI spec:

# TypeScript / JavaScript
npx @openapitools/openapi-generator-cli generate \
  -i https://docs.timetracker.cargoffer.com/api/openapi.json \
  -g typescript-axios \
  -o ./timetrack-sdk

# Python
openapi-python-client generate \
  --path https://docs.timetracker.cargoffer.com/api/openapi.json \
  --output-path ./timetrack-sdk

# Go
openapi-generator generate \
  -i https://docs.timetracker.cargoffer.com/api/openapi.json \
  -g go \
  -o ./timetrack-sdk

๐Ÿ”” Webhooks (Coming Soon)

Webhook support for time entry events, project updates, and billing events is on the roadmap. Subscribe to receive notifications when:

๐Ÿ“ฆ Postman / Insomnia

Import the OpenAPI spec directly: