Skip to main content
POST
Check a price
Required scope: orders:write. Read the workflow guide for setup, examples, and recovery behavior.

Authorizations

Authorization
string
header
required

OAuth 2.0 client credentials.

Headers

X-Request-Id
string

A caller-supplied request identifier for support.

Required string length: 1 - 255

Body

application/json

Route, vehicles, and service choices used to calculate a price.

pickup
object
required

Proposed pickup details. A price check does not require pickup availability.

delivery
object
required

Proposed delivery details.

items
(Primary vehicle · object | Trade-in vehicle · object)[]
required

One primary vehicle and, optionally, one reverse-route trade-in vehicle.

Required array length: 1 - 2 elements

One vehicle included in a price calculation.

service_options
object
required

Proposed transport and inspection service.

ordered_for
object

Optional. Send it only when an ordering-channel credential orders for another business. Omit it to order for your own account.

Response

The price check is complete.

Automatic price result or a clear custom-quote result.

status
any
required

available means the response contains an automatic price.

ordered_for
object | null
required

Business the price was calculated for, or null when it is for your own account.

price
object
required

Automatic price for this request.

distance_meters
integer | null
required

The driving distance in meters that the price calculation uses for this route. Bahn's per-km prices use this distance rounded up to whole kilometers. Use it to calculate your own derived prices from exactly the same distance. The value is null when no driving distance is available for the route.

Required range: x >= 0
estimated_pickup_at
string<date-time>
required

Indicative pickup time for this price result. It is not an agreed window or ETA.

estimated_delivery_at
string<date-time>
required

Indicative delivery time for this price result. It is not an agreed window or ETA.