A project is the top-level container for a real-estate development. It groups units and stores shared metadata (location, price band, amenities).
List projects
Scope: projects:read. Paginated.
Query parameters
Response 200
Paginated data[]. Each item includes a unitCount derived field.
Create a project
Scope: projects:write.
Request body
Only name is required. You can include an optional units[] array to create initial units in the same call.
status: draft | published | archived (default draft).
Response 201
Webhook side effects
A project.created event is dispatched. If units[] was provided, a unit.created event also fires for each unit.
Get a project
Scope: projects:read. Includes the embedded units[] array with each unit’s id, name, type, price, area, status, and timestamps.
Update a project
Scope: projects:write. All fields optional, must provide at least one.
Webhook side effects
A project.updated event is dispatched.
Delete a project
Scope: projects:write.
Deleting a project also deletes all its units. This is irreversible.
Response 200
Webhook side effects
A project.deleted event is dispatched.