{"id":23335139,"url":"https://github.com/jackkoolage/pcloudsdk","last_synced_at":"2026-05-18T03:11:03.584Z","repository":{"id":40886742,"uuid":"249725145","full_name":"jackkoolage/pCloudSDK","owner":"jackkoolage","description":"a .Net wrapper library for pCloud.com API","archived":false,"fork":false,"pushed_at":"2022-12-08T02:16:13.000Z","size":54,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-04T18:59:54.570Z","etag":null,"topics":["api-wrapper","csharp","dotnet","dotnet-core","dotnet-framework","dotnet-standard","downloader","filemanager","pcloud","sdk","storage-provider","uploader"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jackkoolage.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-24T14:08:48.000Z","updated_at":"2023-09-12T16:07:53.000Z","dependencies_parsed_at":"2023-01-25T03:15:52.199Z","dependency_job_id":null,"html_url":"https://github.com/jackkoolage/pCloudSDK","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jackkoolage/pCloudSDK","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackkoolage%2FpCloudSDK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackkoolage%2FpCloudSDK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackkoolage%2FpCloudSDK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackkoolage%2FpCloudSDK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jackkoolage","download_url":"https://codeload.github.com/jackkoolage/pCloudSDK/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackkoolage%2FpCloudSDK/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33163441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"online","status_checked_at":"2026-05-18T02:00:06.436Z","response_time":71,"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-wrapper","csharp","dotnet","dotnet-core","dotnet-framework","dotnet-standard","downloader","filemanager","pcloud","sdk","storage-provider","uploader"],"created_at":"2024-12-21T01:16:39.336Z","updated_at":"2026-05-18T03:11:03.567Z","avatar_url":"https://github.com/jackkoolage.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## pCloudSDK\n\n`Download:`[https://github.com/jackkoolage/pCloudSDK/releases](https://github.com/jackkoolage/pCloudSDK/releases)\u003cbr\u003e\n`Help:`[https://github.com/jackkoolage/pCloudSDK/wiki](https://github.com/jackkoolage/pCloudSDK/wiki)\u003cbr\u003e\n`NuGet:`\n[![NuGet](https://img.shields.io/nuget/v/DeQmaTech.pCloudSDK.svg?style=flat-square\u0026logo=nuget)](https://www.nuget.org/packages/DeQmaTech.pCloudSDK)\u003cbr\u003e\n\n\n# Features:\n* Assemblies for .NET 4.5.2 and .NET Standard 2.0 and .NET Core 2.1\n* Just one external reference (Newtonsoft.Json)\n* Easy installation using NuGet\n* Upload/Download tracking support\n* Proxy Support\n* Upload/Download cancellation support\n\n\n# List of functions:\n**Token**\n\u003e * Register\n\u003e * GetAuthToken\n\n**Account**\n\u003e * IP\n\u003e * ListInvites\n\u003e * GetRegistrationPageUrl\n\u003e * GetCurrentServer\n\u003e * DeleteToken\n\u003e * ListTokens\n\u003e * ChangeMail\n\u003e * UserInfo\n\u003e * ResendActivationMail\n\n**Files**\n\u003e * ThumbnailUrl\n\u003e * CompressAsync\n\u003e * Copy\n\u003e * DownloadAsZip\n\n**File**\n\u003e * Public\n\u003e * Thumbnail\n\u003e * ThumbnailUrl\n\u003e * CopyThumbnail\n\u003e * VideoToMp3\n\u003e * AudioDirectUrl\n\u003e * ChangesHistory\n\u003e * CompressAsync\n\u003e * UnCompressTaskProgress\n\u003e * UnCompressAsync\n\u003e * DirectUrl\n\u003e * VideoDirectUrl\n\u003e * VideoResolutionUrls\n\u003e * Checksum\n\u003e * Move\n\u003e * Rename\n\u003e * Delete\n\u003e * Copy\n\u003e * ZipBytesArray\n\n**Folder**\n\u003e * Public\n\u003e * DirectZipUrl\n\u003e * CompressAsync\n\u003e * CompressTaskProgress\n\u003e * ListSubFoldersTree\n\u003e * List\n\u003e * ListWithoutFiles\n\u003e * ListWithoutShared\n\u003e * Create\n\u003e * CreateIfNotExists\n\u003e * Rename\n\u003e * Copy\n\u003e * Delete\n\u003e * Move\n\u003e * UploadRemoteAsync\n\u003e * UploadRemote\n\u003e * UploadRemoteMultipleAsync\n\u003e * UploadRemoteMultiple\n\u003e * UploadRemoteReportProgress\n\u003e * UploadLocal\n\n**Folders**\n\u003e * CompressAsync\n\n**Publics**\n\u003e * Metadata\n\u003e * SingleFileDirectUrl\n\u003e * FileInFolderDirectUrl\n\u003e * SaveToMyAccount\n\u003e * SaveToMyAccount\n\u003e * List\n\u003e * ListWithoutMetadata\n\u003e * DownloadAsZip\n\u003e * DirectZipUrl\n\u003e * Thumbnail\n\u003e * ThumbnailUrl\n\u003e * CopyThumbnail\n\u003e * CopyZip\n\u003e * VideoResolutionUrls\n\u003e * VideoResolutionUrls\n\u003e * AudioDirectUrl\n\n**Playlists**\n\u003e * ChangeFilePosition\n\u003e * Rename\n\u003e * List\n\u003e * Clear\n\u003e * Remove\n\u003e * Add\n\u003e * Metadata\n\u003e * Delete\n\u003e * Create\n\u003e * Public\n\n# CodeMap:\n![codemap](https://i.postimg.cc/bJ6Y9FW3/pc-codemap.png)\n\n# Code simple:\n```vb.net\nAwait pCloudSDK.Authentication.Register(\"name@domian.com\", \"123465#\")\nAwait pCloudSDK.Authentication.GetAuthToken(\"name@domian.com\", \"123465#\")\n\nTry\n    Dim client As pCloudSDK.IClient = New pCloudSDK.PClient(\"username\", \"password\", New pCloudSDK.ConnectionSettings With {.CloseConnection = True, .TimeOut = TimeSpan.FromMinutes(80), .Proxy = New ProxyConfig With {.SetProxy = True, .ProxyIP = \"127.0.0.1\", .ProxyPort = 80, .ProxyUsername = \"user\", .ProxyPassword = \"123456\"}})\n\n    ''Account\n    Await client.Account.ChangeMail(\"newEmail@domain.com\")\n    Await client.Account.DeleteToken(\"tokenid\")\n    Await client.Account.GetCurrentServer\n    Await client.Account.GetRegistrationPageUrl\n    Await client.Account.IP\n    Await client.Account.ListInvites\n    Await client.Account.ListTokens\n    Await client.Account.ResendActivationMail\n    Await client.Account.UserInfo\n\n    ''file\n    Await client.Items.File(1234).AudioDirectUrl(128)\n    Await client.Items.File(1234).ChangesHistory\n    Await client.Items.File(1234).Checksum\n    Await client.Items.File(1234).CompressAsync(6789, \"myArchive.zip\")\n    Await client.Items.File(1234).Copy(6789, False, \"newname\")\n    Await client.Items.File(1234).CopyThumbnail(6789, \"800x600\", pCloudSDK.Utilitiez.ExtEnum.jpeg, True, True, Nothing)\n    Await client.Items.File(1234).Delete\n    Await client.Items.File(1234).DirectUrl\n    Await client.Items.File(1234).Move(6789, Nothing)\n    Await client.Items.File(1234).Public(50, (1 * 1024 ^ 2))\n    Await client.Items.File(1234).Rename(\"newname\")\n    Await client.Items.File(1234).Thumbnail(\"800x600\", pCloudSDK.Utilitiez.ExtEnum.png, True)\n    Await client.Items.File(1234).ThumbnailUrl(\"800x600\", pCloudSDK.Utilitiez.ExtEnum.jpeg, True)\n    Await client.Items.File(1234).UnCompressAsync(6789, \"abcd\")\n    Await client.Items.File(1234).UnCompressTaskProgress(\"UnCompressAsync\")\n    Await client.Items.File(1234).VideoDirectUrl\n    Await client.Items.File(1234).VideoResolutionUrls\n    Await client.Items.File(1234).VideoToMp3(128)\n\n    ''Files\n    Await client.Items.Files(New List(Of Long) From {1234}).CompressAsync(6789, \"myArchive.zip\")\n    Await client.Items.Files(New List(Of Long) From {1234}).Copy(6789, True)\n    Dim CancelToken As New Threading.CancellationTokenSource()\n    Dim _ReportCls As New Progress(Of pCloudSDK.ReportStatus)(Sub(r)\n  Button1.Text = String.Format(\"{0}/{1}\", (r.BytesTransferred), (r.TotalBytes))\n  Button1.Text = CInt(r.ProgressPercentage)\n  Button1.Text = If(CStr(r.TextStatus) Is Nothing, \"Downloading...\", CStr(r.TextStatus))\n      End Sub)\n    Await client.Items.Files(New List(Of Long) From {1234}).DownloadAsZip(\"C:\\Users\", \"myArchive.zip\", _ReportCls, CancelToken.Token)\n    Await client.Items.Files(New List(Of Long) From {1234}).ThumbnailUrl(\"800x600\", pCloudSDK.Utilitiez.ExtEnum.jpeg, True)\n\n    ''Folder\n    Await client.Items.Folder(6789).CompressAsync(9876, \"myArchive.zip\")\n    Await client.Items.Folder(6789).CompressTaskProgress(\"CompressAsync\")\n    Await client.Items.Folder(6789).Copy(9876, True)\n    Await client.Items.Folder(6789).Create(\"newfolder\")\n    Await client.Items.Folder(6789).CreateIfNotExists(\"newfolder\")\n    Await client.Items.Folder(6789).Delete\n    Await client.Items.Folder(6789).DirectZipUrl(\"myArchive.zip\")\n    Await client.Items.Folder(6789).List\n    Await client.Items.Folder(6789).ListSubFoldersTree\n    Await client.Items.Folder(6789).ListWithoutFiles\n    Await client.Items.Folder(6789).ListWithoutShared\n    Await client.Items.Folder(6789).Move(9876)\n    Await client.Items.Folder(6789).Public\n    Await client.Items.Folder(6789).Rename(\"newfoldername\")\n    Await client.Items.Folder(6789).UploadLocal(\"C:\\Users\\fle.rar\", pCloudSDK.Utilitiez.SentType.filepath, \"fle.rar\", True, _ReportCls, CancelToken.Token)\n    Await client.Items.Folder(6789).UploadRemote(\"https://www.doman.com/mymov.mp4\", \"mymov.mp4\")\n    Await client.Items.Folder(6789).UploadRemoteAsync(\"https://www.doman.com/mymov.mp4\")\n    Await client.Items.Folder(6789).UploadRemoteMultiple(New List(Of String) From {{\"https://www.doman.com/mymov.mp4\"}, {\"https://www.doman.com/mymov.mp4\"}})\n    Await client.Items.Folder(6789).UploadRemoteMultipleAsync(New List(Of String) From {{\"https://www.doman.com/mymov.mp4\"}, {\"https://www.doman.com/mymov.mp4\"}})\n    Await client.Items.Folder(6789).UploadRemoteReportProgress(\"UploadRemoteMultipleAsync\")\n    Await client.Items.Folder(6789).ZipBytesArray\n\n    ''Folders\n    Await client.Items.Folders(New List(Of Long) From {6789}).CompressAsync(9876, \"myArchive.zip\")\n\n    ''all files \u0026 folders\n    Await client.Items.ListAll()\n\n    ''Playlists\n    Await client.Playlists(5432).Add(New List(Of Long) From {1234, 1234})\n    Await client.Playlists(5432).ChangeFilePosition(1234, 7, 9)\n    Await client.Playlists(5432).Clear\n    Await client.Playlists(Nothing).Create(\"playlistName\", pCloudSDK.Utilitiez.PlaylistTypeEnum.All)\n    Await client.Playlists(5432).Delete\n    Await client.Playlists(Nothing).List(pCloudSDK.Utilitiez.PlaylistTypeEnum.AudioOnly, pCloudSDK.Utilitiez.OutputEnum.PlaylistsWithoutFiles, 10, 2)\n    Await client.Playlists(5432).Metadata\n    Await client.Playlists(5432).Public\n    Await client.Playlists(5432).Remove(New List(Of Long) From {1234})\n    Await client.Playlists(5432).Rename(\"newPlaylistName\")\n\n    ''Publics\n    Await client.Publics.AudioDirectUrl(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"), 240)\n    Await client.Publics.CopyThumbnail(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"), 6789, \"800x600\", pCloudSDK.Utilitiez.ExtEnum.jpeg, True, True, Nothing)\n    Await client.Publics.CopyZip(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"), 6789, Nothing)\n    Await client.Publics.DirectZipUrl(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"), \"myArchive.zip\")\n    Await client.Publics.DownloadAsZip(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"), \"C:\\Users\", _ReportCls, CancelToken.Token)\n    Await client.Publics.FileInFolderDirectUrl(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"), 1234)\n    Await client.Publics.List()\n    Await client.Publics.ListWithoutMetadata\n    Await client.Publics.Metadata(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"))\n    Await client.Publics.SaveToMyAccount(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"), 6789)\n    Await client.Publics.SingleFileDirectUrl(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"))\n    Await client.Publics.Thumbnail(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"), \"800x600\", pCloudSDK.Utilitiez.ExtEnum.jpeg, True)\n    Await client.Publics.ThumbnailUrl(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"), \"800x600\", pCloudSDK.Utilitiez.ExtEnum.jpeg, True)\n    Await client.Publics.VideoResolutionUrls(New Uri(\"https://my.pcloud.com/#page=publink\u0026code=PUBLIC_LINK_CODE\"), 1234)\n\n\nCatch ex As pCloudSDK.pCloudException\n    MsgBox(ex.Message)\nEnd Try\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackkoolage%2Fpcloudsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackkoolage%2Fpcloudsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackkoolage%2Fpcloudsdk/lists"}