The business's days from tomorrow for six months, the business's closed days among them (weekend days it doesn't work and bank holidays it hasn't opened), and the earliest and latest start times. A customer's quote for a closed day, or a start that isn't on the hour within these times, is refused.
Prices the job from the route through its legs' stops, in the quickest order by road. Refused unless the job type is on and online (GET /v1/config job_types), never for a delivery, and unless the legs fit the type's switches and the sizes and waste kinds are the firm's. The customer must give a first name, a last name, an email address and a phone number of at least 7 digits; each is trimmed. A customer is created from the email the first time. For an email that already belongs to a customer, the quote shows the details sent, not the stored ones.
Request body · object
quoteQuote, required
quote_idinteger (int64)
uuidstring
job_typestring
One of: houseofficeitemsparcelswastedelivery
house_bystring
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
recaptcha_tokenstring
A reCAPTCHA token, when the tenant checks reCAPTCHA (GET /v1/config says whether).
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
Needs the settings.write permission. `terms` is the newest saved version, or the template filled with the business's details as version 0 while none is saved. `versions` lists the saved versions, newest first, without their bodies.
Response 200 · object
Done.
termsTerms, required
versioninteger, required
0 for the template not yet saved.
bodystring
Left out in a list of versions.
created_atstring
created_byinteger (int64)
The member of staff who saved it; absent for the template saved at a first acceptance.
created_by_namestring
Their full name.
versionsarray of Terms, required
versioninteger, required
0 for the template not yet saved.
bodystring
Left out in a list of versions.
created_atstring
created_byinteger (int64)
The member of staff who saved it; absent for the template saved at a first acceptance.
Needs the quotes.write permission. The types that are on, in the firm's order, delivery and types not offered online included, each with its switches, active sizes and, for waste, the waste kinds taken. The same shape as GET /v1/config job_types.
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
Needs the quotes.write permission. Takes the body of POST /v1/admin/quote, with staff's crew, vehicle, hours and extras, and prices it the same way, storing nothing and sending no email. With book, an unsaved price book (needs pricing.write), it prices with that instead, for trying settings before saving them. A quote of several legs, or of waste, needs pricing and is priced when saved. Send back the route_ref of the last preview; while the leg's addresses, the time, the vehicle and the yard travel are unchanged its route is reused without asking HERE again. A reference lasts 30 minutes. Each HERE route is counted in the business's usage, as quotes are. When HERE can't be reached the status is awaiting route, and when it finds no route or the job can't be priced, needs pricing, both without a price.
Request body · object
quoteQuote, required
quote_idinteger (int64)
uuidstring
job_typestring
One of: houseofficeitemsparcelswastedelivery
house_bystring
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
route_refstring
bookPriceBook
A firm's price book. Amounts are in pence.
settingsPriceSettings, required
rate_methodstring, required
One of: tablevan_plus_people
travelstring, required
One of: noneto_pickupboth
oversizestring, required
One of: by_handvehiclestripsvehicles_trips
road_chargesstring, required
One of: hereflatnone
displaystring, required
One of: fixedestimaterange
breakdownboolean, required
range_percentnumber, required
min_hoursnumber, required
rounding_minutesinteger, required
One of: 153060
booking_feeinteger (int64), required
min_margin_percentnumber or null, required
fixed_radius_milesnumber, required
kg_per_m3number, required
rubble_kg_per_m3number, required
The weight of a load of rubble and soil.
min_crewinteger, required
crew_rulesarray of object, required
above_m3number, required
crewinteger, required
large_crewinteger, required
floor_surchargeinteger (int64), required
heavy_surchargeinteger (int64), required
heavy_onceboolean, required
fragile_surchargeinteger (int64), required
fragile_onceboolean, required
early_beforestring, required
HH:MM in the business's time zone, or empty.
late_afterstring, required
HH:MM in the business's time zone, or empty.
methodsobject, required
The price method of each job type.
vehiclesarray of VehiclePrices, required
vehicle_idinteger (int64), required
namestring
Read only.
confirmedboolean
Read only.
hourlyarray of object, required
The hourly rate for each crew size, under table rates.
crewinteger, required
hourlyinteger (int64), required
van_hourlyinteger (int64) or null, required
The vehicle with its driver, under van_plus_people rates.
extra_person_hourlyinteger (int64), required
per_mileinteger (int64), required
size_pricesarray of object, required
The fixed price of each priced size.
typestring, required
One of: houseofficeitemsparcelswastedelivery
sizestring, required
penceinteger (int64), required
fullnessarray of object, required
fullnessstring, required
One of: lightaveragepacked
factornumber, required
adjustmentsarray of object, required
kindstring, required
One of: saturdaysundaybank_holidayearlylatepeakmidweek
percentnumber, required
From -50 to 200.
peak_datesarray of object, required
datestring (date), required
labelstring, required
zonesarray of object, required
zonestring, required
penceinteger (int64), required
extrasarray of PriceExtra, required
idinteger (int64)
Absent for a new extra.
namestring, required
penceinteger (int64), required
unitstring, required
One of: fixeditemunithourweek
onlineboolean, required
Offered on the website. Hourly extras are for staff only.
Needs the quotes.write permission. For a firm's own system. Takes from 1 to 100 bodies of POST /v1/admin/quote and creates each on its own, in the order sent; a refused quote is answered at its place with its error and the others are kept. Any other failure fails the whole batch.
Request body · object
quotesarray of object, required
quoteQuote, required
quote_idinteger (int64)
uuidstring
job_typestring
One of: houseofficeitemsparcelswastedelivery
house_bystring
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
Needs the quotes.read permission. Filter on a quote field, written field=value. A value may end ~eq, ~ne, ~gt, ~lt, ~gte or ~lte; a,b~between or a~between~b; a,b~in or a,b~nin. Fields: quote_id, uuid, customer_id, status, job_type, service_date, appointment_time, special_instructions, estimated_cost, total_value (pence). date_from and date_to select by service_date.
Parameters
qstring, in the query
Matches the customer's name, email or phone, the postcode of any address on its legs (spaces ignored), or the quote number.
limitinteger, in the query
10 by default, 100 at most.
offsetinteger, in the query
date_fromstring, in the query
YYYY-MM-DD.
date_tostring, in the query
YYYY-MM-DD.
Response 200 · object
Done.
quotesarray of Quote, required
quote_idinteger (int64)
uuidstring
job_typestring
One of: houseofficeitemsparcelswastedelivery
house_bystring
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
Needs the quotes.write permission. Takes any job type the firm has on. With book, or for a delivery, the quote is accepted and its jobs made, one per leg, once it is priced, at once or when the retry prices it or staff set its price; until then it waits as any quote does.
Request body · object
quoteQuote, required
quote_idinteger (int64)
uuidstring
job_typestring
One of: houseofficeitemsparcelswastedelivery
house_bystring
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
bookboolean
Save the quote accepted and make its jobs once priced, now or later.
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
Needs the quotes.write permission. Pence replaces what the customer pays, with a reason; the worked-out price stays beside it as calculated, from the quote's stored route and price book. A null pence clears the override. A quote that couldn't be priced takes the price given; then a delivery, or a quote saved with book, is accepted and its jobs made (job_ids), and any other's customer is emailed it. An accepted, declined, cancelled or expired quote's price can't change (409).
Parameters
idstring, in the path, required
Request body · object
penceinteger (int64) or null
reasonstring
Example request
{
"pence": 0,
"reason": "string"
}
Response 200 · object
Done.
quoteQuote, required
quote_idinteger (int64)
uuidstring
job_typestring
One of: houseofficeitemsparcelswastedelivery
house_bystring
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
Needs the quotes.write permission. Pence replaces the firm's deposit rule for this quote; 0 waives the deposit and a null goes back to the rule. The quote's deposit_pence is capped at its gross price and is 0 under 30 pence. An accepted, declined, cancelled or expired quote's deposit can't change (409).
Parameters
idstring, in the path, required
Request body · object
penceinteger (int64) or null
Example request
{
"pence": 0
}
Response 200 · object
Done.
quoteQuote, required
quote_idinteger (int64)
uuidstring
job_typestring
One of: houseofficeitemsparcelswastedelivery
house_bystring
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
Needs the quotes.write permission. For a quote with status "acceptance received": checks its day is still bookable (409 if not), books it (status accepted, jobs made, job_ids) and emails the customer.
Parameters
idstring, in the path, required
Response 200 · object
Done.
quoteQuote, required
quote_idinteger (int64)
uuidstring
job_typestring
One of: houseofficeitemsparcelswastedelivery
house_bystring
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
Needs the quotes.write permission. For a quote with status "acceptance received": status declined, and the customer is emailed with the reason given.
Parameters
idstring, in the path, required
Request body · object
reasonstring
Told to the customer in the email.
Example request
{
"reason": "string"
}
Response 200 · object
Done.
quoteQuote, required
quote_idinteger (int64)
uuidstring
job_typestring
One of: houseofficeitemsparcelswastedelivery
house_bystring
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
Needs the quotes.read permission. The quote on the business's letterhead, as its customer sees it, with its terms on their own pages. Generated for each request and never stored; Cache-Control: no-store.
Needs the quotes.write permission. Emails the price and a link to the quote, and records sent_at; sending again sends again. Only a priced quote that is still open can be sent (409).
Parameters
idstring, in the path, required
Response 200 · object
Done.
quoteQuote, required
quote_idinteger (int64)
uuidstring
job_typestring
One of: houseofficeitemsparcelswastedelivery
house_bystring
For a house, how it is described; the firm's choice when left out. A customer's quote must use the firm's.
One of: sizeroom
service_datestring
YYYY-MM-DD, the business's day of the work. Needed for parcels and delivery; for the other types it comes from appointment_time.
appointment_timestring
UTC. Needed for house, office, items and waste, and refused on parcels and delivery. Sent as 2026-10-05T12:00:00Z; returned as 2026-10-05 12:00:00.
legsarray of Leg
At least one. Several collections or drops only where the firm's job type allows them.
leg_idinteger (int64)
positioninteger
The leg's place in the quote, from 0; set from the order sent.
from_addressAddress
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
to_addressAddress
On a waste leg, the first disposal site chosen; a customer can't set it.
address_idinteger (int64)
customer_idinteger (int64)
quote_idinteger (int64)
house_numberinteger
house_namestring
streetstring
townstring
citystring
countystring
postcodestring
Must be a live postcode in England, Scotland or Wales; stored as "AB1 2CD".
latitudenumber
Sent with longitude and match_level from a chosen suggestion; otherwise the address is found when saved.
longitudenumber
match_levelstring
How the position was found. postcode means the postcode's centre was used.
One of: housestreetpostcodemanual
needs_checkboolean
Set when staff should check the position. Ignored when sent.
from_yard_idinteger (int64)
The yard a delivery sent without a collection address is collected from, the one nearest its drop. Ignored when sent.
from_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
to_accessAccess
What a crew meets at one end of a leg.
property_typestring
notesstring
Access notes, such as narrow stairs or no parking.
floorinteger
liftboolean
carry_minteger
How far, in metres, things are carried between the door and the vehicle.
recipient_namestring
recipient_phonestring
size_keystring
One of the firm's active sizes for the type (GET /v1/config job_types); needed for parcels, waste and a house by size; a delivery's is standard when left out; none for office and items.
waste_kindsarray of string
On a waste leg, at least one of the firm's waste kinds; none on other types.
window_startstring
HH:MM, the business's local time. Only on parcels and delivery.
window_endstring
HH:MM, after window_start.
load_kginteger
A waste load's weight, its size's cubic metres at the price book's rubble_kg_per_m3 when it holds rubble_soil, otherwise kg_per_m3. Ignored when a customer sends it.
itemsarray of Item
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
special_instructionsstring
fullnessstring
For a house by size, how full the property is.
One of: lightaveragepacked
roomsarray of Room
For a house by room, on a quote with one leg, at least one room.
typestring, required
One of: bedroomkitchenloungedining_roombathroomofficeloftgarageshed
floorinteger, required
itemsarray of Item
Sent with a new quote, the room's items; they are stored with the leg's items, on the room's floor and naming the room. Returned rooms have none.
item_idinteger (int64)
leg_idinteger (int64)
On a quote, the leg the item travels on. Ignored when sent.
typestring
categorystring
quantityinteger
weightinteger
Kilograms.
lengthinteger
Centimetres.
widthinteger
heightinteger
fragileboolean
handling_minutesinteger
One person's minutes to handle the item; left out, they come from its size (20 a cubic metre).
floorinteger
On a quote, the floor the item is on; -1 is a basement and 0, the default, the ground floor.
roominteger
On a quote moved room by room, the index in its rooms of the item's room.
roomsarray of string
In the catalogue, the room types the item is usually found in.
largeboolean
In the catalogue, whether the item is large or awkward to move.
customerCustomer
customer_idinteger (int64)
titlestring
first_namestring
last_namestring
emailstring (email)
email_confirmed_atstring
When the customer first signed in by a link sent to the email; cleared when the email changes. Ignored when sent.
phonestring
The latest number given.
phonesarray of string
Every number the customer has given, oldest first, each once however spaced. Ignored when sent.
crewinteger or null
Staff's crew; null works it out from the firm's crew rules. Staff only.
vehicle_idinteger (int64) or null
Staff's vehicle; null chooses the smallest confirmed vehicle that fits. Staff only.
hours_minutesinteger or null
The time staff charge, in minutes; null works it out. Staff only.
extrasarray of QuoteExtra or null
idinteger (int64), required
quantityinteger, required
namestring
As priced. Ignored when sent.
priceinteger (int64)
Pence each, as priced. Ignored when sent.
total_valueinteger (int64)
What the customer pays, in pence.
price_linesarray of PriceLine or null
The price's parts. To customers only when the firm shows its breakdown and staff haven't set the price.
kindstring, required
One of: timefixedmilesfloorsheavyfragileextraadjustmentbooking_feeroad_chargesgate_feefree
labelstring, required
quantitynumber, required
unitinteger (int64), required
amountinteger (int64), required
vatVATPrice
A price excluding VAT with the VAT the firm adds at the standard 20%; registered is the firm's vat_registered setting, and without it vat is 0 and gross is net.
registeredboolean, required
netinteger (int64), required
vatinteger (int64), required
grossinteger (int64), required
displayPriceDisplay or null
How the price is shown to the customer, in pence. An estimate gives the hourly rate; a range its upper end.
kindstring, required
One of: fixedestimaterange
amountinteger (int64), required
upperinteger (int64)
hourly_rateinteger (int64)
pricedPriced or null
What a quote was priced with. Staff only.
crewinteger
vehiclesarray of object
vehicle_idinteger (int64)
tripsinteger
hoursnumber
calculatedinteger (int64)
The worked-out price, beside staff's override. Staff only.
estimated_costinteger (int64)
Staff only.
margininteger (int64)
Staff only.
below_marginboolean
Under the firm's minimum margin. Staff only.
price_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/price.
deposit_penceinteger (int64)
The deposit due to book, in pence, from the firm's deposit rule or staff's override, capped at the gross price; 0 when there is none or it is under 30 pence.
deposit_onlinestring
Set by GET /v1/quote/{id} when accepting takes deposit_pence online first, through the checkout_url accepting answers; "pay" takes it at once, "hold" holds it on the card until staff confirm the booking.
One of: payhold
pay_witharray of string
Set by GET /v1/quote/{id} with deposit_online; the providers the deposit can be paid with, in the order to offer them.
One of: stripepaypal
card_balanceobject
Set by GET /v1/quote/{id} when accepting pays the deposit online at a firm that charges the balance to the card before the move; accepting with Stripe then needs agree_card.
amount_penceinteger (int64), required
onstring (date), required
The date the balance is taken, from 08:00.
deposit_overrideinteger (int64) or null
Staff only; set with PUT /v1/admin/quote/{id}/deposit.
deposit_holdobject
Set by GET /v1/admin/quote/{id} while the deposit is held on the customer's card, waiting for staff to confirm the booking.
amount_penceinteger (int64), required
hold_untilstring, required
UTC, YYYY-MM-DD HH:MM:SS, when the hold lapses.
override_reasonstring
Staff only.
statusstring
"quoted price" when priced. "accepted" when booked or a delivery, once priced. "awaiting route" while HERE can't be reached: the route is tried again every 5 minutes and the customer is emailed the price when it arrives. "needs pricing" when staff must price it by hand (see pricing_reason); the customer is told their price will follow by email. "expired" once a priced quote is past valid_until, worked out when read. "acceptance received" when the customer accepted online and the business confirms bookings itself.
distanceinteger
Metres.
durationinteger
Minutes.
duration_in_trafficinteger
pricing_reasonstring
Why staff must price the quote by hand, when its status is "needs pricing".
disposal_stopsarray of DisposalStop
On a waste quote: the fewest disposal sites, open on its day, that between them take every kind in the load, chosen from the 5 nearest the collection and in the quickest order by road from the collection to the nearest yard. When none can take it the quote needs pricing, the reason naming the kinds left.
positioninteger
site_idinteger (int64)
namestring
gate_fee_penceinteger (int64)
job_idsarray of integer (int64)
The jobs a quote booked when it was made became, one per leg.
created_atstring
updated_atstring
sent_atstring
When the quote was last emailed to the customer. A website quote is emailed when priced; a staff quote when staff send it. Ignored when sent, as are valid_until, accepted_at, accepted_by and terms_version.
valid_untilstring (date)
The last day the quote can be accepted, set when it is priced from the business's quote_valid_days and never after the move date.
accepted_atstring
accepted_bystring
One of: customerstaff
terms_versioninteger
The version of the terms and conditions a customer accepted the quote under.
Needs the quotes.read permission. Returns the quote's stored route, or plans one with HERE for the business's default vehicle (a generic 3.5 t van until it has a confirmed one) and stores it.
Parameters
quote_idinteger (int64), in the query, required
Response 200 · object
Done.
routeRoute, required
quote_idinteger (int64), required
from_addressstring
to_addressstring
appointment_timestring
departure_timestring
When to leave to arrive at the appointment, with traffic.
durationinteger
Minutes without traffic.
duration_in_trafficinteger
Minutes with the traffic expected at the time.
distanceinteger
Metres.
fuel_litresnumber
Litres for the vehicle's fuel and consumption; left out for electric vehicles.
co2_kgnumber
pointsarray of array of number, required
The route line as [latitude, longitude] pairs.
incidentsarray of object, required
typestring
criticalitystring
descriptionstring
noticesarray of object, required
HERE's warnings, such as a restriction it couldn't avoid.
codestring
titlestring
severitystring
vehicle_idinteger (int64)
The vehicle the route was planned for.
generic_vehicleboolean, required
Set when the route was planned for the generic 3.5 t van because the business has no confirmed default vehicle.
road_chargesarray of RoadCharge
Road charges on the route in pence (tolls, crossings, congestion and clean air zones), when the business passes them on and has road charge lookups left. London's ULEZ is left out for vehicles that meet it.
zonestring, required
london_congestion, london_ulez, dartford, or the toll's own name in snake case.