GET/7now/catalogapiKey1 credit/request
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).
Required: store_id. Optional: lat, lon, skip, limit.
Sampled 14 Oct 2026: 17 items. Filled in every item: section_id, name, display_order, total, count. Not in every item: items (15). In the sample: display_order: 3 to 22, median 14; name: “Hot Bites” and 16 other values; items: median 20 entries; total: 0 to 652, median 29; count: 0 to 20, median 20.
Open in Playground
GET/7now/categoriesapiKey1 credit/request
Enumerates every value GET /7now/category accepts for a store, so callers do not have to pull the full catalog to discover them. 7NOW has two disjoint id spaces behind that one parameter: `departments` are the store's 10 permanent browsable departments (Fresh Food, Drinks, Snacks, Candy, Ice Cream, Beer & Seltzer, Tobacco, Grocery, Household, Personal Care), and `shelves` are the merchandising rows the homepage currently features ("$2 Deals", "What's New", "Only At 7-Eleven", seasonal ones). Both work as category_id. Shelves rotate with promotions and seasons, so re-read them rather than caching ids long-term. store_id comes from GET /7now/stores; lat and lon are accepted but inert (store_id alone selects the store).
Required: store_id. Optional: lat, lon.
Sampled 14 Oct 2026: 14 items. Filled in every item: id, name, kind, item_count, display_order. In the sample: item_count: 3 to 76, median 29; name: “Hot Bites” and 13 other values; display_order: 3 to 22, median 14.
Open in Playground
GET/7now/categoryapiKey1 credit/request
Returns one 7NOW store's top-level category broken into its real subcategory groups (e.g. Fresh Food -> Pizza, Wings & Chicken Bites, Subs & Sandwiches, ...), each with its own paginated, priced item list and live availability, plus a category-wide availability summary. Complements GET /7now/catalog, whose per-category section is a single flat list -- this is the same data organized the way 7now.com's own category page groups it. store_id comes from GET /7now/stores and category_id from GET /7now/categories -- which accepts both the store's permanent departments and the merchandising shelves its homepage features, since 7NOW uses one parameter for two id spaces. An invalid or empty category_id returns a normal 200 with an empty subcategories array, not an error.
Required: store_id, category_id. Optional: subcategory, skip, limit.
Sampled 14 Oct 2026: 10 items. Filled in every item: name, items. In the sample: name: “Pizza” and 9 other values; items: median 17 entries.
Open in Playground
GET/7now/comboapiKey1 credit/request
Expands one bundle deal into its structure: each pick-from group's name, how many items the shopper picks from it, and every eligible item with live pricing and availability -- e.g. the "$6.99 Pizza" bundle returns one group, "Eligible Whole Pizzas", holding six priced pizzas. Also returns the bundle's shopper-facing headline and full legal terms. promo_id comes from GET /7now/combos' combos[].promo_id, and store_id from GET /7now/stores. The upstream also accepts a plain item-discount promotion id but answers one with unnamed groups -- for those, GET /7now/promotion's flat item list is the right endpoint. An unknown promo_id returns 404.
Required: promo_id, store_id.
Sampled 14 Oct 2026: 1 item. Filled in every item: name, is_primary, quantity, items. In the sample: name: “Eligible Whole Pizzas”; is_primary: true in 1 of 1; items: median 4 entries.
Open in Playground
GET/7now/combosapiKey1 credit/request
Lists every bundle deal a store offers -- 7NOW's combo-builder products, where a fixed price buys one item from each of several groups (e.g. "$6.99 Pizza", "Bone In Wing Combo"). GET /7now/search surfaces a combo only when a query happens to match one, so this is the only way to enumerate a store's bundles. Each entry carries the promotion id behind it: pass it to GET /7now/combo for the actual pick-from groups, or to GET /7now/promotion for a flat list of every eligible item. store_id comes from GET /7now/stores; lat and lon are accepted but inert (store_id alone selects the store).
Required: store_id. Optional: lat, lon.
Sampled 14 Oct 2026: 7 items. Filled in every item: bundle_id, name, image_url, tags, available, promo_id. In the sample: name: “7NOW Combo Builder SLIN 22 - $6.99 Pizza” and 6 other values; image_url: deuktbth81ifn.cloudfront.net; available: true in 7 of 7; tags: median 6 entries.
Open in Playground
GET/7now/dealsapiKey1 credit/request
Returns every currently discounted item in a store, paginated, each with the promotion driving the discount -- its id, shopper-facing description ("2 for $4", "On Sale $7"), promotional price where the offer has a single-unit one, and run dates. A busy store carries several hundred; the response also reports a store-wide availability summary across all of them before paging. This is the store-wide offers listing: the per-category browse endpoints surface promotions only for the items they happen to return, and pulling them all otherwise means walking the entire catalog. Pass a promos[].id to GET /7now/promotion to see every item that same promotion covers. store_id comes from GET /7now/stores; lat and lon are accepted but inert (store_id alone selects the store).
Required: store_id. Optional: lat, lon, skip, limit.
Sampled 14 Oct 2026: 20 items. Filled in every item: product_id, name, brand, category, category_id, subcategory, upc, image_url and 5 more. Not in every item: calories (19). In the sample: category: Fresh Food (6), Drinks (4), Candy (4) and 3 more; calories: 5 to 450, median 150; name: “Starbucks Frappuccino Chilled Coffee Drink Pumpkin Spice, 1…” and 19 other values; image_url: deuktbth81ifn.cloudfront.net; available: true in 20 of 20; promos: median 1 entry; brand: “Starbucks” and 17 other values; subcategory: “Coffee” and 18 other values.
Open in Playground
GET/7now/offersapiKey1 credit/request
Returns every promotional campaign a store currently advertises -- the headline, body copy, legal terms and artwork behind offers like "$6.99 Pizza" or "2/$5 Gatorade 28oz". This is campaign-level and complements the item-level views: GET /7now/deals answers "which items are discounted and why", while this answers "what is this store advertising, and on what terms". The full legal terms are available nowhere else. Each campaign points somewhere: promo_ids[] feed GET /7now/promotion (or GET /7now/combo when the campaign advertises a bundle), while a category campaign instead carries target_id, a category_id GET /7now/category accepts. store_id comes from GET /7now/stores; lat and lon are accepted but inert (store_id alone selects the store).
Required: store_id. Optional: lat, lon.
Sampled 14 Oct 2026: 4 items. Filled in every item: offer_id, name, legal_terms, image_url, web_image_url, sort_order, target_entity, target_url. Not in every item: title (3), description (1), promo_ids (3), target_id (1). In the sample: target_entity: promo_items (3), Category (1); sort_order: 2 to 9, median 4; title: “$6.99 Pizza” and 2 other values; image_url: images.contentstack.io; legal_terms: median 267 characters; description: “Any Whole Pizza $6.99 each”; name: “P4_August_$6.99 Pizza” and 3 other values; web_image_url: images.contentstack.io.
Open in Playground
GET/7now/popularapiKey1 credit/request
Returns the trending search terms 7NOW shows in its own search box. Two axes select the index and both matter. vertical picks the catalogue: `convenience` and `restaurant` return different terms for the same store, and `global` is the genuinely national cross-vertical list. store_id (from GET /7now/stores) then narrows to that store's region within the vertical -- a New York store returns index NY_NE, a Florida store SE, and omitting it returns the vertical-wide list. The restaurant vertical is the exception: it ignores store_id entirely, returning identical terms for every store. The response echoes back both the vertical and the regional index the terms came from.
Optional: store_id, vertical (3 allowed values: convenience, restaurant, global).
Sampled 14 Oct 2026: 4 fields returned with a value. In the sample: vertical: “convenience”; suggestions: 5 entries; region: “NY_NE”.
Open in Playground
GET/7now/productapiKey2 credits/request
Returns one product's complete reference record: description, the full nutrition panel (serving size, calories, fat, cholesterol, sodium, carbohydrates, protein, vitamins and allergen "contains" list), the declared ingredient list, the allergen statement, size and flavor variants, related products, and any attached promotions. product_id comes from GET /7now/search, /7now/catalog or /7now/category. This record is store-independent and deliberately carries no price, availability or stock -- use those three endpoints for per-store pricing and availability. An unknown product_id returns a 404.
Required: product_id.
Open in Playground
GET/7now/promotionapiKey1 credit/request
Expands one promotion into every item it applies to in a store, plus the promotion's own offer type, terms, and run dates. GET /7now/deals reads discount-to-item (here is a discounted product, here is why); this reads it the other way round (here is an offer, here is everything it covers) -- e.g. a "2 for $4" tea promotion expands to all five flavours in it. promo_id comes from GET /7now/deals' items[].promos[].id, and store_id from GET /7now/stores. An unknown promo_id returns 404.
Required: promo_id, store_id. Optional: skip, limit.
Sampled 14 Oct 2026: 1 item. Filled in every item: product_id, name, brand, category, category_id, subcategory, upc, calories and 6 more. In the sample: name: “Brisk Sweet Tea w Lemon 1L”; image_url: deuktbth81ifn.cloudfront.net; available: true in 1 of 1; promos: median 1 entry; brand: “Brisk”; category: “Drinks”; subcategory: “Tea”; age_restricted: true in 0 of 1.
Open in Playground
GET/7now/searchapiKey1 credit/request
Returns one 7NOW store's keyword search results: matching products and combo deals with current pricing (list price, everyday sale price, and any further active promotion), live availability, and a sponsored-brand facet list relevant to the query. store_id comes from GET /7now/stores. A query matching nothing returns a normal 200 with an empty items array, not an error.
Required: store_id, q. Optional: skip, limit.
Sampled 14 Oct 2026: 11 items. Filled in every item: product_id, name, product_type, category, upc, calories, image_url, list_price_cents and 3 more. Not in every item: promo_price_cents (7), promo_description (7), available_quantity (9). In the sample: category: Fresh Food (8), Snacks (3); calories: 150 to 440, median 360; name: “Large Pizza - Cheese” and 10 other values; image_url: deuktbth81ifn.cloudfront.net; available: true in 8 of 11; list_price_cents: 279 to 1,099, median 999; price_cents: 279 to 1,099, median 999; promo_price_cents: 0 to 699, median 699.
Open in Playground
GET/7now/storesapiKey2 credits/request
Resolves a free-text delivery address, street, city and state, or postal code to the nearest 7NOW-enabled 7-Eleven stores, nearest first. Each store carries its store_id, address, coordinates, straight-line distance in miles from the resolved address, the banner it trades under, its Nielsen DMA, and its per-day alcohol sale windows -- upstream's own encoding of the local law, which is why a day can hold more than one window (a New York store's Sunday runs 0000-0200 and 0800-2359). An empty alcohol_sale_hours means upstream publishes no windows for that store, which is not the same as it selling no alcohol. The response also carries the Uber H3 cell for the resolved address. Use store_id with GET /7now/catalog, /7now/categories, /7now/deals, /7now/offers or /7now/combos to browse that store. An address that cannot be geocoded, or one with no nearby 7NOW coverage, returns a 404.
Required: address.
Sampled 14 Oct 2026: 17 items. Filled in every item: store_id, name, address, city, state, zip, county, country and 6 more. Not in every item: brand (16), brand_logo_url (16). In the sample: city: Brooklyn (11), New York (6); distance_miles: 0.44 to 4.91, median 3.14; name: “7-11 Str 520 Fifth Ave” and 15 other values; brand_logo_url: d1se8uetpsj0rs.cloudfront.net; alcohol_sale_hours: median 7 entries; county: Kings County (10), New York County (6), Sullivan County (1).
Open in Playground
GET/7now/suggestapiKey1 credit/request
Returns search-term completions for a partial query, e.g. "chi" -> "chips ahoy", "chips", "chicken". No store is required. q must be at least 3 characters -- shorter values return a typed invalid-param error, matching upstream's own enforced minimum. vertical selects which search index to complete against, and the indexes are materially different rather than variations on one list: for "chi", `convenience` answers "chips ahoy, chips, chicken wings" while `restaurant` answers "chipotle, chinese food, chili". `global` is a sparse cross-vertical index -- many prefixes legitimately return no suggestions there.
Required: q. Optional: vertical (3 allowed values: convenience, restaurant, global).
Open in Playground