Can an AI agent use Pipedream?

As of 6 Oct 2026, an AI agent gets into Pipedream on its own and does 100% of the core work.

Level 4 · Runs on its ownAn agent does the core work and can stop paying on its own.
  • Find: Docs for agents: llms.txt, an OpenAPI and an MCP server.
  • Access: Sign-up in a browser.
  • Use: 100% of the work.
  • Pay: Reaches the checkout: Stopped at the card form.
  • Leave: Leaves on its own: Nothing to cancel, deletes its account.

To reach L5 · Autonomous: pay without a person.

What the levels mean

Driven 6 Oct 20261 drive so farRules of 15 Oct 2026Claim this page

Written and checked by our agents from this drive's record. How we write.

Who gets in

  • Agents on a serverGet in on their own.
  • Signed agentsThe sign-up page opens.
  • Agents in a person's browserNot measured yet.

Sign-up page checked 12 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from

What an agent can do in Pipedream.

On its own

  • Connect a user's third-party account and run tools on it automatically
  • Make API calls through the service without ever holding the user's password or key
  • Set up automatic notifications (triggers) when something happens in a connected app
2 more
  • Create and delete accounts and connections entirely through code
  • Use a chat-assistant style interface (MCP) to run the same tools

What it can't, and why

  • Sign up or get a first login key without a browseronly a web sign-up form and web-made key exist
  • Use some advanced features like file storage, production mode, private tools, or email invitesthese need a paid plan the free-plan agent could not buy
  • Pay for a plan without a credit cardthe only checkout option is a card form
1 more
  • Delete the account through codedeletion only works from the website, and it even showed an error page while it worked
On its own, in a browser

Can an AI agent sign up for Pipedream on its own?

Yes, in a browser, without a human. Web form /auth/signup (email+password), no bot check; Sign Up is a div, clicked by position. pd signup also opens a browser.

Official server · its calls worked

Does Pipedream have an MCP server, and can an agent connect to it?

Yes. Pipedream has an official MCP server.

A new agent can get in on its own: in the drive of 6 Oct 2026, our agent signed up, verified and got its key without a person. Through the MCP server, 2 of our agent's 2 attempts worked.

What the drive found

APIOpenAPIMCP · officialCLISDKllms.txtWebhooksSandbox
On its own, in a browser

How does an AI agent get a Pipedream API key?

In the drive of 6 Oct 2026, our agent got its Pipedream API key in a browser, without a person. OAuth client created in web onboarding (docs: Settings > API); user API key from settings page; no documented headless credential path

On its own, in a browser

Can an AI agent delete its Pipedream account?

Yes, in a browser, without a human. Settings > Account > Delete this account; UI got HTTP 500 but account was deleted (API key 401, login 'user not found'). No API/CLI account delete; Connect resources and project deletable by API.

Reaches the checkout

Can an AI agent pay for Pipedream?

Reaches the checkout: stopped at the card form.

  • Stripe Checkout

It has a free plan.

What would let agents pay on their own
  1. Accept x402 or MPP on your API. Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card.Step-by-step guide
  2. List your plans on Stripe Projects. Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev).Step-by-step guide

No 402/x402/MPP/UCP/billing API. Settings > Billing > Upgrade -> Stripe Checkout at payments.pipedream.com (card only, Startup $99/mo billed annually). Not paid.

From the drive of 6 Oct 2026.

For the team behind Pipedream.

Agents get through Pipedream today. The fixes that keep it that way, highest impact first.

Through every checkpoint

The fixes, highest impact first

  1. Let agents get a first credential headlessStep-by-step guide
  2. Add an account-delete API, fix its 500
  3. Make deployed-triggers list return triggers
5 more fixes
  1. Move the product MCP server to the 28 Jul 2026 spec
  2. Use real buttons on sign-up and Connect Step-by-step guide
  3. Fix OpenAPI drift, move to 3.1+ Step-by-step guide
  4. Offer a billing API or agent payment rail Step-by-step guide
  5. Publish AI catalog and cards at root Step-by-step guide
  • Claim it free and reply next to the result.
  • A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
  • Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
See the example report
Details

Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.

Already claimed it? Open it in your dashboard.

Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.

Embed the badge on your site

Driven · L4 · Runs on its own badge

Behind the level.

The part scores and the measures behind them.

Part scores and the measures · paid plans

Part scores

Agent-ready setup

  • llms.txt: found
  • OpenAPI: found
  • MCP server: found
  • CLI: found

Not measured in this drive: Holds up, Docs match (part of an Audit).

The measures

  1. Work done100
  2. Reliability100
  3. Crash test–

Needs a paid plan

Not counted in the level. Our drive used free plan.

Needs a paid plan
CapabilityPlan
File Stashpaid
Production environmentStartup
custom private toolspaid
Team members (email invite)paid

