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-apps-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 Apps 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: Apps
paths:
/v1/app_categories:
get:
summary: List App Categories
description: Retrieve all available categories for integrated apps
x-fern-ignore: true
operationId: listAppCategoriesBase
x-fern-sdk-group-name: appCategories
x-fern-sdk-method-name: list
security:
- ConnectToken: []
- OAuth2: []
responses:
'200':
description: apps listed
content:
application/json:
schema:
$ref: '#/components/schemas/ListAppCategoriesResponse'
tags:
- Apps
/v1/app_categories/{id}:
get:
summary: Retrieve App Category
description: Get details of a specific app category by its ID
x-fern-ignore: true
operationId: retrieveAppCategoryBase
x-fern-sdk-group-name: appCategories
x-fern-sdk-method-name: retrieve
security:
- ConnectToken: []
- OAuth2: []
parameters:
- name: id
in: path
required: true
description: The ID of the app category to retrieve
schema:
pattern: ^appcar_[0-9a-zA-Z]+$
type: string
responses:
'200':
description: app retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/GetAppCategoryResponse'
tags:
- Apps
/v1/apps:
get:
summary: List Apps
description: Retrieve all available apps with optional filtering and sorting
x-fern-ignore: true
operationId: listAppsBase
x-fern-sdk-group-name: apps
x-fern-sdk-method-name: list
x-fern-pagination:
cursor: $request.after
next_cursor: $response.page_info.end_cursor
results: $response.data
parameters:
- name: after
in: query
required: false
description: The cursor to start from for pagination
schema:
type: string
- name: before
in: query
required: false
description: The cursor to end before for pagination
schema:
type: string
- name: limit
in: query
required: false
description: The maximum number of results to return
schema:
type: integer
- name: q
in: query
required: false
description: A search query to filter the apps
schema:
type: string
- name: sort_key
in: query
required: false
description: The key to sort the apps by
schema:
type: string
enum:
- name
- name_slug
- featured_weight
- name: sort_direction
in: query
required: false
description: The direction to sort the apps
schema:
type: string
enum:
- asc
- desc
- name: category_ids
in: query
required: false
description: Only return apps in these categories
schema:
type: array
items:
type: string
description: The ID of an app category
pattern: ^appcat_[a-zA-Z0-9]+$
- name: has_components
in: query
required: false
description: Only return apps that have components (actions or triggers)
schema:
type: boolean
- name: has_actions
in: query
required: false
description: Only return apps that have actions
schema:
type: boolean
- name: has_triggers
in: query
required: false
description: Only return apps that have triggers
schema:
type: boolean
security:
- ConnectToken: []
- OAuth2: []
responses:
'200':
description: apps listed
content:
application/json:
schema:
$ref: '#/components/schemas/ListAppsResponse'
x-codeSamples:
- lang: typescript
label: TypeScript SDK
source: "import { PipedreamClient } from \"pipedream\";\n\nconst client = new PipedreamClient({\n clientId: \"YOUR_CLIENT_ID\",\n clientSecret: \"YOUR_CLIENT_SECRET\",\n pdEnvironment: \"YOUR_PD_ENVIRONMENT\"\n});\nconst response = await client.apps.listApps();\nfor await (const item of response) {\n console.log(item);\n}\n\n// Or you can manually iterate page-by-page\nconst page = await client.apps.listApps();\nwhile (page.hasNextPage()) {\n page = page.getNextPage();\n}\n"
tags:
- Apps
/v1/connect/apps:
get:
summary: List Apps
description: Retrieve all available apps with optional filtering and sorting
operationId: listApps
x-fern-sdk-group-name: apps
x-fern-sdk-method-name: list
x-fern-pagination:
cursor: $request.after
next_cursor: $response.page_info.end_cursor
results: $response.data
parameters:
- name: after
in: query
required: false
description: The cursor to start from for pagination
schema:
type: string
- name: before
in: query
required: false
description: The cursor to end before for pagination
schema:
type: string
- name: limit
in: query
required: false
description: The maximum number of results to return
schema:
type: integer
- name: q
in: query
required: false
description: A search query to filter the apps
schema:
type: string
- name: sort_key
in: query
required: false
description: The key to sort the apps by
schema:
type: string
enum:
- name
- name_slug
- featured_weight
- name: sort_direction
in: query
required: false
description: The direction to sort the apps
schema:
type: string
enum:
- asc
- desc
- name: category_ids
in: query
required: false
description: Only return apps in these categories
schema:
type: array
items:
type: string
description: The ID of an app category
pattern: ^appcat_[a-zA-Z0-9]+$
- name: has_components
in: query
required: false
description: Only return apps that have components (actions or triggers)
schema:
type: boolean
- name: has_actions
in: query
required: false
description: Only return apps that have actions
schema:
type: boolean
- name: has_triggers
in: query
required: false
description: Only return apps that have triggers
schema:
type: boolean
security:
- ConnectToken: []
- OAuth2: []
responses:
'200':
description: apps listed
content:
application/json:
schema:
$ref: '#/components/schemas/ListAppsResponse'
x-codeSamples:
- lang: java
label: Java SDK
source: "package com.example.usage;\n\nimport com.pipedream.api.BaseClient;\nimport com.pipedream.api.resources.apps.requests.AppsListRequest;\nimport com.pipedream.api.resources.apps.types.AppsListRequestSortDirection;\nimport com.pipedream.api.resources.apps.types.AppsListRequestSortKey;\n\npublic class Example {\n public static void main(String[] args) {\n BaseClient client = BaseClient\n .builder()\n .clientId(\"<clientId>\")\n .clientSecret(\"<clientSecret>\")\n .build();\n\n client.apps().list(\n AppsListRequest\n .builder()\n .after(\"after\")\n .before(\"before\")\n .limit(1)\n .q(\"q\")\n .sortKey(AppsListRequestSortKey.NAME)\n .sortDirection(AppsListRequestSortDirection.ASC)\n .hasComponents(true)\n .hasActions(true)\n .hasTriggers(true)\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});\nconst response = await client.apps.list({\n after: \"after\",\n before: \"before\",\n limit: 1,\n q: \"q\",\n sortKey: \"name\",\n sortDirection: \"asc\",\n hasComponents: true,\n hasActions: true,\n hasTriggers: true\n});\nfor await (const item of response) {\n console.log(item);\n}\n\n// Or you can manually iterate page-by-page\nlet page = await client.apps.list({\n after: \"after\",\n before: \"before\",\n limit: 1,\n q: \"q\",\n sortKey: \"name\",\n sortDirection: \"asc\",\n hasComponents: true,\n hasActions: true,\n hasTriggers: true\n});\nwhile (page.hasNextPage()) {\n page = page.getNextPage();\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)\nresponse = client.apps.list(\n after=\"after\",\n before=\"before\",\n limit=1,\n q=\"q\",\n sort_key=\"name\",\n sort_direction=\"asc\",\n has_components=True,\n has_actions=True,\n has_triggers=True,\n)\nfor item in response:\n yield item\n# alternatively, you can paginate page-by-page\nfor page in response.iter_pages():\n yield page\n"
tags:
- Apps
/v1/apps/{app_id}:
get:
summary: Retrieve App
description: Get detailed information about a specific app by ID or name slug
x-fern-ignore: true
operationId: retrieveAppBase
x-fern-sdk-group-name: apps
x-fern-sdk-method-name: retrieve
security:
- ConnectToken: []
- OAuth2: []
parameters:
- name: app_id
in: path
required: true
description: The name slug or ID of the app (e.g., 'slack', 'github')
schema:
type: string
responses:
'200':
description: app retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/GetAppResponse'
x-codeSamples:
- lang: typescript
label: TypeScript SDK
source: "import { PipedreamClient } from \"pipedream\";\n\nconst client = new PipedreamClient({\n clientId: \"YOUR_CLIENT_ID\",\n clientSecret: \"YOUR_CLIENT_SECRET\",\n pdEnvironment: \"YOUR_PD_ENVIRONMENT\"\n});\nawait client.apps.getApp(\"app_id\");\n"
tags:
- Apps
/v1/connect/apps/{app_id}:
get:
summary: Retrieve App
description: Get detailed information about a specific app by ID or name slug
operationId: retrieveApp
x-fern-sdk-group-name: apps
x-fern-sdk-method-name: retrieve
security:
- ConnectToken: []
- OAuth2: []
parameters:
- name: app_id
in: path
required: true
description: The name slug or ID of the app (e.g., 'slack', 'github')
schema:
type: string
responses:
'200':
description: app retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/GetAppResponse'
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 .build();\n\n client.apps().retrieve(\"app_id\");\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.apps.retrieve(\"app_id\");\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.apps.retrieve(\n app_id=\"app_id\",\n)\n"
tags:
- Apps
components:
schemas:
ListAppsResponse:
type: object
description: Response received when listing apps
required:
- data
- page_info
properties:
data:
type: array
items:
$ref: '#/components/schemas/App'
page_info:
$ref: '#/components/schemas/PageInfo'
AppAuthType:
type:
- string
- 'null'
enum:
- keys
- oauth
- none
description: The authentication type used by the app
PageInfo:
type: object
properties:
count:
type: integer
description: Number of items returned
example: 10
total_count:
type: integer
description: Total number of items
example: 120
start_cursor:
type:
- string
- 'null'
description: Used to fetch the previous page of items
end_cursor:
type:
- string
- 'null'
description: Used to fetch the next page of items
AppCategory:
type: object
description: Response object for a Pipedream app category
properties:
id:
type: string
description: ID of the app category
name:
type: string
description: The human-readable name of the app category
description:
type:
- string
- 'null'
description: A short description of the app category
GetAppCategoryResponse:
$ref: '#/components/schemas/AppCategory'
ListAppCategoriesResponse:
type: array
description: Response received when listing app categories
items:
$ref: '#/components/schemas/AppCategory'
GetAppResponse:
type: object
description: Response received when retrieving a single app
required:
- data
properties:
data:
$ref: '#/components/schemas/App'
App:
type: object
description: Response object for a Pipedream app's metadata
required:
- name_slug
- name
- img_src
- custom_fields_json
- categories
- featured_weight
properties:
id:
type:
- string
- 'null'
description: ID of the app. Only applies for OAuth apps.
name_slug:
type: string
description: The name slug of the target app (see https://pipedream.com/docs/connect/quickstart#find-your-apps-name-slug)
name:
type: string
description: The human-readable name of the app
auth_type:
$ref: '#/components/schemas/AppAuthType'
description:
type:
- string
- 'null'
description: A short description of the app
img_src:
type: string
description: The URL to the app's logo
custom_fields_json:
type:
- string
- 'null'
description: A JSON string representing the custom fields for the app
categories:
type: array
items:
type: string
description: Categories associated with the app
featured_weight:
type: number
description: A rough directional ordering of app popularity, subject to changes by Pipedream
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