Quotes take the addresses, and booking is one call
How addresses, quotes and booking work in v1.
Quotes take the addresses
POST /quotestakespickupanddropoffas address objects. Each hasname,phone,address(the street as text),lga(local government area) andstate, all required, and optionalarea,email,place_id,latitudewithlongitude,notesandmetadata. Send theareawhen your customer gives one: it is what Reeds prices from when Google can't match the text. See Addresses.- Reeds always prices the address. It looks up
address,area,lgaandstatetogether with Google Maps. When the match is exact, that is the spot. When Google is unsure, Reeds uses Google's point if it lies in the area or the local government area you named, and otherwise prices from the centre of that area, using its own area data, or from the centre of the local government area when you sent no area. You get a plain price either way. Riders use the street text and call the receiver for the exact spot. - A
place_id, orlatitudeandlongitude, make the spot yours:area,lgaandstateonly name it. - The addresses are kept with the quote for 30 days, then deleted unless the quote became a delivery.
- A quote response no longer carries address ids.
datafor an unavailable quote isavailable: falseand areason. schedule.pickup_byis now a date (2026-10-26), the day Reeds collects, with no time of day promised.earliest_deliveryanddeliver_byare unchanged.
A new quote reason: ADDRESS_NOT_FOUND
ADDRESS_NOT_FOUND means Reeds knows neither the area nor the local government area you sent in that state, and Google found nothing it trusts. It is a 200 with available: false, not an error. Check the spelling of lga and state, add or check the area, or send coordinates or a place id. A quote's reasons are now ADDRESS_NOT_FOUND, ADDRESS_NOT_SERVICEABLE and INTERSTATE_NOT_AVAILABLE.
There is no address book
Updated on 2026-11-10
/addresses now serves address search: GET /addresses/autocomplete, /addresses/details and /addresses/reverse, with their own rate-limit group. They look addresses up; they don't save them. There is still no address book.
- There are no
/addressesendpoints and noAddressobject, and no request takes an address id. An address is never waiting to be confirmed, so there is noneeds_confirmationstatus, noaddress.confirmedwebhook, and noADDRESS_IN_USEorADDRESS_NEEDS_CONFIRMATIONcode. - A delivery's
pickupanddropoffstill carry anaddresswith anadr_id and the contact and location as quoted. The id names that stop's address on that delivery. - There are twelve webhook event types.
- The
addressesrate-limit group is gone.POST /quotesis limited to 30 a minute on business accounts and 300 on platform accounts, and every other limit is as before. See Rate limits.
Booking is one call
- A delivery is booked with
POST /deliveriesand aquote_id, plus optionallyready,reference,shipper,pickup_instructions,dropoff_instructionsandmetadata. The addresses, the package and the pickup date are the quote's. - A field that belongs to the quote, such as
packageorpickup_date, is422 INVALID_REQUEST. The error names the field and points toPOST /quotes. - The parcel rules (100 kg, 120 cm, no prohibited items) are checked on the quote. The weight limit was 30 kg until today.
- Requires action is smaller. A delivery booked with
ready: falseis charged, has its tracking code, and waits withMARK_READYuntilPOST /deliveries/{id}/ready. The other actions,BOOK,FUND_WALLET,PAY_INVOICE,AWAITING_PRICEand the address confirmations, belong to deliveries your team creates in the dashboard.POST /deliveries/{id}/bookis for a priced dashboard delivery waiting onBOOK; a delivery booked through the API from a quote is charged at once. - Test addresses now shows what to send for each quote outcome, and the quickstart goes from a token to a quote with addresses, a booking and tracking.
No integration had been built on an address book or a draft, so nothing here breaks one.