Grain ACTION
List Recordings
Lists Grain recordings, optionally filtered by start datetime range (ISO8601), title search, participant scope, team, or meeting type. Automatically paginates and returns up to Max Results recordings. Use this to find recording IDs for Get Recording and Get Transcript. Example:
titleSearch: "Acme" returns recordings like [{"id": "pppp6666-qq77-rr88-ss99-tttt00000000", "title": "Acme Renewal Call", "start_datetime": "2026-01-05T15:00:00Z", "media_type": "video", ...}]. Pass fields to return only the fields you need instead of the full object. See the documentation- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Grain account once, then configure and run List Recordings from your backend or agent.
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: "grain-list-recordings",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
grain: { authProvisionId: "apn_xxxxxxx" },
beforeDatetime: "Before Datetime",
afterDatetime: "After Datetime",
},
})
console.log(result)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": "grain-list-recordings",
"configured_props": {
"grain": { "authProvisionId": "apn_xxxxxxx" },
"beforeDatetime": "Before Datetime",
"afterDatetime": "After Datetime"
}
}'// 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": "grain",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "grain-list-recordings",
arguments: {
beforeDatetime: "Before Datetime",
afterDatetime: "After Datetime",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
beforeDatetime Before Datetime | string | Only return recordings that started before this ISO8601 datetime. E.g. 2025-01-01T00:00:00Z. Verified against the live API to filter at day granularity — a cutoff earlier or later than a recording's calendar day works reliably, but a same-day cutoff may not exclude recordings from later that same day. Optional |
afterDatetime After Datetime | string | Only return recordings that started after this ISO8601 datetime. E.g. 2025-01-01T00:00:00Z. Verified against the live API to filter at day granularity — a cutoff earlier or later than a recording's calendar day works reliably, but a same-day cutoff may not exclude recordings from earlier that same day. Optional |
titleSearch Title Search | string | Only return recordings whose title matches this search string Optional |
participantScope Participant Scope | string | Only return recordings whose participants are all internal, or that include external participants Optional |
team Team ID | string | Only return recordings belonging to this team. Use List Teams to find team IDs. E.g. a414c333-c9fe-4fdc-9131-fb31796699b2. Optional |
meetingType Meeting Type ID | string | Only return recordings with this meeting type. Use List Meeting Types to find meeting type IDs. E.g. a97a9e83-c45e-4a46-9b1e-216ce1e69252. Optional |
maxResults Max Results | integer | Maximum number of recordings to return. Must be a positive integer. Optional |
fields Fields | string[] | Only include these fields in each returned recording (e.g. ["id", "title", "start_datetime"]). Omit fields to return the full recording object for each result. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- grain-list-recordings
- Version
- 0.1.0
- App
- Grain
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