prospect.* or list.*, or to everything with *. GET /v1/webhooks/events returns this list with a full example request body for each type.data.prospect is present on every one of these and matches GET /v1/prospects/{id}.| Type | When | Extra data fields |
prospect.added | A record became a prospect, from any surface | |
prospect.lifecycle_changed | Moved between active, opportunity, and archived | previous_lifecycle |
prospect.favorited | A team member starred it | |
prospect.unfavorited | A team member removed their star | |
prospect.note_added | A note was added | note (id, body, author, created_at) |
prospect.note_edited | A note was edited | note |
prospect.note_removed | A note was removed | note_id |
prospect.file_added | A file was attached | file (id, file_name, file_size, content_type, download_url valid 24 hours) |
prospect.file_removed | A file was removed | file_id |
prospect.photo_added | A photo was added to the property | photo (id, url, photo_type, caption, location) |
prospect.photo_removed | A photo was removed | photo_id |
prospect.tags_changed | Tags were added or removed | added, removed (id and name each) |
| Type | When | data fields |
list.item_added | A property or person was added to a list | list, item |
list.item_removed | A property or person was removed from a list | list, item |
actor{ "type": "user", "user_id": 12, "name": "Jordan Lee" } for a team member, { "type": "api_key", "api_key_id": "key_..." } for an API client, or { "type": "system" } for a background job such as a list build. source says where the change came from: app, api, cli, mcp, zapier, list, and so on.2xx in time, so treat id as the idempotency key: if you have seen evt_10442, skip it.