Save Mart API

Save Mart prices per store as JSON

This API reads shop.savemart.com, Save Mart's online shop, live and returns it as JSON.

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

7 active endpoints, on 2 and 3 credit tiers.

  • POST/savemart/v1/search
  • POST/savemart/v1/category
  • POST/savemart/v1/product/detail
  • POST/savemart/v1/categories
  • POST/savemart/v1/stores
  • POST/savemart/v1/offers
  • POST/savemart/v1/promotions

What Save Mart 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.savemart.com at one Save Mart store.

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

category

3 cr

Every product of a shop.savemart.com collection (a category, a brand or a diet collection fro…

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

product/detail

3 cr

One Save Mart product.

required
product_id
optional
postal_code, store_id

categories

3 cr

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

required
—
optional
slug, postal_code, store_id

stores

2 cr

Save Mart stores around a US ZIP code, nearest first, with address, coordinates, distance and…

required
postal_code
optional
page, limit

offers

3 cr

Save Mart's current deal lists at one store.

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

promotions

3 cr

Which Save Mart 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 →

Save Mart API

4 of 7 endpoints, ready to run

View docs ↗

Milk at a Save Mart near 95354

3 credits1 required · 1 optional
POST/savemart/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 Save Mart API works

Save Mart 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 /savemart/v1/…

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

03
Pay
2 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 Save Mart deals at the nearest store

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

01stores?postal_code=95354
GET/savemart/v1/stores?postal_code=95354

Save Mart stores nearest first, with store_id, distance and services.

02promotions?store_id=34678
GET/savemart/v1/promotions?store_id=34678

The live deal lists with their product counts.

03offers?type=weekly_ad&store_id=34678
GET/savemart/v1/offers?type=weekly_ad&store_id=34678

The deal products with price, regular price and promotions.

04search?query=coffee&store_id=34678
GET/savemart/v1/search?query=coffee&store_id=34678

The same store's prices for any search.

One Save Mart store's current deals and prices, refreshable every day.

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

What a Save Mart 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.savemart.com product page prints it (matched on 8/8 products, e.g. Sunnyside Farms Cage Free Eggs $2.79).
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 Save Mart 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 1 of them at a store near 95814 on the same day.

Save Mart coverage, measured

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

Price check

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

Store prices

A second store near 95814 priced 1 of 16 common products differently.

Stores

26 stores around 95354.

Deals

Weekly Ad 261 products, Member Prices 124 products, Sales 818 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 180 rows: price, size, image and stock level on all; brand 159; unit price 175; regular price on sale items 79; promotions 121.

Limits

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

What people build with Save Mart

The jobs this data is most often used for.

7

endpoints

2/3

credits per call

01

Track Save Mart prices per store and ZIP code.

02

Publish the Save Mart Weekly Ad and Member Prices every week.

03

Compare Save Mart member deals with regular prices.

04

Build a Save Mart store finder with distance from any ZIP code.

What Save Mart data costs

The cheapest call here is 2 credits, so $15/mo (Pro) buys 5,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/savemart/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"milk","postal_code":"95354"}'
python
import requests

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

Have a question? We got answers.

The questions people actually ask before wiring up Save Mart.

Get a free key →
Does Save Mart have a public API?▾

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

Why do I need a ZIP code?▾

Save Mart 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 the Save Mart Weekly Ad and Member Prices?▾

Yes. offers returns weekly_ad (Weekly Ad Oct 14 - Oct 20 on the day we measured), member_prices (Member Prices) or sales, each priced at one store. promotions lists the three with their product counts.

Is the member price in `price`?▾

No. price is the price the product page prints for every shopper; member deals appear as promotion labels in promotions[] (for example 'Buy 1 for $4.99' on a $5.29 item).

How do I find Save Mart stores near a ZIP code?▾

Call stores with postal_code. Around 95354 it returned 26 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 298 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.savemart.com live; nothing is cached on our side.

What is the Save Mart API?▾

Save Mart API is a ReefAPI endpoint group for shop.savemart.com prices as json per store: search, categories, weekly ad, member prices, sales, product details and the store locator. It returns live JSON through POST requests under /savemart/v1.

Is the Save Mart API free to try?▾

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

Do I need a Save Mart login or account?▾

No login to Save Mart 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 Save Mart 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 Save Mart API use?▾

Save Mart actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Save Mart from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call savemart 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.