Co-op grocery prices as JSON, with a validated barcode on every product
Co-op API returns live Co-op data as clean JSON for co-op The primary endpoint, search, returns matching records including product id, retail code, entry id, title and gtin format.
5 active endpoints, on 1, 2 and 3 credit tiers.
- POST/coop/v1/search
- POST/coop/v1/category
- POST/coop/v1/deals
- POST/coop/v1/product/detail
- POST/coop/v1/categories
What Co-op endpoints does ReefAPI ship?
5 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Co-op API
3 of 5 endpoints, ready to run
Co-op products for a keyword: the barcode, the price without membership, the Co-op Member price when there is one, the pre-deal price when a deal cut it, the per-kg or per-litre unit price, the pack size, every live deal with its end date, and whether Co-op lets you order the item online.
// 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 Co-op API works
Co-op is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 438 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Build a barcode-keyed Co-op price feed with the deal resolved and the Member price kept separate
Co-op's index publishes the pre-deal price as a product's flat price, and a Member price is not a shelf price. Three calls give you a feed you can join to another retailer on the barcode and compare over time without mixing the two kinds of discount.
{}Co-op's own category counters and the live total, so you know the catalogue size and the exact category names the next call takes. One cheap call, no guessing at spellings.
{"category": "Milk, butter and eggs", "page_size": 100}A whole shelf: each row has gtin with gtin_format, price, regular_price when a deal cut it, member_price or member_offer, unit_price with its unit, pack_size, promotions[] with end dates, and availability. Page with page until has_more goes false.
{"product_id": "co-op-irresistible-peruvian-coffee-beans"}For anything you are about to publish a price for: the product page's own printed price, 4.50 GBP without membership and 3.75 GBP with it, the unit price as Co-op prints it, and price_mismatch populated if the index had fallen behind the page.
A row per product keyed on a validated barcode, with the price a shopper pays, the price before the current deal, the Member price as a separate number, a per-kg or per-litre figure for like-for-like comparison, and the date each deal stops.
curl -X POST https://api.reefapi.com/coop/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk"}'{
"ok": true,
"data": { … },
"meta": {
"api": "coop",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What was measured, and what Co-op does not publish
Measured on 3 October 2026 against the live gateway. The lines that go against us are here too: a page where every number flatters the API is not worth reading.
Co-op Food UK, anonymous online catalogue, prices in GBP. One country, no country parameter. No per-store price or stock.
3,412 products in Co-op's own product index - food, drink and a small household range, not the whole shop. Health and beauty is 39 products. Co-op's product sitemap lists 3,673 URLs, so about 261 product pages exist that the index does not carry; product/detail still reaches those by product_id.
1,246 of 1,246 distinct products produced a check-digit-valid GTIN: 1,199 EAN-13, 33 UPC-A, 14 EAN-8. A plain EAN-13 check would have rejected 47 of them; 12 UPC-A codes had lost a leading zero to Co-op's numeric storage and are restored, with ean_raw keeping the original.
Price populated on 96 of 96 rows across 12 categories. On 34 products compared with their own pages, 15 index prices were the pre-deal number and are resolved; detail prices matched the price the page printed on 8 of 8 checked, and on 1 of 34 the index had missed a deal the page was showing - that disagreement is published as price_mismatch, not hidden.
142 of the 370 products in a deal are Co-op Member deals. A Member deal carries a number on some products and wording without a number on others ("Buy 2 save 20% | Member Price"); the first becomes member_price, the second member_offer, and neither is ever merged into price.
Pack size populated on 94 of 96 rows; unit price on 84 of 96. Where Co-op's pack size is a count rather than a measure ("Pack", bakery items) unit_price is null rather than approximated. Against the pages that print a unit price, the computed figure matched on 26 of 28.
Published by Co-op on wine and spirits only: filled on 4 of 96 grocery rows and 10 of 10 on a wine listing. Null elsewhere, never guessed from the product title.
product_id round-tripped from search to detail on 6 of 6, with the same barcode and the same price. Co-op's own total comes back with every listing and page_count with it; a page past the end returns an empty answer rather than repeating the last page.
No stock quantity, no per-store stock or price, no ratings or reviews, no ingredients, allergens or nutrition, no price history. The structured-data availability on Co-op's pages is a constant - InStock on 34 of 34, including items that cannot be ordered online - so it is not published; availability is derived from whether Co-op offers an ordering link or a store finder.
What people build with Co-op
The jobs this data is most often used for.
endpoints
credits per call
Pricing teams use Co-op to search Co-op's UK grocery catalogue by keyword.
Marketplace operators use Co-op to get walk one Co-op grocery category end to end.
Catalog enrichment teams use Co-op to get every Co-op product currently in a deal, with the deal's own wording, price and end date.
Retail analysts use Co-op to get the full record of one Co-op product, read from the product page itself and from Co-op's inde….
What Co-op 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 →- 1,000 free credits on signup, no card
- One key, all 438 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 -X POST https://api.reefapi.com/coop/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk"}'import requests
r = requests.post(
"https://api.reefapi.com/coop/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "milk"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Co-op.
Get a free key →What is the Co-op API?▾
Co-op API is a ReefAPI endpoint group for co-op It returns live JSON through POST requests under /coop/v1.
Is the Co-op API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Co-op calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Co-op login or account?▾
No login to Co-op 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 Co-op 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 Co-op API use?▾
Co-op 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 Co-op from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call coop actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Co-op API a Co-op scraper?▾
It is the managed alternative to a DIY Co-op scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same co-op back as clean JSON.
Why does my Co-op scraper keep getting blocked?▾
Most Co-op scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked calls are free.
191 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Co-op, you are one call away from the rest of the category — no second contract, no second integration.
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.
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 437 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-03.