CONNECT APP
Build with pCloud
Developer Tools
- OAuth
MCP
Give your agent pCloud tools
Every pCloud action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's pCloud account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "pcloud",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Copy File:
const result = await mcp.callTool({
name: "pcloud-copy-file",
arguments: {
fileId: 10,
toFolderId: 10,
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "pcloud",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Copy File:
result = await session.call_tool("pcloud-copy-file", {
"fileId": 10,
"toFolderId": 10,
})API PROXY
Call the pCloud API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the pCloud API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed pCloud endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run pCloud actions from your backend
Connect a user's pCloud account once, then run Copy File on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "pcloud-copy-file",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
pcloud: { authProvisionId: "apn_xxxxxxx" },
fileId: 10,
toFolderId: 10,
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="pcloud-copy-file",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"pcloud": {"authProvisionId": "apn_xxxxxxx"},
"fileId": 10,
"toFolderId": 10,
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "pcloud-copy-file",
"configured_props": {
"pcloud": { "authProvisionId": "apn_xxxxxxx" },
"fileId": 10,
"toFolderId": 10
}
}'TOOLS
pCloud actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Copy File
actionCopy a file to the specified destination. See the docs hereWritev0.0.5 -
Copy Folder
actionCopy a folder to the specified folder. See the docs hereWritev0.0.5 -
Create Folder
actionCreate a folder in the specified folder. See the docs hereWritev0.0.5 -
Download File(s)
actionDownload one or more files to a folder. See the docs hereWritev0.0.5 -
List Contents
actionGet the contents of the specified folder. See the docs hereRead-onlyv0.0.5 -
List File ID Options
actionRetrieves available options for the File ID field.Read-onlyv0.0.1 -
List Folder ID Options
actionRetrieves available options for the Folder ID field.Read-onlyv0.0.1 -
Move File
actionMoves a file to the specified destination. See the docs hereWritev0.0.3 -
Move Folder
actionMoves a folder to the specified destination. See the docs hereWritev0.0.3 -
Rename File
actionRenames a file. See the docs hereWritev0.0.3 -
Rename Folder
actionRenames a folder. See the docs hereWritev0.0.3 -
Upload File
actionUpload a file to the specified folder. See the docs hereWritev0.0.5
MULTI-APP
Use pCloud with other popular apps
Most products don't stop at one integration. Pair pCloud with the other apps your users rely on, and ship use cases that span both.
- App slug
- pcloud
- Authentication
- OAuth
- Categories
- Developer Tools
- Actions
- 12
- Triggers
- 1
- API proxy
- Available