Bowmark AIdocs

Phone price comparison (carriers)

What a phone actually costs right now, across carriers — T-Mobile's live device-page pricing and financing plus every promotion's per-trade-in-device…

What a phone actually costs right now, across carriers — T-Mobile's live device-page pricing and financing plus every promotion's per-trade-in-device credit, and Visible's catalogue price and Affirm financing for a matched storage variant, merged into one price-sorted list. Built for a chip-cost price hike that repriced Android flagships across carriers at once, so a shopper can compare instead of reading one carrier's page.

Also known as: phone price, phone prices, carrier phone price, cell phone price, android phone price, phone upgrade cost, switch carriers, trade in phone, trade-in, snapdragon price hike, t-mobile, tmobile, visible

Call it

bowmark.phone_price.compare(args: { model: string; storageGb?: number; tradeInModel?: string; tmobileDevicePath?: string }): Promise<PhonePriceCompareResult>

Functions

FunctionWhat it does
comparePrices one phone across T-Mobile and Visible in parallel and returns a price-sorted list.

Types

type PhonePriceOffer = {
  carrier: string                    // which carrier this offer is from
  listPriceUsd: number | null        // full price of the device / matched storage variant
  monthlyPriceUsd: number | null     // financed monthly payment
  financingTermMonths: number | null // months monthlyPriceUsd is amortised over
  tradeInCreditUsd: number | null    // best credit for tradeInModel; always null on
                                      // a visible row (no per-device figure published)
  sourceUrl: string                  // the page this price was read from
}
type PhonePriceCompareResult = {
  offers: PhonePriceOffer[]  // one row per carrier that answered, unsorted — read
                             // listPriceUsd to rank
  warnings: string[]        // always present; names a carrier that did not answer.
                             // A carrier named here priced NOTHING — read this before
                             // concluding it doesn't sell the phone
}

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

return await bowmark.phone_price.compare({
  model: "Galaxy S25 Ultra",
  storageGb: 512,
  tradeInModel: "Galaxy S24",
});

Providers behind it

Provider
tmobileT-Mobile
visibleVisible