Publix
Publix Search API
Search Publix products at one store by keyword, 48 per page, with seven sorts and filters for items on sale, BOGO (Buy One Get One Free) and brand. Each item has its Publix item code, title, brand, size, image, url, category path, the aisle at that store, on_sale, the price and promo as the site shows them, has_coupon and is_order_ahead, plus total, total_pages and facets with counts. publix.com shows prices only for items on sale and for order-ahead deli and bakery items, so price is null for everything else. 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/jsonquerystringrequiredSearch keywords, 1-100 characters. Some keywords lead to a category (answered normally) or to an order-ahead page (redirected_to is set; items may be empty).
Example: chicken
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: 1614
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")
# BOGO chicken at Publix store 1614 (3 Miami Central). price is null when
# publix.com shows no price for the item at that store.
r = client.publix.search(query="chicken", store_id="1614", bogo=True)["data"]
print(r["store"]["name"], r["total"], "matches")
for i in r["items"]:
print(i["item_code"], i["title"], i["price_text"], (i["promo"] or {}).get("message"))Response