---
title: "List every category id one 7NOW store accepts"
method: GET
path: "/7now/categories"
tags: ["7NOW"]
---

# List every category id one 7NOW store accepts

`GET /7now/categories`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/7now/categories`
- Auth: API key in header `x-api-key`

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).

## Query parameters

- `store_id` string, required
- `lat` number
- `lon` number

## Headers

- `x-api-key` string, required

## Response `200`

OK

- SevennowCategoriesResponseDoc
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` SevennowCategoriesResponse
    - `count` integer
    - `departments` SevennowCategoryRef[]: Departments are the store's permanent browsable departments.
      - `display_order` integer: DisplayOrder is the shelf's position on the store homepage. Only meaningful for shelves.
      - `id` string
      - `item_count` integer: ItemCount is how many items the shelf holds upstream. Only populated for shelves -- departments do not report a count here (use GET /7now/category's stats.total for those).
      - `kind` string: Kind is `department` for the store's permanent browsable departments (Drinks, Snacks, Fresh Food, ...) or `shelf` for a merchandising row the homepage is currently featuring ("$2 Deals", "What's New"). Both are valid category_id values; shelves rotate, departments do not.
      - `name` string
    - `fetched_at` string
    - `shelves` SevennowCategoryRef[]: Shelves are the merchandising rows the homepage currently features. These rotate with promotions and seasons, so re-read them rather than caching ids long-term.
      - `display_order` integer: DisplayOrder is the shelf's position on the store homepage. Only meaningful for shelves.
      - `id` string
      - `item_count` integer: ItemCount is how many items the shelf holds upstream. Only populated for shelves -- departments do not report a count here (use GET /7now/category's stats.total for those).
      - `kind` string: Kind is `department` for the store's permanent browsable departments (Drinks, Snacks, Fresh Food, ...) or `shelf` for a merchandising row the homepage is currently featuring ("$2 Deals", "What's New"). Both are valid category_id values; shelves rotate, departments do not.
      - `name` string
    - `source_url` string
    - `store_id` string
  - `msg` unknown

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/0497899e2016?raw)
