Publix
Publix Category API
One Publix category's products at one store, by publix.com category link or category id, 48 per page, with the search sorts and filters (on sale, BOGO, brand). Each item has its Publix item code, title, brand, size, url, the aisle at that store, on_sale, the price and promo as the site shows them, plus category (id, name, path), total, total_pages and facets. Price is null unless the item is on sale or is an order-ahead item. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsoncategory_urlstringA publix.com category link (/c/<name>/<id>). Send category_url or category_id, not both.
Example: https://www.publix.com/c/chicken/6772da29-55bf-4051-83d5-104d73ae9a96
category_idstringA category id (categories[].id of the categories endpoint), a 36-character GUID.
Example: 6772da29-55bf-4051-83d5-104d73ae9a96
store_idstring | integerrequiredA Publix store number (stores[].store_id of the stores endpoint, found by ZIP or city), 1-5 digits. Prices, promotions and aisles are this store's, and the answer echoes the store (id, name).
Example: 1825
pageintegerdefault:1Results page, 1-based, 48 products per page, up to 100. A page past the last answers an empty list.
Example: 2
sortenum<string>default:relevanceResult order.
Example: savings_amount
relevance— The site's default order.featured— Featured items first.name_asc— Title A to Z.name_desc— Title Z to A.popularity— Most popular first.savings_amount— Biggest promo savings first.most_viewed— Most viewed first.
on_salebooleanOnly items on sale at the store (weekly ad, BOGO, multi-buy or Extra Savings).
Example: true
bogobooleanOnly Buy One Get One Free items at the store.
Example: true
brandstringOnly this brand, as the site lists it (the Brand facet's values), 1-60 characters.
Example: Tyson
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Every chicken item on sale at store 1825 (Atlanta), page by page.
page, items = 1, []
while True:
r = client.publix.category(category_id="6772da29-55bf-4051-83d5-104d73ae9a96",
store_id="1825", on_sale=True, page=page)["data"]
items += r["items"]
if page >= r["total_pages"]:
break
page += 1
for i in items:
print(i["title"], i["price_text"], i["regular_price_text"])Response