OpenAPI Specification
openapi: 3.2.0
info:
title: Orders API
description: '### [Create Orders](/docs/shipping/6fcc8c040ec03-create-an-order) to transfer vehicles.'
termsOfService: https://runbuggy.com/terms/
contact:
name: Support
email: support@runbuggy.com
license:
name: Copyright © RunBuggy 2023
url: https://runbuggy.com/terms/
version: '1.0'
servers:
- url: https://ng-staging.runbuggy.com/staging/api
tags:
- name: Orders
description: The Order operations.
paths:
/orders:
post:
tags:
- Orders
summary: Create an order
description: Create an Order to transfer vehicles.
operationId: createOrderUsingPOST
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
'202':
description: The request is being processed. See [Handling 202's](/docs/shipping/ea2a0d46dfc8d-handling-202-s).
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
deprecated: false
security:
- Authorization: []
servers:
- url: https://ng-staging.runbuggy.com/staging/api
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OrderRequest'
description: orderRequest
required: true
get:
tags:
- Orders
summary: Find orders
description: Retrieve paginated Orders.
operationId: findOrderPaginatedUsingGET
parameters:
- name: size
in: query
required: false
schema:
type: integer
format: int32
- name: page
in: query
required: false
schema:
type: integer
format: int32
- name: limit
in: query
required: false
schema:
type: integer
format: int32
- name: sort
in: query
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PageOrder'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
deprecated: false
security:
- Authorization: []
servers:
- url: https://ng-staging.runbuggy.com/staging/api
/orders/{id}:
get:
tags:
- Orders
summary: Retrieve an order
description: Retrieve Order.
operationId: getOrderUsingGET
parameters:
- name: id
in: path
description: id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
deprecated: false
security:
- Authorization: []
servers:
- url: https://ng-staging.runbuggy.com/staging/api
patch:
tags:
- Orders
summary: Update order
description: Patch Order
operationId: patchOrderUsingPATCH
parameters:
- name: id
in: path
description: id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'204':
description: No Content
'401':
description: Unauthorized
'403':
description: Forbidden
deprecated: false
security:
- Authorization: []
servers:
- url: https://ng-staging.runbuggy.com/staging/api
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OrderPatchRequest'
description: request
required: true
/orders/{id}/cancel:
post:
tags:
- Orders
summary: Cancel an order
description: Cancel specified Order. If vehicles have shipped you may no longer cancel Order. 202 status code indicates the Cancelation request has been accepted and is processing. Check the Order resource for the status to change to "CANCELED".
operationId: cancelOrderUsingPOST
parameters:
- name: id
in: path
description: id
required: true
schema:
type: string
responses:
'202':
description: Request has been accepted and is being processed.
'400':
description: Bad request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
deprecated: false
security:
- Authorization: []
servers:
- url: https://ng-staging.runbuggy.com/staging/api
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CancellationReason'
description: cancellationReason
required: true
/orders/{id}/replace:
post:
tags:
- Orders
summary: Replace an order
description: Cancels the original and creates a new one. To track the status, see the Order.replacement property of the order being replaced.
operationId: replaceOrderUsingPOST
parameters:
- name: id
in: path
description: id
required: true
schema:
type: string
responses:
'200':
description: OK
'201':
description: Created
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
deprecated: false
security:
- Authorization: []
servers:
- url: https://ng-staging.runbuggy.com/staging/api
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OrderRequest'
description: replaceRequest
required: true
/orders/{id}/full:
get:
tags:
- Orders
summary: Retrieve an expanded order
description: Retrieve an Order expanded with full Vehicle Transfer Orders.
operationId: getFullOrderWithIdUsingGET
parameters:
- name: id
in: path
description: id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OrderFull'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
deprecated: false
security:
- Authorization: []
servers:
- url: https://ng-staging.runbuggy.com/staging/api
/orders/full:
get:
tags:
- Orders
summary: Search expanded orders
description: 'Search expanded orders using RSQL. For example: orders/full?query=created.date>2020-10-15T00:00:00Z;created.date<2020-10-21T00:00:00Z'
operationId: getPaginatedFullOrdersUsingGET
parameters:
- name: query
in: query
description: Query Orders using RSQL.
required: false
schema:
type: string
- name: size
in: query
required: false
schema:
type: integer
format: int32
- name: page
in: query
required: false
schema:
type: integer
format: int32
- name: sort
in: query
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PageOrderFull'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
deprecated: false
security:
- Authorization: []
servers:
- url: https://ng-staging.runbuggy.com/staging/api
/orders/{id}/vehicle-transfer-orders:
get:
tags:
- Orders
summary: List order's vehicle transfers
description: List an Order's the Vehicle Transfer Orders.
operationId: getOrderVehicleTransferOrdersUsingGET
parameters:
- name: id
in: path
description: id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/VehicleTransferOrder'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
deprecated: false
security:
- Authorization: []
servers:
- url: https://ng-staging.runbuggy.com/staging/api
/orders/quote:
post:
tags:
- Orders
summary: Quote an order
description: Quote an Order.
operationId: quoteOrderUsingPOST
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OrderQuoteResponse'
'202':
description: The request is being processed. See [Handling 202's](/docs/shipping/ea2a0d46dfc8d-handling-202-s).
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
deprecated: false
security:
- Authorization: []
servers:
- url: https://ng-staging.runbuggy.com/staging/api
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OrderQuoteRequest'
description: orderQuoteRequest
required: true
components:
schemas:
BasicDirectionsRequest:
type: object
title: BasicDirectionsRequest
properties:
dropoff:
$ref: '#/components/schemas/BasicLocation'
pickup:
$ref: '#/components/schemas/BasicLocation'
LastDriverLocation:
type: object
title: LastDriverLocationExt
properties:
company:
$ref: '#/components/schemas/Company'
data:
$ref: '#/components/schemas/AdditionalData'
location:
$ref: '#/components/schemas/Geolocation'
moving:
type: boolean
time:
type: string
format: date-time
username:
type: string
Coords:
type: object
title: Coords
properties:
accuracy:
type: number
format: double
altitude:
type: number
format: double
heading:
type: number
format: double
speed:
type: number
format: double
VehicleTransferOrderRequest:
type: object
title: VehicleTransferOrderRequest
properties:
directions:
$ref: '#/components/schemas/DetailedDirectionsRequest'
gatePasses:
type: array
items:
$ref: '#/components/schemas/TempFile'
notes:
type: string
payer:
$ref: '#/components/schemas/Company'
reconciliationCode:
type: string
x-examples:
- PARKING_LOT
vehicle:
$ref: '#/components/schemas/Vehicle'
required:
- directions
- vehicle
VehicleTransferOrderRequestLocation:
type: object
title: VehicleTransferOrderRequestLocation
properties:
address:
type: string
minLength: 1
auctionCode:
type: string
contact:
$ref: '#/components/schemas/Contact'
dealerCode:
type: string
geolocation:
$ref: '#/components/schemas/Geolocation'
name:
type: string
notes:
type: string
type:
type: string
enum:
- business
- personal
windows:
type: array
items:
$ref: '#/components/schemas/Window'
required:
- address
Canceled:
type: object
title: Canceled
properties:
byUser:
type: string
date:
type: string
description: Datetime in ISO 8601 format.
format: ISO 8601 datetime
x-examples:
- '2020-12-05T21:18:47+00:00'
reason:
type: string
VehicleTransferOrder:
type: object
title: VehicleTransferOrder
description: A Vehicle Transfer Order.
properties:
id:
type: string
x-examples:
- 7a765a49-6b21-4368-937e-8ce4981d8eff
referenceNumber:
type: string
x-examples:
- 2000232-123432
created:
$ref: '#/components/schemas/Created'
vehicle:
$ref: '#/components/schemas/Vehicle'
directions:
$ref: '#/components/schemas/DetailedDirections'
fare:
$ref: '#/components/schemas/Fare'
geolocation:
$ref: '#/components/schemas/Geolocation'
notes:
type: string
x-examples:
- Notes about this vehicle transfer.
orderId:
type: string
x-examples:
- ABC123-LMNOP
payer:
$ref: '#/components/schemas/Company'
reconciliationCode:
type: string
x-examples:
- RBCON2020
states:
$ref: '#/components/schemas/States'
status:
type: string
enum:
- DRAFT
- READY
- AVAILABLE
- CLAIMED
- UNCLAIMED
- APPROVED
- ASSIGNED
- REJECTED
- ACCEPTED
- DRIVER_ARRIVED
- PICKED_UP
- SIGNATURE_ON_PICKUP
- PROVIDED_ETA_DROPOFF
- UNLOADED
- DELIVERED
- CANCELED
- COMPLETE
- ERROR
description: See the Vehicle Transfer Order Statuses guide for detailed information.
timeline:
type: array
items:
$ref: '#/components/schemas/Event'
transporter:
$ref: '#/components/schemas/Company'
dedicatedTransporter:
$ref: '#/components/schemas/Company'
canceled:
$ref: '#/components/schemas/Canceled'
errors:
type: array
items:
$ref: '#/components/schemas/Error'
labels:
type: array
items:
type: object
canCancel:
type: boolean
inspections:
type: array
items:
$ref: '#/components/schemas/InspectionSummary'
preferredTransporters:
type: array
items:
$ref: '#/components/schemas/Company'
required:
- id
- referenceNumber
- created
- vehicle
- directions
- fare
- orderId
- status
TruckSpecifications:
type: object
title: TruckSpecifications
properties:
rearAxle:
type: string
CompanyRequest:
type: object
title: Company
properties:
id:
type: string
x-examples:
- c0ef80ce-2579-4682-af4f-c1d29457848a
name:
type: string
x-examples:
- Auto Land
type:
type: string
enum:
- DEALER
- AUCTION
x-examples:
- DEALER
required:
- id
CompanyRequestRequiredName:
type: object
title: Company
properties:
id:
type: string
x-examples:
- c0ef80ce-2579-4682-af4f-c1d29457848a
name:
type: string
x-examples:
- Auto Land
type:
type: string
enum:
- DEALER
- AUCTION
x-examples:
- DEALER
required:
- id
- name
Company:
type: object
title: Company
properties:
id:
type: string
x-examples:
- c0ef80ce-2579-4682-af4f-c1d29457848a
name:
type: string
x-examples:
- Auto Land
type:
type: string
enum:
- DEALER
- AUCTION
x-examples:
- DEALER
Replacement:
type: object
title: Replacement
properties:
created:
$ref: '#/components/schemas/Created'
message:
type: string
orderId:
type: string
status:
type: string
enum:
- PENDING
- SUCCESS
- ERROR
States:
type: object
title: States
properties:
accepted:
$ref: '#/components/schemas/State'
claimed:
$ref: '#/components/schemas/State'
delivered:
$ref: '#/components/schemas/StateLocation'
pickedUp:
$ref: '#/components/schemas/StateLocation'
Activity:
type: object
title: Activity
properties:
confidence:
type: integer
format: int32
type:
type: string
DetailedDirections:
type: object
title: DetailedDirections
properties:
distance:
$ref: '#/components/schemas/Distance'
dropoff:
$ref: '#/components/schemas/Location'
pickup:
$ref: '#/components/schemas/Location'
Distance:
type: object
title: Distance
properties:
distanceInMeters:
type: integer
format: int64
distanceInMiles:
type: number
format: double
durationInSeconds:
type: integer
format: int64
BasicLocation:
type: object
title: BasicLocation
properties:
address:
type: string
geolocation:
$ref: '#/components/schemas/Geolocation'
type:
type: string
Pageable:
type: object
title: Pageable
properties:
offset:
type: integer
format: int64
pageNumber:
type: integer
format: int32
pageSize:
type: integer
format: int32
paged:
type: boolean
sort:
$ref: '#/components/schemas/Sort'
unpaged:
type: boolean
Contact:
type: object
title: Contact
properties:
name:
type: string
x-examples:
- Ed Jones
phone:
type: string
x-examples:
- '4804804480'
OrderResponse:
type: object
title: OrderResponse
properties:
id:
type: string
x-examples:
- 7e837a6c-1746-4da4-89e6-c87fae7df84d
created:
$ref: '#/components/schemas/Created'
notes:
type: string
referenceNumber:
type: string
x-examples:
- '200001'
status:
type: string
type:
type: string
enum:
- BASIC
- SWAP
x-examples:
- BASIC
vehicleTransferOrders:
type: array
items:
$ref: '#/components/schemas/VehicleTransferOrderStatus'
required:
- id
- created
- status
- type
- vehicleTransferOrders
Fare:
type: object
title: Fare
properties:
amount:
type: number
format: double
items:
type: array
items:
$ref: '#/components/schemas/Item'
name:
type: string
options:
type: array
items:
type: string
promotionCode:
type: string
x-examples:
- RBCON19
Location:
type: object
title: Location
properties:
address:
type: string
minLength: 1
addressComponents:
$ref: '#/components/schemas/AddressComponents'
auctionCode:
type: string
contact:
$ref: '#/components/schemas/Contact'
dealerCode:
type: string
geolocation:
$ref: '#/components/schemas/Geolocation'
eta:
$ref: '#/components/schemas/EstimatedTimeToArrival'
name:
type: string
notes:
type: string
type:
type: string
enum:
- business
- personal
windows:
type: array
items:
$ref: '#/components/schemas/Window'
required:
- address
Item:
type: object
title: Item
properties:
amount:
type: number
format: double
name:
type: string
TempFile:
type: object
title: TempFile
properties:
resourcePath:
type: string
VehicleTransferOrderQuoteRequest:
type: object
title: VehicleTransferOrderQuoteRequest
properties:
directions:
$ref: '#/components/schemas/BasicDirectionsRequest'
payer:
$ref: '#/components/schemas/Company'
vehicle:
$ref: '#/components/schemas/Vehicle'
required:
- directions
- vehicle
InspectionSummary:
type: object
title: InspectionSummary
properties:
completed:
$ref: '#/components/schemas/Created'
created:
$ref: '#/components/schemas/Created'
id:
type: string
taskName:
type: string
Geolocation:
type: object
title: Geolocation
properties:
coordinates:
type: array
items:
type: number
format: double
type:
type: string
OrderRequest:
type: object
title: OrderRequest
properties:
notes:
type: string
x-examples:
- Our big May 1st order.
type:
type: string
enum:
- BASIC
description: See Order.type enumeration for possible values.
x-examples:
- BASIC
vehicleTransferOrders:
type: array
description: Vehicles transfer orders.
minItems: 1
items:
$ref: '#/components/schemas/VehicleTransferOrderRequest'
owner:
$ref: '#/components/schemas/CompanyRequest'
payer:
$ref: '#/components/schemas/CompanyRequestRequiredName'
fare:
$ref: '#/components/schemas/FareOptionsRequest'
labels:
type: object
additionalProperties:
type: string
required:
- type
- vehicleTransferOrders
- fare
CancellationReason:
type: object
title: CancellationReason
properties:
message:
type: string
description: Optional message.
x-examples:
- Made a mistake placing order.
type:
type: string
enum:
- OTHER
description: Enum string. Set to "OTHER" to provide a message.
required:
- type
Event:
type: object
title: Event
properties:
dateTime:
type: string
description: Datetime in ISO 8601 format.
format: ISO 8601 datetime
x-examples:
- '2020-12-05T21:18:47+00:00'
name:
type: string
OrderFull:
type: object
title: OrderFull
properties:
id:
type: string
referenceNumber:
type: string
completedDate:
type: string
format: date-time
created:
$ref: '#/components/schemas/Created'
owner:
$ref: '#/components/schemas/Company'
payer:
$ref: '#/components/schemas/Company'
canceled:
$ref: '#/components/schemas/Canceled'
dedicatedTransporter:
$ref: '#/components/schemas/Company'
driverLocations:
type: array
items:
$ref: '#/components/schemas/LastDriverLocation'
errors:
type: array
items:
$ref: '#/components/schemas/Error'
fare:
type: array
items:
$ref: '#/components/schemas/FareItem'
labels:
type: object
additionalProperties:
type: string
notes:
type: string
preferredStatusExpiration:
type: string
preferredTransporters:
type: array
items:
$ref: '#/components/schemas/Company'
replacement:
$ref: '#/components/schemas/Replacement'
status:
type: string
transportationOrders:
type: array
items:
$ref: '#/components/schemas/TransportationOrder'
type:
type: string
enum:
- BASIC
vehicleTransferOrders:
type: array
items:
$ref: '#/components/schemas/VehicleTransferOrder'
State:
type: object
title: State
properties:
time:
type: string
description: Datetime in ISO 8601 format.
format: ISO 8601 datetime
x-examples:
- '2020-12-05T21:18:47+00:00'
FareItem:
type: object
title: FareItem
description: Order Fare Item
properties:
name:
type: string
description:
type: string
value:
type: number
format: double
Extras:
type: object
title: Extras
AdditionalData:
type: object
title: AdditionalData
properties:
activity:
$ref: '#/components/schemas/Activity'
battery:
$ref: '#/components/schemas/Battery'
coords:
$ref: '#/components/schemas/Coords'
extras:
$ref: '#/components/schemas/Extras'
is_moving:
type: boolean
odometer:
type: integer
format: int32
timestamp:
type: string
format: date-time
uuid:
type: string
FareOptionsRequest:
type: object
title: FareOptionsRequest
properties:
name:
type: string
description: The name of the Fare option. The fare options are returned from the Quote operation.
x-examples:
- Gold
options:
type: array
description: Fare options. We currently support "Enclosed" (case sensitive)
items:
type: string
required:
- name
Battery:
type: object
title: Battery
properties:
charging:
type: boolean
level:
type: number
format: double
Created:
type: object
title: Created
properties:
byCompany:
$ref: '#/components/schemas/Company'
byUser:
type: string
description: User ID
x-examples:
- 7ae99113-09fd-4838-917a-a7d9636c2f8c
byUserFullName:
type: string
date:
type: string
description: Datetime in ISO 8601 format.
format: ISO 8601 datetime
x-examples:
- '2020-12-05T21:18:47+00:00'
OrderQuoteRequest:
type: object
title: OrderQuoteRequest
properties:
type:
type: string
enum:
- BASIC
description: See Order.type enumeration for possible values.
vehicleTransferOrders:
type: array
items:
$ref: '#/components/schemas/VehicleTransferOrderQuoteRequest'
required:
- type
- vehicleTransferOrders
OrderQuoteResponse:
type: object
title: OrderQuoteResponse
properties:
quotes:
type: array
items:
$ref: '#/components/schemas/Quote'
status:
type: string
traceId:
type: string
EstimatedTimeToArrival:
type: object
title: EstimatedTimeToArrival
properties:
start:
type: string
description: Start of ETA window of time. ISO 8601 format.
format: ISO 8601 datetime
x-examples:
- '2020-12-05T21:18:47+00:00'
end:
type: string
description: End of ETA window of time. Datetime in ISO 8601 format.
format: ISO 8601 datetime
x-examples:
- '2020-12-05T21:18:47+00:00'
initial:
type: string
description: Datetime in ISO 8601 format.
format: ISO 8601 datetime
x-examples:
- '2020-12-05T21:18:47+00:00'
accuracy:
type: string
calculated:
type: string
format: date-time
status:
type: string
Order:
type: object
title: Order
properties:
id:
type: string
x-examples:
- 151ff45d-9fcc-4df6-b221-cd7fcb1d7614
referenceNumber:
type: string
x-examples:
- S-000035994
vehicleTransferOrders:
type: array
items:
$ref: '#/components/schemas/VehicleTransferOrderIds'
created:
$ref: '#/components/schemas/Created'
owner:
$ref: '#/components/schemas/Company'
payer:
$ref: '#/components/schemas/Company'
canceled:
$ref: '#/components/schemas/Canceled'
labels:
type: array
items:
type: string
notes:
type: string
x-examples:
- Big May 1st delivery.
status:
type: string
type:
type: string
enum:
- BASIC
- SWAP
completedDate:
type: string
format: date-time
errors:
type: array
items:
$ref: '#/components/schemas/Error'
fare:
type: array
items:
$ref: '#/components/schemas/FareItem'
dedicatedTransporter:
$ref: '#/components/schemas/Company'
preferredStatusExpiration:
type: string
preferredTransporters:
type: array
items:
$ref: '#/components/schemas/Company'
replacement:
$ref: '#/components/schemas/Replacement'
required:
- id
- referenceNumber
- vehicleTransferOrders
- created
- status
- type
Window:
type: object
title: Window
properties:
confirmed:
type: boolean
start:
type: string
description: Datetime in ISO 8601 format.
format: ISO 8601 datetime
x-examples:
- '2020-12-05T21:18:47+00:00'
end:
type: string
description: Datetime in ISO 8601 format.
format: ISO 8601 datetime
x-examples:
- '2020-12-05T21:18:47+00:00'
priority:
type: integer
format: int32
OrderPatchRequest:
type: object
title: OrderPatchRequest
properties:
labels:
type: object
additionalProperties:
type: string
notes:
type: string
VehicleMeasurements:
type: object
title: VehicleMeasurements
properties:
curbWeight:
type: number
format: double
grossVehicleWeightRating:
type: number
format: double
height:
type: number
format: double
length:
type: number
format: double
width:
type: number
format: double
VehicleT
# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/runbuggy/refs/heads/main/openapi/runbuggy-orders-api-openapi.yml