Retail pricing and availability monitoring across the Gap Inc. brand family
Old Navyエンドポイントを使えば、「Retail pricing and availability monitoring across the Gap Inc. brand family」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Turn the Gap Inc. storefront family — Old Navy, Gap, Banana Republic, and Athleta — into structured retail data: keyword product search, category browsing with live facets, per-color product detail, and a store locator, selectable per brand with a single parameter, all as normalized JSON. Credential-free.
Search Old Navy, Gap, Banana Republic, and Athleta products and get product detail, category browsing, store locations, and taxonomy as JSON.
エンドポイントファミリー
5
ドキュメント化されたパラメータ
30
サンプル数
7
ライブカタログスナップショット
稼働エンドポイント
7
メソッド
GET
必須パラメータ
12
スキーマ参照
7
{
"platform": "Old Navy",
"endpoint": "oldnavy-search",
"method": "GET",
"path": "/oldnavy/search",
"auth": "apiKey"
}ユースケース
Search Old Navy, Gap, Banana Republic, and Athleta products and get product detail, category browsing, store locations, and taxonomy as JSON.
Old Navyエンドポイントを使えば、「Retail pricing and availability monitoring across the Gap Inc. brand family」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Old Navyエンドポイントを使えば、「Category and product catalog research」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Old Navyエンドポイントを使えば、「Store-location lookup」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
マネージド実行
以下の数値はすべて、稼働中のOld Navyエンドポイントカタログから取得しています(エンドポイント7件、ドキュメント化されたリクエストパラメータ30個、公開レスポンススキーマ7件)。DocsとPlaygroundが参照しているカタログと同じものです。
Old Navyのエンドポイントは7件、5つのリクエストファミリーに分類されています(Product、Categories、Categoryほか2件)。
これらのOld Navyエンドポイントには30個のリクエストパラメータがドキュメント化されており、うち12個が必須です。統合コードを書く前に入力仕様をすべて確認できます。
7件のOld Navyエンドポイントのうち7件が実際のサンプルレスポンスを、7件がドキュメント化されたレスポンススキーマを備えています。最初のリクエストの前に実データの形に合わせて実装できます。
Old Navyのエンドポイントは成功時のスキーマに加えてエラーレスポンス(400、404、429、503)もドキュメント化しています。ブロック、レート制限、レコード欠損は空データではなく型付きのエラーとして返ります。
Old Navyのエンドポイントは7個のホスト型MCPツールとして提供されており、エージェントは同じパラメータと同じJSON契約のまま、追加の実装なしに同じルートを呼び出せます。
カバレッジマップ
これらのカードは稼働中のエンドポイントカタログから生成されるため、このページはDocsとPlaygroundが使うAPIサーフェスをそのまま反映します。
/oldnavy/product
/oldnavy/categories
/oldnavy/category
/oldnavy/search
/oldnavy/stores
エンドポイントカタログ
/oldnavy/searchSearches product listings across Old Navy, Gap, Banana Republic, and Athleta -- select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`). Returns normalized product summaries with pricing, review scores, and every purchasable color variant. This search is best-effort relevance, not a guaranteed keyword match: for an obscure or nonsense keyword the upstream search index falls back to its own recommended results instead of returning an empty list, and there is currently no reliable signal in the response to distinguish a true keyword match from that fallback behavior.
レスポンスに関する注記
- This search is best-effort relevance, not a guaranteed keyword match. For an obscure or nonsense `keyword`, the upstream search index falls back to its own recommended results instead of returning an empty list, and there is currently no reliable field in the response (no relevance score, no fallback flag, no zero total) to distinguish a true keyword match from that fallback behavior. Treat every response as "what the storefront's own search would show", not as a filtered exact-match result set. - `total_products` and `total_pages` reflect the upstream's own pagination metadata for the current `keyword`/`brand` combination. - Each product's `colors[].id` is the value to pass as `pid` to `oldnavy-product` for full product-detail data on that color. - Requesting a `page` beyond the upstream's own last page returns `404`. - `facets` lists the available filters (price range, department, review score, color, fit, wash, and others) with live per-option result counts. A range facet (e.g. price) sets `is_range` true and carries `range_min`/`range_max` instead of `options`. Example response: ```json {"code":200,"msg":"OK","data":{"keyword":"jeans","brand":"on","page":1,"page_size":60,"total_pages":12,"total_products":699,"count":1,"products":[{"id":"788099","name":"Mid-Rise Wow Baggy Wide-Leg Jeans","review_score":4.62,"review_count":4348,"price_min":39.99,"price_max":39.99,"sale_price_min":26,"sale_price_max":26,"thumbnail_url":"https://content.gapinc.com/b/0060/143/994/cn60143994.png?width=258","url":"https://oldnavy.gap.com/browse/product.do?pid=788099002","colors":[{"id":"788099002","name":"Black","short_description":"Licorice","price":26,"regular_price":39.99,"percentage_off":35,"image_url":"https://content.gapinc.com/b/0060/143/994/cn60143994.png?width=520"}]}],"facets":[{"name":"price","type":"range","range_min":4.99,"range_max":64.99,"is_range":true},{"name":"department","label":"department","type":"single-select","options":[{"label":"Women","value":"Women","count":282}]}]}} ```
MCPツール oldnavy_search
/oldnavy/productReturns normalized product-detail data for one color variant: name, description, images, aggregate rating, and every size offered in that color as a separate priced offer. pid is a color-specific product id, as returned by oldnavy-search's product colors[].id field (not the bare base product id). Select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`) -- it must match the brand the pid was found under.
レスポンスに関する注記
- `offers` lists every size available in the requested color, each with its own `sku`, `price`, `currency`, and `availability`. `availability` is normalized from the upstream's full schema.org URL form (e.g. `https://schema.org/InStock`) down to its bare name, e.g. `InStock`, `OutOfStock`. - `related_items` lists this product's own "Related items" cross-sell links -- each with the linked product's name, `pid`, and URL. It may be empty if the page carries none. - An unknown or invalid `pid` returns `404`. - A non-numeric or missing `pid` returns `400` before any upstream request is made. Example response: ```json { "code": 200, "msg": "OK", "data": { "pid": "907290012", "brand": "on", "name": "Full-Zip Faux-Suede Harrington Jacket", "description": "spread collar zip front elastic waist flap front pockets Product #907290", "color": "Dark Brown", "images": [ "https://oldnavy.gap.com/webcontent/0062/975/342/cn62975342.jpg", "https://oldnavy.gap.com/webcontent/0062/975/375/cn62975375.jpg" ], "rating_value": 3.71, "rating_count": 7, "url": "https://oldnavy.gap.com/browse/product.do?pid=907290012", "offers": [ { "sku": "9072900120004", "price": 69.99, "currency": "USD", "availability": "InStock", "url": "https://oldnavy.gap.com/browse/product.do?pid=9072900120004" } ], "related_items": [ { "name": "Full-Zip Poplin Jacket", "pid": "902599012", "url": "https://oldnavy.gap.com/browse/product.do?pid=902599012&cl=true&nav=smartlink:Women::Coats%20%26%20Jackets" } ] } } ```
MCPツール oldnavy_product
/oldnavy/categoryReturns a category/browse listing for one storefront category id (cid). cid is an opaque Gap Inc category id assigned by the storefront's own navigation -- neither oldnavy-search nor oldnavy-category currently surface a category-id list, so find one from the storefront's own category page URLs (the cid query parameter on a /browse/... page) for now. Select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`) -- it must match the brand the cid was found under. Returns the category's subcategory breakdown, normalized product summaries with per-color inventory data, and available search facets with live counts.
レスポンスに関する注記
- `categories` breaks the listing into its subcategory groups (e.g. "Slim Jeans" within a "Jeans" category), each with the specific color-level product ids (`items[].cc_id`) that belong to it. - Each product's `colors[].id` is the value to pass as `pid` to `oldnavy-product` for full product-detail data on that color -- the same id space as `oldnavy-search`'s `colors[].id`. - Each color additionally carries live inventory data not present on `oldnavy-search`: `inventory_count`, `inventory_status`, `back_order_inventory_count`, and `back_order_inventory_status`. - `facets` lists the available filters (price range, department, review score, color, fit, and others) with live per-option result counts. - An unknown `cid` returns `404`. A `page` beyond the upstream's own last page returns a `200` with an empty `products` array (not a `404`) -- this differs from `oldnavy-search`'s own overflow behavior. - A non-numeric or missing `cid` returns `400` before any upstream request is made. Example response: ```json {"code":200,"msg":"OK","data":{"category_id":"85729","brand":"on","page":1,"page_size":200,"total_pages":2,"total_colors":392,"count":1,"categories":[{"category_id":"85729","category_name":"Jeans","sub_category_id":"3051473","sub_category_name":"Slim Jeans","items":[{"cc_id":"896223002","style_id":"431453"}]}],"products":[{"id":"734897","name":"High-Waisted Wow Super-Skinny Jeans","review_score":4.6,"review_count":38414,"url":"https://oldnavy.gap.com/browse/product.do?pid=886872002","colors":[{"id":"886872002","name":"White","short_description":"Calla Lily White","price":22.0,"regular_price":34.99,"percentage_off":37,"image_url":"https://oldnavy.gap.com/webcontent/0061/704/456/cn61704456.jpg","inventory_count":55,"inventory_status":"In Stock","back_order_inventory_count":0,"back_order_inventory_status":"Out of Stock"}]}],"facets":[{"name":"price","type":"range","range_min":4.99,"range_max":64.99,"is_range":true},{"name":"department","label":"department","type":"single-select","options":[{"label":"Women","value":"Women","count":282}]}]}} ```
MCPツール oldnavy_category
/oldnavy/categoriesLists Old Navy's own storefront navigation as name/cid pairs, resolving the cid-discovery gap oldnavy-search, oldnavy-product, and oldnavy-category all document. Omit cid to list Old Navy's top-level divisions (e.g. Women, Men, Boys, Toddler). Pass a cid (a division's own, or any deeper category's) to list the related categories for that part of the storefront instead, in the same order the live storefront menu shows them -- this is section-level, not necessarily unique per leaf category. Currently only available for brand=on (Old Navy) -- Gap, Banana Republic, and Athleta render their storefront navigation as client-side-only JavaScript with no server-rendered category id to scrape.
レスポンスに関する注記
- Omit `cid` to list Old Navy's top-level divisions (New & Trending!, Uniforms, Activewear, Women, Men, Girls, Boys, Toddler, Baby, Maternity, Today's Deals!), sourced from the storefront's own homepage top nav. - Pass a `cid` -- a division's own, or any deeper category's -- to list the related categories for that part of the storefront instead, in the same order the live storefront menu shows them. This is section-level, not necessarily unique per leaf: a narrow subcategory's `cid` (e.g. Boys T-Shirts) currently returns the same list as its parent division (Boys), since Old Navy serves this block once per section rather than once per category. Each returned entry's `cid` is usable directly as the `cid` query parameter to [`oldnavy-category`](oldnavy-category.md). - **Currently only available for `brand=on` (Old Navy).** Gap, Banana Republic, and Athleta render their storefront navigation as client-side-only JavaScript with no server-rendered category id to scrape -- passing any other `brand` value returns `400`. - A non-numeric `cid` returns `400` before any upstream request is made. - Old Navy does not return a distinct not-found signal for an unrecognized `cid` on this page (unlike `oldnavy-category`'s own commerce-API lookup, which does 404 cleanly) -- an unrecognized `cid` and a genuinely leaf-level category with no further children both look the same (`503`). If you need a hard not-found check for a specific `cid`, use `oldnavy-category` instead. Example response (`cid` omitted -- top-level divisions): ```json {"code":200,"msg":"OK","data":{"brand":"on","source_url":"https://oldnavy.gap.com/","fetched_at":"2026-08-10T00:00:00Z","categories":[{"name":"New & Trending!","cid":"3028309","url":"https://oldnavy.gap.com/browse/category.do?cid=3028309&mlink=5151,topNav,visnav&nav=meganav%3ANew%20%26%20Trending!%3A%3A"},{"name":"Women","cid":"1185233","url":"https://oldnavy.gap.com/browse/category.do?cid=1185233&mlink=5151,topNav,visnav&nav=meganav%3AWomen%3A%3A"},{"name":"Boys","cid":"1185232","url":"https://oldnavy.gap.com/browse/category.do?cid=1185232&mlink=5151,topNav,visnav&nav=meganav%3ABoys%3A%3A"}]}} ``` Example response (`cid=1185232`, Boys -- subcategories): ```json {"code":200,"msg":"OK","data":{"brand":"on","cid":"1185232","source_url":"https://oldnavy.gap.com/browse/category.do?cid=1185232","fetched_at":"2026-08-10T00:00:00Z","categories":[{"name":"T-Shirts","cid":"36097","url":"https://oldnavy.gap.com/browse/category.do?cid=36097&cl=true#department=16"},{"name":"Jeans","cid":"5936","url":"https://oldnavy.gap.com/browse/category.do?cid=5936&cl=true#department=16"},{"name":"Boys Shop by Size 5-20","cid":"39659","url":"https://oldnavy.gap.com/browse/category.do?cid=39659&cl=true#department=16"}]}} ```
MCPツール oldnavy_categories
/oldnavy/storesSearches physical store locations for one storefront by free-text search (zip code or city) and/or coordinates. Provide search, or both lat and lng. Select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`). Returns each nearby store's name, full address, phone number, coordinates, distance, and specialties (e.g. "In-Store Shopping", "Outlet"). This is location search only -- it does not report per-item, per-store stock levels; use oldnavy-product-availability for that.
レスポンスに関する注記
- Each store includes its name, full street address, phone number, coordinates, distance from the search location (miles), and `specialties` (e.g. `"In-Store Shopping"`, `"Outlet"`, `"ON Beauty"`). - This endpoint is location search only -- it does not report per-item, per-store stock availability. - A search with no nearby matches returns `200` with an empty `stores` array, not an error. - Neither `search` nor a complete `lat`/`lng` pair returns `400` before any upstream request is made. `lat` and `lng` must be given together. Example response: ```json {"code":200,"msg":"OK","data":{"brand":"on","search":"10001","count":1,"stores":[{"name":"TIMES SQUARE","address":"1516 Broadway","city":"New York","region":"NY","postal_code":"10036","country":"US","phone":"(646) 866-5935","latitude":40.7574365,"longitude":-73.9854489,"distance_miles":0.8,"specialties":["ON Beauty","In-Store Shopping"],"url":"https://stores.oldnavy.gap.com.prod.rioseo.com/ny/newyork/oldnavy-3444.html"}]}} ```
MCPツール oldnavy_stores
/oldnavy/product/availabilityChecks per-size, in-store pickup stock status for one color (pid) at one or more physical stores. pid matches oldnavy-product's own color-level id. Give store location either directly with store_id (one or more comma-separated store ids, e.g. from a prior call to this endpoint or a value you already have) or with zip or both lat and lng, which resolves the nearest stores automatically. Select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`). Each returned store lists every offered size's stock status: `in_stock`, `out_of_stock`, or `low_stock`.
レスポンスに関する注記
- Each store's `sizes` array lists every offered size's stock status: `IN_STOCK`, `OUT_OF_STOCK`, or `LOW_STOCK`. - `name`, `address`, `city`, `region`, `postal_code`, `phone`, and `distance_miles` are only populated when the store was resolved via `zip` or `lat`/`lng` -- a caller-supplied `store_id` has no accompanying store metadata from this source. - A `zip`/`lat`/`lng` search with no nearby stores returns a normal `200` with an empty `stores` array, not an error. - An unrecognized `pid` returns `404`. - An unrecognized `store_id` given directly (not resolved via `zip`/`lat`/`lng`) is not detectable as an error from this endpoint -- it returns every size as `OUT_OF_STOCK` rather than an error, a known upstream limitation. Example response: ```json { "code": 200, "msg": "OK", "data": { "pid": "907290012", "brand": "on", "style_id": "907290", "count": 1, "stores": [ { "store_id": "3444", "name": "TIMES SQUARE", "address": "1516 Broadway", "city": "New York", "region": "NY", "postal_code": "10036", "phone": "(646) 866-5935", "distance_miles": 0.77, "sizes": [ {"sku": "9072900120004", "fit": "REGULAR", "status": "IN_STOCK"}, {"sku": "9072900120000", "fit": "REGULAR", "status": "LOW_STOCK"} ] } ] } } ```
MCPツール oldnavy_product_availability
/oldnavy/product/reviewsReturns one page of a product's customer reviews (author, date, rating, headline, body, and verified-purchase flag), plus the product's overall rating summary (average rating, rating count, per-star histogram, and recommended ratio). pid is a color-specific product id, as returned by oldnavy-search's product colors[].id field (not the bare base product id) -- the same pid oldnavy-product accepts. Select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`) -- it must match the brand the pid was found under. A product with no reviews yet returns a well-formed empty result, not an error.
レスポンスに関する注記
- A product with no reviews yet returns a well-formed empty result (`total_reviews: 0`, `reviews: []`), not an error. - `rating_histogram` is the count of ratings per star, ascending: index `0` is 1-star, index `4` is 5-star. It is omitted along with `rating_count`/`average_rating`/`recommended_ratio` when the product has no reviews at all. - `total_reviews`/`total_pages` describe the full review set, independent of how many reviews are returned on this page. - An unknown or invalid `pid` returns `404`. - A non-numeric or missing `pid` returns `400` before any upstream request is made. Example response: ```json { "code": 200, "msg": "OK", "data": { "pid": "788099002", "brand": "on", "page": 1, "page_size": 10, "total_pages": 386, "total_reviews": 3856, "rating_count": 3856, "average_rating": 4.6154045643153525, "recommended_ratio": 1, "rating_histogram": [122, 62, 183, 443, 3046], "count": 1, "reviews": [ { "id": "270852250", "rating": 1, "headline": "Too large", "body": "I normally wear a size 4, I ordered these online and the waist band is huge!...", "author": "Sadie, P", "location": "Undisclosed", "verified_purchase": false, "helpful_votes": 0, "not_helpful_votes": 0, "created_at": "2026-08-18T08:43:32Z", "updated_at": "2026-08-18T10:16:20Z" } ] } } ```
MCPツール oldnavy_product_reviews
関連API
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
対象企業
The Gap, Inc. · GAP
Old Navyを運営するのはThe Gap, Inc.(GAP)です。CrawloraのSECエンドポイントは同じ企業のCIKを受け取るため、提出書類・財務・インサイダー取引・13F保有を上記のOld Navyエンドポイントと同じAPIキーで取得できます。
SEC提出書類・財務API →Old Navyのスクレイピング方法
Crawlora's Old Navy endpoints cover search, category browsing, product detail, and store lookup across all four Gap Inc. storefronts — Old Navy, Gap, Banana Republic, and Athleta — selectable with the brand parameter (category-id discovery is Old Navy-only today), and return normalized JSON with one API key.
Send a keyword and optional brand to /oldnavy/search for normalized product summaries with pricing and every color variant.
Pass a category id (cid) to /oldnavy/category for that category's product listing and live search facets, or list category ids first with /oldnavy/categories (currently Old Navy only).
Pass a color-specific product id (pid) from a search result's colors[] entry to /oldnavy/product for full detail and per-size pricing.
Use /oldnavy/stores with a zip code, city, or coordinates to locate nearby physical stores for the selected brand.
FAQ
Yes — /oldnavy/search, /oldnavy/category, /oldnavy/product, and /oldnavy/stores all take a brand parameter (on, gap, br, or at, defaulting to on) to select the storefront. /oldnavy/categories currently only resolves ids for Old Navy, since the other three brands render their navigation as client-side-only JavaScript.
Old Navy's storefront navigation isn't published as a static id list — call /oldnavy/categories to resolve the current category ids as name/cid pairs, then pass a cid to /oldnavy/category for that category's product listing.
Yes — /oldnavy/stores returns nearby physical stores by zip code, city, or coordinates, including address, phone, and distance. It does not report per-item stock levels.