Create webhook endpoint
Changed onRegisters an HTTPS URL to receive event deliveries. With a Workspace API key the endpoint is workspace-managed: pass scopes: ["workspace"] (the key's own scope), and folder_ids may only reference folders the key can list.
post/v1/webhook-endpoints
Request
- Base URLhttps://public-api.granola.ai
- AuthHTTP bearer
Request body
Example request
{
"url": "https://example.com/granola-webhooks",
"scopes": [
"personal",
"public"
],
"events": [
"note.access_granted",
"note.edited",
"note.generated"
],
"folder_ids": [
"fol_2mKr8fQxLp7Ta3"
]
}Response
Webhook endpoint created. The signing secret is only returned here.
Example response
{
"id": "whe_2mKr8fQxLp7Ta3",
"url": "https://example.com/granola-webhooks",
"events": [
"note.access_granted",
"note.edited",
"note.generated"
],
"folder_ids": [],
"scopes": [
"personal",
"public"
],
"created_by": {
"name": "Oat Benson",
"email": "oat@granola.ai"
},
"enabled": true,
"created_at": "2026-01-27T15:30:00Z",
"signing_secret": "whsec_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}Changes
- warning
changed the pattern of the request property
/from^fol_[a-zA-Z0-9]{14}$to^[Ff][Oo][Ll]_[a-zA-Z0-9]{14}$
- warning
- breaking
removed the enum value
note.regeneratedof the request property/ - info
the
request property default value changed fromnote.access_grantednote.editednote.generatednote.regeneratedtonote.access_grantednote.editednote.generated - info
removed the
note.regeneratedenum value from the/////response property for the response status
- breaking