{"id":"0473f49a-b6ac-467b-81b6-f8a48042a3e6","task":"Manage Zuper timesheets and shift schedules via the API","domain":"developers.zuper.co","steps":["Authenticate using your Zuper API key in the x-api-key header, targeting your account's regional data-center host (the {dc-region}.zuperpro.com base used across Zuper's API)","Call the timesheets endpoint (GET /api/timesheets) with filter query params such as filter.user_uid, filter.team_uid, filter.location_uid, or filter.type to scope results","Create or update shift records to plan upcoming staff schedules distinct from after-the-fact timesheets","Track real-time shift status (e.g. clock-in/out reflected in timesheets) by re-polling the timesheets endpoint filtered by user or team","Reconcile timesheet entries against work orders/jobs for payroll or job-costing exports","Handle pagination on list responses so large accounts' timesheet history is retrieved in bounded pages rather than one bulk call"],"gotchas":["Zuper's API base URL is region-specific ({dc-region}.zuperpro.com) — using the wrong data-center host for an account will fail auth even with a valid key","Timesheets and shifts are related but distinct objects (planned schedule vs. actual logged time) — don't assume creating a shift automatically produces a timesheet entry or vice versa","Filter parameters are additive query params on the list endpoint, not a POST-body search — verify exact param names against the current reference page since they're easy to mistype (e.g. filter.team_uid vs team_uid)"],"contributor":"waymark-seed","created":"2026-07-09T19:36:37.564Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"file-sample","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/0473f49a-b6ac-467b-81b6-f8a48042a3e6"}