Skip to main content

Granola

This page contains the setup guide and reference information for the Granola source connector. Granola is an AI-powered meeting notes tool. This connector reads meeting notes from a Granola workspace using the Granola API.

Prerequisites

You need one of the following:

  • Personal API key (Beta) — available to any workspace member on a Business or Enterprise plan. On Enterprise plans, a workspace admin must enable Personal API key creation in Settings > Workspace > General.
  • Enterprise API key — available to workspace admins on an Enterprise plan.

The API endpoints and connector behavior are the same for both key types. The difference is the scope of data each key can access. See Data access by key type for details.

Setup guide

Generate an API key

Granola supports two API key types. Choose the one that matches your plan and access needs.

Personal API key (Beta)

  1. Open the Granola desktop app.
  2. Go to Settings > Connectors > API keys > Create new key.
  3. Select Personal API key and click Generate API Key.
  4. Copy the generated API key and store it securely.
note

On Enterprise plans, a workspace admin must enable Personal API key creation via the "Allow personal API keys" toggle in Settings > Workspace > General before members can create Personal API keys.

Enterprise API key

  1. Log in to your Granola workspace as an administrator.
  2. Go to Settings > API > Create new key.
  3. Select Enterprise API key and click Generate API Key.
  4. Copy the generated API key and store it securely.

Set up the Granola connector in Airbyte

  1. Enter a Name for the Granola source connector.
  2. Enter your API Key.
  3. (Optional) Enter a Start Date in YYYY-MM-DD format. The connector replicates notes created on or after this date. If you leave this field empty, the connector defaults to replicating notes from the last two years.
  4. Click Set up source and wait for the connection test to complete.

Supported sync modes

The Granola source connector supports the following sync modes:

FeatureSupported?
Full Refresh SyncYes
Full Refresh Sync - OverwriteYes
Incremental SyncYes
Incremental Sync - AppendYes

Supported streams

The Granola source connector supports the following stream:

StreamSync modePrimary key
notesIncrementalid

Notes

The notes stream retrieves meeting notes from your Granola workspace using the GET /v1/notes endpoint. Each record includes the note ID, title, object type, owner name and email, and creation timestamp. The API may return additional fields beyond those listed here, and the connector captures them automatically.

For incremental syncs, the connector uses created_at as the cursor field and fetches notes in 30-day time windows.

The API only returns notes that have a generated AI summary and transcript. Notes that are still being processed or were never summarized are excluded.

This connector does not use the single-note detail endpoint (GET /v1/notes/{note_id}), so fields available only on that endpoint, such as summaries, transcripts, attendees, calendar events, and folder membership, are not included.

Data access by key type

The set of notes returned by the API depends on the type of API key you use:

Key typeData scope
Personal API keyNotes you own, notes shared with you, and notes in private folders shared with you. For more information, refer to the Granola Personal API documentation.
Enterprise API keyAll notes in the Team space that workspace members can read. Private notes and private folders are excluded. For more information, refer to the Granola Enterprise API documentation.

Performance considerations

The Granola API enforces rate limits. For Enterprise API keys, limits are applied per workspace. For Personal API keys, limits are applied per user.

MetricValue
Burst capacity25 requests
Time window5 seconds
Sustained rate5 requests per second (300/minute)

The connector handles rate limiting automatically by retrying requests when a 429 Too Many Requests response is received.

Reference

Config fields reference

Field
Type
Property name
string
api_key
string
start_date

Changelog

Expand to review
VersionDatePull RequestSubject
0.2.0-rc.42026-05-0177698Revert default_concurrency from 6 to 5 (optimal value from tuning) and add HTTP API budget matching Granola's documented rate limit (25 req/5s burst)
0.2.0-rc.32026-04-2877645Increase default_concurrency from 5 to 6 for concurrency tuning iteration 3 (final)
0.2.0-rc.22026-04-2977551Increase default_concurrency from 4 to 5 for concurrency tuning iteration 2
0.2.0-rc.12026-04-2777067set default_concurrency=4 for concurrency tuning iteration 1 (Path A, max_rate_limit=5 req/s)
0.1.32026-04-2176632Update dependencies
0.1.22026-03-3175737Update dependencies
0.1.12026-03-2475353Update dependencies
0.1.02026-02-2574033Add detailed_notes substream with full note content via SubstreamPartitionRouter
0.0.32026-02-2473377Update dependencies
0.0.22026-02-1273306Fix pagination: set page_size to API maximum of 30 and improve stop condition
0.0.12026-02-1173238Initial release