Bowmark AIdocs

Phone trade-in value

Looks up the current buyback value of an iPhone — model, storage and condition — and returns every vendor's live cash offer, highest first.

Looks up the current buyback value of an iPhone — model, storage and condition — and returns every vendor's live cash offer, highest first. Fans out across buyback comparison sources; direct API, no browser.

Also known as: phone trade-in, phone trade in, phone trade-in estimate, phone trade-in value, trade-in phone, trade in my phone, trade-in iphone, trade in iphone, iphone trade-in, iphone trade in value, trade-in offers, trade in offers, trade-in offers iphone, trade in offers iphone, iphone trade-in offers, sell my phone, sell my iphone, phone buyback, phone resale value, what's my phone worth

Call it

bowmark.phone_trade_in.estimate(query: { model: string; storage: string; condition?: string } | string, options?: CallOptions): Promise<PhoneTradeInEstimate>

Functions

FunctionWhat it does
estimateLooks up the current buyback value of an iPhone — bowmark.phone_trade_in.estimate({ model: "iPhone 14 Pro", storage: "256GB", condition: "good" }) — and returns every vendor's live cash…

Types

// The capability's own condition vocabulary — four tiers every buyback
// comparison site groups devices into, whatever it calls them natively.
type TradeInCondition = "like_new" | "good" | "fair" | "broken";

// One buyback vendor's live cash offer for the requested device.
type TradeInQuote = {
  source: string             // which source this quote came from, e.g. "sellcell"
  merchant: string           // the buyback vendor's own name, e.g. "BuyBackBoss"
  price: { amount: number; currency: string }   // integer minor units — cents
  paymentMethods: string[]
  paymentPeriod: string | null
  freeShipping: boolean
}
type PhoneTradeInEstimate = {
  model: string              // the resolved device slug, e.g. "iphone-14-pro"
  storage: string
  condition: TradeInCondition
  quotes: TradeInQuote[]     // every vendor's current offer, highest first
  warnings: string[]         // always present; empty when nothing was dropped
}

type CallOptions = {
  timeoutMs?: number   // per-provider budget in ms, default 30000, clamped to 1000-55000.
                       // A provider slower than this is DROPPED from the results and
                       // NAMED in warnings — never silently absent
}

Examples

// what's my iPhone 14 Pro worth right now, in good condition?
const { quotes, warnings } = await bowmark.phone_trade_in.estimate({
  model: "iPhone 14 Pro",
  storage: "256GB",
  condition: "good",
});
for (const w of warnings) log(w);
const best = quotes[0] ?? null;
log(best ? `${best.merchant}: $${(best.price.amount / 100).toFixed(2)}` : "no offers found");
return quotes.slice(0, 5);
// compare a mint vs. a cracked-screen iPhone 15
const [mint, cracked] = await Promise.all([
  bowmark.phone_trade_in.estimate({ model: "iPhone 15", storage: "128GB", condition: "like_new" }),
  bowmark.phone_trade_in.estimate({ model: "iPhone 15", storage: "128GB", condition: "fair" }),
]);
return { mint: mint.quotes[0] ?? null, cracked: cracked.quotes[0] ?? null };

Providers behind it

Provider
sellcellSellCell
appleApple