project.* events
Project lifecycle, resource link / unlink, payment method changes.
Fires whenever a project is created, updated, archived, restored, or deleted, plus transitions on its resources and payment methods. A project's connectors have their own family, connector.*.
Events
project.created
A creator registers a new project.
project.updated
Any mutable project field changes.
project.archived
Creator archives the project.
project.restored
Archived project re-activated.
project.deleted
Project hard-deleted. Final event from that project.
project.resource.created
New resource registered under the project.
project.resource.linked
Existing Telegram chat linked to the project.
project.resource.unlinked
Resource disconnected from the project.
project.resource.deleted
Resource soft-deleted; the row is retained.
| Event | Fires when |
|---|---|
project.created | A creator registers a new project. |
project.updated | Any mutable project field changes (name, description, handle, terms, privacy). |
project.archived | The project's active flag is set to false. Existing subscriber access is not revoked. |
project.restored | An archived project is re-activated. |
project.deleted | A project is hard-deleted. Fires once, then nothing else from that project. |
project.resource.created | A manual resource is registered under the project via the REST API or MCP. Telegram channel / group / supergroup resources arrive as project.resource.linked instead. |
project.resource.linked | An existing Telegram chat is linked as a resource. |
project.resource.unlinked | A resource is disconnected from the project. |
project.resource.deleted | A resource row is soft-deleted (deleted_at is stamped; the row is retained). |
project.resource.updated | A resource's title, description or on/off switch changes, with a changes map of what moved. |
project.payment_method.updated | A payment gateway's switch, link state or credential keys change. Names the changed keys, never a value. |
project.payment_method.deleted | A payment gateway is removed from the project. |
See the dedicated pages above for full payload, field reference, and caveats per event.
Example payload
{
"id": "evt_01HX...",
"type": "project.created",
"created_at": "2026-05-18T10:05:00Z",
"api_version": "2026-05-01",
"project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
"data": {
"project": {
"id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
"name": "Research Premium",
"handle": "research-premium",
"active": true,
"team_id": "a83f0d51-4c92-4b7e-8615-2fd9e70a3c86"
}
}
}Required abilities
This family is the one exception to "one ability per family" — the resource and payment-method events are scoped separately from the project itself:
| Events | Ability |
|---|---|
project.created, project.updated, project.archived, project.restored, project.deleted | project:view |
project.resource.created, project.resource.linked, project.resource.unlinked, project.resource.updated, project.resource.deleted | project-resource:view |
project.payment_method.updated, project.payment_method.deleted | project-payment-method:view |
How is this guide?