CarrefourSA API

Turkish grocery prices as JSON, with the CarrefourSA Kart price kept separate

The CarrefourSA API turns carrefoursa.com, the online grocery of Turkey's CarrefourSA hypermarket chain, into clean JSON in four actions: search, product/detail, product/reviews and search/suggest.

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

4 active endpoints. Every call is 1 credit.

  • POST/carrefoursa/v1/search
  • POST/carrefoursa/v1/product/detail
  • POST/carrefoursa/v1/product/reviews
  • POST/carrefoursa/v1/search/suggest

What CarrefourSA endpoints does ReefAPI ship?

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

4 endpoints

search

1 cr

Search carrefoursa.com by keyword, or browse a category, and get one row per product.

required
optional
query, category, page, page_size, sort, brand, in_stock, price_band, max_rotations

product/detail

1 cr

The full CarrefourSA product record by product code or URL.

required
product_id
optional
max_rotations

product/reviews

1 cr

Written customer reviews of one CarrefourSA product, newest first.

required
product_id
optional
limit, max_rotations

search/suggest

1 cr

CarrefourSA's own search-box suggestions for what a shopper has typed so far.

required
query
optional
max_rotations

Every parameter, every allowed value →

CarrefourSA API

2 of 4 endpoints, ready to run

View docs ↗

CarrefourSA products for a keyword or a category: the regular price, the CarrefourSA Kart price when one runs, unit price, stock status, multi-buy campaigns with dates, brand and category path - plus the filters available.

