{"id":30420868,"url":"https://github.com/abjerner/skybrud.social.toggl","last_synced_at":"2026-05-18T15:02:51.966Z","repository":{"id":144114040,"uuid":"198493293","full_name":"abjerner/Skybrud.Social.Toggl","owner":"abjerner","description":".NET API wrapper and implementation of the Toggl Track API.","archived":false,"fork":false,"pushed_at":"2025-04-03T08:17:16.000Z","size":3981,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"v1/main","last_synced_at":"2025-07-22T07:32:56.084Z","etag":null,"topics":["api","api-client","api-wrapper","csharp","dotnet","limbo","package","skybrud","skybrud-integrations","skybrud-social","social","toggl","toggl-track","toggl-track-api","toogl-api"],"latest_commit_sha":null,"homepage":"https://social.skybrud.dk/toggl/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abjerner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-23T19:13:17.000Z","updated_at":"2025-04-03T08:17:19.000Z","dependencies_parsed_at":"2025-01-19T15:26:52.526Z","dependency_job_id":"7d974f99-b1da-465a-aa29-942f8beacc84","html_url":"https://github.com/abjerner/Skybrud.Social.Toggl","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/abjerner/Skybrud.Social.Toggl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abjerner%2FSkybrud.Social.Toggl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abjerner%2FSkybrud.Social.Toggl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abjerner%2FSkybrud.Social.Toggl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abjerner%2FSkybrud.Social.Toggl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abjerner","download_url":"https://codeload.github.com/abjerner/Skybrud.Social.Toggl/tar.gz/refs/heads/v1/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abjerner%2FSkybrud.Social.Toggl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271606605,"owners_count":24788981,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-client","api-wrapper","csharp","dotnet","limbo","package","skybrud","skybrud-integrations","skybrud-social","social","toggl","toggl-track","toggl-track-api","toogl-api"],"created_at":"2025-08-22T08:20:37.566Z","updated_at":"2026-05-18T15:02:51.859Z","avatar_url":"https://github.com/abjerner.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skybrud.Social.Toggl\n\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/abjerner/Skybrud.Social.Toggl/blob/v1/main/LICENSE.md)\n[![NuGet](https://img.shields.io/nuget/vpre/Skybrud.Social.Toggl.svg)](https://www.nuget.org/packages/Skybrud.Social.Toggl)\n[![NuGet](https://img.shields.io/nuget/dt/Skybrud.Social.Toggl.svg)](https://www.nuget.org/packages/Skybrud.Social.Toggl)\n[![Skybrud.Social.Toggl at packages.limbo.works](https://img.shields.io/badge/limbo-packages-blue)](https://packages.limbo.works/skybrud.social.toggl/)\n\n.NET API wrapper and implementation of the [**Toggl Track API**](https://developers.track.toggl.com/docs/).\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cstrong\u003eLicense:\u003c/strong\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/abjerner/Skybrud.Social.Toggl/blob/v1/main/LICENSE.md\"\u003e\u003cstrong\u003eMIT License\u003c/strong\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cstrong\u003eTarget Framework:\u003c/strong\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      .NET 4.5, .NET 4.6, .NET 4.7, .NET Standard 2.0 and .NET8\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\n\n\n\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n## Installation\n\nThe package is only available via [**NuGet**](https://www.nuget.org/packages/Skybrud.Social.Toggl/1.0.0-beta011). To install the package, you can either use the .NET CLI:\n\n```\ndotnet add package Skybrud.Social.Toggl --version 1.0.0-beta011\n```\n\nor the NuGet Package Manager:\n\n```\nInstall-Package Skybrud.Social.Toggl -Version 1.0.0-beta011\n```\n\n\n\n\n\n\n\n\n\n\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n## Examples\n\n### Initialize a new HTTP service\n\nThe `TogglHttpService` class is the entry point for communicating with the Toggl Track API:\n\n```cshtml\n@using Skybrud.Social.Toggl\n@{\n\n    // Initialize from your API token\n    TogglHttpService toggl = TogglHttpService.CreateFromApiToken(\"Your API token\");\n\n}\n```\n\n### List all clients\n\n```cshtml\n@using Skybrud.Social.Toggl\n@using Skybrud.Social.Toggl.Exceptions\n@using Skybrud.Essentials.Json\n@using Newtonsoft.Json.Linq\n@using Skybrud.Social.Toggl.Responses.Track.Clients\n@inherits UmbracoViewPage\u003cSkybrud.Social.Toggl.TogglHttpService\u003e\n@{\n\n    // Declare your workspace ID\n    int workspaceId = 1234;\n\n    // Initialize from your API token\n    TogglHttpService toggl = TogglHttpService.CreateFromApiToken(\"Your API token\");\n\n    try {\n\n        // Make the request to the API\n        TogglClientListResponse response = toggl.Track.Clients.GetClients(workspaceId);\n\n        \u003ctable class=\"table list\"\u003e\n            \u003cthead\u003e\n                \u003ctr\u003e\n                    \u003cth\u003eID\u003c/th\u003e\n                    \u003cth\u003eName\u003c/th\u003e\n                \u003c/tr\u003e\n            \u003c/thead\u003e\n            \u003ctbody\u003e\n                @foreach (TogglClient client in response.Body) {\n                    \u003ctr\u003e\n                        \u003ctd\u003e@client.Id\u003c/td\u003e\n                        \u003ctd\u003e@client.Name\u003c/td\u003e\n                    \u003c/tr\u003e\n                }\n            \u003c/tbody\u003e\n        \u003c/table\u003e\n\n    } catch (TogglHttpException ex) {\n\n        \u003cpre\u003e@ex.Response.StatusCode @ex.Response.ResponseUri\u003c/pre\u003e\n    \n        \u003cpre\u003e@(JsonUtils.TryParseJsonToken(ex.Response.Body, out JToken token) ? token : ex.Response.Body)\u003c/pre\u003e\n\n    }\n\n}\n```\n\n### List all projects\n\nProjects are fetched via the **Projects** endpoint, and you must specify the ID of the workspace to retrieve projects for:\n\n```cshtml\n@using Skybrud.Social.Toggl\n@using Skybrud.Social.Toggl.Exceptions\n@using Skybrud.Essentials.Json\n@using Newtonsoft.Json.Linq\n@using Skybrud.Social.Toggl.Models.Track.Projects\n@using Skybrud.Social.Toggl.Options.Track.Projects\n@using Skybrud.Social.Toggl.Responses.Track.Projects\n@inherits UmbracoViewPage\u003cSkybrud.Social.Toggl.TogglHttpService\u003e\n@{\n\n    // Declare your workspace ID\n    int workspaceId = 1234;\n\n    // Initialize from your API token\n    TogglHttpService toggl = TogglHttpService.CreateFromApiToken(\"Your API token\");\n\n    try {\n\n        // Make the request to the API\n        TogglProjectListResponse response = toggl.Track.Workspaces.GetProjects(workspaceId);\n\n        \u003ctable class=\"table list\"\u003e\n            \u003cthead\u003e\n                \u003ctr\u003e\n                    \u003cth\u003eID\u003c/th\u003e\n                    \u003cth\u003eName\u003c/th\u003e\n                    \u003cth\u003eClientID\u003c/th\u003e\n                    \u003cth\u003eHEX\u003c/th\u003e\n                \u003c/tr\u003e\n            \u003c/thead\u003e\n            \u003ctbody\u003e\n                @foreach (TogglProject project in response.Body) {\n                    \u003ctr\u003e\n                        \u003ctd\u003e@project.Id\u003c/td\u003e\n                        \u003ctd\u003e@project.Name\u003c/td\u003e\n                        \u003ctd\u003e@project.ClientId\u003c/td\u003e\n                        \u003ctd\u003e@project.HexColor\u003c/td\u003e\n                    \u003c/tr\u003e\n                }\n            \u003c/tbody\u003e\n        \u003c/table\u003e\n\n    } catch (TogglHttpException ex) {\n\n        \u003cpre\u003e@ex.Response.StatusCode @ex.Response.ResponseUri\u003c/pre\u003e\n    \n        \u003cpre\u003e@(JsonUtils.TryParseJsonToken(ex.Response.Body, out JToken token) ? token : ex.Response.Body)\u003c/pre\u003e\n\n    }\n\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabjerner%2Fskybrud.social.toggl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabjerner%2Fskybrud.social.toggl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabjerner%2Fskybrud.social.toggl/lists"}