Skip to content

Shifts

Manage operator-scoped rider shifts (blocks) through the v3 Platform API.

  • Required API-client scope: shifts:read for list/get.
  • Required API-client scope: shifts:write for create/update/delete/check-in/check-out.
  • Every resource is scoped to the caller’s operator. An inaccessible shift, runner, retreat point, or territory returns 404 to prevent ID probing.
  • Times must be ISO-8601 values with offsets; start must precede stop; a shift may not exceed 12 hours.
  • Assigned runners must be active, non-archived runners owned by the caller’s operator.
  • hourly_rate and bonus_pay must be between 0 and 10,000.
  • Rider overlaps return 409.
  • Toast-clocked shifts reject time, rider, location, and delete changes with 409.
  • Check-in and check-out are separate idempotent operations.
  • Create accepts Idempotency-Key; reuse a key only when retrying the same create request.

chomp_run_id and schedule_id are only for advanced forecasting workflows. General API consumers should omit both.

Success uses { "type": "success", "data": ... }. Validation returns 400; unauthenticated returns 401; inaccessible/unknown returns 404; overlap, Toast lock, and duplicate in-progress idempotency return 409. Public responses omit rider credentials, payout IDs, Toast GUIDs, and other internal fields. Mutation audit metadata is sanitized and never persists Authorization, cookie, or API-key headers.