Toggl Track
Connect & Ingest data from Toggl Track
Toggl Track is a time tracking tool used by teams and freelancers to log hours, manage projects, and generate reports. The Sling Toggl Track connector extracts data from the Toggl Track REST API v9, supporting user profiles, workspaces, projects, clients, tags, tasks, workspace users, and time entries.
CLI Pro Required: APIs require a CLI Pro token or Platform Plan.
Setup
The following credentials are accepted:
Secrets:
api_token(required) -> Your Toggl Track API Token
Inputs (optional):
anchor_date-> Starting date for first sync of incremental endpoints (ISO 8601 format, e.g.,2024-01-01T00:00:00Z). Defaults to 90 days ago (Toggl API maximum lookback).
Getting Your API Token
Log in to Toggl Track
Click your profile icon (bottom-left corner)
Go to Profile Settings
Scroll down to API Token at the bottom of the page
Copy the token (or click to reveal and copy)
Important: The API token grants access to all your Toggl Track data. Keep it secure and use a dedicated account for production workloads.
Using sling conns
sling connsHere are examples of setting a connection named TOGGL_TRACK. We must provide the type=api property:
Environment Variable
See here to learn more about the .env.sling file.
Sling Env File YAML
See here to learn more about the sling env.yaml file.
Replication
Here's an example replication configuration to sync Toggl Track data to a PostgreSQL database:
Incremental sync for time entries:
Endpoints
me
Authenticated user profile
No
β
workspaces
All workspaces for the authenticated user
No
β
projects
All projects across workspaces (active and archived)
No
workspaces
clients
All clients across workspaces
No
workspaces
tags
All tags across workspaces
No
workspaces
tasks
All tasks across workspaces (may require paid plan)
No
workspaces
workspace_users
All users in each workspace
No
workspaces
time_entries
Time entries with incremental sync support
Yes
β
The connector uses a queue-based architecture for workspace-dependent endpoints. The workspaces endpoint runs first and populates workspace IDs into a queue, which is consumed by projects, clients, tags, tasks, workspace_users. The time_entries and me endpoints are independent and do not depend on the queue.
To discover available endpoints:
Endpoint Details
me β Returns the authenticated user's profile including name, email, timezone, and default workspace.
workspaces β Returns all workspaces the user belongs to. Workspace IDs are queued for child endpoints.
projects β Returns all projects (both active and archived) within each workspace, including client associations, colors, billing status, and time tracking data. Supports page-based pagination.
clients β Returns all clients within each workspace, including both active and archived clients.
tags β Returns all tags defined in each workspace.
tasks β Returns all tasks across workspaces. Note: Tasks may require a paid Toggl plan and will return empty results on free plans. Supports page-based pagination.
workspace_users β Returns all users in each workspace with their roles and activity status.
time_entries β Returns time entries for the authenticated user within a date range. Supports incremental sync via the at (last modified) timestamp. Uses start_date and end_date parameters with a maximum 90-day lookback window (Toggl API limitation).
Incremental Sync
One endpoint supports incremental sync:
time_entries β Uses start_date and end_date parameters:
First run: Fetches all time entries from the last 90 days (or since
anchor_dateif provided, max 90 days)Subsequent runs: Only fetches time entries modified after the last sync timestamp
Update key:
at(the last-modified timestamp from Toggl)
Toggl API Limitation: The start_date parameter cannot be more than 3 months (90 days) in the past. The connector automatically defaults to a 90-day lookback window.
All other endpoints run in full-refresh mode since they return complete datasets without server-side time-based filtering.
Rate Limiting
The Toggl Track API enforces rate limits:
Free plan: 30 requests per hour
Premium plan: 600 requests per hour
The connector automatically:
Uses conservative rate limiting (1 request/second with concurrency of 1)
Retries with exponential backoff on 429 (rate limit) responses, up to 5 attempts with a 10-second base
Common Use Cases
Sync All Toggl Data
Track Time Entries Incrementally
Export Projects and Clients
If you are facing issues connecting, please reach out to us at [email protected], on discord or open a Github Issue here.
Last updated
Was this helpful?