Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta)
Pricing
from $3.00 / 1,000 results
Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta)
Scrape live product listings across Gap Inc's apparel & home-goods brands - Gap, Gap Factory, Old Navy, Banana Republic, and Athleta. Get prices, sale prices, colors, sizes, images, and ratings via the brands' shared public search API. No login, no cookies, no proxy required.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta, Gap Factory)
Scrape live product listings across Gap Inc's apparel & home-goods brands — Gap, Gap Factory, Old Navy, Banana Republic, and Athleta. Get real-time prices, sale prices and discount percentages, available colors and sizes, product images, and customer ratings — all structured and ready to use.
Whether you're tracking prices across Gap Inc's portfolio, building a deals/discount feed, monitoring stock of specific styles, or researching apparel trends, this actor gives you clean, structured access to every brand's live catalog through the same public search endpoint the brands' own websites use.
Why not Kohl's?
Kohl's (kohls.com) sits behind an Akamai Bot Manager deployment that returns 403 Access Denied to every non-browser request (confirmed via direct httpx and curl_cffi chrome131 TLS-impersonation attempts) and is well known to fingerprint/rate-limit even full-browser automation from datacenter IP ranges — reliably clearing it at zero cost would require a residential-proxy hard dependency, which this batch's build rules exclude. Gap Inc's five brand storefronts cover the same department-store apparel/home-goods category, share one clean public JSON API with no bot-wall at all, and are reachable reliably from plain datacenter IPs with zero cost — a materially more reliable target for the same use case.
What this actor does
- Five brands, one actor: switch storefronts with the
brandinput — Old Navy, Gap, Gap Factory, Banana Republic, Athleta - US or Canada market —
market: "ca"switches to each brand's Canadian storefront (distinct catalog, CAD pricing,gapcanada.caproduct URLs) for Old Navy, Gap, Banana Republic, and Athleta; Gap Factory has no Canadian storefront and always usesus - Keyword search across each brand's live catalog (e.g.
jeans,t-shirt,dress,sneakers) - Department filter — Women / Men / Girls / Boys / Toddler / Baby / Gender Neutral / Maternity
- Price range filter and on-sale-only filter
- Discount-type filter — restrict to Sale (promo) vs. Clearance (markdown) pricing
- Color and minimum review score filters — both applied server-side by the upstream API
- Additional facet filters (advanced) — pass through any category-specific upstream facet (
fit=Skinny,wash=Light Wash,rise=High,sleeveLength=Short Sleeve,activity=Running,occasion=Wedding, etc.) that the built-in dropdowns don't cover - Sort control — featured (relevance), price, customer rating, biggest discount. Because the upstream API has no working server-side sort,
price/reviewScore/discountare sorted client-side over a scanned candidate pool (up to 5×maxItems, capped at 500 products) - One record per color/SKU — matches what a shopper actually adds to cart, each with its own price, images, and available sizes
- No login, no cookies, no proxy required — reads the brands' shared public search API directly
Output per product
Every record includes:
productId,skuId— the style ID and the specific color/SKU IDname,brand,colorName(the color family, e.g.Blue),colorShade(the specific marketing shade name within that family, e.g.Navy,Medium Wash,Licorice— only present when it differs fromcolorName)effectivePrice,regularPrice,priceCurrency(USDorCAD, permarket),percentageOff,onSale,discountType(Promo/Markdown/Regular)badges— marketing badges the site itself shows (e.g.Best Seller), where presentpromoMessage— the live promo/discount banner copy shown on the tile (e.g.40% off: limited time,Extra 50% off at checkout), where presentvideoUrl— a product video, where the style has onewebProductType,webProductSubType— the upstream category taxonomy (e.g.womens tops)vendorId— manufacturer/vendor of recordreviewScore,reviewCount— where the style has customer reviewstotalSwatchCount— total number of colors available for the stylefreeShippingavailableSizes— sizes currently offered for this colorimageUrl— highest-resolution product image available;thumbnailUrlwhen a distinct thumbnail exists;imageUrls— full multi-angle photo gallery (hero shot plus every distinct detail/alternate-view photo) when more than one is availableproductUrl/sourceUrl— the canonical, directly-loadable product pagerecordType,scrapedAt
Fields the API doesn't return for a given style (e.g. no review data yet, no distinct thumbnail) are simply omitted — never sent as null or "N/A".
Input
| Field | Type | Default | Description |
|---|---|---|---|
brand | select | on | on Old Navy / gap Gap / gapfs Gap Factory / br Banana Republic / at Athleta |
market | select | us | us (USD) / ca (CAD, Canadian storefront — not available for Gap Factory, falls back to us) |
searchQuery | string | new | Free-text keyword. Required — the API has no keyword-less browse endpoint; combine a broad term like new with department to approximate category browsing |
department | select | – | Women / Men / Girls / Boys / Toddler Girls / Toddler Boys / Baby Girls / Baby Boys / Gender Neutral / Maternity — server-side upstream facet, not re-verified client-side; a small number of cross-listed/adjacent-department items can appear, same as gap.com's own "Refine By" filter |
minPrice / maxPrice | integer | – | USD price bounds on the effective (sale) price |
onSaleOnly | boolean | false | Only products currently discounted below regular price |
priceType | select | – | PROMO (sale) / MARKDOWN (clearance) / REGULAR (full price, no discount) — upstream discount-tier facet |
minReviewScore | select | – | 1–4 (4 = 4.0★ & up) — upstream review-score facet |
color | select | – | Restrict to a color family (upstream color facet) |
additionalFacets | array of name=value strings | – | Advanced: any other upstream facet, e.g. fit=Skinny, wash=Light Wash. Available facet names/values vary by category — check the "Refine By" sidebar on the matching gap.com/oldnavy.com/etc. site for your search keyword. An unrecognized facet name/value causes the upstream API to reject the whole request (0 records, no crash) rather than being ignored — remove additionalFacets first to confirm the base search works, then add facets one at a time |
sortBy | select | featured | featured / price / reviewScore / discount. Non-featured values are sorted client-side (see notes above) — newest is not offered since the upstream API has no date-added field |
sortDir | select | desc | asc / desc (ignored when sortBy=featured) |
maxItems | integer | 50 | Max records to return (1–2000) |
Example: on-sale women's jeans at Old Navy
{"brand": "on","searchQuery": "jeans","department": "Women","onSaleOnly": true,"maxItems": 50}
Example: Gap Canada storefront, price-sorted
{"brand": "gap","market": "ca","searchQuery": "sweater","sortBy": "price","sortDir": "asc","maxItems": 50}
Example: Athleta clearance items with a minimum review score
{"brand": "at","searchQuery": "leggings","priceType": "MARKDOWN","minReviewScore": "4","maxItems": 30}
Example: advanced facet filter (skinny-fit, light-wash jeans)
{"brand": "on","searchQuery": "jeans","additionalFacets": ["fit=Skinny", "wash=Light Wash"],"maxItems": 30}
Use cases
- Price monitoring — track effective prices, discount percentages, and promo messages across Gap Inc's brand portfolio over time
- Deals & discount feeds — filter
onSaleOnly/priceTypeto build a live markdown/clearance feed - Competitive retail research — compare pricing, sizing, and catalog breadth across Old Navy, Gap, Banana Republic, Athleta, and Gap Factory
- Merchandising & assortment analysis — pull
webProductType/webProductSubTypetaxonomy and color/size availability by department - Cross-border pricing analysis — compare US (USD) vs. Canada (CAD) pricing for the same styles via
market - Review/rating aggregation — collect
reviewScore/reviewCountacross a category to spot top-rated styles
FAQ
Does this actor need cookies, login, or a proxy?
No. It reads the same public JSON search API (api.gap.com/commerce/search/v2/product_listings) that each brand's website calls client-side. No authentication or proxy configuration is required.
Why is there one record per color instead of one per product?
Each color is effectively a distinct purchasable item with its own price, images, and sizes on Gap Inc's sites — the same way you'd navigate to it on the storefront. productId is shared across all colors of the same style if you want to group them back together.
Can I browse a whole department without a search term?
The upstream API requires a non-empty keyword. Use a broad term such as new, sale, or a common noun (tee, dress, jean) together with the department filter to approximate a category browse.
Which currency are prices in?
USD by default (market: "us"). Set market: "ca" to query each brand's Canadian storefront instead — a distinct catalog with CAD pricing and gapcanada.ca product URLs. Gap Factory has no Canadian storefront, so market: "ca" with brand: "gapfs" automatically falls back to us (logged as a warning).
What happens if my searchQuery doesn't match any product?
For most unmatched or obscure keywords, the upstream API returns zero products and the actor reports 0 records with a clear status message. For a small number of very generic or nonsense keywords, Gap Inc's search API itself silently falls back to a broad, unfiltered catalog listing instead of returning zero results (you can reproduce this by querying api.gap.com/commerce/search/v2/product_listings directly) — this is upstream search behavior, not something the actor can reliably detect or override, since the API gives no signal distinguishing a true match from a fallback listing.