CONNECT APP
Build with Speak AI
Transcribe, translate, and analyze with AI
Artificial Intelligence (AI)
- OAuth
MCP
Give your agent Speak AI tools
Every Speak AI 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 Speak AI 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": "speak_ai",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Analyze Text:
const result = await mcp.callTool({
name: "speak_ai-analyze-text",
arguments: {
folderId: "Folder ID",
mediaId: "Media ID",
},
})# 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": "speak_ai",
}
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 Analyze Text:
result = await session.call_tool("speak_ai-analyze-text", {
"folderId": "Folder ID",
"mediaId": "Media ID",
})SDK
Run Speak AI actions from your backend
Connect a user's Speak AI account once, then run Analyze Text 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: "speak_ai-analyze-text",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
speak_ai: { authProvisionId: "apn_xxxxxxx" },
folderId: "Folder ID",
mediaId: "Media ID",
},
})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="speak_ai-analyze-text",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"speak_ai": {"authProvisionId": "apn_xxxxxxx"},
"folderId": "Folder ID",
"mediaId": "Media ID",
},
)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": "speak_ai-analyze-text",
"configured_props": {
"speak_ai": { "authProvisionId": "apn_xxxxxxx" },
"folderId": "Folder ID",
"mediaId": "Media ID"
}
}'TOOLS
Speak AI actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Analyze Text
actionRetrieve the insights Speak AI generated for a text note: sentiment, keywords and named entities. Takes the media ID of a text note that already exists in Speak AI. See the documentation.Read-onlyv0.0.4 -
Find Media
actionLook up a single Speak AI media file by its ID and return everything stored against it: transcript, sentiment, keywords, topics and metadata. Use Get Transcription instead when only the transcript is needed. See the documentation.Read-onlyv0.0.2 -
Get Transcription
actionRetrieve just the transcript of a processed Speak AI media file, as an array of speaker-attributed segments. Use Find Media instead to get sentiment, keywords and the rest of the analysis. See the documentation.Read-onlyv0.0.4 -
List Folder ID Options
actionRetrieves available options for the Folder ID field. See the documentation.Read-onlyv0.0.2 -
Run AI Chat
actionAsk a question about Speak AI media and get the answer back. Scope the question to specific media files, to a whole folder, or to both. Answers are only as good as the prompt, so be specific about the output wanted. Media must finish analyzing first. See the documentation.Writev0.0.2 -
Upload Media
actionUpload an audio or video file to Speak AI for transcription and analysis, from a publicly reachable URL or an AWS signed URL. Processing is asynchronous, so use the New Automated Transcription (Instant) trigger to act on the result. See the documentation.Writev0.0.4
EVENTS
Speak AI triggers
Event sources your backend can deploy for users and receive through a webhook.
-
New AI Chat Response (Instant)
triggerEmit new event when a Speak AI Chat response is ready (chat.status). See the documentation.Instantv0.0.1 -
New Automated Transcription (Instant)
triggerEmit new event when Speak AI finishes transcribing a media file (media.analyzed,media.reanalyzed). See the documentation.Instantv0.0.1 -
New Captions (Instant)
triggerEmit new event with the caption file (SRT or VTT) when Speak AI finishes analyzing a media file (media.analyzed,media.reanalyzed). See the documentation.Instantv0.0.1 -
New Media Created (Instant)
triggerEmit new event when a new media file is created. Useful for initiating workflows based on new media intake. See the documentation.Instantv0.0.2 -
New Recording Captured (Instant)
triggerEmit new event when a recording is captured through a Speak AI embed recorder (embed_recorder.recording_received). See the documentation.Instantv0.0.1 -
New Sentiment Analysis (Instant)
triggerEmit new event when Speak AI produces sentiment analysis for a media file (media.analyzed,media.reanalyzed). See the documentation.Instantv0.0.1 -
New Text Analyzed (Instant)
triggerEmit new event when a new text is analyzed. Useful for initiating workflows based on new text analysis. See the documentation.Instantv0.0.2
- App slug
- speak_ai
- Authentication
- OAuth
- Categories
- Artificial Intelligence (AI)
- Actions
- 6
- Triggers
- 7
- API proxy
- Not available