Projects & delivery
Projects, tasks, members, rates and allocations — automate delivery and sync project data.
Project
Endpoints
| GET | /projects | Retrieves the collection of Project resources. |
| POST | /projects | Creates a Project resource. |
| GET | /projects/{id} | Retrieves a Project resource. |
| PATCH | /projects/{id} | Updates the Project resource. |
| DELETE | /projects/{id} | Removes the Project resource. |
| POST | /projects/{id}/archive | Archive this project |
| GET | /projects/{id}/cost-allocations | Retrieves a Project resource. |
| GET | /projects/{id}/documents | Retrieves a Project resource. |
| GET | /projects/{id}/logged-time | Retrieves a Project resource. |
| POST | /projects/{id}/merge | Merge this project into another |
| POST | /projects/{id}/pin | Pin this project for the current user |
| GET | /projects/{id}/profitability | Retrieves a Project resource. |
| GET | /projects/{id}/reparent-impact | How many employees lose visibility if this project is moved |
| GET | /projects/{id}/travel | Retrieves a Project resource. |
| POST | /projects/{id}/unarchive | Restore an archived project |
| POST | /projects/{id}/unpin | Unpin this project for the current user |
| GET | /projects/folder-counts | Retrieves the collection of Project resources. |
| GET | /projects/preview | Retrieves the collection of Project resources. |
| GET | /projects/reference-usage | Retrieves the collection of Project resources. |
| GET | /projects/search | Retrieves the collection of Project resources. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| parent | mixed | |
| client | string,null (iri-reference) | |
| currency | string,null (iri-reference) | |
| dateFrom | string,null (date-time) | |
| dateTo | string,null (date-time) | |
| name* | string | |
| publicDescription | stringnull | |
| type* | string | |
| clientHash | string | |
| notes | stringnull | |
| description | stringnull | Free-text description. A third free-text field alongside `publicDescription` (customer-facing, 255) and `notes` (internal): the client asked for "description" and got it as its own field rather than a rename, so nothing that reads either of the other two changes meaning (#3431). |
| reference | stringnull | Cross-system integration key — a stable, human-writable handle for joining this project to systems outside Flowtly, because the numeric id is unusable for that (#3431). NOT a display nicety: the UI prefilling it from the name is a convenience on first entry, and every property below is the contract. |
| color | string | |
| icon | stringnull | |
| priceNet | stringnull | |
| taxGroup | string,null (iri-reference) | |
| attributeSet | string,null (iri-reference) | |
| taskCreatePolicy | string | |
| taskVisibility | string | |
| projectMembers | array | |
| archivedAt | string,null (date-time) | Archiving retires a project from view without deleting it (#2896). |
| status | string | |
| flattenType | string | |
| budgets | array |
Project Member
Endpoints
| GET | /project-members | Retrieves the collection of ProjectMember resources. |
| POST | /project-members | Creates a ProjectMember resource. |
| GET | /project-members/{id} | Retrieves a ProjectMember resource. |
| PATCH | /project-members/{id} | Updates the ProjectMember resource. |
| DELETE | /project-members/{id} | Removes the ProjectMember resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| employee* | string (iri-reference) | |
| project* | string (iri-reference) | |
| position | string | |
| positionName | string | |
| notify | boolean | Whether to send this person the "project assigned" notification (#3955). |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possiblePositions | string |
Project Task
Endpoints
| POST | /project_tasks/{id}/subscribe | Creates a ProjectTask resource. |
| POST | /project_tasks/{id}/unsubscribe | Creates a ProjectTask resource. |
| GET | /project-tasks | Retrieves the collection of ProjectTask resources. |
| POST | /project-tasks | Creates a ProjectTask resource. |
| GET | /project-tasks/{id} | Retrieves a ProjectTask resource. |
| PATCH | /project-tasks/{id} | Updates the ProjectTask resource. |
| DELETE | /project-tasks/{id} | Removes the ProjectTask resource. |
| GET | /project-tasks/picker | Retrieves the collection of ProjectTask resources. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| project | string (iri-reference) | |
| requester | string,null (iri-reference) | |
| list | string,null (iri-reference) | |
| status | string (iri-reference) | |
| title | string | |
| description | stringnull | |
| priority* | string | |
| startAt | string,null (date-time) | |
| dueAt | string,null (date-time) | |
| completedAt | string,null (date-time) | |
| position | integer | |
| recurrenceRule | string,null (iri-reference) | |
| recurrenceParent | string,null (iri-reference) | |
| isTemplate | boolean | |
| assignees | array | |
| subtasks | array | The task's checklist, as STRUCTURED items rather than prose (#2210). |
| subscribers | array | |
| asset | string,null (iri-reference) | |
| transaction | string,null (iri-reference) | THE FINANCE DOCUMENT THIS TASK IS ABOUT (#3532). |
| transactionAttachment | string,null (iri-reference) | |
| source | string | |
| raisedBy | string,null (iri-reference) | ZGŁASZAJĄCY — the COLLEAGUE who raised this task (#2210). |
| reporterName | stringnull | |
| reporterEmail | stringnull | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possiblePriorities | string | |
| statusName | stringnull | Slim status accessor for the WorkTime embed — keeps the API payload small (single string) instead of nesting the full ProjectTaskStatus resource on every WorkTime row. |
| template | boolean | |
| subtaskProgress | array | How many of the checklist's items are done, and how many there are (#2210). |
Project Price
Endpoints
| GET | /project-prices | Retrieves the collection of ProjectPrice resources. |
| POST | /project-prices | Creates a ProjectPrice resource. |
| GET | /project-prices/{id} | Retrieves a ProjectPrice resource. |
| PATCH | /project-prices/{id} | Updates the ProjectPrice resource. |
| DELETE | /project-prices/{id} | Removes the ProjectPrice resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| project* | string,null (iri-reference) | |
| property | string,null (iri-reference) | |
| attributeRule* | string (iri-reference) | |
| amount* | string | |
| currency* | string (iri-reference) | |
| dateFrom* | string,null (date-time) | |
| note | stringnull |
Project Transaction
Endpoints
| GET | /project-transactions | Retrieves the collection of ProjectTransaction resources. |
| POST | /project-transactions | Creates a ProjectTransaction resource. |
| PATCH | /project-transactions/{id} | Updates the ProjectTransaction resource. |
| DELETE | /project-transactions/{id} | Removes the ProjectTransaction resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| project* | string,null (iri-reference) | |
| transaction* | string,null (iri-reference) | |
| amount | stringnull | |
| note | stringnull |
Employee Project Rate
Endpoints
| GET | /people-project-rates | Retrieves the collection of EmployeeProjectRate resources. |
| POST | /people-project-rates | Creates a EmployeeProjectRate resource. |
| GET | /people-project-rates/{id} | Retrieves a EmployeeProjectRate resource. |
| PATCH | /people-project-rates/{id} | Updates the EmployeeProjectRate resource. |
| DELETE | /people-project-rates/{id} | Removes the EmployeeProjectRate resource. |
| POST | /people-project-rates/{id}/extend | Creates a EmployeeProjectRate resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| employee* | string (iri-reference) | |
| project* | string (iri-reference) | |
| position | stringnull | |
| positionRef | string,null (iri-reference) | |
| rate* | number | |
| currency | string (iri-reference) | |
| dateFrom* | string,null (date-time) | Nullable, to match the column, the property, the getter and {@see \App\Service\App\WorkTime\Report\EntryRateResolver::selectEffective()}, all four of which already admit a null left edge. Only this setter and isActive() refused it, which is the same asymmetry: `setDateTo()` and the `dateTo` half of isActive() both handle null, and the `dateFrom` half of neither did (#3159). |
| dateTo | string,null (date-time) | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| active | boolean | Does this rate apply on the given date? |
| relatedEmployee | string,null (iri-reference) |
Project Task Comment
Endpoints
| GET | /project-task-comments | Retrieves the collection of ProjectTaskComment resources. |
| POST | /project-task-comments | Creates a ProjectTaskComment resource. |
| GET | /project-task-comments/{id} | Retrieves a ProjectTaskComment resource. |
| PATCH | /project-task-comments/{id} | Updates the ProjectTaskComment resource. |
| DELETE | /project-task-comments/{id} | Removes the ProjectTaskComment resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| task | string (iri-reference) | |
| employee | string (iri-reference) | |
| content | string | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) |
Project Task List
Endpoints
| GET | /project-task-lists | Retrieves the collection of ProjectTaskList resources. |
| POST | /project-task-lists | Creates a ProjectTaskList resource. |
| GET | /project-task-lists/{id} | Retrieves a ProjectTaskList resource. |
| PATCH | /project-task-lists/{id} | Updates the ProjectTaskList resource. |
| DELETE | /project-task-lists/{id} | Removes the ProjectTaskList resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| project | string (iri-reference) | |
| name | string | |
| position | integer | |
| isDefault | boolean | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| default | boolean |
Project Task Status
Endpoints
| GET | /project-task-statuses | Retrieves the collection of ProjectTaskStatus resources. |
| POST | /project-task-statuses | Creates a ProjectTaskStatus resource. |
| GET | /project-task-statuses/{id} | Retrieves a ProjectTaskStatus resource. |
| PATCH | /project-task-statuses/{id} | Updates the ProjectTaskStatus resource. |
| DELETE | /project-task-statuses/{id} | Removes the ProjectTaskStatus resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| name | string | |
| color | string | |
| position | integer | |
| isClosed | boolean | READABLE ACCESSOR, and it is not a duplicate of {@see isClosed()} (#3720). |
| isStarted | boolean | Marks a status as meaning "work has begun", exactly parallel to {@see $isClosed}. Not mutually exclusive with it or with itself across rows: like isClosed, more than one status may carry isStarted=true at once (e.g. "In progress" and "In review" could both count as started), and there is no DB or app-level uniqueness enforcement — same as isClosed today. |
| isDefault | boolean | READABLE ACCESSOR, and it is not a duplicate of {@see isDefault()} (#3720). |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| closed | boolean | |
| started | boolean | |
| default | boolean | |
| deleted | boolean | Check if the entity has been soft deleted. |
Project Task Recurrence Rule
Endpoints
| GET | /project-task-recurrence-rules | Retrieves the collection of ProjectTaskRecurrenceRule resources. |
| POST | /project-task-recurrence-rules | Creates a ProjectTaskRecurrenceRule resource. |
| GET | /project-task-recurrence-rules/{id} | Retrieves a ProjectTaskRecurrenceRule resource. |
| PATCH | /project-task-recurrence-rules/{id} | Updates the ProjectTaskRecurrenceRule resource. |
| DELETE | /project-task-recurrence-rules/{id} | Removes the ProjectTaskRecurrenceRule resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| project | string (iri-reference) | |
| frequency | string | |
| interval | integer | |
| weekday | integernull | |
| monthDay | integernull | |
| timeOfDay | string,null (date-time) | |
| timezone | string | |
| nextRunAt | string,null (date-time) | |
| endAt | string,null (date-time) | |
| maxOccurrences | integernull | |
| occurrencesGenerated | integer | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possibleFrequencies | string |
Project People Plan
Endpoints
| GET | /project-people-plans | Retrieves the collection of ProjectPeoplePlan resources. |
| POST | /project-people-plans | Creates a ProjectPeoplePlan resource. |
| GET | /project-people-plans/{id} | Retrieves a ProjectPeoplePlan resource. |
| PATCH | /project-people-plans/{id} | Updates the ProjectPeoplePlan resource. |
| DELETE | /project-people-plans/{id} | Removes the ProjectPeoplePlan resource. |
| GET | /projects/{projectId}/people-plans | Retrieves the collection of ProjectPeoplePlan resources. |
Schema fields
| Field | Type | Description |
|---|---|---|
| project | string (iri-reference) | |
| periodKey | string | |
| forecastHours | integernull | |
| overrideRatePerHour | stringnull |
Project Allocation Cascade Rule
Endpoints
| GET | /project-allocation-cascade-rules | Retrieves the collection of ProjectAllocationCascadeRule resources. |
| POST | /project-allocation-cascade-rules | Creates a ProjectAllocationCascadeRule resource. |
| GET | /project-allocation-cascade-rules/{id} | Retrieves a ProjectAllocationCascadeRule resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| name | string | |
| assetAttribute | string (iri-reference) | Attribute carried by Property (Asset) entities. Drives the share each selected Asset takes of the total cost. For Juwentus on Horizon this is "Ochrona" (5/13/23.98/23.42/34.60 across the 5 buildings, summing to 100). |
| projectAttribute | string (iri-reference) | Attribute carried by tenant Projects. Drives the within-building split. For Horizon's standard rules this is "Powierzchnia" — each tenant's m² inside its building. |
Project Transaction Attachment
Endpoints
| GET | /project-transaction-attachments | Retrieves the collection of ProjectTransactionAttachment resources. |
| POST | /project-transaction-attachments | Creates a ProjectTransactionAttachment resource. |
| PATCH | /project-transaction-attachments/{id} | Updates the ProjectTransactionAttachment resource. |
| DELETE | /project-transaction-attachments/{id} | Removes the ProjectTransactionAttachment resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| project | string (iri-reference) | |
| transactionAttachment | string (iri-reference) | |
| netAmount | integernull | |
| excluded | booleannull | A client the operator DELIBERATELY struck from this split (#3315). |
| line | string,null (iri-reference) |
Project Meter Price
Endpoints
| GET | /project-meter-prices | Retrieves the collection of ProjectMeterPrice resources. |
| POST | /project-meter-prices | Creates a ProjectMeterPrice resource. |
| PATCH | /project-meter-prices/{id} | Updates the ProjectMeterPrice resource. |
| DELETE | /project-meter-prices/{id} | Removes the ProjectMeterPrice resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| project* | string (iri-reference) | |
| utilityType* | string | |
| meter | string,null (iri-reference) | |
| unitPrice* | string | |
| currency | string,null (iri-reference) | |
| effectiveFrom | string,null (date-time) |
Project Cost Move
Endpoints
| POST | /project-costs/move | Creates a ProjectCostMove resource. |
Project Template
Endpoints
| GET | /project-templates | Retrieves the collection of ProjectTemplate resources. |
| POST | /project-templates | Creates a ProjectTemplate resource. |
| GET | /project-templates/{id} | Retrieves a ProjectTemplate resource. |
| PATCH | /project-templates/{id} | Updates the ProjectTemplate resource. |
| DELETE | /project-templates/{id} | Removes the ProjectTemplate resource. |
| POST | /project-templates/{id}/instantiate | Creates a ProjectTemplate resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| name* | string | |
| structure | object | |
| isDefault | boolean | The org's built-in default template (#3026): applied to a project created with no template explicitly chosen. Read-only over the API — not in the create/update groups — because a user declaring their own template "the default" would leave more than one row with this flag true, and nothing enforces the resulting ambiguity away. Set only by ProjectDefaultTemplateProvisioner, which lazily creates this row once per org and never touches it again. |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| default | boolean | |
| deleted | boolean | Check if the entity has been soft deleted. |
Project Task Subtask
Endpoints
| GET | /project-task-subtasks | Retrieves the collection of ProjectTaskSubtask resources. |
| POST | /project-task-subtasks | Creates a ProjectTaskSubtask resource. |
| GET | /project-task-subtasks/{id} | Retrieves a ProjectTaskSubtask resource. |
| PATCH | /project-task-subtasks/{id} | Updates the ProjectTaskSubtask resource. |
| DELETE | /project-task-subtasks/{id} | Removes the ProjectTaskSubtask resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | integer | |
| task | string (iri-reference) | |
| title* | string | Never empty. An item with no text is not a checklist entry, it is a stray row that renders as a checkbox beside nothing — and the archetype's permanent `.ck.add` row means an accidental blank submit is easy to make. |
| done | boolean | |
| position | integer | Author-arranged order within the task. Ties break on id, via the collection's own ordering. |