Resource: ProjectDay — CRUD endpoints
Per-(project, day) approval state. An APPROVED ProjectDay closes that (project, day) to further time-entry creation by any user, and implies every existing WORK entry on that day is also APPROVED. Read-only via this resource — to approve or unapprove a project day, use the approval controller endpoints (POST /v1/approval/bulk-approve). Direct create / update / destroy on /v1/project-days is not supported.
List ProjectDay (find where)
Find a list of ProjectDay records that match the specified criteria.
Tip: All query parameters accept multiple values for array filtering — e.g. ?id=1&id=2 or ?id[]=1&id[]=2. This also works within the where parameter: ?where={"id":[1,2,3]}.
Note: The per-attribute filter parameters and the where parameter are mutually exclusive. If where is supplied, the per-attribute filters are ignored — put all filter criteria inside where instead. limit, skip, sort, and populate are unaffected.
query Parameters
dayFilter by day (YYYY-MM-DD). This is an exact match filter; for range queries (greater than, less than), use the where parameter instead
projectFilter by project ID
validationStatusApproval status. One of: 'NOTAPPROVED', 'APPROVED'. When APPROVED, no user may create new WORK entries against this (project, day), and every existing WORK entry on this (project, day) is also APPROVED. Lack of a ProjectDay record on a given day implies NOTAPPROVED.
idFilter by record ID
createdAtFilter by creation date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.sssZ). This is an exact match filter; for range queries (greater than, less than), use the where parameter instead
updatedAtFilter by last update date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.sssZ). This is an exact match filter; for range queries (greater than, less than), use the where parameter instead
whereA JSON-encoded Waterline criteria for advanced filtering. Only whitelisted criteria are supported: day, project, validationStatus, id, createdAt, updatedAt. Sub-attribute modifiers such as startsWith, >=, <=, >, <, and != are supported on any whitelisted criterion. The contains modifier is not supported on this model.
Note: If where is supplied, the per-attribute filter query parameters above are ignored — where is the entire criteria. (limit, skip, sort, and populate are unaffected.) To combine filters, put them all inside where.
e.g. ?where={"startDate":{">=":"2026-06-01","<":"2026-07-01"}}
limitThe maximum number of records to return. Defaults to 10000, capped at 50000.
skipThe number of records to skip (useful for pagination).
sortThe sort order. By default, returned records are sorted by primary key value in ascending order.
e.g. ?sort=lastName%20ASC
List ProjectDay (find where) › Responses
Responds with a paged list of ProjectDay records that match the specified criteria
Get ProjectDay (find one)
Look up the ProjectDay record with the specified ID.
path Parameters
idThe desired ProjectDay record's primary key value
Get ProjectDay (find one) › Responses
Responds with a single ProjectDay record as a JSON dictionary
Per-(project, day) approval state. An APPROVED ProjectDay closes that (project, day) to further time-entry creation by any user, and implies every existing WORK entry on that day is also APPROVED. Read-only via this resource — to approve or unapprove a project day, use the approval controller endpoints (POST /v1/approval/bulk-approve). Direct create / update / destroy on /v1/project-days is not supported.