Get delivery quote
Returns the available service tiers, fares (IDR), distance, and estimated
pickup / dropoff times for a pickup–dropoff pair. Quotes are returned as an
array; if you omit serviceType the cheapest single tier is
assumed.
The legacy path POST /v1/deliveries/quotes is
deprecated (21 May 2026) and will be
obsoleted on 21 November 2026. New integrations must use
POST /express/v1/deliveries/quotes.
Headers
Asia/Jakarta, Asia/Makassar, Asia/Jayapura.Parameters
EXPRESS, LOGISTIC. Default EXPRESS. Only needed on the legacy /v1/deliveries/quotes path; the /express/v1/deliveries/quotes path implies EXPRESS.EXPRESS: INSTANT or SAME_DAY. For LOGISTIC: SAME_DAY.CASH or CASHLESS. Default CASHLESS."Martabak Manis".REGULAR, SPECIAL, SENSITIVE, HIGH_VALUE, OTHER. Validated here but does not change the quoted amount. The packages echo returns the normalised value, not your literal input — " HIGH_VALUE " comes back as HIGH_VALUE, and an omitted, null, or empty type is left absent from the echo rather than defaulted. Create Delivery is where an omitted value becomes REGULAR. See Package type.schedule when present, e.g. 2025-05-26T23:59:59+07:00.true to skip the area and courier check, so locationAvailability, driverAvailability and availability all come back true. false or omitted runs the real check. Ignored in Production. Get Quote only — Create Delivery rejects it as UNKNOWN_FIELD. See Testing availability in Sandbox.Error responses
Every error below carries an errorCode — branch on it. The error message is Indonesian display copy and may change.
Butuh request body.Field tidak dikenali: [<field>]serviceType other than INSTANT / SAME_DAY for EXPRESS (omit it to quote every tier), coordinates outside ±90 / ±180, and a packages[].type outside the accepted list.x-client-time-zone that is not a recognised IANA zone.Ups! Sepertinya waktu pengantaran yang Anda pilih sudah lewat. Yuk, pilih waktu lain yang masih tersedia.Pengantaran hanya dapat dijadwalkan dalam rentang hari ini hingga maksimal N hari ke depanRute tidak ditemukan. Pastikan rute antar titik sesuai.).requestId when contacting us.Unavailable areas or drivers do not throw — the response
returns 200 with availability: false and the
locationAvailability / driverAvailability flags set
accordingly.
Testing availability in Sandbox
Sandbox has no couriers of its own, so an instant quote made with a Sandbox token normally returns driverAvailability: false, even inside the coverage area. Add "sandboxAvailability": true to the body to get an available quote and carry on with the flow.
- Sandbox,
true— area and courier checks are skipped, for instant and scheduled quotes alike.locationAvailability,driverAvailabilityandavailabilityare alltrue. Fares, distance and timeline are still computed from the real route, so the validation errors and422 LOCATION_TOO_FARstill apply. - Sandbox,
falseor omitted — the real check runs. An origin outside the coverage area returnsquotes: []withlocationAvailability: false. - Production — accepted but ignored; availability always reflects real courier supply. Unlike Create Delivery's
forceUnavailable, it is not rejected, so a payload that still carries it will not fail. Remove it anyway before going live.
To rehearse the opposite case — a booking refused because no courier is free — send forceUnavailable: true on Create Delivery in Sandbox.