{"id":20265229,"url":"https://github.com/guitarbum722/clickup-client-go","last_synced_at":"2025-08-09T02:06:14.760Z","repository":{"id":44588171,"uuid":"401086062","full_name":"Guitarbum722/clickup-client-go","owner":"Guitarbum722","description":"ClickUp API Client SDK","archived":false,"fork":false,"pushed_at":"2024-07-03T23:31:42.000Z","size":87,"stargazers_count":3,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-11T02:42:51.732Z","etag":null,"topics":["clickup","clickup-api","clickup-client","clickup-sdk"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Guitarbum722.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2021-08-29T16:13:08.000Z","updated_at":"2024-07-03T23:31:46.000Z","dependencies_parsed_at":"2024-06-20T00:13:26.013Z","dependency_job_id":"ac745e75-eb03-4c2c-8aaf-4d924964e6d1","html_url":"https://github.com/Guitarbum722/clickup-client-go","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Guitarbum722/clickup-client-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guitarbum722%2Fclickup-client-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guitarbum722%2Fclickup-client-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guitarbum722%2Fclickup-client-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guitarbum722%2Fclickup-client-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Guitarbum722","download_url":"https://codeload.github.com/Guitarbum722/clickup-client-go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guitarbum722%2Fclickup-client-go/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269518731,"owners_count":24430644,"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-09T02:00:10.424Z","response_time":111,"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":["clickup","clickup-api","clickup-client","clickup-sdk"],"created_at":"2024-11-14T11:46:22.908Z","updated_at":"2025-08-09T02:06:14.724Z","avatar_url":"https://github.com/Guitarbum722.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clickup-client-go\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/Guitarbum722/clickup-client-go.svg)](https://pkg.go.dev/github.com/Guitarbum722/clickup-client-go)\n\n### Get Started\n\nCreate a Clickup Client by providing a `ClientOpts`.  The default `Doer` is an `http.Client` with a `20` second timeout.\n\nUse the `APITokenAuthenticator` for a simple authentication mechanism and provide your Clickup user's API Key.\nIf you want to implement `Authenticator` in different ways (eg. OAuth flow) then provide your implementation to the client.\n\n```go\n\tclient := clickup.NewClient(\u0026clickup.ClientOpts{\n\t\tDoer: nil,\n\t\tAuthenticator: \u0026clickup.APITokenAuthenticator{\n\t\t\tAPIToken: os.Args[1],\n\t\t},\n\t})\n```\n\n### Tasks\n\n```go\n\tqueryOpts := \u0026clickup.TaskQueryOptions{\n\t\tIncludeArchived: false,\n\t}\n\n\tfor {\n\t\ttasks, _ := client.TasksForList(\"list-id\", queryOpts)\n\n\t\tfor _, task := range tasks.Tasks {\n\t\t\tfmt.Println(\"Task: \", task.CustomID, task.Name)\n\t\t}\n\t\tif len(tasks.Tasks) \u003c clickup.MaxPageSize {\n\t\t\treturn\n\t\t} else {\n\t\t\tqueryOpts.Page++\n\t\t}\n\t}\n}\n```\n\n### Create and get webhooks\n\nCreate a webhook and listen for Task Updated Events for a particular list.\n\n```go\n\tnewWebhook, _ := client.CreateWebhook(workspaceID, \u0026clickup.CreateWebhookRequest{\n\t\tEndpoint: \"https://your-webhook.site/myhook\",\n\t\tEvents: []clickup.WebhookEvent{\n\t\t\tclickup.EventTaskUpdated,\n\t\t},\n\t\tListID: \"list-id\",\n\t})\n\n\tfmt.Println(\"New Webhook ID: \", newWebhook.ID)\n\tfmt.Println(\"Health: \", newWebhook.Webhook.Health.FailCount, newWebhook.Webhook.Health.Status)\n```\n\nGet webhooks for a workspace.\n\n```go\n\twebhooks, _ := client.WebhooksFor(workspaceID)\n\n\tfmt.Println(\"Existing webhooks:\")\n\tfor _, v := range webhooks.Webhooks {\n\t\tfmt.Println(\"ID:\", v.ID)\n\t\tfmt.Println(\"Status:\", v.Health.Status, v.Health.FailCount)\n\n\t\tfmt.Println(\"deleting webhook for:\", v.ID)\n\t\tclient.DeleteWebhook(v.ID)\n\t}\n```\n\nOther webhook events...\n\n```\n\tEventAll                     \n\tEventTaskCreated             \n\tEventTaskUpdated             \n\tEventTaskDeleted             \n\tEventTaskPriorityUpdated     \n\tEventTaskStatusUpdated       \n\tEventTaskAssigneeUpdated     \n\tEventTaskDueDateUpdated      \n\tEventTaskTagUpdated          \n\tEventTaskMoved               \n\tEventTaskCommentPosted       \n\tEventTaskCommentUpdated      \n\tEventTaskTimeEstimateUpdated \n\tEventTaskTimeTrackedUpdated  \n\tEventListCreated             \n\tEventListUpdated             \n\tEventListDeleted             \n\tEventFolderCreated           \n\tEventFolderUpdated           \n\tEventFolderDeleted           \n\tEventSpaceCreated            \n\tEventSpaceUpdated            \n\tEventSpaceDeleted            \n\tEventGoalCreated             \n\tEventGoalUpdated             \n\tEventGoalDeleted             \n\tEventKeyResultCreated        \n\tEventKeyResultUpdated        \n\tEventKeyResultDeleted        \n```\n\n### Comments\n\nComments are not very intuitive via Clickup's API (IMO). This library provides some helpers to construct a comment request (builder).\nThe comment request mode is completely exported, so feel free to construct it yourself if desired.\n\n```go\n\tcomment := clickup.NewCreateTaskCommentRequest(\n\t\tos.Getenv(\"CLICKUP_TASK_ID\"),\n\t\ttrue,\n\t\tos.Getenv(\"CLICKUP_WORKSPACE_ID\"),\n\t)\n\tcomment.BulletedListItem(\"Bullet Item 4asdf\", nil)\n\tcomment.BulletedListItem(\"Bullet Item 5\", nil)\n\tcomment.BulletedListItem(\"Bullet Item 6\", \u0026clickup.Attributes{Italic: true})\n\tcomment.NumberedListItem(\"Numbered Item 1\", nil)\n\tcomment.ChecklistItem(\"Checklist item 1\", false, nil)\n\tcomment.ChecklistItem(\"Checklist item 2\", true, nil)\n\n\tres, err := client.CreateTaskComment(context.Background(), *comment)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n```\n\n\n### Pagination\n\nThe clickup API is a little inconsistent with pagination.  This client library will aim to document behavior as well as it can.  For example, use the `Page` attribute in `TaskQueryOptions` and call `TasksForList()` again.  \n\nUnfortunately, the GET Tasks operation returns up to 100 tasks and the caller must know that the last page was reached only if there are less than 100.\n\n### Client Library Progress\n\n✅️ Implemented or partially implemented\n\n🙅️ Not implemented\n\n\n***\n\n✅️ Attachments\n\n✅️ Authorization (API Key supported \"out of box.\" See `Authenticator` interface to implement OAuth, etc.)\n\n✅️ Checklists\n\n✅️ Comments\n\n✅️ Dependencies\n\n✅️ Folders\n\n✅️ Goals\n\n🙅️ Guests\n\n✅️ Lists\n\n🙅️ Members\n\n✅️ Shared Hierarchy\n\n✅️ Spaces\n\n✅️ Tags\n\n✅️ Tasks\n\n✅️ Task Templates\n\n✅️ Teams\n\n🙅️ Time Tracking\n\n🙅️ Users\n\n✅️ Views\n\n✅️ Webhooks \n\n\n### Contributions\n\nOpen a PR with your fork or open an issue.  Open to help!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguitarbum722%2Fclickup-client-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguitarbum722%2Fclickup-client-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguitarbum722%2Fclickup-client-go/lists"}