1 credit0 required · 4 optional
POST/carrefoursa/v1/search
ok2596 ms · 20 records · sample
{
  "ok": true,
  "meta": {
    "api": "carrefoursa",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 2595.7,
    "record_count": 20,
    "cache_hit": false
  },
  "data": {
    "results": [
      {
        "position": 1,
        "product_id": "30230758",
        "title": "Ekici Tel Peynir kg",
        "brand": {
          "id": "BRN-1675",
          "name": "EKİCİ",
          "url": null
        },
        "category": {
          "id": "1342",
          "name": "Yöresel Peynir",
          "url": null
        },
        "category_path": [
          "Süt Ürünleri",
          "Peynir",
          "Yöresel Peynir"
        ],
        "url": "https://www.carrefoursa.com/ekici-tel-peynir-kg-p-30230758",
        "image": "https://images.csfour.com/mnresize/600/600/productimage/30230758/30230758_0_MC/8811432542258_1591793758125.jpg",
        "price": 1090,
        "price_display": "1.090,00 TL",
        "currency": "TRY",
        "original_price": null,
        "discount_percent": null,
        "member_price": 899.95,
        "member_price_display": "899,95 TL",
        "member_discount_percent": 17,
        "member_program": "CarrefourSA Kart",
        "member_price_condition": null,
        "unit_price": 1090,
        "unit_price_unit": "kg",
        "member_unit_price": 899.95,
        "unit_price_basis": "sold_by_weight",
        "sold_by": "weight",
        "price_per": "kg",
        "availability": "in_stock",
        "in_stock": true,
        "stock_level": null,
        "limited_stock": false,
        "min_order_quantity": 0.25,
        "max_order_quantity": 3,
        "order_step": 0.25,
        "badges": [
          {
            "type": "member_price",
            "text": "CarrefourSA Kart ile"
          }
        ],
        "promotions": [],
        "multi_buy_offer": null,
        "special_today": false,
        "search_index_rating": null,
        "search_index_review_count": null
      },
      {
        "position": 2,
        "product_id": "30278915",
        "title": "Torku Beyaz Peynir 900g",
        "brand": {
          "id": "BRN-3103",
          "name": "TORKU",
          "url": null
        },
        "category": {
          "id": "1319",
          "name": "Beyaz Peynir",
          "url": null
        },
        "category_path": [
          "Süt Ürünleri",
          "Peynir",
          "Beyaz Peynir"
        ],
        "url": "https://www.carrefoursa.com/torku-beyaz-peynir-900g-p-30278915",
        "image": "https://images.csfour.com/mnresize/600/600/productimage/30278915/30278915_0_MC/8838995181618_1789479011374.jpg",
        "price": 364.9,
        "price_display": "364,90 TL",
        "currency": "TRY",
        "original_price": null,
        "discount_percent": null,
        "member_price": null,
        "member_price_display": null,
        "member_discount_percent": null,
        "member_program": null,
        "member_price_condition": null,
        "unit_price": null,
        "unit_price_unit": null,
        "member_unit_price": null,
        "unit_price_basis": null,
        "sold_by": "piece",
        "price_per": "piece",
        "availability": "in_stock",
        "in_stock": true,
        "stock_level": 11,
        "limited_stock": false,
        "min_order_quantity": 1,
        "max_order_quantity": 15,
        "order_step": 1,
        "badges": [],
        "promotions": [],
        "multi_buy_offer": null,
        "special_today": false,
        "search_index_rating": null,
        "search_index_review_count": null
      },
      {
        "position": 3,
        "product_id": "30370012",
        "title": "Ekici Süzme Peynir 400 g",
        "brand": {
          "id": "BRN-1675",
          "name": "EKİCİ",
          "url": null
        },
        "category": {
          "id": "2501",
          "name": "Süzme Peynir",
          "url": null
        },
        "category_path": [
          "Süt Ürünleri",
          "Peynir",
          "Süzme Peynir"
        ],
        "url": "https://www.carrefoursa.com/ekici-suzme-peynir-400-g-p-30370012",
        "image": "https://images.csfour.com/mnresize/600/600/productimage/30370012/30370012_0_MC/8838404669490_1640154553261.jpg",
        "price": 275.9,
        "price_display": "275,90 TL",
        "currency": "TRY",
        "original_price": null,
        "discount_percent": null,
        "member_price": 137.95,
        "member_price_display": "137,95 TL",
        "member_discount_percent": 50,
        "member_program": "CarrefourSA Kart",
        "member_price_condition": null,
        "unit_price": null,
        "unit_price_unit": null,
        "member_unit_price": null,
        "unit_price_basis": null,
        "sold_by": "piece",
        "price_per": "piece",
        "availability": "in_stock",
        "in_stock": true,
        "stock_level": 107,
        "limited_stock": false,
        "min_order_quantity": 1,
        "max_order_quantity": 10,
        "order_step": 1,
        "badges": [
          {
            "type": "member_price",
            "text": "CarrefourSA Kart ile"
          }
        ],
        "promotions": [],
        "multi_buy_offer": null,
        "special_today": false,
        "search_index_rating": null,
        "search_index_review_count": null
      }
    ],
    "count": 20,
    "page": 1,
    "page_size": 20,
    "total_results": 406,
    "total_pages": 21,
    "has_more": true,
    "sort_applied": "relevance",
    "keyword_redirect": {
      "type": "category",
      "id": "1318",
      "url": "https://www.carrefoursa.com/peynir/c/1318"
    },
    "applied_filters": [],
    "duplicates_dropped": 0,
    "filters_available": {
      "categories": [
        {
          "id": "1342",
          "name": "Yöresel Peynir",
          "count": 125
        },
        {
          "id": "1330",
          "name": "İthal Peynir",
          "count": 76
        },
        {
          "id": "1324",
          "name": "Kaşar Peynir",
          "count": 50
        }
      ],
      "top_categories": [
        {
          "id": "1310",
          "name": "Süt Ürünleri",
          "count": 385
        },
        {
          "id": "1493",
          "name": "Atıştırmalık",
          "count": 15
        },
        {
          "id": "1064",
          "name": "Hazır Yemek&Donuk Ürünler",
          "count": 2
        }
      ],
      "brands": [
        {
          "id": "BRN-1029",
          "name": "AK-DU",
          "count": 1
        },
        {
          "id": "BRN-8103",
          "name": "ALCATRA",
          "count": 3
        },
        {
          "id": "BRN-5672",
          "name": "ANTREGOURMET",
          "count": 9
        }
      ],
      "price_bands": [
        {
          "label": "0 TL - 49,99 TL",
          "count": 9
        },
        {
          "label": "50 TL - 199,99 TL",
          "count": 106
        },
        {
          "label": "200 TL - 499,99 TL",
          "count": 170
        }
      ],
      "package_sizes": [
        {
          "id": "1.000G",
          "name": "1.000G",
          "count": 119
        },
        {
          "id": "200G",
          "name": "200G",
          "count": 40
        },
        {
          "id": "500G",
          "name": "500G",
          "count": 25
        }
      ],
      "in_stock_count": 319,
      "out_of_stock_count": 87
    },
    "query": "peynir",
    "category": null
  }
}
Real response, fetched from the live endpoint with the parameters on the left — trimmed to the first few rows, with seller names left out. Press Try it for the untrimmed response.

