· 16 min read
Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta): Setup, Cost
Each record carries 28 output fields across Gap, Old Navy, Banana Republic, Athleta, and Gap Factory, pricing at $5.00 per 1,000 results on the free tier. Records resolve down to individual color and SKU variants, returning effectivePrice, availableSizes, imageUrl, and direct productUrl paths from the public search endpoint. It can be tried free using Apify's monthly usage allocation. This tool is built for retail analysts and inventory aggregators tracking catalog changes across Gap Inc storefronts; it is not for buyers requiring private stockroom inventory counts or historical sales numbers, which the API does not expose.
Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 1,000 results at $0.005 each before platform usage. Open Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) on Apify and run the prefilled example.
How reliable is Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) in production?
Across the last 30 days of public runs on the Apify platform, Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) recorded 217 runs with the following outcomes.
| Outcome | Runs | Share |
|---|---|---|
| Succeeded | 217 | 100.0% |
| Failed | 0 | 0.0% |
| Aborted by the user | 0 | 0.0% |
| Timed out | 0 | 0.0% |
| Total | 217 | 100.0% |
No run failed or timed out in the last 30 days. Keep a retry and an alert on scheduled runs all the same: a clean month is a record, not a guarantee.
What does it cost to run Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta)?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
Worked example: collecting 10,000 results costs $50.00 in result charges before run-start fees and platform usage. No run failed or timed out in the last 30 days, so the list price is a fair budget; keep a retry in place all the same.
The primary cost driver is maxItems, which directly limits how many dataset records are written per execution. To test query syntax without burning credits, run test queries with maxItems set to 5. Apify bills platform usage on top of the dataset result fees and per-run charges, so keeping maxItems tightly bounded keeps overall resource consumption low.
How do you run Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) from the API?
The schema marks 2 of its 14 controls as required: brand, searchQuery. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta), so the request works once your token is in place.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~gap-inc-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"brand":"on","searchQuery":"new"}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"brand": "on",
"searchQuery": "new"
}
run = client.actor("crawlerbros~gap-inc-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"brand": "on",
"searchQuery": "new"
}
const run = await client.actor('crawlerbros~gap-inc-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.
Which Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) inputs matter, and which can you skip?
The two mandatory controls are brand and searchQuery, which set the storefront target and catalog keyword. Leave additionalFacets empty on initial runs, as any unrecognized facet name will cause the upstream API to reject the search and return zero records.
brand(string): Which Gap Inc storefront to search. Default:"on".searchQuery(string): Free-text keyword, e.g.jeans,t-shirt,dress. Required - the upstream API has no keyword-less browse endpoint. Use a broad term likenewcombined with thedepartmentfilter to approximate category browsing. Note: the upstream search API does fuzzy/recommendation-based matching, not strict filtering - English apparel terms (jeans,dress) match well, but misspelled, non-English, or nonsense keywords may fall back to generic trending products for that brand rather than returning zero results. Default:"new".market(string): Which country storefront to query.ca(Canada) returns a distinct catalog/pricing (CAD) and is available for Old Navy, Gap, Banana Republic, and Athleta; Gap Factory has no Canadian storefront and always falls back tous(a warning is logged). Default:"us".department(string): Filter to a department/demographic (server-side upstream facet, not re-verified client-side). Overwhelmingly accurate, but the upstream search API occasionally includes a small number of cross-listed/adjacent-department items (e.g. a men's item appearing in a Women-filtered result) the same way gap.com's own "Refine By" department filter does. Leave empty for all. Default:"".minPrice(integer): Only include products whose lowest sale price is at least this amount.maxPrice(integer): Only include products whose lowest sale price is at most this amount.onSaleOnly(boolean): Only include products currently discounted below their regular price. Default:false.priceType(string): Restrict results to a specific discount tier (server-side filter, upstream facet). Leave empty for all products. Default:"".minReviewScore(string): Only include products with at least this average review rating (server-side filter, upstream facet). Leave empty for all products. Default:"".color(string): Restrict results to a color family (server-side filter, upstream facet). Leave empty for all colors. Default:"".additionalFacets(array): Extra upstream search facets asname=valuestrings, e.g.fit=Skinny,wash=Light Wash,rise=High,sleeveLength=Short Sleeve,activity=Running,occasion=Wedding. The available facet names/values vary by category and search keyword - run without this first, then check the "Refine By" filter sidebar on the matching gap.com/oldnavy.com/etc. site for the exact facet names for your keyword. Default:[].sortBy(string): Result ordering.priceis a genuine server-side sort (verified monotonic across the full paginated catalog) so it covers every matching product, not just a sample.reviewScore/discounthave no working server-side equivalent, so those are applied client-side over a scanned candidate pool (up to 5xmaxItems, capped at 500) instead.newestis not offered - the upstream API exposes no reliable date-added field to sort on. Default:"featured".
The other 2 controls, with their defaults, are listed in the input schema on Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) on Apify.
Fixed-choice controls: brand accepts on (Old Navy), gap, gapfs (Gap Factory), br (Banana Republic), at (Athleta); market accepts us (United States (USD)), ca (Canada (CAD)); department accepts 11 values (default ""), including "" (All departments), Women, Men, Girls; priceType accepts "" (Any), PROMO (Sale (promo pricing)), MARKDOWN (Clearance (markdown pricing)), REGULAR (Full price (no discount)); minReviewScore accepts "" (Any), 4 (4 & up), 3 (3 & up), 2 (2 & up), 1 (1 & up); color accepts 17 values (default ""), including "" (Any), Black, White, Blue; sortBy accepts featured (relevance), price, reviewScore (Customer rating), discount (Biggest discount).
What does Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) return?
Returned datasets provide color-level SKUs complete with regularPrice, effectivePrice, percentageOff, availableSizes, and image galleries. The output does not contain historical sales volume, absolute warehouse stock counts, or seller margin data.
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
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Run an initial query with brand set to on, searchQuery set to jeans, and maxItems set to 5 to confirm the public search endpoint responds.
- Inspect the first dataset record and verify that productId, skuId, effectivePrice, and availableSizes contain valid values.
- Refine targeting by setting department to your required demographic, such as Women or Men, instead of scanning all categories.
- If tracking promotional markdowns, set onSaleOnly to true or configure priceType to PROMO or MARKDOWN to discard full-price items upstream.
- Check gap.com or the targeted brand storefront for exact facet keys before adding any entries to additionalFacets, ensuring you avoid syntax errors that reject queries.
- Execute your production run with maxItems set to the exact volume needed, leaving sortBy on featured to avoid client-side sorting overhead unless sorting by price is mandatory.
How do you apply it? Three worked playbooks
These are Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta)'s own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Price monitoring
Outcome: Track effective prices, discount percentages, and promo messages across Gap Inc's brand portfolio over time
Configure: Set brand to gap, searchQuery to sweater, maxItems to 200, and leave onSaleOnly as false.
Working method: Begin by executing a baseline extraction for a targeted category keyword across your preferred brand. Compare daily runs on skuId to calculate deltas in effectivePrice and identify newly attached promoMessage text. Flag instances where percentageOff increases without a change in regularPrice.
Deliverable: A historical time-series tabular dataset tracking effectivePrice, regularPrice, percentageOff, and promoMessage grouped by skuId.
Stop condition: The upstream endpoint returns zero items for a broad search term that produced items in prior daily runs.
Use case 2: Deals & discount feeds
Outcome: Filter onSaleOnly / priceType to build a live markdown/clearance feed
Configure: Set brand to on, searchQuery to new, onSaleOnly to true, priceType to MARKDOWN, and maxItems to 500.
Working method: Start with a broad discovery keyword paired with discount filters to capture live price cuts across the inventory. Ingest records that carry a non-null promoMessage or a clearance discountType directly into your publishing workflow. Verify availableSizes contains in-stock options before routing listings to deal subscribers.
Deliverable: A live clearance product feed filtered by clearance tiers containing name, effectivePrice, regularPrice, promoMessage, and productUrl.
Stop condition: Emitted records contain regular price values identical to effectivePrice despite setting onSaleOnly to true.
Use case 3: Competitive retail research
Outcome: Compare pricing, sizing, and catalog breadth across Old Navy, Gap, Banana Republic, Athleta, and Gap Factory
Configure: Set searchQuery to dress, department to Women, maxItems to 300, and execute separate runs varying brand across on, gap, gapfs, br, and at.
Working method: Launch parallel scrapes using identical search terms across each brand token. Aggregate the outputs into a unified matrix to evaluate effectivePrice spread, totalSwatchCount variance, and availableSizes availability per retail tier. Map out webProductType and webProductSubType distribution across economy versus premium storefronts.
Deliverable: A comparative cross-brand catalog report summarizing SKU counts, average price points, and discount distribution per sub-brand.
Stop condition: A brand endpoint fails to return data while other brand runs succeed with the identical query term.
What breaks, and how do you design around it?
- Over the last 30 days, 0.0% of public runs failed and 0.0% timed out. Build retries and alerting around those rates rather than assuming every run completes.
When you need to browse an entire department, use a generic query term such as new paired with the department filter, because the upstream endpoint rejects blank search strings. If additionalFacets returns zero items, remove all custom facets and re-test before re-adding them one by one. For Canadian inventory and CAD pricing, set market to ca, keeping in mind that Gap Factory has no Canadian storefront and falls back to US data.
When should you not use Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta)?
Do not use this Actor if you require shoe and athletic inventory from specialized footwear multi-brand retailers; use Foot Locker Product Scraper instead when targeting dedicated athletic sneaker assortments. If your catalog analysis focuses on high-end designer runway apparel, Mytheresa Luxury Fashion Scraper is better suited than Gap Inc's casual apparel portfolio. You should also look elsewhere if you need wholesale or outdoor gear, where REI Product Scraper provides specialized outdoor equipment categories that Gap Inc brands do not stock. Finally, avoid this scraper if you must browse complete categories without supplying a keyword, as the underlying search engine enforces non-empty search terms.
What should you check before trusting the output?
- Verify that effectivePrice is greater than zero and regularPrice is greater than or equal to effectivePrice across all returned records.
- Check that skuId and productId are present non-empty strings on every item.
- Ensure availableSizes returns an array with at least one entry when evaluating active merchandise inventory.
- Stop the scheduled run if the dataset returns 0 records when querying a verified apparel keyword like jeans or dress.
- Flag any record where percentageOff is above 0 but onSale returns false.
None of this proves a record is correct. It gives a scheduled Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
How much does it cost to scrape 10,000 Gap Inc products?
At the free-plan price of $5.00 per 1,000 results, scraping 10,000 items totals $50.00 in result charges, plus standard platform usage and the per-run startup fee. Upgrading to higher Apify tiers reduces result pricing down to $3.00 per 1,000 results.
Can I query Canadian storefronts for local currency pricing?
Yes. Set market to ca to target Canadian storefront catalogs with CAD pricing for Old Navy, Gap, Banana Republic, and Athleta. Note that Gap Factory does not operate a dedicated Canadian storefront, so selecting ca for that brand falls back to the US catalog.
Why does the scraper require a search query instead of browsing all items?
The upstream search API does not support keyword-less browse requests. To simulate a broader departmental browse, pass a common term like new or jeans into searchQuery alongside a department selection like Women or Men.
Are records formatted per parent style or per individual color variant?
The Actor emits one record per color and SKU variant rather than grouping by parent style. This mirrors what a customer selects to add to cart, giving you distinct availableSizes, colorShade, and effectivePrice fields per colorway.
What happens if I submit an invalid parameter in additionalFacets?
An unrecognized facet name or value causes the upstream API to reject the request and return zero records without failing the run. When debugging missing output, clear additionalFacets to verify that the base query functions before reintroducing facets.
Where to go next
When you are ready to run it, open Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) on Apify; the free plan covers up to 1,000 results a month.
Start with the Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) Actor page for the current input schema, pricing tier, and run history.
Other Actors we maintain for related data:
- Foot Locker Product Scraper: Scrape live sneaker, apparel, and accessory listings from Footlocker.com - search by keyword, browse by department/category or brand, or look up full product detail (price, rating, colors, images) by URL.
- Zappos Product & Price Scraper: Scrape live shoe, apparel, and accessory listings from Zappos.com - search by keyword, browse by brand or category, or look up full product detail (price, MSRP, rating, images) by URL.
- REI Product Scraper: Scrape live outdoor gear, apparel, and footwear listings from REI.com - search by keyword, browse by category or brand, or look up full product detail (price, member price, rating, images) by URL.
- LimeRoad Scraper: Scrape LimeRoad.com - India's multi-brand fashion marketplace for women, men, kids and home.
- Party City Scraper: Scrape party supplies, balloons, costumes, and seasonal decor from partycity.com.
- Debenhams Scraper: Scrape debenhams.com, the UK department store retailer.
- Mytheresa Luxury Fashion Scraper: Scrape luxury fashion product listings from Mytheresa.com - one of the world's leading multi-brand luxury retailers.
- Academy Sports Scraper: Scrape Academy Sports + Outdoors - one of the largest US sporting goods retailers.
Related guides:
- Shein Product Scraper: 14 Data Fields, Up to 2,500 Free Results/Month
- Home Depot Product Scraper: Three Practical Use Cases
- United Real Estate Homes for Sale Scraper: 3 Practical Use Cases
- StockX Scraper: Three Practical Workflows
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-27.
Actor last updated by its maintainers on 2026-08-03.
Run outcome figures cover the 30 day public window ending 2026-09-27.
Gap Inc Scraper (Gap, Old Navy, Banana Republic, Athleta) on Apify
Featured actors
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.
Run on Apify ↗