Bowmark AIdocs

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

FunctionWhat it does
getPricingCatalogReturns LoadUp's full current catalog of pickupable items (couches, mattresses, appliances, and 400+ more), each with its category, alternate names, and national base…
getQuotePrices 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…
checkServiceAvailabilityChecks 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 };