Download OpenAPI specification:
Public rider API, served by the edge gateway. Bearer-token auth; shop scope derived from the token. A job is claimed (accepted) by exactly one rider — concurrent claims are resolved atomically. Only the assigned rider may advance the job (actor-ownership).
| Idempotency-Key | string <= 200 characters |
| Trace-Id | string |
| pickup required | string non-empty |
| dropoff required | string non-empty |
{- "pickup": "string",
- "dropoff": "string"
}{- "ok": true,
- "idempotent": true,
- "job": {
- "id": "job_b5b4543a7aa5df79",
- "status": "offered",
- "rider_id": "string",
- "shop_id": 0,
- "branch_id": 0,
- "pickup": "string",
- "dropoff": "string",
- "created_at_utc": "2019-08-24T14:15:22Z",
- "created_at_local": "string"
}
}| id required | string^[A-Za-z0-9_]+$ |
| Trace-Id | string |
{- "ok": true,
- "idempotent": true,
- "job": {
- "id": "job_b5b4543a7aa5df79",
- "status": "offered",
- "rider_id": "string",
- "shop_id": 0,
- "branch_id": 0,
- "pickup": "string",
- "dropoff": "string",
- "created_at_utc": "2019-08-24T14:15:22Z",
- "created_at_local": "string"
}
}First rider to accept wins. Subsequent claims are rejected as already assigned.
| id required | string^[A-Za-z0-9_]+$ |
| Idempotency-Key | string <= 200 characters |
| Trace-Id | string |
| rider_id required | string non-empty |
{- "rider_id": "string"
}{- "ok": true,
- "idempotent": true,
- "job": {
- "id": "job_b5b4543a7aa5df79",
- "status": "offered",
- "rider_id": "string",
- "shop_id": 0,
- "branch_id": 0,
- "pickup": "string",
- "dropoff": "string",
- "created_at_utc": "2019-08-24T14:15:22Z",
- "created_at_local": "string"
}
}Only the assigned rider may advance. Idempotent by target state. Illegal transitions are rejected. accepted -> picked_up -> delivered.
| id required | string^[A-Za-z0-9_]+$ |
| Trace-Id | string |
| rider_id required | string non-empty |
| to required | string (JobStatus) Enum: "offered" "accepted" "picked_up" "delivered" "cancelled" |
{- "rider_id": "string",
- "to": "offered"
}{- "ok": true,
- "idempotent": true,
- "job": {
- "id": "job_b5b4543a7aa5df79",
- "status": "offered",
- "rider_id": "string",
- "shop_id": 0,
- "branch_id": 0,
- "pickup": "string",
- "dropoff": "string",
- "created_at_utc": "2019-08-24T14:15:22Z",
- "created_at_local": "string"
}
}