For agents and builders.

The drive as data, every checkpoint and all 36 attempts.

How an agent connects · 6 tips
  • Create the OAuth client once in the web app, then use POST /v1/oauth/token and x-pd-environment: development
  • Key-based apps connect headless: POST /tokens then POST /accounts with cfmap_json as a JSON string
  • Read trigger events by id; the deployed-triggers list came back empty
  • Never point the project webhook at an HTTP trigger in the same project: it loops
  • Product MCP needs Bearer + x-pd-project-id, x-pd-environment, x-pd-external-user-id, x-pd-app-slug and speaks 2024-11-05
  • pd CLI runs headless with api_key and org_id in a config profile
Every checkpoint, in detail · 9 checkpoints
  1. DocsHeadlessdocs/llms.txt, .md pages, Accept: text/markdown, OpenAPI 3.0.4 at /docs/pipedream_openapi_swagger.json
  2. Sign upIn a browserWeb form /auth/signup (email+password), no bot check; Sign Up is a div, clicked by position. pd signup also opens a browser.
  3. VerifyHeadlessaccount usable before verifying
  4. KeyIn a browserOAuth client created in web onboarding (docs: Settings > API); user API key from settings page; no documented headless credential path
  5. First callHeadlessPOST /v1/oauth/token client_credentials, GET /v1/connect/{project}/apps
  6. First actionHeadlessPOST /tokens + POST /accounts (cfmap_json) connected a key-based app for an external user
  7. PayIn a browserNo 402/x402/MPP/UCP/billing API. Settings > Billing > Upgrade -> Stripe Checkout at payments.pipedream.com (card only, Startup $99/mo billed annually). Not paid.
  8. CancelNot neededNothing to cancel: our agent used the free plan.
  9. DeleteIn a browserSettings > Account > Delete this account; UI got HTTP 500 but account was deleted (API key 401, login 'user not found'). No API/CLI account delete; Connect resources and project deletable by API.
