Festival Foods API

Festival Foods prices per store as JSON

This API reads shop.festfoods.com, Festival Foods' online shop, live and returns it as JSON.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a Festival Foods endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
F
/festival-foods/v1

7 active endpoints, on 1 and 3 credit tiers.

  • POST/festival-foods/v1/search
  • POST/festival-foods/v1/category
  • POST/festival-foods/v1/product/detail
  • POST/festival-foods/v1/categories
  • POST/festival-foods/v1/stores
  • POST/festival-foods/v1/offers
  • POST/festival-foods/v1/promotions

What Festival Foods endpoints does ReefAPI ship?

7 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

7 endpoints

search

3 cr

Search shop.festfoods.com at one Festival Foods store.

required
query
optional
page, per_page, include_unmatched, cursor, postal_code, store_id

category

3 cr

Every product of a shop.festfoods.com collection (a category, a brand or a diet collection fr…

required
slug
optional
page, per_page, cursor, postal_code, store_id

product/detail

3 cr

One Festival Foods product.

required
product_id
optional
postal_code, store_id

categories

3 cr

The shop.festfoods.com category tree (departments and their collections) or one collection's…

required
—
optional
slug, postal_code, store_id

stores

1 cr

Festival Foods stores around a US ZIP code, nearest first, with address, coordinates, distanc…

required
postal_code
optional
page, limit

offers

3 cr

Festival Foods's current deal lists at one store.

required
—
optional
type, page, per_page, cursor, postal_code, store_id

promotions

3 cr

Which Festival Foods deal lists are live now at one store, each with its name and product count.

required
—
optional
postal_code, store_id

Every parameter, every allowed value →

Festival Foods API

4 of 7 endpoints, ready to run

View docs ↗

Milk at a Festival Foods near 54301

3 credits1 required · 1 optional
POST/festival-foods/v1/search
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the Festival Foods API works

Festival Foods is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 585 engines.

02
Call
POST /festival-foods/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

From a ZIP code to this week's Festival Foods deals at the nearest store

Pick a store, list the deals, then search its prices.

01stores?postal_code=54301
GET/festival-foods/v1/stores?postal_code=54301

Festival Foods stores nearest first, with store_id, distance and services.

02promotions?store_id=34846
GET/festival-foods/v1/promotions?store_id=34846

The live deal lists with their product counts.

03offers?type=bogo&store_id=34846
GET/festival-foods/v1/offers?type=bogo&store_id=34846

The deal products with price, regular price and promotions.

04search?query=coffee&store_id=34846
GET/festival-foods/v1/search?query=coffee&store_id=34846

The same store's prices for any search.

One Festival Foods store's current deals and prices, refreshable every day.

request
curl -X POST https://api.reefapi.com/festival-foods/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"milk","postal_code":"54301"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "festival-foods",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

What a Festival Foods field actually contains

Fields that read differently from how they look, measured on live responses on 2026-10-18.

FieldWhat it holds
price, price_displayThe price at the chosen store as the shop.festfoods.com product page prints it (matched on 8/8 products, e.g. Essential Everyday Ee Eggs Large $1.69).
original_price, discount_percentThe struck-through regular price on sale items and the discount computed from the two prices; null when the item is not on sale.
promotions, buy_one_get_oneDeals shown on the item: BOGO, multi-buy ('Buy 2 for $9.16'), member offers. They are never folded into price.
loyalty_priceA separate card or member price when the site shows one next to the regular price; null otherwise.
store, store_defaultedThe Festival Foods store that priced the response (id, name, street, city). store_defaulted is true when you gave neither postal_code nor store_id.
unit_price_textThe unit price as the site prints it ("$0.03/fl oz"). For items sold by weight, price is the estimated package price and price_is_estimate is true.
stock_level, likely_out_of_stockmany_in_stock, in_stock, likely_out_of_stock or out_of_stock for that store.
matches_queryWhether the row shares a word with your search. The site fills a search that matches nothing with unrelated products; such pages are dropped and counted in unmatched_dropped.

Prices differ between stores: the same 16 products cost differently on 5 of them at a store near 53703 on the same day.

Festival Foods coverage, measured

Every number was read from live responses on 2026-10-18: 25 calls across all seven actions.

Price check

8 of 8 products: price matched the price printed on the shop.festfoods.com product page.

Store prices

A second store near 53703 priced 5 of 16 common products differently.

Stores

15 stores around 54301.

Deals

BOGO 470 products, On Sale 912 products at the default store.

Paging

The site re-ranked between calls (two products repeated across page 2 and 3 by page number). With next_cursor: 3 pages twice for 5 lists across 4 shops, no product repeated.

Fill

Across 160 rows: price, size, image and stock level on all; brand 157; unit price 158; regular price on sale items 104; promotions 107.

Limits

No sorting or filters beyond the store; no stock counts, only a stock level; product reviews are not returned.

What people build with Festival Foods

The jobs this data is most often used for.

7

endpoints

1/3

credits per call

01

Track Festival Foods prices per store and ZIP code.

02

Publish Festival Foods BOGO deals every week.

03

Compare grocery prices across Wisconsin stores.

04

Build a Festival Foods store finder with distance from any ZIP code.

What Festival Foods data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 585 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/festival-foods/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"milk","postal_code":"54301"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/festival-foods/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "milk",
  "postal_code": "54301"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Festival Foods.

Get a free key →
Does Festival Foods have a public API?▾

No public product API. This API reads what shop.festfoods.com shows a logged-out visitor and returns it as JSON. No account is needed.

Why do I need a ZIP code?▾

Festival Foods prices are set per store. Pass postal_code or store_id; without them a fixed default store is used and store_defaulted is true.

Do delivery, pickup and in-store prices differ?▾

Not in our measurement: the store's delivery, pickup and in-store price lists were identical on 16 of 16 products, so one price is returned, the one the product page prints.

Can I get Festival Foods BOGO and sale items?▾

Yes. offers returns bogo (the BOGO list) or on_sale (the On Sale list), each priced at one store.

Is the BOGO price in `price`?▾

No. price is the price the product page prints; BOGO and multi-buy deals are in promotions[], sale items carry the struck-through regular price in original_price.

How do I find Festival Foods stores near a ZIP code?▾

Call stores with postal_code. Around 54301 it returned 15 stores, nearest first, with address, coordinates, distance in miles and the services each offers. Use a store_id in any other call to price at that store.

Does search return everything the site finds?▾

Yes, in the site's own order, 20 per page by default (up to 40). cheese returned 232 products. The site can re-rank its list between two calls, so reading by page number can repeat or skip a product; follow next_cursor from each answer for a complete scan: it never returns a product twice and fills the page from the rest of the list.

How fresh is the data?▾

Every call reads shop.festfoods.com live; nothing is cached on our side.

What is the Festival Foods API?▾

Festival Foods API is a ReefAPI endpoint group for shop.festfoods.com prices as json per store: search, categories, bogo, on sale, product details and the store locator. It returns live JSON through POST requests under /festival-foods/v1.

Is the Festival Foods API free to try?▾

Yes. ReefAPI starts with 1,000 free credits, no card required. Festival Foods calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Festival Foods login or account?▾

No login to Festival Foods is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Festival Foods data?▾

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Festival Foods API use?▾

Festival Foods actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Festival Foods from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call festival-foods actions with the same key, credit pool and JSON envelope used by normal REST requests.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 584 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-18.