How the CarrefourSA API works

CarrefourSA 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 252 engines.

02
Call
POST /carrefoursa/v1/…

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

03
Pay
1 credit 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.

Track a Turkish grocery basket with and without the CarrefourSA Kart

On CarrefourSA every discount is a card price, so a tracker that stores the lowest price it sees stores a price most shoppers do not pay. Two calls keep them apart.

01search
POST/carrefoursa/v1/search
{"query": "peynir", "sort": "price_asc"}

20 products per page with product_id, price, member_price, member_price_condition, unit_price and sold_by, plus the brands, categories and price bands available.

02detail
POST/carrefoursa/v1/product/detail
{"product_id": "30500720"}

The full record: 254.90 TRY without the card, 199.00 TRY with it on 2026-09-15, per-kg prices for both, barcode, label sheet and nutrition table. One flat credit.

A basket where every product carries the price a shopper without the card pays and, separately, the CarrefourSA Kart price and any basket condition - with unit prices on the same basis.

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

On CarrefourSA, the discounted price is the CarrefourSA Kart price

This is the one thing to know before you build a Turkish grocery price tracker on CarrefourSA. The struck-through price is what a shopper without the loyalty card pays; the lower price is the card price. The API returns both and never merges them. Measured against the storefront on 2026-09-15.

CarrefourSA productprice (no card)member_price (CarrefourSA Kart)What else to know
Ekici Hellim Peynir 225 g294.90 TRY219.00 TRYCard-only discount
Dalin Şampuan Klasik 700 ml279.95 TRY159.95 TRYCard-only discount
Gliss Oil Nutritive Şampuan 400 ml209.90 TRY125.94 TRYmember_price_condition: 100 TL ve Üzeri %40
Ekici Tel Peynir kg1,090.00 TRY per kg899.95 TRY per kgsold_by weight
Bahçıvan Süzme Peynir 800 g399.90 TRYnull - no card priceOne price for everyone

member_discount_percent is CarrefourSA's own figure. Unit prices come in two versions on the same basis: unit_price on the regular price and member_unit_price on the card price. A multi-buy campaign such as "CarrefourSA Kart ile 3 Al 2 Öde" changes no price field. It comes back in promotions and multi_buy_offer with its start and end dates.

Which price, which store, which id, and what CarrefourSA does not publish

carrefoursa.com only - one country, one currency, a numeric product code. Measured on 2026-09-15 across 30 products in 11 CarrefourSA categories, 20 searches, 29 controlled cases and an independent storefront comparison on 57 products. Three of these lines go against us.

One market: Turkey, prices in TRY

This engine reads CarrefourSA's online grocery at carrefoursa.com. Every price is TRY, with a Turkish display string next to the number ("254,90 TL"). There is no country parameter because there is no other storefront behind it.

Two prices, never merged

price is what a shopper without a CarrefourSA Kart pays; member_price is the card price, null when there is none. 71 of 71 discounted products across six storefront searches carried the card badge. On 57 of 57 products compared against an independent read of the storefront, title, regular price, card price and availability all matched.

Conditions and campaigns stay out of the price

A card price that needs a minimum basket says so in member_price_condition ("100 TL ve Üzeri %40"). Multi-buy offers such as "3 Al 2 Öde" change no price and come back in promotions with their start and end dates.

Unit prices on both bases

Weight-sold products are priced per kg. Packaged products get a per-kg, per-litre or per-piece price from their package size, calculated for the regular price (unit_price) and the card price (member_unit_price).

Filters bite, empty means empty

peynir: 402 unfiltered, 32 for two brands together, 314 in stock, 104 in one price band, each matching CarrefourSA's own counts. Nonsense keywords return an empty list - 8 of 8 - rather than unrelated products.

Search rows agree with product records

Regular and card prices on search rows were checked against the full product record for 30 products, 13 of them with a card price: 30 of 30 agreed.

Against us: prices are for CarrefourSA's default online store

CarrefourSA says prices and campaigns vary by store location. The API returns what a visitor with no store selected sees, and price_scope_note repeats the site's own sentence. Prices for a specific store are not offered.

Against us: ratings and reviews are rare

1 of 30 sampled products was rated. product/reviews returns written reviews when they exist - rating, headline, text and date, never the reviewer's name - and an empty list for most products.

Against us: label sheets on food only

Ingredients, allergens, origin and the nutrition table came back on food products (15 of 30 sampled products had ingredients). Electronics, baby, personal care and cleaning products had no label sheet, so those fields are null. No variants were published on any product.

What people build with CarrefourSA

The jobs this data is most often used for.

4

endpoints

1

credit per call

01

Turkish grocery price trackers record the regular price and the CarrefourSA Kart price separately, so a card discount is never stored as the shelf price.

02

FMCG brands monitor card discounts, basket-threshold campaigns and multi-buy offers on their products across CarrefourSA categories.

03

Retail analysts compare per-kg and per-litre prices like for like, with and without the card, against other Turkish grocers.

04

Catalogue teams match products by barcode and pull ingredients, allergens, origin and nutrition tables from the label sheet.

What CarrefourSA 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 252 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/carrefoursa/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"peynir"}'
python
import requests

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

Have a question? We got answers.

The questions people actually ask before wiring up CarrefourSA.

Get a free key →
Which price should I store - price or member_price?

Store both, and label them. price is what a shopper without a CarrefourSA Kart pays; member_price is the card price and is null when there is none. On 2026-09-15, 13 of 30 sampled products had a card price. No discount without the card was seen on the site that day, so original_price and discount_percent are null.

How do I know the discount is card-only?

Because the storefront labels it. Across six searches on 2026-09-15, 71 of 71 products with a struck-through price carried the "CarrefourSA Kart ile" badge, and none without one did. In the verification run, the 20 products the API returned with a member_price all carried the badge on the storefront.

What does member_price_condition mean?

Some card prices only apply above a basket total. Gliss Oil Nutritive Şampuan 400 ml was 209.90 TRY, or 125.94 TRY with the card, under the campaign "100 TL ve Üzeri %40" - a basket of 100 TL or more. That text is returned in member_price_condition. It is null when the card price has no condition.

How are multi-buy offers like 3 Al 2 Öde returned?

As campaigns, never as a price. "CarrefourSA Kart ile 3 Al 2 Öde" on Bahçıvan Taze Kaşar Peyniri 400 g left price and member_price unchanged; the offer comes back in promotions with kind multi_buy, card_required true and its dates (2026-09-14 to 2026-09-20), and in multi_buy_offer.

Which products are priced per kg?

Deli and fresh products sold by weight. sold_by reads weight and price_per reads kg, and the minimum and step quantities are in kg (0.25). For packaged products, unit_price is calculated from the package size on the product record: Ulus Klasik Beyaz Peynir 350 g at 254.90 TRY is 728.29 TRY per kg, or 568.57 with the card.

Do filters and sorting really apply?

Yes, measured on 2026-09-15 for peynir: 402 results unfiltered, 20 for one brand, 12 for another, 32 for both together, 314 in stock (CarrefourSA's own in-stock count) and 104 in the 50-199,99 TL band (CarrefourSA's own band count - bands follow the regular price). A category code browses that category: 45 products in Beyaz Peynir, every row in it. Price sorts follow the displayed price and came back in order.

What happens when a keyword has no match?

You get an honest empty list. All 8 nonsense queries tested returned zero results, while 20 of 20 real queries returned products, including misspellings such as peynr and deterjn. When CarrefourSA would send a keyword to a category page - süt goes to the milk category - the response names that page in keyword_redirect and still returns the keyword's own matches.

What does CarrefourSA NOT publish?

Prices for a specific store: CarrefourSA says prices and campaigns vary by store location, and the API returns the default online store's prices (price_scope_note repeats the site's sentence). A stock count for weight-sold products. Variants - none were seen. Ratings are rare: 1 of 30 sampled products was rated, and product/reviews returns an empty list for most products. Label sheets and nutrition tables come on food products; electronics, baby, personal care and cleaning products had none.

What is the CarrefourSA API?

CarrefourSA API is a ReefAPI endpoint group for turkish online grocery: regular and carrefoursa kart prices kept apart, unit prices, label sheets. It returns live JSON through POST requests under /carrefoursa/v1.

Is the CarrefourSA API free to try?

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

Do I need a CarrefourSA login or account?

No login to CarrefourSA 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 CarrefourSA 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 CarrefourSA API use?

CarrefourSA actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call CarrefourSA from an AI assistant or MCP client?

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

91 E-commerce & Marketplaces APIs on the same key

One key, one credit pool, one response envelope. If you are pulling CarrefourSA, 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.

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 251 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-09-15.