Old Navy API endpoint
Returns 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.
/oldnavy/productpid is required and must be a color-specific product id, as returned by oldnavy-search's products[].colors[].id field -- not the bare base product id (products[].id). brand selects the storefront the pid belongs to and accepts on (Old Navy), gap (Gap), br (Banana Republic), or at (Athleta); defaults to on. brand must match the storefront the pid was found under, since the same numeric id space is not shared across brands.
Notable response behavior:
offers lists every size available in the requested color, each with its own sku, price, currency, and availability. availability is the 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.pid returns 404.pid returns 400 before any upstream request is made.| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| name | 10 | “Utility Jacket” and 9 other values |
| pid | 10 | |
| url | 10 | oldnavy.gap.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| pid | string | Yes | Color-specific product id, from a search result's colors[].id field | 907290012 | |
| brand | string | No | Storefront the pid belongs to Allowed values: on, gap, br, at. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/oldnavy/product?pid=907290012&brand=on" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"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"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/oldnavy.productResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | oldnavy.ProductDetailResponse | No | ||||
| data.brand | string | No | ||||
| data.color | string | No | ||||
| data.description | string | No | ||||
| data.fetched_at | string | No | ||||
| data.images | array | No | ||||
| data.name | string | No | ||||
| data.offers | array | No | ||||
| data.offers[].availability | string | No | ||||
| data.offers[].currency | string | No | ||||
| data.offers[].price | number | No | ||||
| data.offers[].sku | string | No | ||||
| data.offers[].url | string | No | ||||
| data.pid | string | No | ||||
| data.rating_count | integer | No | ||||
| data.rating_value | number | No | ||||
| data.related_items | array | No | ||||
| data.related_items[].name | string | No | ||||
| data.related_items[].pid | string | No | ||||
| data.related_items[].url | string | No | ||||
| data.source_url | string | No | ||||
| data.url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/oldnavy/product?pid=907290012&brand=on" \
-H "x-api-key: $CRAWLORA_API_KEY"