/project):
Bulk delete is not available on any resource.
Upsert requires ?update=
Both PUT /:id and PUT /bulk require an update query parameter listing which columns to overwrite when a row with a conflicting unique key already exists. Without it, the request is rejected with 400. Pass it as a repeated query parameter (not comma-separated):
Bulk update needs a filter in the query string
PATCH /bulk requires a filter as query-string parameters — a filter in the request body alone is ignored, and the request 400s with "No filter provided for updateMany":
timesheet is read-only and worker rejects hard deletes). See each resource page for details.