Early bird discounts live! Claim your offer

project.created

A creator registers a new project.

When this fires

A creator registers a new project. The event lands the moment the new project becomes available for further configuration.

Required ability

project:view — token must carry this at mint time to subscribe an endpoint to this event.

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"
    }
  }
}

Field reference

FieldTypeNotes
idstring ULIDUnique event id, prefixed evt_. Use for idempotent processing.
typestringAlways project.created for this event.
created_atISO 8601 timestampServer-side emission time.
api_versionstringWebhook API contract version.
project_idstring UUIDProject this event belongs to.
data.project.idstring UUIDProject identifier; matches the top-level project_id.
data.project.namestringDisplay name shown in the dashboard and on my.subscriby.net/....
data.project.handlestringURL slug for the public landing page.
data.project.activebooleanAlways true at creation; flips on archive / restore.
data.project.team_idstring UUIDTeam that owns the project (a personal team for solo creators).

The project description is not included in the snapshot. Fetch it with GET /v1/projects/{project} if you need it.

Caveats

  • Use the SB-Event-Id header to dedupe deliveries — it carries the same ULID as id, without the evt_ prefix.
  • project.created fires only for projects created through the REST API or MCP; projects created in the dashboard emit no project.created, so it is not guaranteed to be the first event you see for a project_id. Subsequent events on the same project may interleave.
  • Archived/restored states are a separate event pair — listen for project.archived and project.restored rather than relying on data.project.active flipping inside project.updated.

How is this guide?

On this page

Subscriby is a product designed by you — for you.

No boardroom full of executives deciding what we ships next. Our roadmap always shaped by you with your feedback.

Share feedback or a request