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
| Function | What it does |
|---|---|
compare | Prices 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",
});