{"openapi":"3.1.0","info":{"title":"Toggl Track (BYOK) API","version":"0.1.0","description":"Toggl Track (BYOK) lets an AI assistant read your own Toggl Track data through the Toggl Track API with a key you supply (API token). Read-only: 12 tools (get_me, list_workspaces, list_organizations, list_time_entries, get_current_time_entry, get_time_entry, list_projects, list_clients, list_tags, list_project_tasks, list_workspace_users, get_api_quota). The BYOK key travels with each request, is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-toggl.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-toggl/docs"},"termsOfService":"https://connectorbay.com/byok-toggl/terms"},"servers":[{"url":"https://byok-toggl.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-toggl/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_me":{"post":{"operationId":"get_me","summary":"Show the Toggl Track account the token belongs to: name, email, default workspace, time zone and week start. Toggl limit","description":"Show the Toggl Track account the token belongs to: name, email, default workspace, time zone and week start. Toggl limits API calls per hour (30 on the free plan for workspace data, 30 for the /me calls on every plan), so call sparingly. Use for \"Which Toggl Track account is my token connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_meArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_workspaces":{"post":{"operationId":"list_workspaces","summary":"List the Toggl Track workspaces you belong to with ID, name, organization, your role and premium flag. Toggl limits API ","description":"List the Toggl Track workspaces you belong to with ID, name, organization, your role and premium flag. Toggl limits API calls per hour (30 on the free plan for workspace data, 30 for the /me calls on every plan), so call sparingly. Use for \"What Toggl workspaces do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"since":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only workspaces changed since this Unix timestamp (seconds).","title":"Since"}},"title":"list_workspacesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_organizations":{"post":{"operationId":"list_organizations","summary":"List the Toggl Track organizations you belong to with plan name, user count and whether you own or administer them. Use ","description":"List the Toggl Track organizations you belong to with plan name, user count and whether you own or administer them. Use for \"Which Toggl organization am I in and what plan is it on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_organizationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_time_entries":{"post":{"operationId":"list_time_entries","summary":"List your most recent Toggl Track time entries, or those that started in a date range, with description, project, tags, ","description":"List your most recent Toggl Track time entries, or those that started in a date range, with description, project, tags, start, stop and duration in seconds (negative while running). Toggl limits API calls per hour (30 on the free plan for workspace data, 30 for the /me calls on every plan), so call sparingly. Use for \"What did I track in Toggl last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries starting on or after this date (YYYY-MM-DD or RFC 3339); use together with end_date.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries starting before this date (YYYY-MM-DD or RFC 3339); use together with start_date.","title":"End Date"},"before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries starting before this date (YYYY-MM-DD or RFC 3339).","title":"Before"},"since":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only entries modified since this Unix timestamp (seconds), deleted ones included.","title":"Since"},"meta":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to include names of the related project, client and task.","title":"Meta"}},"title":"list_time_entriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_current_time_entry":{"post":{"operationId":"get_current_time_entry","summary":"Show the Toggl Track timer that is running right now (description, project, start time), or an empty answer when none is","description":"Show the Toggl Track timer that is running right now (description, project, start time), or an empty answer when none is running. Use for \"Is my Toggl timer running and what am I tracking\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_current_time_entryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_time_entry":{"post":{"operationId":"get_time_entry","summary":"Get one Toggl Track time entry by ID with description, project, tags, start, stop and duration. Use for \"Show Toggl time","description":"Get one Toggl Track time entry by ID with description, project, tags, start, stop and duration. Use for \"Show Toggl time entry 3456789012\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"time_entry_id":{"description":"Numeric ID of the time entry (from list_time_entries).","minimum":1,"title":"Time Entry Id","type":"integer"},"meta":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to include names of the related project, client and task.","title":"Meta"}},"required":["time_entry_id"],"title":"get_time_entryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_projects":{"post":{"operationId":"list_projects","summary":"List the projects of one Toggl Track workspace with client, color, billable flag, estimates and tracked hours. Toggl lim","description":"List the projects of one Toggl Track workspace with client, color, billable flag, estimates and tracked hours. Toggl limits API calls per hour (30 on the free plan for workspace data, 30 for the /me calls on every plan), so call sparingly. Use for \"What projects are in my Toggl workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_id":{"description":"Numeric ID of the workspace (from list_workspaces).","minimum":1,"title":"Workspace Id","type":"integer"},"active":{"anyOf":[{"enum":["true","false","both"],"type":"string"},{"type":"null"}],"default":"true","description":"Which projects: true for active, false for inactive, or both.","title":"Active"},"since":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only projects created, changed or deleted since this Unix timestamp (seconds).","title":"Since"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many projects to return (1 to 200).","title":"Per Page"}},"required":["workspace_id"],"title":"list_projectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_clients":{"post":{"operationId":"list_clients","summary":"List the clients of one Toggl Track workspace, active by default, optionally filtered by a name fragment. Toggl limits A","description":"List the clients of one Toggl Track workspace, active by default, optionally filtered by a name fragment. Toggl limits API calls per hour (30 on the free plan for workspace data, 30 for the /me calls on every plan), so call sparingly. Use for \"Which clients do I have in Toggl\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_id":{"description":"Numeric ID of the workspace (from list_workspaces).","minimum":1,"title":"Workspace Id","type":"integer"},"status":{"anyOf":[{"enum":["active","archived","both"],"type":"string"},{"type":"null"}],"default":"active","description":"Which clients: active, archived or both.","title":"Status"},"name_contains":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only clients whose name contains this text (case-insensitive).","title":"Name Contains"}},"required":["workspace_id"],"title":"list_clientsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tags":{"post":{"operationId":"list_tags","summary":"List the tags of one Toggl Track workspace with ID and name. Toggl limits API calls per hour (30 on the free plan for wo","description":"List the tags of one Toggl Track workspace with ID and name. Toggl limits API calls per hour (30 on the free plan for workspace data, 30 for the /me calls on every plan), so call sparingly. Use for \"What tags exist in my Toggl workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_id":{"description":"Numeric ID of the workspace (from list_workspaces).","minimum":1,"title":"Workspace Id","type":"integer"}},"required":["workspace_id"],"title":"list_tagsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_project_tasks":{"post":{"operationId":"list_project_tasks","summary":"List the tasks of one Toggl Track project with estimate, tracked time (milliseconds) and whether they are still active. ","description":"List the tasks of one Toggl Track project with estimate, tracked time (milliseconds) and whether they are still active. Toggl limits API calls per hour (30 on the free plan for workspace data, 30 for the /me calls on every plan), so call sparingly. Use for \"What tasks are in my Toggl project 7654321\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_id":{"description":"Numeric ID of the workspace (from list_workspaces).","minimum":1,"title":"Workspace Id","type":"integer"},"project_id":{"description":"Numeric ID of the project (from list_projects).","minimum":1,"title":"Project Id","type":"integer"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to return only tasks that are not done.","title":"Active"}},"required":["workspace_id","project_id"],"title":"list_project_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_workspace_users":{"post":{"operationId":"list_workspace_users","summary":"List the members of one Toggl Track workspace with name, email, role and active flags. Toggl limits API calls per hour (","description":"List the members of one Toggl Track workspace with name, email, role and active flags. Toggl limits API calls per hour (30 on the free plan for workspace data, 30 for the /me calls on every plan), so call sparingly. Use for \"Who is in my Toggl workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_id":{"description":"Numeric ID of the workspace (from list_workspaces).","minimum":1,"title":"Workspace Id","type":"integer"},"exclude_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to leave out deleted users.","title":"Exclude Deleted"}},"required":["workspace_id"],"title":"list_workspace_usersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_api_quota":{"post":{"operationId":"get_api_quota","summary":"Show how many Toggl Track API calls you have left in the current window per organization, and when the window resets. Us","description":"Show how many Toggl Track API calls you have left in the current window per organization, and when the window resets. Use for \"How many Toggl API calls do I have left\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_api_quotaArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}