---
title: "List a 7NOW store's advertised promotional campaigns"
method: GET
path: "/7now/offers"
tags: ["7NOW"]
---

# List a 7NOW store's advertised promotional campaigns

`GET /7now/offers`

## Request

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

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

## Query parameters

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

## Headers

- `x-api-key` string, required

## Response `200`

OK

- SevennowOffersResponseDoc
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` SevennowOffersResponse
    - `count` integer
    - `fetched_at` string
    - `offers` SevennowOffer[]
      - `button_text` string
      - `description` string
      - `image_url` string
      - `legal_terms` string
      - `name` string: Name is upstream's internal campaign name, e.g. "US_7NOW_$6.99 Pizza_(8/21/26-1/5/2027)". It usually encodes the run dates, which the banner record does not carry as fields.
      - `offer_id` string
      - `promo_ids` string[]: PromoIDs are the promotions this campaign points at. Usually one, but a multi-product campaign (e.g. a brand takeover) genuinely carries several -- upstream packs them into one comma-separated string, which is split here so each id is individually usable. Pass one to GET /7now/promotion for every item it covers, or to GET /7now/combo when the campaign advertises a bundle.
      - `sort_order` integer
      - `target_entity` string: TargetEntity is what tapping the banner opens, e.g. `promo_items` or `Category`. A campaign with no destination reports `none` upstream and is omitted here.
      - `target_id` string: TargetID is the entity the banner opens when it is not a promotion -- for a `Category` banner this is a category_id GET /7now/category accepts.
      - `target_url` string
      - `title` string
      - `web_image_url` 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)