The attempt log · 36 attempts
Attempt log
CapabilityRouteResultEvidence
robots/aipref: robots.txt and Content-Usageapidone ✓https://pipedream.com/robots.txt 200 text/plain: user-agent * group with disallows for /admin/*, /@*, /community/...; no Content-Usage or Content-signal lines; no Content-Usage header on docs pages
llms.txt: llms.txtapidone ✓https://pipedream.com/llms.txt 200 (app marketplace, 3,223 apps) and https://pipedream.com/docs/llms.txt 200 (docs index with .md links)
markdown: Accept: text/markdown and .md URLapidone ✓GET /docs/connect/mcp with Accept: text/markdown -> 200 content-type text/markdown, vary: rsc, accept-encoding, Accept, User-Agent; /docs/connect/mcp.md -> 200 text/markdown
cards: AI catalog / agent card / MCP server card on domain rootapifailed ✓https://pipedream.com/.well-known/ai-catalog.json, agent-card.json, agent.json, mcp/server-card.json, oauth-*, ucp, /auth.md, /SKILL.md all 200 text/html SPA soft-404
docs MCP: server/discover on https://pipedream.com/docs/mcpapidone ✓200 application/json result.supportedVersions ["2026-07-28"]; initialize also answers protocolVersion 2025-11-25; serverInfo Pipedream 1.0.0 (Mintlify docs search MCP)
product MCP: server/discover on https://remote.mcp.pipedream.net/v3 unauthenticatedapiblocked401 {code:-32001,'Unauthorized. A valid API JWT with project credentials is required.'}; no WWW-Authenticate; mcp.pipedream.net/v2 401 WWW-Authenticate Bearer error=invalid_token (no resource_metadata); PRM https://mcp.pipedream.net/.well-known/oauth-protected-resource 200 JSON, AS https://mcp.pipedream.com metadata has registration_endpoint (DCR), no client_id_metadata_document_supported, code_challenge_methods S256 and plain
pay discovery: x402./mpp./agents. subdomains, /.well-known/ucp, api 402apidone ✓x402/mpp/agents.pipedream.com: DNS not resolved; /.well-known/ucp SPA soft-404; api.pipedream.com/v1/users/me unauth -> 404 {error:record not found}, no 402
docs: find docs, API reference, auth docsapidone ✓docs/llms.txt index, every page as .md; Connect API reference with per-operation pages; authentication.md (client credentials via POST /v1/oauth/token)
signup: create account with email+passwordbrowserdone ✓https://pipedream.com/auth/signup web form; POST https://api.pipedream.com/auth/password 200 new_user:true user u_r9hjxgO org [redacted]; redirected to connect.pipedream.com/@agentdrives/overview. No CAPTCHA seen. Docs offer only web form or `pd signup` (opens browser).
verify email: click verification linkapidone ✓Mail 'Confirm your email address' from notifications@pipedream.com arrived within seconds.
API credentials: get OAuth client credentialsbrowserdone ✓Signup onboarding in the web app auto-created OAuth client 'Default' (client id Yr4b…, secret shown once); docs say create at Settings > API (web UI). User API key read from https://pipedream.com/settings/user. No documented API/CLI way to mint the first credential without a browser (pd login/signup open a browser).
first API call: client_credentials token, then list appsapidone ✓POST /v1/oauth/token 200 token_type Bearer expires_in 3599 scope *; GET /v1/connect/[redacted]/apps?q=slack&limit=3 200 total_count 13
Connect a third-party account for an end user: Create connect token for external user, connect a key-based app (Pipedream, our own API key) server-sideapidone ✓POST /v1/connect/[redacted]/tokens 200 ctok_… + connect_link_url; POST /v1/connect/[redacted]/accounts {app_slug:pipedream, cfmap_json, connect_token} 200 id apn_arhy6vn healthy:true; GET /accounts?external_user_id=agentdrives-test-user-1 total_count 1; GET /accounts/apn_arhy6vn 200
Search and list available apps: search apps for 'slack', fetch app 'pipedream'apidone ✓GET /v1/connect/[redacted]/apps?q=slack&limit=3 200 total_count 13 with auth_type, custom_fields; GET /v1/connect/apps/pipedream 200 auth_type keys, proxy_enabled true; cursor pagination (page_info.end_cursor)
Retrieve a tool's input/output schema: GET action pipedream-get-app definitionapidone ✓GET /v1/connect/[redacted]/actions/pipedream-get-app 200: configurable_props [app (type app), appId (string, remoteOptions)] + MCP-style annotations readOnlyHint etc.; the run below accepted exactly those props
Execute a prebuilt action on a connected account: Run pipedream-get-app on the connected account for appId githubapidone ✓POST /v1/connect/[redacted]/actions/run {id, external_user_id, configured_props:{app:{authProvisionId:apn_arhy6vn}, appId:github}} 200 ret.data.id app_OrZhaO name_slug github; GET /v1/connect/apps/github returns same app (auth_type oauth)
Send authenticated requests via the proxy: GET https://api.pipedream.com/v1/users/me through the Connect proxy for the end user's accountapidone ✓GET /v1/connect/[redacted]/proxy/{base64url(url)}?external_user_id=…&account_id=apn_arhy6vn 200 body identical to a direct call with the key (user u_r9hjxgO); caller never sent the key
first real action: create a connected account for an end userapidone ✓POST /v1/connect/[redacted]/accounts 200 apn_arhy6vn, read back via GET /accounts
Deploy a trigger: Deploy http-new-requests and schedule-custom-interval triggers for an end user; fire the HTTP one and read its eventsapidone ✓POST /v1/connect/[redacted]/triggers/deploy 200 hi_nlHbVPq endpoint https://eokyipa6rueazsa.m.pipedream.net; timer ti_ypTAALB; POST to endpoint 200; GET /deployed-triggers/hi_nlHbVPq/events returned our request (with our Web Bot Auth headers); GET /deployed-triggers/hi_nlHbVPq 200
Receive webhooks for connection and trigger events: Trigger webhook to our own receiver, connect token webhook_uri for CONNECTION_SUCCESSapidone ✓PUT /deployed-triggers/hi_nlHbVPq/webhooks {webhook_urls:[receiver]} 200 with signing_key; firing the trigger delivered the event to receiver hi_12HMxEn with x-pd-signature t=…,v1=… and user-agent pipedream/1; POST /tokens with webhook_uri then POST /accounts -> receiver got {event: CONNECTION_SUCCESS, account.id apn_x7hdEP5} (no credentials in payload)
product MCP: server/discover then initialize on https://remote.mcp.pipedream.net/v3 with OAuth bearer + x-pd-* headersmcpdone ✓server/discover with 2026-07-28 headers -> 200 SSE JSON-RPC error -32601 Method not found (legacy); initialize offering 2026-07-28 -> protocolVersion 2024-11-05, serverInfo pd-connect 1.0.0, no Mcp-Session-Id; tools/list -> 9 tools for app pipedream (8 actions + retrieve_options)
Execute a prebuilt action/tool on a connected account: tools/call pipedream-get-app appId notion over MCPmcpdone ✓tools/call 200 SSE result.content text ret.data.id app_X7Lhxr name_slug notion; matches GET /v1/connect/apps/notion
Hosted Connect Link: Open connect_link_url (&app=pipedream) in a browser and connect the keybrowserdone ✓connect_link_url from POST /tokens; page 'We use Pipedream to connect your account' -> Continue -> API Key -> Continue -> 'Successfully connected your Pipedream account!'; GET /users/agentdrives-test-user-4/accounts lists the new account
Bring your own OAuth app credentials: Register a custom GitHub OAuth client via API and start a connection with itapidone ✓POST /v1/connect/[redacted]/oauth_apps {app:github, client_id, client_secret, name} 201 id oa_1MiyyY; GET /oauth_apps/oa_1MiyyY 200; Connect Link with &oauthAppId=oa_1MiyyY sent the browser to github.com/login/oauth/authorize?client_id=<our client id>&redirect_uri=https://api.pipedream.com/connect/oauth/oa_1MiyyY/callback
App Overrides: Pre-fill Supabase subdomain with an app override and connect through itapidone ✓POST /v1/connect/[redacted]/app_overrides {app:supabase, name, cfmap:{subdomain}} 201 ao_2QdUEE; Connect Link &app=supabase&appOverrideId=ao_2QdUEE asked only for 'API Key'; same link without the override asked for 'Subdomain ID' and 'API Key'
Sync files to File Stash: Run helper_functions-download-file-to-tmp with stash_id to get a presigned URLapiplan_gated ✓POST /v1/connect/[redacted]/actions/run {…, stash_id:""} HTTP 200 but os[0] k=error: file api 401 {error:'Please upgrade your workspace to use this feature'} 'Error communicating with file api'
Separate development and production environments: Create token/account and run an action with x-pd-environment: productionapiplan_gated ✓production: POST /tokens 200, POST /accounts 200 apn_r5h7bA7, GET /accounts?external_user_id=agentdrives-prod-user total 1 in production and 0 in development (environments are separated); POST /actions/run in production -> 403 {error:'Connect component API not enabled for this organization'}
View and delete connected accounts: List accounts for an end user, delete one, read backapidone ✓DELETE /v1/connect/[redacted]/accounts/apn_mnhd7xB 204; GET same id 404 {error:'record not found'}; GET /accounts?external_user_id=agentdrives-test-user-2 total_count 0
Execute a prebuilt action/tool on a connected account: error check: run action without configured_propsapifailed ✓POST /actions/run {id} -> 422 text/plain 'Failed to deserialize the JSON body into the target type: missing field `configured_props`'
pay step: find how an agent can buy a paid plan without payingbrowserdone ✓No 402 anywhere probed (api.pipedream.com unauth 404, x402./mpp./agents. no DNS, no /.well-known/ucp, no x-payment-info in OpenAPI, docs (llms-full.txt) mention no x402/MPP/SPT/Stripe Projects). Pricing: Free $0 no card; Startup $99/mo billed annually. Settings > Billing > Upgrade plan -> connect.pipedream.com/@agentdrives/upgrade -> 'Continue to checkout' -> Stripe Checkout at payments.pipedream.com/c/pay/cs_live_… (card only, €1,101.74/year). Stopped before entering anything.
Manage project variables and secrets: Create a secret variable in the web UI and read the list backbrowserpartial ✓pipedream.com/settings/env-vars > New Variable (key AGENTDRIVES_TEST_SECRET, secret checked) -> createEnvironmentVariable se_e8fyDPr secret:true; list shows value as 'Secret'
Add team members: Invite our own second inbox the agent's inbox by emailbrowserplan_gated ✓Settings > Membership > Invite By Email -> orgUserAdd errors ['Email invites are only available on paid plans. Share your workspace's invite link instead.']; an 'Invite Link for Any Email' is shown on Free
Publish custom private tools: pd publish a tiny echo action with --connect-environment development, then list and run it via the Connect APIcliplan_gated ✓pd 0.7.0 (binary from cli.pipedream.com, config file with api_key+org_id profile): publish -> sc_v4ixdJQV 'AgentDrives Echo' 0.0.1; GET /actions?registry=private total 0; POST /actions/run {id:agentdrives-echo} -> 403 {error:'Private component API not enabled for this organization'}
SDK Playground: Open pipedream.com/connect/demo and inspect a toolbrowserpartialPage loads without a challenge: Config/Code/Debug tabs, componentType Action/Trigger/API Proxy, app Slack, action 'Send Message to Channel', app metadata JSON
delete account: Delete the Pipedream account and its databrowserdone ✓Settings > Account > Danger Zone > 'Delete this account' (type email + 'delete my account', Ok): graphql POST answered 500 {status:500,'Internal Server Error'} and the page stayed; afterwards the session was gone, GET /v1/users/me with the user API key -> 401, /v1/oauth/token -> 401 invalid_client, login -> 404 {type:not_found, data:'user not found'}
cancel plan: cancel a paid plannoneskippedNo plan was started (free plan); Settings > Billing shows 'Manage Billing' (web UI). Not tested.

Also in Automation.