Authenticate requests with a Dialpad API key in the Authorization header against https://dialpad.com/api/v2
GET /api/v2/stats/calls to retrieve a batch of call records with call_id, duration, and agent fields for a specified date range
For each call_id, GET /api/v2/transcripts/{callId} to retrieve the diarized transcript including speaker labels, timestamps, moments (AI-detected highlights), and the call summary
Note that transcript data is not included in the stats export — each transcript must be fetched individually by call ID at a rate of up to 1200 requests per minute
Transform the transcript JSON (array of segment objects with speaker, start_time, text) into your warehouse schema and batch-insert via your ETL pipeline
Use webhook event subscriptions (call.ended) to trigger near-real-time transcript pulls rather than polling the stats endpoint on a schedule
Known gotchas
Transcripts must be pulled individually per call_id — there is no bulk transcript export endpoint; for high call volumes, parallelize requests but stay within the 1200/min rate limit to avoid 429 errors
The AI summary and moments fields are only populated after Dialpad's post-processing completes, which can take several minutes after call end; pulling the transcript immediately after a call.ended webhook may return an empty summary field
Analytics data exports from the Admin Portal and API share the same data pipeline — stats may lag real time by up to 30 minutes and are best treated as near-real-time rather than live data
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp