Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/pipedream-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: '2026-05-22'
title: Pipedream Webhooks API
description: 'The Pipedream API is the unified REST surface for Pipedream''s workflow automation, Connect (embedded integrations), MCP, and proxy services. It exposes account, user, component, action, trigger, deployed-trigger, webhook, project, proxy, file_stash, token, usage, and OAuth endpoints. Authentication is via OAuth 2.0 client credentials or a short-lived Connect token. Source: https://pipedream.com/docs/pipedream_openapi_swagger.json'
contact:
name: Pipedream
url: https://pipedream.com/docs/
license:
name: Proprietary
url: https://pipedream.com/terms
servers:
- url: https://api.pipedream.com
tags:
- name: Webhooks
paths:
/v1/connect/{project_id}/webhook:
parameters:
- name: project_id
in: path
required: true
description: The project ID, which starts with `proj_`.
schema:
type: string
pattern: ^proj_[a-zA-Z0-9]+$
x-fern-sdk-variable: project_id
get:
summary: Get Project Environment Webhook
description: Retrieve the webhook configured for a project environment
parameters:
- name: x-pd-environment
in: header
required: true
description: The environment in which the server client is running
schema:
$ref: '#/components/schemas/ProjectEnvironment'
operationId: retrieveProjectEnvironmentWebhook
x-fern-sdk-group-name: projectEnvironment
x-fern-sdk-method-name: retrieveWebhook
security:
- OAuth2: []
responses:
'200':
description: webhook retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/GetWebhookResponse'
'429':
description: too many requests
headers:
Retry-After:
description: Number of seconds until the rate limit resets
schema:
type: integer
X-RateLimit-Limit:
schema:
type: integer
description: The rate limit threshold
X-RateLimit-Remaining:
schema:
type: integer
description: Number of requests remaining (always 0 when throttled)
X-RateLimit-Reset:
schema:
type: integer
description: Unix timestamp when the rate limit resets
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Throttled
x-codeSamples:
- lang: java
label: Java SDK
source: "package com.example.usage;\n\nimport com.pipedream.api.BaseClient;\n\npublic class Example {\n public static void main(String[] args) {\n BaseClient client = BaseClient\n .builder()\n .clientId(\"<clientId>\")\n .clientSecret(\"<clientSecret>\")\n .projectId(\"YOUR_PROJECT_ID\")\n .build();\n\n client.projectEnvironment().retrieveWebhook();\n }\n}\n"
- lang: typescript
label: TypeScript SDK
source: "import { PipedreamClient } from \"@pipedream/sdk\";\n\nconst client = new PipedreamClient({\n clientId: \"YOUR_CLIENT_ID\",\n clientSecret: \"YOUR_CLIENT_SECRET\",\n projectEnvironment: \"YOUR_PROJECT_ENVIRONMENT\",\n projectId: \"YOUR_PROJECT_ID\"\n});\nawait client.projectEnvironment.retrieveWebhook();\n"
- lang: python
label: Python SDK
source: "from pipedream import Pipedream\n\nclient = Pipedream(\n project_id=\"YOUR_PROJECT_ID\",\n project_environment=\"YOUR_PROJECT_ENVIRONMENT\",\n client_id=\"YOUR_CLIENT_ID\",\n client_secret=\"YOUR_CLIENT_SECRET\",\n)\nclient.project_environment.retrieve_webhook()\n"
tags:
- Webhooks
put:
summary: Set Project Environment Webhook
description: Create or update the webhook URL for a project environment. Creating a webhook returns `signing_key`; updating an existing webhook does not.
parameters:
- name: x-pd-environment
in: header
required: true
description: The environment in which the server client is running
schema:
$ref: '#/components/schemas/ProjectEnvironment'
operationId: updateProjectEnvironmentWebhook
x-fern-sdk-group-name: projectEnvironment
x-fern-sdk-method-name: updateWebhook
security:
- OAuth2: []
responses:
'200':
description: webhook updated
content:
application/json:
schema:
$ref: '#/components/schemas/SetWebhookResponse'
'429':
description: too many requests
headers:
Retry-After:
description: Number of seconds until the rate limit resets
schema:
type: integer
X-RateLimit-Limit:
schema:
type: integer
description: The rate limit threshold
X-RateLimit-Remaining:
schema:
type: integer
description: Number of requests remaining (always 0 when throttled)
X-RateLimit-Reset:
schema:
type: integer
description: Unix timestamp when the rate limit resets
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Throttled
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SetWebhookOpts'
x-codeSamples:
- lang: java
label: Java SDK
source: "package com.example.usage;\n\nimport com.pipedream.api.BaseClient;\nimport com.pipedream.api.resources.projectenvironment.requests.SetWebhookOpts;\n\npublic class Example {\n public static void main(String[] args) {\n BaseClient client = BaseClient\n .builder()\n .clientId(\"<clientId>\")\n .clientSecret(\"<clientSecret>\")\n .projectId(\"YOUR_PROJECT_ID\")\n .build();\n\n client.projectEnvironment().updateWebhook(\n SetWebhookOpts\n .builder()\n .url(\"url\")\n .build()\n );\n }\n}\n"
- lang: typescript
label: TypeScript SDK
source: "import { PipedreamClient } from \"@pipedream/sdk\";\n\nconst client = new PipedreamClient({\n clientId: \"YOUR_CLIENT_ID\",\n clientSecret: \"YOUR_CLIENT_SECRET\",\n projectEnvironment: \"YOUR_PROJECT_ENVIRONMENT\",\n projectId: \"YOUR_PROJECT_ID\"\n});\nawait client.projectEnvironment.updateWebhook({\n url: \"url\"\n});\n"
- lang: python
label: Python SDK
source: "from pipedream import Pipedream\n\nclient = Pipedream(\n project_id=\"YOUR_PROJECT_ID\",\n project_environment=\"YOUR_PROJECT_ENVIRONMENT\",\n client_id=\"YOUR_CLIENT_ID\",\n client_secret=\"YOUR_CLIENT_SECRET\",\n)\nclient.project_environment.update_webhook(\n url=\"url\",\n)\n"
tags:
- Webhooks
delete:
summary: Delete Project Environment Webhook
description: Remove the webhook configured for a project environment
parameters:
- name: x-pd-environment
in: header
required: true
description: The environment in which the server client is running
schema:
$ref: '#/components/schemas/ProjectEnvironment'
operationId: deleteProjectEnvironmentWebhook
x-fern-sdk-group-name: projectEnvironment
x-fern-sdk-method-name: deleteWebhook
security:
- OAuth2: []
responses:
'204':
description: webhook deleted
'429':
description: too many requests
headers:
Retry-After:
description: Number of seconds until the rate limit resets
schema:
type: integer
X-RateLimit-Limit:
schema:
type: integer
description: The rate limit threshold
X-RateLimit-Remaining:
schema:
type: integer
description: Number of requests remaining (always 0 when throttled)
X-RateLimit-Reset:
schema:
type: integer
description: Unix timestamp when the rate limit resets
x-codeSamples:
- lang: java
label: Java SDK
source: "package com.example.usage;\n\nimport com.pipedream.api.BaseClient;\n\npublic class Example {\n public static void main(String[] args) {\n BaseClient client = BaseClient\n .builder()\n .clientId(\"<clientId>\")\n .clientSecret(\"<clientSecret>\")\n .projectId(\"YOUR_PROJECT_ID\")\n .build();\n\n client.projectEnvironment().deleteWebhook();\n }\n}\n"
- lang: typescript
label: TypeScript SDK
source: "import { PipedreamClient } from \"@pipedream/sdk\";\n\nconst client = new PipedreamClient({\n clientId: \"YOUR_CLIENT_ID\",\n clientSecret: \"YOUR_CLIENT_SECRET\",\n projectEnvironment: \"YOUR_PROJECT_ENVIRONMENT\",\n projectId: \"YOUR_PROJECT_ID\"\n});\nawait client.projectEnvironment.deleteWebhook();\n"
- lang: python
label: Python SDK
source: "from pipedream import Pipedream\n\nclient = Pipedream(\n project_id=\"YOUR_PROJECT_ID\",\n project_environment=\"YOUR_PROJECT_ENVIRONMENT\",\n client_id=\"YOUR_CLIENT_ID\",\n client_secret=\"YOUR_CLIENT_SECRET\",\n)\nclient.project_environment.delete_webhook()\n"
tags:
- Webhooks
/v1/connect/{project_id}/webhook/regenerate_signing_key:
parameters:
- name: project_id
in: path
required: true
description: The project ID, which starts with `proj_`.
schema:
type: string
pattern: ^proj_[a-zA-Z0-9]+$
x-fern-sdk-variable: project_id
post:
summary: Regenerate Webhook Signing Key
description: Regenerate the signing key for the project environment webhook
parameters:
- name: x-pd-environment
in: header
required: true
description: The environment in which the server client is running
schema:
$ref: '#/components/schemas/ProjectEnvironment'
operationId: regenerateProjectEnvironmentWebhookSigningKey
x-fern-sdk-group-name: projectEnvironment
x-fern-sdk-method-name: regenerateWebhookSigningKey
security:
- OAuth2: []
responses:
'200':
description: signing key regenerated
content:
application/json:
schema:
$ref: '#/components/schemas/GetWebhookWithSigningKeyResponse'
'429':
description: too many requests
headers:
Retry-After:
description: Number of seconds until the rate limit resets
schema:
type: integer
X-RateLimit-Limit:
schema:
type: integer
description: The rate limit threshold
X-RateLimit-Remaining:
schema:
type: integer
description: Number of requests remaining (always 0 when throttled)
X-RateLimit-Reset:
schema:
type: integer
description: Unix timestamp when the rate limit resets
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Throttled
x-codeSamples:
- lang: java
label: Java SDK
source: "package com.example.usage;\n\nimport com.pipedream.api.BaseClient;\n\npublic class Example {\n public static void main(String[] args) {\n BaseClient client = BaseClient\n .builder()\n .clientId(\"<clientId>\")\n .clientSecret(\"<clientSecret>\")\n .projectId(\"YOUR_PROJECT_ID\")\n .build();\n\n client.projectEnvironment().regenerateWebhookSigningKey();\n }\n}\n"
- lang: typescript
label: TypeScript SDK
source: "import { PipedreamClient } from \"@pipedream/sdk\";\n\nconst client = new PipedreamClient({\n clientId: \"YOUR_CLIENT_ID\",\n clientSecret: \"YOUR_CLIENT_SECRET\",\n projectEnvironment: \"YOUR_PROJECT_ENVIRONMENT\",\n projectId: \"YOUR_PROJECT_ID\"\n});\nawait client.projectEnvironment.regenerateWebhookSigningKey();\n"
- lang: python
label: Python SDK
source: "from pipedream import Pipedream\n\nclient = Pipedream(\n project_id=\"YOUR_PROJECT_ID\",\n project_environment=\"YOUR_PROJECT_ENVIRONMENT\",\n client_id=\"YOUR_CLIENT_ID\",\n client_secret=\"YOUR_CLIENT_SECRET\",\n)\nclient.project_environment.regenerate_webhook_signing_key()\n"
tags:
- Webhooks
components:
schemas:
GetWebhookWithSigningKeyResponse:
type: object
description: Response received when retrieving a webhook with its signing key
required:
- data
properties:
data:
$ref: '#/components/schemas/WebhookWithSigningKey'
Webhook:
type: object
description: A webhook object
required:
- id
- url
- signing_key_set
- created_at
- updated_at
properties:
id:
type: string
description: The unique ID of the webhook
url:
type: string
format: uri
description: The webhook URL
signing_key_set:
type: boolean
description: Whether a signing key has been set for this webhook
created_at:
type: integer
description: The time the webhook was created, in epoch seconds
updated_at:
type: integer
description: The time the webhook was last updated, in epoch seconds
WebhookWithOptionalSigningKey:
type: object
description: A webhook object that may include the signing key. The signing key is returned when a webhook is created, but omitted when an existing webhook is updated.
required:
- id
- url
- signing_key_set
- created_at
- updated_at
properties:
id:
type: string
description: The unique ID of the webhook
url:
type: string
format: uri
description: The webhook URL
signing_key:
type: string
description: The webhook signing key, when returned by the endpoint
signing_key_set:
type: boolean
description: Whether a signing key has been set for this webhook
created_at:
type: integer
description: The time the webhook was created, in epoch seconds
updated_at:
type: integer
description: The time the webhook was last updated, in epoch seconds
GetWebhookResponse:
type: object
description: Response received when retrieving a webhook
required:
- data
properties:
data:
allOf:
- $ref: '#/components/schemas/Webhook'
WebhookWithSigningKey:
type: object
description: A webhook object including the signing key
required:
- id
- url
- signing_key
- signing_key_set
- created_at
- updated_at
properties:
id:
type: string
description: The unique ID of the webhook
url:
type: string
format: uri
description: The webhook URL
signing_key:
type: string
description: The webhook signing key
signing_key_set:
type: boolean
description: Whether a signing key has been set for this webhook
created_at:
type: integer
description: The time the webhook was created, in epoch seconds
updated_at:
type: integer
description: The time the webhook was last updated, in epoch seconds
SetWebhookOpts:
type: object
description: Request options for setting a webhook URL
required:
- url
properties:
url:
type: string
format: uri
description: The webhook URL to set
SetWebhookResponse:
type: object
description: Response received when creating or updating a webhook
required:
- data
properties:
data:
$ref: '#/components/schemas/WebhookWithOptionalSigningKey'
ProjectEnvironment:
type: string
description: The environment in which the server client is running
enum:
- development
- production
securitySchemes:
OAuth2:
description: A short-lived OAuth access token for server-side requests. Generate one via the Generate OAuth Token flow or automatically when initializing the SDK client.
type: oauth2
flows:
clientCredentials:
tokenUrl: https://api.pipedream.com/v1/oauth/token
scopes:
'*': Full access to every OAuth-protected endpoint.
connect:*: Full access to all Connect API endpoints (components, projects, triggers, accounts, etc.).
connect:actions:*: Full access to Connect actions.
connect:triggers:*: Full access to Connect triggers.
connect:accounts:read: List and fetch Connect accounts for an external user.
connect:accounts:write: Create or remove Connect accounts.
connect:deployed_triggers:read: Read deployed triggers and related data like events, pipelines and webhooks.
connect:deployed_triggers:write: Modify or delete deployed triggers.
connect:users:read: List and fetch external users
connect:users:write: Delete external users.
connect:projects:read: List and fetch projects owned by the workspace.
connect:projects:write: Create, update, or delete projects owned by the workspace.
connect:usage:read: List Connect usage records for a time window.
connect:tokens:create: Create Connect session tokens.
connect:proxy: Invoke the Connect proxy.
connect:workflow:invoke: Invoke Connect workflows on behalf of a user.
ConnectToken:
description: A short-lived Connect token for client-side requests on behalf of an end user. Generate one via the Create Connect token endpoint.
type: http
scheme: bearer
bearerFormat: ^ctok_[0-9a-f]{32}$
x-fern-sdk-variables:
project_id:
type: string