LoadUp
LoadUp's own item-selector and live pricing engine for junk removal, donation and furniture pickup — the current catalog of items with base prices, a real…
LoadUp's own item-selector and live pricing engine for junk removal, donation and furniture pickup — the current catalog of items with base prices, a real ZIP-specific guaranteed quote for an exact set of items, and whether/how a ZIP is served, all off the same GraphQL API the site's own booking widget calls.
Domain: goloadup.com
Also known as: LoadUp, loadup, goloadup, goloadup.com
Call it directly
bowmark.providers.goloadup.getPricingCatalog(): Promise<GoloadupItemType[]>
bowmark.providers.goloadup.getQuote(zip: string, items: GoloadupQuoteItem[]): Promise<GoloadupQuote>
bowmark.providers.goloadup.checkServiceAvailability(zip: string): Promise<GoloadupServiceAvailability>Functions
| Function | What it does |
|---|---|
getPricingCatalog | Returns LoadUp's full current catalog of pickupable items (couches, mattresses, appliances, and 400+ more), each with its category, alternate names, and national base… |
getQuote | Prices an EXACT set of items (e.g. [{ itemId: "7412", quantity: 1 }] for one Couch/Loveseat) at a real ZIP code against LoadUp's live pricing engine — the same call its own booking widget… |
checkServiceAvailability | Checks whether and how LoadUp serves one ZIP code, independent of any specific items — in service, same-day pickup allowed, and whether retail assembly is offered there. |
Types
// LoadUp's OWN shapes — not a capability contract.
interface GoloadupItemType {
id: string; // the key getQuote's items take
name: string;
category: string | null; // e.g. "COUCH", "MATTRESS"
aliases: string[]; // alternate names the site matches this item on
pickupAllowed: boolean;
pickupPrice: number | null; // national base price — getQuote is the real, ZIP-priced number
assemblyAllowed: boolean;
assemblyPrice: number | null;
disassemblyAllowed: boolean;
disassemblyPrice: number | null;
}
interface GoloadupQuoteItem { itemId: string; quantity: number }
interface GoloadupQuote {
validServiceArea: boolean; // false = ZIP is outside LoadUp's service area, other fields are placeholders
validZip: boolean; // false = ZIP itself is not recognized
basePrice: number; // the area/trip fee added on top of the items
total: number; // the guaranteed total for exactly these items at this ZIP
totalFormatted: string; // "$124.00"
taxAmount: number;
minimumPrice: number; // the floor LoadUp charges regardless of what's selected
minimumPriceApplied: boolean;
sameDayAllowed: boolean;
bookingUrl: string; // hand the shopper here to finish scheduling
}
interface GoloadupServiceAvailability {
validZip: boolean;
inService: boolean;
sameDayAllowed: boolean;
estimationAllowed: boolean;
retailAssembliesAllowed: boolean;
}Examples
// What would it cost to get rid of a couch and a queen mattress in 30312?
const catalog = await bowmark.providers.goloadup.getPricingCatalog();
const couch = catalog.find((i) => i.name === "Couch / Loveseat");
const mattress = catalog.find((i) => i.name === "Mattress - Queen");
const quote = await bowmark.providers.goloadup.getQuote("30312", [
{ itemId: couch.id, quantity: 1 },
{ itemId: mattress.id, quantity: 1 },
]);
return { total: quote.totalFormatted, sameDay: quote.sameDayAllowed, bookHere: quote.bookingUrl };// Does LoadUp even serve this ZIP before pricing anything?
const availability = await bowmark.providers.goloadup.checkServiceAvailability("30312");
return { inService: availability.inService, sameDay: availability.sameDayAllowed };