project.resource.created
A manual perk is registered under a project.
When this fires
A creator registers a manual perk on the project, from the dashboard's resource editor, POST /v1/projects/{project}/resources or the create_resource tool. A place a connector gates never arrives here: the connector links it and announces project.resource.linked instead.
The resource description is not included in the payload. Fetch it with the resource endpoint if you need it.
Caveats
project.resource.linkedis not a follow-up to this event; it creates its own resource row and carries a differentresource_id.- A manual perk is bound to no place and is not linkable; it appears once on creation and once on deletion.
Related events
project.resource.linked: a place a connector gates becomes a resource.project.resource.deleted: terminal state for a resource.
Header Parameters
t=<unix seconds>,v1=<hex>: the HMAC-SHA256 of "<t>.<raw body>" under the endpoint's secret. Verify it before acting, and refuse a t more than 300 seconds from now. During a secret rotation a v0= signature under the previous secret may precede v1=.
The event's ULID, bare. The envelope's id is the same ULID prefixed evt_, so strip the prefix before comparing. Deduplicate on it: a retry carries the same id.
The event name, the same as the envelope's type.
Always application/json.
Always Subscriby-Webhooks/1.0.
Request Body
application/json
The signed JSON envelope posted to your endpoint.
TypeScript Definitions
Use the request body type in TypeScript.
The envelope every event is delivered in.
Response Body
Example Requests
/project.resource.createdHow is this guide?