A time entry records effort against a piece of work — a ticket, a project task, or another work item. Use this API to log entries directly, run live tracking sessions, and move entries through approval.
Point an entry at the work it belongs to with work_item_type and work_item_id, then describe the time with started_at, ended_at, duration_minutes, and billable_minutes. To attribute the work to someone other than the calling user, set user_id.
curl https://algapsa.com/api/v1/time-entries \
-H "X-API-Key: $ALGA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"work_item_type": "ticket",
"work_item_id": "tk_9c41",
"started_at": "2026-06-02T14:00:00Z",
"ended_at": "2026-06-02T15:30:00Z",
"billable_minutes": 90,
"notes": "On-site VPN repair"
}'Instead of posting a finished entry, start a clock with POST /time-entries/start-tracking and close it with POST /time-entries/stop-tracking/{sessionId}, which writes the resulting entry. Check what is running with GET /time-entries/active-session.
Entries move through review with POST /time-entries/approve and POST /time-entries/request-changes. For day-to-day reads, GET /time-entries lists and filters, GET /time-entries/search runs a text query, and GET /time-entries/stats returns totals. The /time-entries/bulk route handles create, update, and delete for many entries at once.
Every endpoint links through to its full parameters, request and response schemas, and code samples.
GET/api/v1/time-entriesAlgaPSAList time entriesPOST/api/v1/time-entriesAlgaPSACreate time entryGET/api/v1/time-entries/{id}AlgaPSAGet time entryPUT/api/v1/time-entries/{id}AlgaPSAUpdate time entryDELETE/api/v1/time-entries/{id}AlgaPSADelete time entryGET/api/v1/time-entries/active-sessionAlgaPSAGet active tracking sessionPOST/api/v1/time-entries/approveAlgaPSAApprove time entriesPOST/api/v1/time-entries/bulkAlgaPSABulk create time entriesPUT/api/v1/time-entries/bulkAlgaPSABulk update time entriesDELETE/api/v1/time-entries/bulkAlgaPSABulk delete time entriesGET/api/v1/time-entries/exportAlgaPSAExport time entriesPOST/api/v1/time-entries/request-changesAlgaPSARequest time entry changesGET/api/v1/time-entries/searchAlgaPSASearch time entriesPOST/api/v1/time-entries/start-trackingAlgaPSAStart time trackingGET/api/v1/time-entries/statsAlgaPSAGet time entry statsPOST/api/v1/time-entries/stop-tracking/{sessionId}AlgaPSAStop time trackingGET/api/v1/time-entries/templatesAlgaPSAList time entry templates