Create, update, activate and cancel journeys and read their status, boarding, driver, vehicle, QR and monitoring data.
GET /api/v1/journeys/get_journey get_journey journeys:read Tier a ₦100.00
Returns the full API view of one journey: reference, state, schedule, seats, fare and driver and vehicle fields.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response A draft journey owned by the linked platform account.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"reference": "JRN-4F7K2Q",
"route_id": "3c2b1a0f-9e8d-4c7b-a6f5-e4d3c2b1a0f9",
"state": "draft",
"departure_datetime": "2026-09-28T08:30:00.000Z",
"estimated_arrival_datetime": "2026-09-28T10:45:00.000Z",
"available_seats": 3,
"fare_amount": 4500,
"currency": "NGN",
"driver_name": "Adaeze Okafor",
"driver_phone": "+2348030000000",
"vehicle_type": "bus",
"vehicle_colour": "White",
"created_at": "2026-09-26T09:12:44.120Z",
"updated_at": "2026-09-26T09:12:44.120Z"
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/get_journey_status get_journey_status journeys:read Tier a ₦100.00
Returns the lightweight status of one journey: current state machine state, departure time and last update timestamp.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response Current lifecycle state for the journey.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"state": "active",
"previous_state": "boarding",
"updated_at": "2026-09-28T08:35:00.000Z"
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/get_driver_information get_driver_information journeys:read Tier a ₦100.00
Returns the assigned driver name and contact phone recorded on one journey.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response Driver assigned to the journey.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"driver_name": "Adaeze Okafor",
"driver_phone": "+2348030000000",
"licence_number": "FGN-4471209",
"licence_expires_at": "2027-03-14"
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/get_vehicle_information get_vehicle_information journeys:read Tier a ₦100.00
Returns the assigned vehicle type and colour recorded on one journey.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response Vehicle assigned to the journey.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"vehicle_type": "bus",
"vehicle_colour": "White",
"plate_number": "LSD-482AA",
"seat_capacity": 14
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/retrieve_basic_journey_metadata retrieve_basic_journey_metadata journeys:read Tier a ₦100.00
Returns the key/value metadata records attached to one journey, up to 100 records.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response Core metadata page for the journey.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"reference": "JRN-4F7K2Q",
"state": "active",
"departure_datetime": "2026-09-28T08:30:00.000Z",
"estimated_arrival_datetime": "2026-09-28T10:45:00.000Z",
"fare_amount": 4500,
"currency": "NGN",
"available_seats": 3
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/get_journey_summary get_journey_summary journeys:read Tier a ₦125.00
Returns an aggregate summary of one journey: passenger participation counts and checkpoint progress.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response Operational summary combining state, route progress and participation.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"reference": "JRN-4F7K2Q",
"state": "active",
"departure_datetime": "2026-09-28T08:30:00.000Z",
"estimated_arrival_datetime": "2026-09-28T10:45:00.000Z",
"available_seats": 3,
"fare_amount": 4500,
"currency": "NGN",
"checkpoints": {
"planned_total": 4,
"completed": 2
},
"active_safety_events": 1
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/get_boarding_summary get_boarding_summary journeys:read Tier a ₦125.00
Returns passenger boarding participation counts for one journey, grouped by participation status.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response Boarding counts and per-stop participation.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"reserved": 12,
"boarded": 9,
"completed": 1,
"cancelled": 0,
"boarding_rate": 0.75
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/list_journeys list_journeys journeys:read Tier a ₦150.00
Returns a paginated list of journeys owned by the linked ride-owner account, newest first, with an exact total count.
Parameters Name In Type Required Description limit query integer No Maximum number of journeys to return; clamped to 1-100, default 25. offset query integer No Number of journeys to skip for pagination; default 0.
Idempotency Safe read; no side effects.
Response Journeys owned by the linked platform account, newest first.
{
"data": {
"journeys": [
{
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"reference": "JRN-4F7K2Q",
"route_id": "3c2b1a0f-9e8d-4c7b-a6f5-e4d3c2b1a0f9",
"state": "draft",
"departure_datetime": "2026-09-28T08:30:00.000Z",
"estimated_arrival_datetime": "2026-09-28T10:45:00.000Z",
"available_seats": 3,
"fare_amount": 4500,
"currency": "NGN",
"driver_name": "Adaeze Okafor",
"driver_phone": "+2348030000000",
"vehicle_type": "bus",
"vehicle_colour": "White",
"created_at": "2026-09-26T09:12:44.120Z",
"updated_at": "2026-09-26T09:12:44.120Z"
}
],
"total": 48,
"limit": 100
}
}Errors Code HTTP Cause INVALID_REQUEST 400 limit or offset is present but not an integer.
Next steps GET /api/v1/journeys/retrieve_basic_journey_event_reference retrieve_basic_journey_event_reference journeys:read Tier a ₦150.00
Returns the most recent state transitions and checkpoint events for one journey, 10 of each.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response Lifecycle events recorded for the journey.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"events": [
{
"event_type": "journey.created",
"occurred_at": "2026-09-26T09:12:44.120Z"
},
{
"event_type": "journey.activated",
"occurred_at": "2026-09-28T08:30:05.000Z"
}
]
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/retrieve_boarding_state retrieve_boarding_state journeys:read Tier b ₦200.00
Returns boarding participation counts and the number of active QR codes for one journey.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response Per-passenger boarding state for the journey.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"passengers": [
{
"passenger_journey_id": "c1d2e3f4-5555-4eee-9fff-6a7b8c9d0e1f",
"passenger_name": "Chidi Nwosu",
"status": "boarded",
"boarded_at": "2026-09-28T08:31:00.000Z"
},
{
"passenger_journey_id": "d2e3f4a5-6666-4fff-8aaa-7b8c9d0e1f2a",
"passenger_name": "Fatima Bello",
"status": "reserved",
"boarded_at": null
}
]
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/retrieve_passenger_participation_summary retrieve_passenger_participation_summary journeys:read Tier b ₦200.00
Returns the total and per-status passenger participation counts for one journey.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response Participation totals grouped by status.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"passengers": 12,
"by_status": {
"reserved": 2,
"boarded": 9,
"completed": 1,
"cancelled": 0
}
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/retrieve_qr_access_metadata retrieve_qr_access_metadata journeys:read Tier b ₦200.00
Returns QR code lifecycle metadata (status and timestamps) for one journey, up to 50 codes. Raw QR tokens are never exposed through the API.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response QR boarding access metadata for the journey.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"active_codes": 9,
"issued_total": 12,
"revoked_total": 1
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps GET /api/v1/journeys/retrieve_journey_monitoring_state retrieve_journey_monitoring_state journeys:read Tier b ₦225.00
Returns the current state, the latest recorded checkpoint and passenger participation counts for one journey.
Parameters Name In Type Required Description journey_id query uuid Yes Identifier of the owned journey.
Idempotency Safe read; no side effects.
Response Monitoring state for an active journey.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"state": "active",
"monitoring_active": true,
"checkpoints": {
"planned_total": 4,
"completed": 2,
"next_checkpoint_id": "b1a2c3d4-1111-4aaa-8bbb-2c3d4e5f6a7b"
},
"active_safety_events": 1,
"latest_orion_assessment": {
"assessment_id": "a9b8c7d6-3333-4ccc-8ddd-4e5f6a7b8c9d",
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"risk_level": "low",
"summary": "Journey is progressing on schedule. All recorded checkpoints are completed and no safety events are active.",
"created_at": "2026-09-28T09:45:00.000Z"
}
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or not a UUID. RESOURCE_NOT_FOUND 404 No journey with this id is owned by the linked ride-owner account.
Next steps POST /api/v1/journeys/update_journey update_journey journeys:write Tier b ₦225.00
Update editable journey details such as departure time, seat count, fare, driver and vehicle information.
Parameters Name In Type Required Description journey_id body string (uuid) Yes Identifier of the journey to update. departure_datetime body string No New planned departure time for the journey. available_seats body number No New number of seats offered on the journey. fare_amount body number No New fare per passenger in naira. driver_name body string No New display name of the assigned driver. driver_phone body string No New contact phone number of the assigned driver. vehicle_type body string No New type or model description of the vehicle. vehicle_colour body string No New colour of the vehicle.
State constraints The journey must be in the draft or planned state; any other state returns a conflict. At least one updatable field must be supplied; an empty patch is rejected. Idempotency Not idempotent — retrying may repeat the effect.
Response A draft or planned journey after a successful update.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"reference": "JRN-4F7K2Q",
"route_id": "3c2b1a0f-9e8d-4c7b-a6f5-e4d3c2b1a0f9",
"state": "draft",
"departure_datetime": "2026-09-28T08:30:00.000Z",
"estimated_arrival_datetime": "2026-09-28T10:45:00.000Z",
"available_seats": 3,
"fare_amount": 4500,
"currency": "NGN",
"driver_name": "Adaeze Okafor",
"driver_phone": "+2348030000000",
"vehicle_type": "bus",
"vehicle_colour": "White",
"created_at": "2026-09-26T09:12:44.120Z",
"updated_at": "2026-09-26T09:12:44.120Z"
}
}Errors Code HTTP Cause INVALID_REQUEST 400 The body is not a JSON object, journey_id is not a valid resource identifier, an optional field has the wrong type, or no updatable field is supplied. CAPABILITY_NOT_AUTHORIZED 403 The API key lacks the journeys:write scope or the organization is not linked to an ORN platform account. FORBIDDEN 403 Write operations are refused for API keys issued in the sandbox environment. RESOURCE_NOT_FOUND 404 No journey owned by the requesting organization matches the supplied identifier. CONFLICT 409 The journey is not in the draft or planned state so it cannot be updated.
Events journey.updated
Next steps POST /api/v1/journeys/cancel_journey cancel_journey journeys:write Tier b ₦225.00
Cancel an owned journey by transitioning it to the cancelled state through the authoritative state machine.
Parameters Name In Type Required Description journey_id body string (uuid) Yes Identifier of the journey to cancel.
State constraints The transition to cancelled is allowed only from draft, planned, orion_analysis, activated, boarding, active, paused, arriving or awaiting_review. Completed, cancelled and archived journeys can no longer be cancelled. The state change is applied through the authoritative journey state machine, which records the state history and an audit trail entry. Idempotency Not idempotent — retrying may repeat the effect.
Response State transition recorded by the cancellation.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"previous_state": "planned",
"state": "cancelled"
}
}Errors Code HTTP Cause INVALID_REQUEST 400 The body is not a JSON object or journey_id is not a valid resource identifier. CAPABILITY_NOT_AUTHORIZED 403 The API key lacks the journeys:write scope or the organization is not linked to an ORN platform account. FORBIDDEN 403 Write operations are refused for API keys issued in the sandbox environment. RESOURCE_NOT_FOUND 404 No journey owned by the requesting organization matches the supplied identifier. CONFLICT 409 The transition to cancelled is not valid for the current journey state such as completed or archived.
Events journey.cancelled
Next steps POST /api/v1/journeys/create_journey create_journey journeys:write Tier b ₦250.00 Requires Active paid subscription required on the linked ride-owner platform account subscription
Create a new journey on a route owned by the linked platform account, starting in the draft state with planned checkpoints seeded.
Parameters Name In Type Required Description route_id body string (uuid) Yes Identifier of a journey route owned by the linked platform account. departure_datetime body string Yes Planned departure time for the journey. available_seats body number Yes Number of seats offered on the journey. fare_amount body number No Fare per passenger in naira, stored with the NGN currency. driver_name body string No Display name of the assigned driver. driver_phone body string No Contact phone number of the assigned driver. vehicle_type body string No Type or model description of the vehicle. vehicle_colour body string No Colour of the vehicle.
State constraints The journey is created in the draft state and receives a generated reference of the form ORJ-YYYY-XXXXXXXX. The linked platform account must hold an active paid subscription before creation proceeds. Planned checkpoints are seeded for the new journey exactly like the platform planning flow. Idempotency Not idempotent — retrying may repeat the effect.
Response The newly created journey. Requires an active subscription on the linked platform account.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"reference": "JRN-4F7K2Q",
"route_id": "3c2b1a0f-9e8d-4c7b-a6f5-e4d3c2b1a0f9",
"state": "draft",
"departure_datetime": "2026-09-28T08:30:00.000Z",
"estimated_arrival_datetime": "2026-09-28T10:45:00.000Z",
"available_seats": 3,
"fare_amount": 4500,
"currency": "NGN",
"driver_name": "Adaeze Okafor",
"driver_phone": "+2348030000000",
"vehicle_type": "bus",
"vehicle_colour": "White",
"created_at": "2026-09-26T09:12:44.120Z",
"updated_at": "2026-09-26T09:12:44.120Z"
}
}Errors Code HTTP Cause INVALID_REQUEST 400 The body is not a JSON object, route_id is not a valid resource identifier, or a required field such as departure_datetime or available_seats is missing or has the wrong type. CAPABILITY_NOT_AUTHORIZED 403 The API key lacks the journeys:write scope, the organization is not linked to an ORN platform account, or the linked account has no active paid subscription. FORBIDDEN 403 Write operations are refused for API keys issued in the sandbox environment. RESOURCE_NOT_FOUND 404 No journey route owned by the linked ride owner matches the supplied route_id.
Events journey.created
Next steps GET /api/v1/journeys/retrieve_journey_timeline retrieve_journey_timeline journeys:read Tier c ₦400.00
Return the ordered state history of a journey as recorded by the state machine.
Parameters Name In Type Required Description journey_id query string (uuid) Yes Identifier of the journey whose state history is returned.
State constraints The journey must exist and be owned by the requesting organization linked ride owner. The timeline is capped at the 200 most recent state history entries ordered oldest first. Idempotency Safe read; no side effects.
Response Timeline of lifecycle, checkpoint and safety records.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"timeline": [
{
"kind": "journey",
"event_type": "journey.activated",
"occurred_at": "2026-09-28T08:30:05.000Z"
},
{
"kind": "checkpoint",
"checkpoint_number": 1,
"status": "completed",
"recorded_at": "2026-09-28T08:52:00.000Z"
},
{
"kind": "safety",
"event_id": "e1f2a3b4-2222-4bbb-9ccc-3d4e5f6a7b8c",
"level": "level_2_assistance",
"created_at": "2026-09-28T09:40:00.000Z"
}
]
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or is not a valid resource identifier. CAPABILITY_NOT_AUTHORIZED 403 The API key lacks the journeys:read scope or the organization is not linked to an ORN platform account. RESOURCE_NOT_FOUND 404 No journey owned by the requesting organization matches the supplied identifier.
Next steps GET /api/v1/journeys/retrieve_journey_monitoring_summary retrieve_journey_monitoring_summary journeys:read Tier c ₦400.00
Return a monitoring summary combining checkpoint aggregates and passenger participation counts for a journey.
Parameters Name In Type Required Description journey_id query string (uuid) Yes Identifier of the journey whose monitoring summary is returned.
State constraints The journey must exist and be owned by the requesting organization linked ride owner. Aggregates cover every checkpoint and every passenger participation row of the journey. Idempotency Safe read; no side effects.
Response Higher-level monitoring view including route progress and anomalies.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"state": "active",
"route": {
"route_id": "3c2b1a0f-9e8d-4c7b-a6f5-e4d3c2b1a0f9",
"origin": {
"location": "Ikorodu Road Terminal, Lagos",
"lat": 6.5902,
"lng": 3.3667
},
"destination": {
"location": "Ibadan Central Park",
"lat": 7.3775,
"lng": 3.947
},
"estimated_distance_km": 128,
"ideal_travel_time_minutes": 120,
"live_traffic_travel_time_minutes": 141,
"traffic_delay_minutes": 21,
"traffic_data_source": "live",
"planned_at": "2026-09-26T09:00:00.000Z"
},
"checkpoint_progress": {
"planned_total": 4,
"completed": 2
},
"active_emergencies": 1,
"anomalies": [
{
"type": "checkpoint_missed_or_escalated",
"detail": "Checkpoint 3 is overdue."
}
]
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or is not a valid resource identifier. CAPABILITY_NOT_AUTHORIZED 403 The API key lacks the journeys:read scope or the organization is not linked to an ORN platform account. RESOURCE_NOT_FOUND 404 No journey owned by the requesting organization matches the supplied identifier.
Next steps POST /api/v1/journeys/activate_journey activate_journey journeys:write Tier c ₦450.00
Transition an owned journey to the active state through the authoritative state machine.
Parameters Name In Type Required Description journey_id body string (uuid) Yes Identifier of the journey to activate.
State constraints The transition to active is allowed only from the boarding state. The journey must carry a complete checkpoint plan of at least four planned checkpoints before activation. Transitions are applied atomically: the platform records the state history and an audit entry for every state change. Idempotency Not idempotent — retrying may repeat the effect.
Response State transition recorded by the activation.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"previous_state": "boarding",
"state": "active"
}
}Errors Code HTTP Cause INVALID_REQUEST 400 The body is not a JSON object or journey_id is not a valid resource identifier. CAPABILITY_NOT_AUTHORIZED 403 The API key lacks the journeys:write scope or the organization is not linked to an ORN platform account. FORBIDDEN 403 Write operations are refused for API keys issued in the sandbox environment. RESOURCE_NOT_FOUND 404 No journey owned by the requesting organization matches the supplied identifier. CONFLICT 409 The transition to active is not valid for the current journey state, for example the checkpoint plan is incomplete.
Events journey.activated
Next steps GET /api/v1/journeys/retrieve_advanced_journey_monitoring_state retrieve_advanced_journey_monitoring_state journeys:read Tier e ₦1,250.00
Return the advanced monitoring state combining the latest checkpoint, the latest ORION risk assessment and checkpoint and passenger aggregates.
Parameters Name In Type Required Description journey_id query string (uuid) Yes Identifier of the journey whose advanced monitoring state is returned.
State constraints The journey must exist and be owned by the requesting organization linked ride owner. Only the latest checkpoint and the latest ORION risk assessment are returned alongside the aggregates. Idempotency Safe read; no side effects.
Response Full monitoring state with evidence from every domain.
{
"data": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"state": "active",
"journey": {
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"reference": "JRN-4F7K2Q",
"route_id": "3c2b1a0f-9e8d-4c7b-a6f5-e4d3c2b1a0f9",
"state": "draft",
"departure_datetime": "2026-09-28T08:30:00.000Z",
"estimated_arrival_datetime": "2026-09-28T10:45:00.000Z",
"available_seats": 3,
"fare_amount": 4500,
"currency": "NGN",
"driver_name": "Adaeze Okafor",
"driver_phone": "+2348030000000",
"vehicle_type": "bus",
"vehicle_colour": "White",
"created_at": "2026-09-26T09:12:44.120Z",
"updated_at": "2026-09-26T09:12:44.120Z"
},
"route": {
"route_id": "3c2b1a0f-9e8d-4c7b-a6f5-e4d3c2b1a0f9",
"origin": {
"location": "Ikorodu Road Terminal, Lagos",
"lat": 6.5902,
"lng": 3.3667
},
"destination": {
"location": "Ibadan Central Park",
"lat": 7.3775,
"lng": 3.947
},
"estimated_distance_km": 128,
"ideal_travel_time_minutes": 120,
"live_traffic_travel_time_minutes": 141,
"traffic_delay_minutes": 21,
"traffic_data_source": "live",
"planned_at": "2026-09-26T09:00:00.000Z"
},
"checkpoints": {
"planned_total": 4,
"recorded_total": 2,
"by_status": {
"triggered": 0,
"completed": 2,
"missed": 0,
"escalated": 0
}
},
"safety": {
"events_total": 1,
"active_events": 1
},
"orion": {
"latest": {
"assessment_id": "a9b8c7d6-3333-4ccc-8ddd-4e5f6a7b8c9d",
"journey_id": "0d0b6f2e-6b1a-4f3e-9a4c-1f2e3d4c5b6a",
"risk_level": "low",
"summary": "Journey is progressing on schedule. All recorded checkpoints are completed and no safety events are active.",
"created_at": "2026-09-28T09:45:00.000Z"
},
"assessments_total": 3
},
"participation": {
"passengers": 12,
"by_status": {
"reserved": 2,
"boarded": 9,
"completed": 1,
"cancelled": 0
}
}
}
}Errors Code HTTP Cause INVALID_REQUEST 400 journey_id is missing or is not a valid resource identifier. CAPABILITY_NOT_AUTHORIZED 403 The API key lacks the journeys:read scope or the organization is not linked to an ORN platform account. RESOURCE_NOT_FOUND 404 No journey owned by the requesting organization matches the supplied identifier.
Next steps