API REFERENCE

Timesheets API

A timesheet collects a user's time entries for one time period and carries them through submission and approval. Use this API to open timesheets, attach entries, and drive their review lifecycle.

Open a timesheet

A timesheet ties a user_id to a period_id from the Time Periods API. Create it with POST /time-sheets, then read what it contains with GET /time-sheets/{id}/entries and GET /time-sheets/{id}/summary.

curl
curl https://algapsa.com/api/v1/time-sheets \
  -H "X-API-Key: $ALGA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "usr_5b21",
    "period_id": "tp_2026_06",
    "notes": "June first half"
  }'

Attach entries

Move time onto a sheet with POST /time-sheets/{id}/add-entry and pull it back off with DELETE /time-sheets/{id}/remove-entry. The entries themselves are created through the Time Entries API.

Submit and review

A user submits with POST /time-sheets/{id}/submit. A reviewer then calls POST /time-sheets/{id}/approve, POST /time-sheets/{id}/reject, or POST /time-sheets/{id}/request-changes. An approval can be undone with POST /time-sheets/{id}/reverse-approval.

Endpoints

Every endpoint links through to its full parameters, request and response schemas, and code samples.

GET/api/v1/time-sheetsAlgaPSAList time sheetsPOST/api/v1/time-sheetsAlgaPSACreate time sheetGET/api/v1/time-sheets/{id}AlgaPSAGet time sheetPUT/api/v1/time-sheets/{id}AlgaPSAUpdate time sheetDELETE/api/v1/time-sheets/{id}AlgaPSADelete time sheetPOST/api/v1/time-sheets/{id}/add-entryAlgaPSAAdd time sheet entryPOST/api/v1/time-sheets/{id}/approveAlgaPSAApprove time sheetGET/api/v1/time-sheets/{id}/entriesAlgaPSAList time sheet entriesPOST/api/v1/time-sheets/{id}/rejectAlgaPSAReject time sheetDELETE/api/v1/time-sheets/{id}/remove-entryAlgaPSARemove time sheet entryPOST/api/v1/time-sheets/{id}/request-changesAlgaPSARequest time sheet changesPOST/api/v1/time-sheets/{id}/reverse-approvalAlgaPSAReverse time sheet approvalPOST/api/v1/time-sheets/{id}/submitAlgaPSASubmit time sheetGET/api/v1/time-sheets/{id}/summaryAlgaPSAGet time sheet summaryPOST/api/v1/time-sheets/bulkAlgaPSABulk time sheet operationGET/api/v1/time-sheets/exportAlgaPSAExport time sheetsGET/api/v1/time-sheets/searchAlgaPSASearch time sheets