Bowmark AIdocs

Gazelle

gazelle.com's own current trade-in offer for a device, for a chosen capacity/carrier/condition — read off the same bootstrap JSON and pricing endpoint the…

gazelle.com's own current trade-in offer for a device, for a chosen capacity/carrier/condition — read off the same bootstrap JSON and pricing endpoint the site's own offer page uses, instead of parsing prose off the rendered page.

Domain: gazelle.com

Also known as: Gazelle, gazelle.com

Call it directly

bowmark.providers.gazelle.findDevices(query?: string): Promise<GazelleDevice[]>
bowmark.providers.gazelle.getTradeInQuote(device: string, selections?: { capacity?: string; carrier?: string; condition?: string }): Promise<GazelleQuoteResult>

Functions

FunctionWhat it does
findDevicesEvery device gazelle.com takes in trade, off gazelle's own sitemap — name, brand, model slug and the device's trade-in page URL.
getTradeInQuoteReads gazelle.com's own current trade-in offer for a device, for the given capacity/carrier/condition (each matched against that device's own option labels, e.g. condition: "Good").…

Types

interface GazelleDevice {
  name: string;    // "iPhone 14 Pro" — what a person would say
  brand: string;   // gazelle's own brand segment, e.g. "iphone"
  model: string;   // gazelle's own model slug, e.g. "iphone-14-pro"
  url: string;     // the device's trade-in page
}
interface GazelleQuoteResult {
  deviceUrl: string;
  product: { id: string; name: string };
  selections: { capacity: string | null; carrier: string | null; condition: string | null };
  estimatedValue: number;
  expirationDate: string | null;
}

Examples

// what does gazelle pay for a Good, unlocked 256GB iPhone 14 Pro right now?
// the device is named the way a person names it — no URL needed
const quote = await bowmark.providers.gazelle.getTradeInQuote("iPhone 14 Pro", {
  capacity: "256GB",
  condition: "Good",
});
log(`$${quote.estimatedValue} (${quote.selections.condition})`);
// which iPads does gazelle take at all?
const devices = await bowmark.providers.gazelle.findDevices("ipad");
log(devices.map((d) => d.name));