Skip to main content

Granola full reference

This is the full reference documentation for the Granola agent connector.

Supported entities and actions​

The Granola connector supports the following entities and actions.

EntityActions
NotesList, Get, Context Store Search

Notes​

Notes List​

Returns a paginated list of meeting notes

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "granola",
"entity": "notes",
"action": "list"
}'

Python SDK​

await granola.notes.list()

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "notes",
"action": "list"
}'

Parameters​

Parameter NameTypeRequiredDescription
page_sizeintegerNoMaximum number of notes to return per page
cursorstringNoPagination cursor for next page
created_beforestringNoReturn notes created before this date (YYYY-MM-DD)
created_afterstringNoReturn notes created after this date (YYYY-MM-DD)
Response Schema

Records​

Field NameTypeDescription
idstring
objectstring | null
titlestring | null
ownerobject | any
created_atstring | null
updated_atstring | null
calendar_eventobject | any
attendeesarray | null
attendees[].namestring | null
attendees[].emailstring | null
folder_membershiparray | null
folder_membership[].idstring
folder_membership[].objectstring | null
folder_membership[].namestring | null
summary_textstring | null
summary_markdownstring | null
transcriptarray | null
transcript[].speakerobject | any
transcript[].textstring | null
transcript[].start_timestring | null
transcript[].end_timestring | null

Meta​

Field NameTypeDescription
cursorstring | null
has_moreboolean

Notes Get​

Get a single note by ID, including full details and optionally the transcript

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "granola",
"entity": "notes",
"action": "get",
"params": {
"note_id": "<str>"
}
}'

Python SDK​

await granola.notes.get(
note_id="<str>"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "notes",
"action": "get",
"params": {
"note_id": "<str>"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
note_idstringYesThe ID of the note
include"transcript"NoInclude the note transcript in the response
Response Schema

Records​

Field NameTypeDescription
idstring
objectstring | null
titlestring | null
ownerobject | any
created_atstring | null
updated_atstring | null
calendar_eventobject | any
attendeesarray | null
attendees[].namestring | null
attendees[].emailstring | null
folder_membershiparray | null
folder_membership[].idstring
folder_membership[].objectstring | null
folder_membership[].namestring | null
summary_textstring | null
summary_markdownstring | null
transcriptarray | null
transcript[].speakerobject | any
transcript[].textstring | null
transcript[].start_timestring | null
transcript[].end_timestring | null

Search and filter notes records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "granola",
"entity": "notes",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": "<str>"
}
}
}
}
}'

Python SDK​

await granola.notes.context_store_search(
query={"filter": {"eq": {"id": "<str>"}}}
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "notes",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": "<str>"}}}
}
}'

Parameters​

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields​

Field NameTypeDescription
idstringThe unique identifier of the note.
objectstringThe object type, always "note".
titlestringThe title of the note.
ownerobjectThe owner of the note.
created_atstringThe creation time of the note in ISO 8601 format.
updated_atstringThe last update time of the note in ISO 8601 format.
summary_textstringPlain text summary of the note.
summary_markdownstringMarkdown formatted summary of the note.
attendeesarrayThe attendees of the meeting.
calendar_eventobjectAssociated calendar event details.
folder_membershiparrayThe folder membership of the note.
transcriptarrayTranscript of the meeting.
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].idstringThe unique identifier of the note.
data[].objectstringThe object type, always "note".
data[].titlestringThe title of the note.
data[].ownerobjectThe owner of the note.
data[].created_atstringThe creation time of the note in ISO 8601 format.
data[].updated_atstringThe last update time of the note in ISO 8601 format.
data[].summary_textstringPlain text summary of the note.
data[].summary_markdownstringMarkdown formatted summary of the note.
data[].attendeesarrayThe attendees of the meeting.
data[].calendar_eventobjectAssociated calendar event details.
data[].folder_membershiparrayThe folder membership of the note.
data[].transcriptarrayTranscript of the meeting.