# Get Recording — Grain

> Fetches a specific recording by its ID from Grain, returning its metadata (title, times, URL, tags, teams, meeting type). Enable the optional include props to add highlights, participants, AI action items, AI summary, calendar event…

- Key: `grain-get-recording`
- Type: Action (Read-only)
- Version: 1.0.2
- App: Grain (`grain`) — https://pipedream.com/apps/grain.md
- This page (HTML): https://pipedream.com/apps/grain/actions/get-recording
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/grain/actions/get-recording/get-recording.mjs

## Description

Fetches a specific recording by its ID from Grain, returning its metadata (title, times, URL, tags, teams, meeting type). Enable the optional include props to add highlights, participants, AI action items, AI summary, calendar event, HubSpot data, or screenshares to the response. Use **List Recordings** to find recording IDs, and **Get Transcript** to fetch the full transcript. Example: `recordingId: "pppp6666-qq77-rr88-ss99-tttt00000000"` with `aiSummary: true` returns the recording's metadata plus `{"ai_summary": {"text": "..."}}`. [See the documentation](https://developers.grain.com/#get-recording)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `recordingId` | `string` | Yes | The ID of the recording to fetch. Use List Recordings to find recording IDs. |
| `highlights` | `boolean` | No | Whether to include the recording's highlights |
| `participants` | `boolean` | No | Whether to include the recording's participants |
| `aiActionItems` | `boolean` | No | Whether to include the recording's AI action items |
| `aiSummary` | `boolean` | No | Whether to include the recording's AI summary |
| `calendarEvent` | `boolean` | No | Whether to include the recording's calendar event data |
| `hubspot` | `boolean` | No | Whether to include associated HubSpot data |
| `screenshares` | `boolean` | No | Include the recording's screenshare ranges in the response |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
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 accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_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-get-recording",
  arguments: {
    recordingId: "Recording ID",
    highlights: true,
  },
})
```

**TypeScript**

```ts
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-get-recording",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    grain: { authProvisionId: "apn_xxxxxxx" },
    recordingId: "Recording ID",
    highlights: true,
  },
})

console.log(result)
```

**cURL**

```bash
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-get-recording",
    "configured_props": {
      "grain": { "authProvisionId": "apn_xxxxxxx" },
      "recordingId": "Recording ID",
      "highlights": true
    }
  }'
```

---

- App: https://pipedream.com/apps/grain.md · All apps: https://pipedream.com/apps
