7NOW API endpoint
Returns one 7NOW store's browsable category list, a paginated item listing per catalog section (each with real per-item pricing, active promotions, calories, UPC and image), and a live active/out-of-stock inventory count for that store. store_id comes from GET /7now/stores; lat and lon are accepted but inert (store_id alone selects the store). The catalog is genuinely store-scoped, not a national price list. skip/limit page every item section uniformly (limit is capped at 50, defaults to 20).
/7now/catalogQuery parameters:
store_id (required) — 7NOW store id, from GET /7now/stores, e.g. 39226.lat (optional) — accepted but inert: store_id alone selects the store. Responses are byte-identical with any value or none — measured live against three stores. Forwarded upstream for fidelity with 7now.com's own client. e.g. 40.747508.lon (optional) — accepted but inert, see lat. e.g. -73.989099.skip (optional) — pagination offset, applied uniformly to every catalog section. Defaults to 0.limit (optional) — max items returned per catalog section, 1-50. Defaults to 20.Response includes store_id (echoed back), categories[] (id, name), sections[] (each a paginated item listing — section_id, name (the shelf's display title, e.g. $2 Deals, Best Sellers), display_order, total items in that section upstream, count returned in this page, and items[]), active_items/out_of_stock_items (the store's live inventory count), skip, limit, source_url, and fetched_at.
Each item in sections[].items[] carries product_id, name, category, subcategory, brand, flavor_name, upc, calories, image_url, original_price_cents, promo_price_cents (omitted when no promotion is active), promo_description, and age_restricted.
| Field | Filled in, of 17 checked | Values in the sample |
|---|---|---|
| section_id | 17 | |
| name | 17 | “Hot Bites” and 16 other values |
| display_order | 17 | 3 to 22, median 14 |
| total | 17 | 0 to 652, median 29 |
| count | 17 | 0 to 20, median 20 |
| items | 15 | median 20 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| store_id | string | Yes | 7NOW store id, from GET /7now/stores. | 39226 | |
| lat | number | No | Accepted but inert -- store_id alone selects the store; responses are byte-identical with any value or none. Forwarded upstream for fidelity with 7now.com's own client. | 40.747508 | |
| lon | number | No | Accepted but inert -- see lat. | -73.989099 | |
| skip | integer | No | 0 | Pagination offset, applied uniformly to every catalog section. Defaults to 0. | 0 |
| limit | integer | No | 20 | Max items returned per catalog section, 1-50. Defaults to 20. | 20 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/7now/catalog?store_id=39226&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"store_id": "39226",
"categories": [
{
"id": "48423",
"name": "Fresh Food"
},
{
"id": "48395",
"name": "Drinks"
}
],
"sections": [
{
"section_id": "bestsellers",
"display_order": 2,
"total": 200,
"count": 20,
"items": [
{
"product_id": "178322-2-6-2",
"name": "Large Pizza - Ultimate Pepperoni",
"category": "Fresh Food",
"subcategory": "Pizza",
"brand": "Hot Food Pizza",
"flavor_name": "Pepperoni Pizza",
"upc": "00072180687340",
"calories": "360",
"image_url": "https://deuktbth81ifn.cloudfront.net/7now/US/178322-2-6-2/wghjlebnc3luzvgqmpvz.jpg",
"original_price_cents": 1099,
"promo_price_cents": 699,
"promo_description": "On Sale $6.99",
"age_restricted": false
}
]
}
],
"active_items": 2664,
"out_of_stock_items": 435,
"skip": 0,
"limit": 20,
"source_url": "https://www.7now.com/api/bff/unified-catalog/v1/content/homepage?...",
"fetched_at": "2026-09-05T19:25:40Z"
}
}Request schema
No body schema
Response schema
#/definitions/sevennow.catalogResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | sevennow.CatalogResponse | No | ||||
| data.active_items | integer | No | 2664 | |||
| data.categories | array | No | ||||
| data.categories[].id | string | No | 48423 | |||
| data.categories[].name | string | No | Fresh Food | |||
| data.fetched_at | string | No | ||||
| data.limit | integer | No | 20 | |||
| data.out_of_stock_items | integer | No | 435 | |||
| data.sections | array | No | ||||
| data.sections[].count | integer | No | 20 | |||
| data.sections[].display_order | integer | No | 3 | |||
| data.sections[].items | array | No | ||||
| data.sections[].items[].age_restricted | boolean | No | false | |||
| data.sections[].items[].brand | string | No | Hot Food Pizza | |||
| data.sections[].items[].calories | string | No | 360 | |||
| data.sections[].items[].category | string | No | Fresh Food | |||
| data.sections[].items[].flavor_name | string | No | Pepperoni Pizza | |||
| data.sections[].items[].image_url | string | No | ||||
| data.sections[].items[].name | string | No | Large Pizza - Ultimate Pepperoni | |||
| data.sections[].items[].original_price_cents | integer | No | 1099 | |||
| data.sections[].items[].product_id | string | No | 178322-2-6-2 | |||
| data.sections[].items[].promo_description | string | No | On Sale $6.99 | |||
| data.sections[].items[].promo_price_cents | integer | No | 699 | |||
| data.sections[].items[].subcategory | string | No | Pizza | |||
| data.sections[].items[].upc | string | No | 00072180687340 | |||
| data.sections[].name | string | No | $2 Deals | Name is the shelf's own display title, e.g. "Best Sellers", "$2 Deals", "What's New". Upstream sends it on every section; it is the only human-readable identifier a numeric section id has. | ||
| data.sections[].section_id | string | No | 48423 | |||
| data.sections[].total | integer | No | 200 | |||
| data.skip | integer | No | 0 | |||
| data.source_url | string | No | ||||
| data.store_id | string | No | 39226 | |||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/7now/catalog?store_id=39226&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"