Skip to main content

Riders API

Base path: /api/riders
File: ayts-api/src/routes/riders.ts
Auth required: Admin (management), Rider (own operations)

GET /api/riders

List all riders. Requires admin role.

Query params: status (available | on_delivery | offline), limit, offset

Response 200:

{
"success": true,
"riders": [{
"id": "uuid",
"userId": "uuid",
"vehicleType": "motorcycle",
"plateNumber": "ABC-1234",
"status": "available",
"totalDeliveries": 47,
"user": { "firstName": "Pedro", "lastName": "Santos", "phone": "+63917..." }
}]
}

GET /api/riders/:id

Get a single rider's profile and stats.


POST /api/riders

Register a new rider. Requires admin role.

{
"userId": "uuid",
"vehicleType": "motorcycle" | "bicycle" | "car",
"plateNumber": "ABC-1234",
"licenseNumber": "...",
"serviceArea": "Cebu City"
}

Automatically updates the user's role to rider.


PATCH /api/riders/:id/status

Update rider availability status. Rider can update own status; admin can update any.

{ "status": "available" | "on_delivery" | "offline" }

GET /api/riders/:id/orders

Get delivery history for a rider.

Query params: status, limit, offset


GET /api/riders/available

Get available riders for order assignment. Requires admin role.

Returns riders with status: 'available' ordered by proximity (if location provided).