pcloud/SKILL.md
--- name: pcloud description: Comprehensive pCloud cloud storage API integration and SDK usage. Use when building applications that interact with pCloud for: (1) file upload/download/management, (2) folder operations, (3) OAuth 2.0 authentication, (4) file/folder sharing and public links, (5) media streaming (video/audio/HLS), (6) archiving (zip/extract), (7) thumbnails, (8) trash management, (9) file revisions, (10) collections, (11) upload links, or (12) using any pCloud SDK (JavaScript, PHP,
npx skillsauth add tai-ch0802/skills-bundle pcloudInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
pCloud is a cloud storage service exposing a REST-like HTTP JSON API and a binary protocol. Key capabilities:
[!IMPORTANT] pCloud operates two data centers. Use the correct hostname based on the user's data location.
| Location | API Hostname | OAuth Hostname |
|----------|-------------|----------------|
| United States (locationid=1) | api.pcloud.com | my.pcloud.com |
| Europe (locationid=2) | eapi.pcloud.com | e.pcloud.com |
After OAuth authorization, the redirect URL includes locationid and hostname parameters indicating which API endpoint to use for that user. Always store and use the correct hostname per user.
Start at: https://my.pcloud.com/oauth2/authorize (US) or https://e.pcloud.com/oauth2/authorize (EU)
Two flows:
Code Flow (server apps) — Returns code via redirect → exchange for access_token using oauth2_token
GET https://my.pcloud.com/oauth2/authorize?
client_id=APP_ID&
response_type=code&
redirect_uri=REDIRECT_URI&
state=RANDOM
Redirect returns: ?code=XXXXX&locationid=1&hostname=api.pcloud.com
Then call oauth2_token with the code + client_secret to get the bearer token.
Token Flow (client-side/mobile) — Returns access_token directly in redirect fragment
GET https://my.pcloud.com/oauth2/authorize?
client_id=APP_ID&
response_type=token&
redirect_uri=REDIRECT_URI
Redirect returns: #access_token=XXXXX&token_type=bearer&locationid=1&hostname=api.pcloud.com
Pass the access_token as the auth parameter in every API call:
GET https://api.pcloud.com/listfolder?folderid=0&auth=ACCESS_TOKEN
Or use Authorization: Bearer ACCESS_TOKEN header.
getdigest to get a digestuserinfo with getauth=1&logout=1&username=EMAIL&digest=DIGEST&passworddigest=SHA1(PASSWORD+SHA1(USERNAME_LOWERCASE)+DIGEST)&authexpire=SECONDSauth tokenAll methods accept both GET and POST. Base URL: https://api.pcloud.com/METHOD_NAME
# GET request
curl -s -H "Authorization: Bearer TOKEN" "https://api.pcloud.com/listfolder?folderid=0"
# POST request
curl -s -X POST "https://api.pcloud.com/listfolder" \
-H "Authorization: Bearer TOKEN" \
-d "folderid=0"
// Success
{ "result": 0, ... }
// Error
{ "result": 2000, "error": "Log in required." }
Use POST with multipart/form-data. Parameters must come before files:
curl -X POST "https://api.pcloud.com/uploadfile" \
-F "auth=TOKEN" \
-F "folderid=0" \
-F "file=@/path/to/file.jpg"
Multiple files can be uploaded in a single request. Set renameifexists=1 to avoid overwriting.
These optional parameters apply to all methods (omitted from per-method docs):
auth — Authentication tokenauthexpire — Token expiry in seconds (on login)authinactiveexpire — Expire after N seconds of inactivitydevice — Device identifier stringfolderid (int) or path (string). Root folder is always folderid=0fileid (int) or path (string)folderid/fileid and path are accepted; if both provided, folderid/fileid takes precedenceEvery file/folder returns a metadata object:
{
"name": "file.jpg",
"isfolder": false,
"fileid": 1729212,
"parentfolderid": 0,
"size": 73269,
"contenttype": "image/jpeg",
"category": 1,
"created": "Wed, 02 Oct 2013 14:29:11 +0000",
"modified": "Wed, 02 Oct 2013 14:29:11 +0000",
"hash": 10681749967730527559,
"isshared": false,
"ismine": true,
"thumb": true,
"icon": "image"
}
Categories: 0=uncategorized, 1=image, 2=video, 3=audio, 4=document, 5=archive
Folder metadata includes contents array when returned by listfolder.
Media metadata may include: width, height, duration, fps, videocodec, audiocodec, videobitrate, audiobitrate, audiosamplerate, rotate.
curl -s -H "Authorization: Bearer TOKEN" "https://api.pcloud.com/listfolder?folderid=0&recursive=1"
curl -s -H "Authorization: Bearer TOKEN" -F "folderid=0" -F "[email protected]" \
https://api.pcloud.com/uploadfile
curl "https://api.pcloud.com/getfilelink?fileid=123&auth=TOKEN"
# Returns: { "hosts": ["c123.pcloud.com"], "path": "/cfZka..." }
# Download URL: https://c123.pcloud.com/cfZka...
curl "https://api.pcloud.com/sharefolder?folderid=123&[email protected]&permissions=edit&auth=TOKEN"
curl "https://api.pcloud.com/getfilepublink?fileid=123&auth=TOKEN"
Load these references as needed:
development
Unified testing skill — TDD workflow, unit/integration patterns, E2E/Playwright strategies. Replaces tdd-workflow + testing-patterns + webapp-testing.
testing
Security-first skill vetting for AI agents. Use before installing any skill from ClawdHub, GitHub, or other sources. Checks for red flags, permission scope, and suspicious patterns.
development
Spec-Driven Development (SDD): A structured workflow (Requirement -> Analysis -> Implementation) enforcing explicit documentation before coding.
development
Methodologies for System Analysis (SA), focusing on technical architecture, data flow modeling, and API design.