find_flips
Find profitable resale candidates at a retailer in one call. Returns product families (variants collapsed) from the refreshed catalog ranked by ROI after marketplace fees, priced against the better of the live Amazon buy box and the Walmart cross-match (each row names the winning marketplace), with dead / parked-at-MSRP / case-pack / mismatched listings removed and a BUY or THIN call on every row, plus a coverage summary. Candidates are not gated on an on-sale flag: any price-changed item that clears the ROI screen surfaces. Set window:"today" for the daily-deals report (items refreshed today). Set retailer_id to "all" to scan across stores. To scan a whole merchandising category (e.g. every shoe/apparel or electronics store, including feed-based stores the daily scan misses), set retailer_id:"all" and pass vertical (e.g. "shoes_apparel"). On plans with paging, page the full ranked list via meta.next_cursor; the Free plan returns the top 10 rows. For ONE store, set retailer_id to that store and exhaustive:true to page its ENTIRE ROI-screened catalog (not just the top deals), served from a daily full-catalog precompute so it never times out; walmart is excluded. These are paper calls: shortlist, then verify live with get_retailer_product / check_listing_eligibility before buying. Links may be affiliate links; responses include an affiliate_disclosure.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Brand filter (exact match). | |
| limit | No | Rows per page. Default 25. The normal rundown caps at 100/page; an exhaustive full-store scan allows up to 1000/page so a whole-store workbook is a handful of pages. Free tier is capped to the top 10. | |
| cursor | No | Pagination cursor. Omit for the first page; then pass the prior response's meta.next_cursor verbatim to page through the full rundown (paid tiers only). On an exhaustive scan it is an opaque token - keep paging until meta.has_more is false. | |
| window | No | Time window for candidates. "today" = items refreshed since 00:00 UTC today (the daily-deals report); "week" = last 7 days; "all" (default) = the full refreshed catalog. Candidates are not gated on an on-sale flag - any price-changed item that clears the ROI screen surfaces. Sales rank (BSR) is never a filter. | |
| min_net | No | Minimum net profit per unit in USD. Default 3.00. | |
| min_roi | No | Minimum ROI after fees, as a fraction (0.20 = 20%). Default 0.20. | |
| category | No | Category filter (exact match). | |
| vertical | No | Scan every store in a merchandising vertical (10-41 stores) instead of the daily-deals changes feed. Covers feed-based stores that the "all" changes scan misses. Inherently cross-retailer: when set, retailer_id is ignored and the scan always spans the vertical's member stores (set retailer_id:"all"). Use for "find shoe deals / apparel flips / electronics to resell" style asks. | |
| max_price | No | Maximum retailer buy price (USD). | |
| min_price | No | Minimum retailer buy price (USD). | |
| exhaustive | No | Store-level FULL-CATALOG scan. With a specific retailer_id (not "all"), returns that store's COMPLETE ROI-screened resale catalog - every matched product, not a top sample - paged to completion via meta.next_cursor (paid tiers only). Served from a daily precompute (<=24h fresh), so it does not time out. Ignored for retailer_id:"all" / vertical, for window:"today", and for walmart (never full-scanned). Shortlist the winners, then verify live with get_retailer_product / check_listing_eligibility before buying. | |
| retailer_id | Yes | Retailer id (e.g. "kohls", "walmart"), or "all" to scan across stores and merge the results. For a whole merchandising category (e.g. every shoe/apparel store), set retailer_id:"all" and pass `vertical`. | |
| include_thin | No | Include THIN rows (profitable but under min ROI). Default false. | |
| referral_pct | No | Marketplace referral fee as a fraction of resale price. Default 0.20. | |
| fulfillment_fee | No | Flat per-unit fulfilment fee in USD. Default 5.00. |