{"openapi":"3.1.0","info":{"title":"OffRide API","version":"2026-08-03.v13","description":"Capability-scoped transportation orchestration APIs. Account type, organization membership, resource affiliation, and API access are independent concepts."},"servers":[{"description":"OffRide platform","url":"https://offride.co"}],"tags":[{"description":"Ride requests and fulfillment visibility.","name":"Demand"},{"description":"Partners, fleets, drivers, vehicles, availability, and fulfillment supply.","name":"Supply"},{"description":"Account types, access bundles, capabilities, and tenant authorization.","name":"Access"},{"description":"Webhook and live subscription discovery for operational events.","name":"Events"},{"description":"Version and namespace discovery.","name":"Platform"},{"description":"Deprecated compatibility aliases.","name":"Compatibility"}],"paths":{"/api/v1/demand/capabilities":{"get":{"description":"Lists the Demand API operations currently implemented.","operationId":"getDemandCapabilities","responses":{"200":{"description":"Successful response"}},"summary":"Inspect Demand API capabilities","tags":["Demand"],"x-offride-authority":"public","x-offride-mutation":false}},"/api/v1/demand/requests/preview":{"post":{"description":"Validates and normalizes a request without creating operational state.","operationId":"previewDemandRideRequest","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideRequestInput"}}},"required":true},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideRequestPreviewResponse"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request body rejected"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Preview a demand ride request","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.requests.preview","x-offride-mutation":false}},"/api/v1/demand/requests":{"post":{"description":"Creates an idempotent persistent ride request inside the authenticated Demand tenant.","operationId":"createDemandRideRequest","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideRequestInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideRequestCreateResponse"}}},"description":"Idempotent replay of the existing ride request and distribution"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideRequestCreateResponse"}}},"description":"Ride request created and distributed"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request body rejected"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Idempotency key was reused with different ride details"}},"security":[{"bearerAuth":[]}],"summary":"Create a ride request","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.requests.write","x-offride-mutation":true},"get":{"description":"Lists ride requests created by the authenticated Demand tenant.","operationId":"listDemandRideRequests","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"List ride requests","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.requests.read","x-offride-mutation":false}},"/api/v1/demand/requests/{requestId}":{"get":{"description":"Returns one ride request, fulfillment state, assignment, offers, and lifecycle for the authenticated Demand tenant.","operationId":"getDemandRideRequest","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Read a ride request","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.requests.read","x-offride-mutation":false},"patch":{"description":"Updates an unassigned Demand ride request in the authenticated tenant. Pending supply offers are withdrawn so the updated trip can be dispatched safely.","operationId":"updateDemandRideRequest","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Update a ride request","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.requests.write","x-offride-mutation":true},"delete":{"description":"Cancels an unassigned Demand ride request in the authenticated tenant. The ride remains available in history with its lifecycle evidence intact.","operationId":"cancelDemandRideRequest","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Cancel a ride request","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.requests.write","x-offride-mutation":true}},"/api/v1/demand/stream":{"get":{"description":"Streams tenant-scoped ride state, authorized assigned-driver location, and durable operational notifications.","operationId":"streamDemandOperations","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Stream demand operations","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.fulfillment.read","x-offride-mutation":false}},"/api/v1/demand/notifications":{"get":{"description":"Lists durable ride notifications for the authenticated Demand tenant.","operationId":"listDemandNotifications","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"List demand notifications","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.fulfillment.read","x-offride-mutation":false}},"/api/v1/demand/notifications/{notificationId}":{"patch":{"description":"Marks one tenant-scoped operational notification as read.","operationId":"readDemandNotification","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Mark a demand notification read","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.fulfillment.read","x-offride-mutation":true}},"/api/v1/supply/capabilities":{"get":{"description":"Lists the Supply API operations currently implemented.","operationId":"getSupplyCapabilities","responses":{"200":{"description":"Successful response"}},"summary":"Inspect Supply API capabilities","tags":["Supply"],"x-offride-authority":"public","x-offride-mutation":false}},"/api/v1/supply/offers":{"get":{"description":"Lists fleet-addressed offers and direct offers for drivers affiliated with the authenticated fleet.","operationId":"listFleetDriverOffers","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"List incoming fleet offers","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.assignments.read","x-offride-mutation":false}},"/api/v1/supply/driver/me/location":{"post":{"description":"Idempotently records a versioned location sample for the signed-in driver while they are online.","operationId":"updateDriverSelfLocation","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Update the signed-in driver's location","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"trip.location.write","x-offride-mutation":true}},"/api/v1/events/capabilities":{"get":{"description":"Lists event topics and the webhook or WebSocket transports planned for each topic. This discovery operation does not create a subscription.","operationId":"getEventCapabilities","responses":{"200":{"description":"Successful response"}},"summary":"Inspect event delivery contracts","tags":["Events"],"x-offride-authority":"public","x-offride-mutation":false}},"/api/v1/supply/organization":{"get":{"description":"Returns the supply organization scoped by the authenticated tenant.","operationId":"getSupplyOrganization","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Read the authenticated supply organization","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.organization.read","x-offride-mutation":false}},"/api/v1/supply/drivers":{"get":{"description":"Lists active driver relationships in the authenticated fleet, including employee or contractor relationship, exclusivity, compensation basis, and primary fleet vehicle assignment.","operationId":"listSupplyDrivers","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"List fleet drivers","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.drivers.read","x-offride-mutation":false},"post":{"description":"Adds an existing or new OffRide driver to the authenticated fleet with an explicit employee or contractor relationship, exclusivity policy, compensation basis, and optional primary vehicle, without taking ownership of the person's account.","operationId":"createSupplyDriver","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Add a fleet driver","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.drivers.write","x-offride-mutation":true}},"/api/v1/supply/drivers/{driverId}":{"patch":{"description":"Updates fleet-managed driver contact, employee or contractor relationship, exclusivity, hourly or per-ride compensation, and primary vehicle assignment.","operationId":"updateSupplyDriver","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Update a fleet driver","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.drivers.write","x-offride-mutation":true},"delete":{"description":"Ends a driver's relationship with the authenticated fleet while preserving their OffRide identity and other affiliations.","operationId":"removeSupplyDriver","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Remove a driver from the fleet","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.drivers.write","x-offride-mutation":true}},"/api/v1/supply/drivers/{driverId}/availability":{"get":{"description":"Returns a fleet driver's effective availability, deterministic precedence, active schedule rules, and persisted audit history.","operationId":"getSupplyDriverAvailability","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Read driver availability","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.drivers.read","x-offride-mutation":false},"patch":{"description":"Sets a fleet driver's immediate baseline supply scope and IANA time zone with an auditable reason.","operationId":"setSupplyDriverAvailability","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Set immediate driver availability","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.drivers.write","x-offride-mutation":true}},"/api/v1/supply/drivers/{driverId}/availability/rules":{"post":{"description":"Creates a one-time or weekly fleet-scoped availability rule with an effective window and audit reason.","operationId":"createSupplyDriverAvailabilityRule","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Schedule driver availability","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.drivers.write","x-offride-mutation":true}},"/api/v1/supply/drivers/{driverId}/availability/rules/{ruleId}":{"patch":{"description":"Replaces one active schedule rule while retaining the superseded rule and its audit history.","operationId":"updateSupplyDriverAvailabilityRule","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Update driver availability rule","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.drivers.write","x-offride-mutation":true},"delete":{"description":"Soft-deletes one active driver availability rule while retaining its persisted audit history.","operationId":"deleteSupplyDriverAvailabilityRule","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Remove a driver availability rule","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.drivers.write","x-offride-mutation":true}},"/api/v1/supply/vehicles":{"get":{"description":"Lists the authenticated fleet's active, maintenance, and retired vehicles and capacity details.","operationId":"listSupplyVehicles","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"List fleet vehicles","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.vehicles.read","x-offride-mutation":false},"post":{"description":"Registers a vehicle and its service class, capacity, accessibility, and operating state in the authenticated fleet.","operationId":"createSupplyVehicle","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Add a fleet vehicle","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.vehicles.write","x-offride-mutation":true}},"/api/v1/supply/vehicles/{vehicleId}":{"patch":{"description":"Updates one vehicle owned by the authenticated fleet.","operationId":"updateSupplyVehicle","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Update a fleet vehicle","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.vehicles.write","x-offride-mutation":true},"delete":{"description":"Retires a vehicle and clears its active fleet assignments while preserving ride history.","operationId":"retireSupplyVehicle","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Retire a fleet vehicle","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.vehicles.write","x-offride-mutation":true}},"/api/v1/supply/tracking/drivers":{"get":{"description":"Returns current location and freshness for drivers whose location was shared inside the authenticated fleet workspace. Driver roster access is also required.","operationId":"getFleetDriverTracking","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Track authorized fleet drivers","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"trip.tracking.read","x-offride-mutation":false}},"/api/v1/supply/offers/{offerId}/response":{"post":{"description":"Accepts or rejects an unexpired marketplace offer already bound to one eligible driver and vehicle. The responding actor cannot replace that supply unit.","operationId":"respondToDriverOffer","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfferResponseInput"}}},"required":true},"responses":{"200":{"description":"Operation completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfferResponseEnvelope"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request body rejected"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Offer is not addressed to this actor or tenant"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Offer is closed, expired, ineligible, or another recipient already won"}},"security":[{"bearerAuth":[]}],"summary":"Respond to an incoming supply offer","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"trip.lifecycle.write","x-offride-mutation":true}},"/api/v1/supply/rides/{rideId}/assignment":{"post":{"description":"Assigns an eligible driver and vehicle to an internal-fleet ride owned by the active organization. Marketplace rides cannot use this operation.","operationId":"assignInternalFleetRide","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalFleetAssignmentInput"}}},"required":true},"responses":{"200":{"description":"Operation completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideAssignmentEnvelope"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request body rejected"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Internal ride is not owned by this supply tenant"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Ride is already assigned or the selected unit is no longer eligible"}},"security":[{"bearerAuth":[]}],"summary":"Dispatch an internal fleet ride","tags":["Supply"],"x-offride-authority":"capability","x-offride-capability":"supply.assignments.write","x-offride-mutation":true}},"/api/v1/demand/requests/{requestId}/cancellation":{"get":{"description":"Lists the reasons a demand partner may give for cancelling a ride.","operationId":"listDemandCancellationReasons","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"List cancellation reasons","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.requests.write","x-offride-mutation":false},"post":{"description":"Cancels a ride with a stated reason, including one already assigned. The driver is told and released, and the reason decides compensation.","operationId":"cancelRideWithReason","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Operation completed"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Cancel a ride with a reason","tags":["Demand"],"x-offride-authority":"capability","x-offride-capability":"demand.requests.write","x-offride-mutation":true}},"/api/v1/fleet/capabilities":{"get":{"deprecated":true,"description":"Compatibility namespace retained while consumers migrate to Demand and Supply.","operationId":"getFleetCapabilities","responses":{"200":{"description":"Successful response"}},"summary":"Inspect deprecated Fleet aliases","tags":["Compatibility"],"x-offride-authority":"public","x-offride-mutation":false}},"/api/v1/fleet/requests/preview":{"post":{"deprecated":true,"description":"Deprecated alias for the Demand ride request preview operation.","operationId":"previewFleetRideRequest","parameters":[{"in":"header","name":"X-OffRide-Tenant","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideRequestInput"}}},"required":true},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RideRequestPreviewResponse"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request body rejected"},"401":{"description":"Authentication required"},"403":{"description":"Authority, capability, or tenant scope rejected"}},"security":[{"bearerAuth":[]}],"summary":"Preview a ride request through the Fleet alias","tags":["Compatibility"],"x-offride-authority":"capability","x-offride-capability":"demand.requests.preview","x-offride-mutation":false}}},"components":{"schemas":{"ApiError":{"properties":{"apiVersion":{"const":"2026-08-03.v13","type":"string"},"error":{"properties":{"code":{"type":"string"},"details":{"items":{"additionalProperties":false,"properties":{"message":{"type":"string"},"path":{"type":"string"}},"required":["message","path"],"type":"object"},"type":"array"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"requestId":{"format":"uuid","type":"string"}},"required":["apiVersion","error","requestId"],"type":"object"},"DistributionPlan":{"additionalProperties":false,"properties":{"fulfillmentMode":{"enum":["marketplace","internal_fleet"],"type":"string"},"mode":{"enum":["sequential","concurrent"],"type":"string"},"offerCount":{"minimum":0,"type":"integer"},"recipientTypes":{"items":{"enum":["fleet","driver"],"type":"string"},"type":"array","uniqueItems":true}},"required":["fulfillmentMode","mode","offerCount","recipientTypes"],"type":"object"},"FleetLocation":{"additionalProperties":false,"properties":{"address":{"minLength":1,"type":"string"},"label":{"minLength":1,"type":"string"},"latitude":{"maximum":90,"minimum":-90,"type":"number"},"longitude":{"maximum":180,"minimum":-180,"type":"number"}},"required":["address","label"],"type":"object"},"OfferResponseEnvelope":{"properties":{"apiVersion":{"const":"2026-08-03.v13","type":"string"},"data":{"properties":{"ride":{"$ref":"#/components/schemas/RideSummary"}},"required":["ride"],"type":"object"},"requestId":{"format":"uuid","type":"string"}},"required":["apiVersion","data","requestId"],"type":"object"},"OfferResponseInput":{"additionalProperties":false,"description":"Accept or pass the exact pre-qualified driver-vehicle unit carried by the offer.","properties":{"response":{"enum":["accept","reject"],"type":"string"}},"required":["response"],"type":"object"},"InternalFleetAssignmentInput":{"additionalProperties":false,"description":"An owning fleet dispatcher selects an eligible unit only for its own internal ride.","properties":{"driverAccountId":{"minLength":1,"type":"string"},"vehicleId":{"minLength":1,"type":"string"}},"required":["driverAccountId","vehicleId"],"type":"object"},"RideAssignmentEnvelope":{"properties":{"apiVersion":{"const":"2026-08-03.v13","type":"string"},"data":{"properties":{"ride":{"$ref":"#/components/schemas/RideSummary"}},"required":["ride"],"type":"object"},"requestId":{"format":"uuid","type":"string"}},"required":["apiVersion","data","requestId"],"type":"object"},"RideRequestCreateResponse":{"properties":{"apiVersion":{"const":"2026-08-03.v13","type":"string"},"data":{"properties":{"distribution":{"$ref":"#/components/schemas/DistributionPlan"},"replayed":{"type":"boolean"},"ride":{"$ref":"#/components/schemas/RideSummary"}},"required":["ride","distribution","replayed"],"type":"object"},"requestId":{"format":"uuid","type":"string"}},"required":["apiVersion","data","requestId"],"type":"object"},"RideRequestInput":{"additionalProperties":false,"properties":{"dispatch":{"additionalProperties":false,"properties":{"distributionMode":{"default":"concurrent","enum":["sequential","concurrent"],"type":"string"},"offerExpiresInMinutes":{"default":10,"maximum":1440,"minimum":1,"type":"integer"},"offerMode":{"deprecated":true,"enum":["best_match","broadcast"],"type":"string"},"strategy":{"enum":["preferred_then_marketplace","marketplace","exclusive"],"type":"string"}},"required":["strategy"],"type":"object"},"dropoff":{"$ref":"#/components/schemas/FleetLocation"},"externalReference":{"maxLength":200,"type":"string"},"fulfillment":{"additionalProperties":false,"properties":{"mode":{"default":"marketplace","enum":["marketplace","internal_fleet"],"type":"string"}},"required":["mode"],"type":"object"},"party":{"additionalProperties":false,"properties":{"bags":{"maximum":99,"minimum":0,"type":"integer"},"passengers":{"maximum":99,"minimum":1,"type":"integer"},"wheelchairSpaces":{"default":0,"maximum":99,"minimum":0,"type":"integer"}},"required":["bags","passengers"],"type":"object"},"pickup":{"$ref":"#/components/schemas/FleetLocation"},"requestedAt":{"format":"date-time","type":"string"},"rider":{"additionalProperties":false,"properties":{"name":{"minLength":1,"type":"string"},"phone":{"minLength":10,"type":"string"}},"required":["name","phone"],"type":"object"},"service":{"additionalProperties":false,"properties":{"class":{"enum":["sedan","suv","black_car","van","shuttle","bus"],"type":"string"},"requirements":{"items":{"type":"string"},"type":"array"}},"required":["class"],"type":"object"},"source":{"additionalProperties":false,"properties":{"channel":{"enum":["api","partner_portal","operator"],"type":"string"},"system":{"minLength":1,"type":"string"}},"required":["channel","system"],"type":"object"}},"required":["dispatch","dropoff","party","pickup","requestedAt","rider","service","source"],"type":"object"},"RideRequestPreviewResponse":{"properties":{"apiVersion":{"const":"2026-08-03.v13","type":"string"},"data":{"properties":{"dispatchPlan":{"$ref":"#/components/schemas/RideRequestPreviewDispatchPlan"},"normalizedRequest":{"$ref":"#/components/schemas/RideRequestInput"},"scope":{"additionalProperties":false,"properties":{"namespace":{"const":"demand","type":"string"},"tenant":{"type":"string"}},"required":["namespace","tenant"],"type":"object"}},"required":["dispatchPlan","normalizedRequest","scope"],"type":"object"},"requestId":{"format":"uuid","type":"string"}},"required":["apiVersion","data","requestId"],"type":"object"},"RideRequestPreviewDispatchPlan":{"additionalProperties":false,"properties":{"distributionMode":{"enum":["sequential","concurrent"],"type":"string"},"providerStrategy":{"enum":["preferred_then_marketplace","marketplace","exclusive"],"type":"string"},"recipientScope":{"enum":["matched_supply_units","internal_fleet_dispatch"],"type":"string"},"responseWindowMinutes":{"maximum":1440,"minimum":1,"type":"integer"}},"required":["distributionMode","providerStrategy","recipientScope","responseWindowMinutes"],"type":"object"},"RideSummary":{"additionalProperties":false,"properties":{"assignment":{"anyOf":[{"additionalProperties":false,"properties":{"driverAccountId":{"type":"string"},"driverName":{"type":"string"},"supplyOrganizationId":{"type":"string"},"supplyOrganizationName":{"type":"string"},"vehicleId":{"type":"string"},"vehicleLabel":{"type":"string"},"vehicleLicensePlate":{"type":["string","null"]}},"required":["driverAccountId","driverName","supplyOrganizationId","supplyOrganizationName","vehicleId","vehicleLabel","vehicleLicensePlate"],"type":"object"},{"type":"null"}]},"bags":{"minimum":0,"type":"integer"},"createdAt":{"format":"date-time","type":"string"},"demandOrganization":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"dispatchStrategy":{"enum":["preferred_then_marketplace","marketplace","exclusive"],"type":"string"},"distributionMode":{"enum":["sequential","concurrent"],"type":"string"},"dropoff":{"$ref":"#/components/schemas/FleetLocation"},"estimatedDurationMinutes":{"minimum":1,"type":"integer"},"externalReference":{"type":["string","null"]},"fulfillmentMode":{"enum":["marketplace","internal_fleet"],"type":"string"},"id":{"type":"string"},"lifecycleVersion":{"minimum":1,"type":"integer"},"passengers":{"minimum":1,"type":"integer"},"pickup":{"$ref":"#/components/schemas/FleetLocation"},"requestedAt":{"format":"date-time","type":"string"},"rider":{"anyOf":[{"additionalProperties":false,"properties":{"accountId":{"type":["string","null"]},"name":{"type":"string"},"phone":{"type":"string"}},"required":["accountId","name","phone"],"type":"object"},{"type":"null"}]},"serviceClass":{"enum":["sedan","suv","black_car","van","shuttle","bus"],"type":"string"},"serviceRequirements":{"items":{"type":"string"},"type":"array"},"status":{"enum":["requested","offering","assigned","en_route","arrived","picked_up","completed","cancelled","exception"],"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"wheelchairSpaces":{"minimum":0,"type":"integer"}},"required":["assignment","bags","createdAt","demandOrganization","dispatchStrategy","distributionMode","dropoff","estimatedDurationMinutes","externalReference","fulfillmentMode","id","lifecycleVersion","passengers","pickup","requestedAt","rider","serviceClass","serviceRequirements","status","updatedAt","wheelchairSpaces"],"type":"object"}},"securitySchemes":{"bearerAuth":{"scheme":"bearer","type":"http"}}}}