3.3 KiB
Granola API Sync
Sync your Granola meeting notes and full transcripts into Obsidian using the official Granola API.
No credential scraping, no keychain access, no native binaries. You paste an API key, your meetings appear in your vault.
Why this plugin
Earlier Granola↔Obsidian integrations worked by borrowing the Granola desktop app's encrypted local credentials. That approach breaks every time Granola changes its internal storage (most recently July 2026), and it needs deep OS access (keychain / DPAPI) to work at all.
Granola released an official public API in February 2026. This plugin is built on it exclusively:
- Stable, a documented, versioned API instead of reverse-engineered internals
- Private, the only thing stored is your API key, locally in your vault
- Portable, pure API calls; works on desktop and mobile
- Complete, meeting summaries and full timestamped transcripts
Requirements
A Granola Business (or Enterprise) plan. API keys are a Granola Business feature, that's Granola's gate, not this plugin's. Any workspace member on a Business plan can create a personal key.
Setup
- In the Granola desktop app: Settings → API → Create new key. Copy the
grn_...key. - In Obsidian: Settings → Granola API Sync, paste the key.
- Set your notes folder (default
Granola/) and sync interval. - Run "Granola API Sync: Sync now" from the command palette, or just wait, it syncs automatically.
Optionally set Your email so you're excluded from attendee lists and your own transcript lines are labeled with your name.
What you get
For each meeting, a note like:
---
granola_id: 874b7bfd-...
title: Weekly Planning
type: note
created: 2026-07-16T18:59:50.339Z
updated: 2026-07-16T20:06:42.499Z
attendees:
- colleague@company.com
transcript: '[[Granola/transcripts/Weekly Planning-transcript.md]]'
granola_url: https://notes.granola.ai/d/874b7bfd-...
source: granola-api-sync
---
### Meeting summary
- ...
plus a linked transcript note with the full conversation as timestamped, speaker-labeled turns.
Notes are keyed by granola_id: re-syncs update in place (Granola keeps enriching summaries for a while after a meeting ends, those updates flow in automatically). Recurring meetings with identical titles get date-suffixed filenames. Notes previously created by other Granola sync plugins that use the same granola_id convention are adopted in place, not duplicated.
Settings
| Setting | Default | Notes |
|---|---|---|
| API key | (none) | grn_..., stored locally |
| Notes folder | Granola |
created if missing |
| Sync transcripts | on | full transcript as a linked note |
| Transcripts folder | Granola/transcripts |
|
| Sync interval | 5 min | 1–60 |
| Days to look back | 7 | window kept in sync, 1–90 |
| Your email | (none) | excluded from attendees; labels your lines |
| Show sync notifications | on | errors always shown |
Privacy & disclosure
- Your API key and meeting content never leave your machine except for direct calls to
public-api.granola.ai. - No telemetry, no third-party services.
- This plugin is not affiliated with Granola. Use is subject to Granola's Terms of Service.
License
MIT © Arshia Navabi (Stratos House AI)