# Granola

> AI meeting notes platform for accessing meeting notes, transcripts, AI summaries, and workspace folders.

Source: https://cotera.co/docs/reference/tools/individual-tools/granola

---

**Authentication Type:** API Key
**Description:** AI meeting notes platform for accessing meeting notes, transcripts, AI summaries, and workspace folders.

***

## Authentication

To authenticate, you'll need a Granola API key. There are two types:

* **Personal API key** (Beta): Available to any workspace member on Business or Enterprise plans. Accesses notes you own, notes shared with you, and notes in private folders shared with you.
* **Enterprise API key**: Created by workspace admins on Enterprise plans. Accesses all notes in the Team space.

To create a key:

1. Open the Granola desktop app
2. Navigate to **Settings > Connectors > API keys**
3. Click **Create new key**
4. Choose a key type and click **Generate API Key**

***

## Notes

Operations for accessing meeting notes, summaries, and transcripts.

### List Notes

List meeting notes with optional date filters. Only returns notes that have a generated AI summary and transcript.

**Operation Type:** Query (Read)

**Parameters:**

* **createdBefore** `string` (nullable): Return notes created before this date (ISO 8601)
* **createdAfter** `string` (nullable): Return notes created after this date (ISO 8601)
* **updatedAfter** `string` (nullable): Return notes updated after this date (ISO 8601)
* **cursor** `string` (nullable): Pagination cursor from a previous response
* **pageSize** `number` (nullable): Maximum notes per page (1-30, default 10)

**Returns:**

* **notes** `array of objects`: Array of notes
  * **id** `string`: Note ID (not\_ prefix)
  * **title** `string` (nullable): Note title
  * **owner** `object`: Note owner
    * **name** `string`: Owner name
    * **email** `string`: Owner email
  * **createdAt** `string`: Creation timestamp
  * **updatedAt** `string`: Last update timestamp
* **hasMore** `boolean`: Whether more results are available
* **cursor** `string` (nullable): Cursor for next page

**Example Usage:**

```json
{
  "createdAfter": "2024-01-01T00:00:00Z",
  "createdBefore": null,
  "updatedAfter": null,
  "cursor": null,
  "pageSize": 20
}
```

### Get Note

Get full details of a specific note including AI summary, attendees, calendar event, and optional transcript.

**Operation Type:** Query (Read)

**Parameters:**

* **noteId** `string` (required): The note ID to retrieve (not\_ prefix)
* **includeTranscript** `boolean` (nullable): Include the full transcript (default false)

**Returns:**

* **note** `object`: Note details
  * **id** `string`: Note ID
  * **title** `string` (nullable): Note title
  * **owner** `object`: Note owner
    * **name** `string`: Owner name
    * **email** `string`: Owner email
  * **createdAt** `string`: Creation timestamp
  * **updatedAt** `string`: Last update timestamp
  * **webUrl** `string`: URL to view the note in Granola
  * **attendees** `array of objects`: Meeting attendees
    * **name** `string`: Attendee name
    * **email** `string`: Attendee email
  * **calendarEvent** `object` (nullable): Associated calendar event
    * **eventTitle** `string` (nullable): Calendar event title
    * **invitees** `array of objects`: Calendar invitees
    * **organiser** `string` (nullable): Event organiser
    * **scheduledStartTime** `string` (nullable): Scheduled start time
    * **scheduledEndTime** `string` (nullable): Scheduled end time
  * **folderMembership** `array of objects`: Folders this note belongs to
    * **id** `string`: Folder ID
    * **name** `string`: Folder name
    * **parentFolderId** `string` (nullable): Parent folder ID
  * **summaryText** `string`: AI-generated summary (plain text)
  * **summaryMarkdown** `string` (nullable): AI-generated summary (markdown)
  * **transcript** `array of objects` (nullable): Transcript segments (if included)
    * **speakerSource** `string`: Speaker source (microphone or speaker)
    * **speakerDiarizationLabel** `string` (nullable): Speaker label (e.g. Speaker A)
    * **text** `string`: Spoken text
    * **startTime** `number` (nullable): Start time in seconds
    * **endTime** `number` (nullable): End time in seconds

**Example Usage:**

```json
{
  "noteId": "not_1d3tmYTlCICgjy",
  "includeTranscript": true
}
```

***

## Folders

Operations for accessing workspace folder structure.

### List Folders

List workspace folders with hierarchical structure. Folders are sorted alphabetically.

**Operation Type:** Query (Read)

**Parameters:**

* **cursor** `string` (nullable): Pagination cursor from a previous response
* **pageSize** `number` (nullable): Maximum folders per page (1-30, default 10)

**Returns:**

* **folders** `array of objects`: Array of folders
  * **id** `string`: Folder ID (fol\_ prefix)
  * **name** `string`: Folder name
  * **parentFolderId** `string` (nullable): Parent folder ID, null for top-level folders
* **hasMore** `boolean`: Whether more results are available
* **cursor** `string` (nullable): Cursor for next page

**Example Usage:**

```json
{
  "cursor": null,
  "pageSize": 30
}
```

***

## Common Use Cases

**Meeting Intelligence:**

* List recent meeting notes to get a quick overview of what happened
* Pull AI summaries for rapid meeting recaps without watching recordings
* Retrieve full transcripts for detailed review or compliance documentation

**Sales & Customer Success:**

* Get notes from customer meetings with attendee context and calendar details
* Extract AI summaries and forward key insights to your CRM
* Track meeting patterns by listing notes filtered by date ranges

**Team Coordination:**

* Organize meeting notes into folders for different projects or teams
* List folder hierarchies to navigate workspace structure
* Pull meeting summaries and push them to Slack or Notion for team visibility

**Data & Reporting:**

* Aggregate meeting note data across date ranges for meeting analytics
* Export transcripts and summaries for integration with other analysis tools
* Use calendar event data to correlate meetings with outcomes

