Skip to content

Get free shifts (categorized)

GET {{baseUrl}}/shifts/free/categorized

Lists open shifts the driver could claim, pre-sorted into buckets. Source: models/shifts.ts categorizedFreeShifts().

Response fields:

  • hot — free shifts flagged as high-priority/urgent need.
  • recommended — free shifts that don’t overlap the driver’s recent shift history and are suggested for them.
  • all — every free shift available in the driver’s territory (deduped per retreat point, filtered to their transportation mode if the territory restricts shift roles).

Each entry is a Shift row (same shape as “Get upcoming shifts”).

Terminal window
curl --request GET 'https://api.firstdelivery.com/api/shifts/free/categorized'
{
"hot": [
{
"id": "<shift-id-1>",
"start": "2026-06-23T16:00:00.000Z",
"stop": "2026-06-23T20:00:00.000Z",
"retreat_point": "c1d2e3f4-1111-4a2b-9c3d-4e5f6a7b8c9d",
"hourly_rate": 22,
"length_hours": 4
}
],
"recommended": [
{
"id": "<shift-id-2>",
"start": "2026-06-24T16:00:00.000Z",
"stop": "2026-06-24T20:00:00.000Z",
"retreat_point": "c1d2e3f4-1111-4a2b-9c3d-4e5f6a7b8c9d",
"hourly_rate": 18,
"length_hours": 4
}
],
"all": [
{
"id": "<shift-id-1>",
"start": "2026-06-23T16:00:00.000Z",
"stop": "2026-06-23T20:00:00.000Z",
"hourly_rate": 22
},
{
"id": "<shift-id-2>",
"start": "2026-06-24T16:00:00.000Z",
"stop": "2026-06-24T20:00:00.000Z",
"hourly_rate": 18
}
]
}