Çiçeksepeti API

Every Çiçeksepeti product with the price the shopper actually sees

The Çiçeksepeti API turns ciceksepeti.com, Turkey's flower, gift and multi-category marketplace, into clean JSON in four actions.

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

4 active endpoints. Every call is 1 credit.

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

What Çiçeksepeti 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 ciceksepeti.com by keyword, or browse a Çiçeksepeti category, with price range, free s…

required
optional
query, category, page, sort, price_min, price_max, free_shipping, same_day, max_rotations

product/detail

1 cr

The full Çiçeksepeti product page by URL or product code.

required
optional
url, product_code, max_rotations

product/reviews

1 cr

Written reviews of a Çiçeksepeti product, 20 per call, with the site's six review orders, a s…

required
optional
product_id, product_code, url, sort, rating, cursor, max_rotations

search/suggest

1 cr

Çiçeksepeti's own search autocomplete for a partial keyword.

required
query
optional
max_rotations

Every parameter, every allowed value →

Çiçeksepeti API

3 of 4 endpoints, ready to run

View docs ↗

One page of 30 products: id and code, title, URL, image, price, the struck price or the in-basket label, discount, delivery text, category path and marketplace flag.

1 credit0 required · 8 optional
POST/ciceksepeti/v1/search
ok709 ms · 30 records · sample
{
  "ok": true,
  "meta": {
    "api": "ciceksepeti",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 708.8,
    "record_count": 30,
    "cache_hit": false
  },
  "data": {
    "results": [
      {
        "position": 1,
        "product_id": 97730201,
        "product_code": "at5418",
        "variant_code": "at5418-1",
        "title": "Beyaz Buket Kağıdında 20'li Kırmızı Gül Buketi",
        "url": "https://www.ciceksepeti.com/beyaz-buket-kagidinda-20li-kirmizi-gul-buketi-at5418",
        "image": "https://cdn03.ciceksepeti.com/cicek/at5418-1/M/beyaz-buket-kagidinda-20-li-kirmizi-gul-buketi-at5418-a857ab8a-794c-4068-b28f-c5880b310ad2.png",
        "price": 1149,
        "price_display": "1.149,00 TL",
        "price_type": "discounted",
        "price_before_discount": 1349,
        "price_outside_basket": null,
        "basket_price_label": null,
        "discount_percent": 15,
        "currency": "TRY",
        "search_index_rating": 3.3,
        "search_index_rating_count": 4034,
        "rating_scale": 5,
        "delivery_text": "Aynı Gün Ücretsiz Teslimat",
        "badge": null,
        "category_id": 225,
        "category_path": [
          {
            "id": 216,
            "name": "Flower"
          },
          {
            "id": 225,
            "name": "Güller"
          }
        ],
        "is_marketplace": false,
        "is_personalized": false,
        "is_bundle": false,
        "has_image_reviews": false
      },
      {
        "position": 2,
        "product_id": 179552508,
        "product_code": "at6144",
        "variant_code": "at6144-1",
        "title": "Kraft Bukette 21 Kırmızı Gül ve Fenix Bitkisi",
        "url": "https://www.ciceksepeti.com/kraft-bukette-21-kirmizi-gul-ve-fenix-bitkisi-at6144",
        "image": "https://cdn03.ciceksepeti.com/cicek/at6144-1/M/kraft-bukette-21-kirmizi-gul-ve-fenix-bitkisi-at6144-c01459a9-c056-43ca-970c-69d0c9256f82.png",
        "price": 1249,
        "price_display": "1.249,00 TL",
        "price_type": "discounted",
        "price_before_discount": 1449,
        "price_outside_basket": null,
        "basket_price_label": null,
        "discount_percent": 14,
        "currency": "TRY",
        "search_index_rating": 3.5,
        "search_index_rating_count": 968,
        "rating_scale": 5,
        "delivery_text": "Aynı Gün Ücretsiz Teslimat",
        "badge": null,
        "category_id": 225,
        "category_path": [
          {
            "id": 216,
            "name": "Flower"
          },
          {
            "id": 225,
            "name": "Güller"
          }
        ],
        "is_marketplace": false,
        "is_personalized": false,
        "is_bundle": false,
        "has_image_reviews": false
      },
      {
        "position": 3,
        "product_id": 4275290,
        "product_code": "at4036",
        "variant_code": "at4036-1",
        "title": "50 Kırmızı Gül Çiçek Demeti",
        "url": "https://www.ciceksepeti.com/50-kirmizi-gul-cicek-demeti-at4036",
        "image": "https://cdn03.ciceksepeti.com/cicek/at4036-1/M/50-kirmizi-gul-cicek-demeti-at4036-d9832a59-b57d-41b7-9b30-80eaf4be0a4a.png",
        "price": 2749,
        "price_display": "2.749,00 TL",
        "price_type": "discounted",
        "price_before_discount": 2999,
        "price_outside_basket": null,
        "basket_price_label": null,
        "discount_percent": 8,
        "currency": "TRY",
        "search_index_rating": 3.8,
        "search_index_rating_count": 3298,
        "rating_scale": 5,
        "delivery_text": "Aynı Gün Ücretsiz Teslimat",
        "badge": null,
        "category_id": 225,
        "category_path": [
          {
            "id": 216,
            "name": "Flower"
          },
          {
            "id": 225,
            "name": "Güller"
          }
        ],
        "is_marketplace": false,
        "is_personalized": false,
        "is_bundle": false,
        "has_image_reviews": false
      }
    ],
    "count": 30,
    "total_results": 731,
    "total_pages": 25,
    "page": 1,
    "page_size": 30,
    "has_next_page": true,
    "delivery_type": "Servis",
    "page_notice": null,
    "duplicate_rows_dropped": 0,
    "listing_url": "https://www.ciceksepeti.com/arama?query=k%C4%B1rm%C4%B1z%C4%B1%20g%C3%BCl"
  }
}
Real response, fetched from the live endpoint with the parameters on the left — trimmed to the first few rows. Press Try it for the untrimmed response.

How the Çiçeksepeti API works

Çiçeksepeti 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 /ciceksepeti/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.

Browse a category, open a product, read its newest reviews

Three calls from a category slug to the product record and what buyers said about it this week.

01search
POST/ciceksepeti/v1/search
{"category": "kirmizi-gul", "sort": "price_asc"}

30 red-rose products, cheapest first. Take results[].product_code; each row already says whether the price is a sale price or an in-basket price.

02detail
POST/ciceksepeti/v1/product/detail
{"product_code": "<results[0].product_code>"}

The product page: price and struck price as displayed, rating and rating count as printed, contents such as '20 Adet' roses, and delivery badges such as same-day delivery. product_id, code, title and price matched the search row on 22 of 22 products checked.

03reviews
POST/ciceksepeti/v1/product/reviews
{"product_id": <product.product_id>, "sort": "newest"}

The newest 20 reviews; pass next_cursor for the next 20.

A priced product list, the full record of the product you pick and its latest reviews, with every price labelled for what it is.

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

Çiçeksepeti prints three kinds of price, and the API keeps them apart

A Çiçeksepeti product card shows either a price with a struck-through was-price, an in-basket price with a label such as "Sepet Fiyatı", or a single price. search returns price_type ('discounted', 'basket' or 'regular') so the three are never mixed, and product/detail publishes a was-price only when the page actually displays one.

ProductpriceWhat else the page showsAPI fields
20 red roses bouquet (sold by Çiçeksepeti)1,149.00 TRYstruck 1,349.00 TRY, %15price_before_discount 1349, discount_percent 15
Poco X8 Pro Max 12/256 GB (seller EVOFONE)38,999 TRY"Sepet Fiyatı" (in-basket price), no struck priceprice_type 'basket', basket_price_label, price_before_discount null
Merry See floral dress (seller Merry See)349.99 TRYstruck 600.00 TRY, %42, sizes S and M in stockvariants[] with Beden and available per size
54-piece gourmet chocolate box859.99 TRYone priceprice_before_discount null

The phone's page also carries a higher number in a hidden block that shoppers never see. Returning it as a was-price would invent a discount, so it is not returned. Search rows and product pages can also differ: one sneaker's search card showed a single price while its product page showed a struck price; product/detail follows the product page.

Which market, which price, and what Çiçeksepeti leaves out

ciceksepeti.com only: Turkey, TRY. Measured on 2026-09-15 across 26 searches, 22 products and 22 product pages compared against the page itself. Three of these lines go against us.

One market: Turkey, prices in TRY

This API reads ciceksepeti.com. The former foreign storefronts no longer serve a shop (checked 2026-09-15), so there is no country parameter. Every price is Turkish lira.

Three price types, never mixed

price_type says whether a search row's price is a sale price with a struck was-price, an in-basket price with the site's label, or a single price. On 22 product pages compared, the price and the struck price matched the page on 22 of 22, and a hidden number the page does not display is never returned as a was-price.

Variants with their own price and availability

variants[] lists sizes and other options with price, struck price and whether each can be ordered, and marks sibling colour products separately with their own code and URL. stock_count is the opened variant's stock.

Ratings as the product page prints them

product/detail returns rating and rating_count from the product page (matched 22 of 22 compared pages). Search rows carry the search index's figures under search_index_rating, because the count differed slightly on 5 of 16 rated products (3999 against 3998).

Against us: flower delivery is shown for the site's default view

Flower delivery on Çiçeksepeti depends on the delivery district. The API does not choose an address, so availability and the same-day badge are those of the site's default view.

Against us: no other sellers' offers and no barcode

The product page does not list other sellers for the same product, and no barcode or GTIN is published. A product sold by two shops appears as two products in search.

Against us: stock for the opened variant only

The page publishes the stock of the variant it opens on (10 of 22 products checked had a real count; flowers and Çiçeksepeti's own gifts publish none, and 2 carried a placeholder such as 9999, returned as null). The other sizes report whether they can be ordered, not how many are left.

What people build with Çiçeksepeti

The jobs this data is most often used for.

4

endpoints

1

credit per call

01

Gift and flower price monitoring across Turkey's largest flower marketplace, with struck prices and in-basket prices kept apart.

02

Marketplace sellers track competitors' prices, discounts, seller scores and ratings by category.

03

Fashion and home catalog teams pull variants with per-size availability, the specification table and descriptions.

04

Review analysis on bouquets and gifts: star filters, newest-first paging and helpful votes.

What Çiçeksepeti 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/ciceksepeti/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"kırmızı gül"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/ciceksepeti/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "kırmızı gül"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Çiçeksepeti.

Get a free key →
Which price is the one I pay?

price. On a 'discounted' row it is the sale price and price_before_discount is the struck price the card shows. On a 'basket' row it is the in-basket price, basket_price_label holds the site's label ("Sepet Fiyatı", "Sepette %6 İndirim") and price_outside_basket holds the higher price when the card prints it. On a 'regular' row there is one price. product/detail also returns price_excluding_vat.

Does a flower's availability depend on the city?

Delivery of flowers is city-bound on Çiçeksepeti, and this API reads the site's default view without choosing a delivery address. availability and the delivery badges (for example "Aynı Gün Ücretsiz Teslimat") are what that default view shows. same_day in search is the site's own same-day filter. Checking whether one exact district can receive a bouquet today is not part of this API.

How do variants work?

variants[] lists this product's own variants, such as sizes, each with its options, price, struck price and whether it can be ordered, plus sibling products the page shows as colour swatches. Siblings have is_this_product false, their own product_code and URL, and only their colour. stock_count is the stock of the variant the page opens on, named in stock_variant_code; for the floral dress that was size S with 26, while M had 29 and four sizes were unavailable.

Why is the rating on a search row called search_index_rating?

Because it can differ from the product page, slightly. On 2026-09-15 the search row's rating count differed from the product page's on 5 of 16 rated products compared, for example 3999 against 3998 and 942 against 939 (the star rating itself matched on all 16). product/detail returns rating and rating_count exactly as the product page prints them.

What does a search for a made-up word return?

An empty results list. The website fills that page with unrelated recommendations; those are not results and are not returned. A page past the last page is also returned empty with page_notice, where the website would silently show page 1 again.

How do I page through reviews?

Call product/reviews with product_id, product_code or url. Each call returns 20 reviews, has_more and next_cursor; pass next_cursor to get the next 20. sort takes recommended, newest, oldest, rating_desc, rating_asc or most_liked, and rating keeps only one star level. Each review has its star rating, text, date, the reviewer's city and its helpful votes. Reviewer names are not returned.

What does Çiçeksepeti not publish?

Other sellers' offers for the same product (a product listed by two shops appears as two separate products with their own codes), a barcode or GTIN, per-variant stock for every size (only the opened variant's stock is on the page), a maximum for the seller score, and brand on some marketplace items. Some products carry a placeholder instead of a stock count (9999, or a number above two billion); stock_count is null for those rather than a number nobody has in a warehouse. Unrated products return null rating and count, never 0.

What is the Çiçeksepeti API?

Çiçeksepeti API is a ReefAPI endpoint group for turkish flowers, gifts and marketplace: prices, struck and in-basket prices, variants, sellers and reviews. It returns live JSON through POST requests under /ciceksepeti/v1.

Is the Çiçeksepeti API free to try?

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

Do I need a Çiçeksepeti login or account?

No login to Çiçeksepeti 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 Çiçeksepeti 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 Çiçeksepeti API use?

Çiçeksepeti 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 Çiçeksepeti from an AI assistant or MCP client?

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

Is the Çiçeksepeti API a Çiçeksepeti scraper?

It is the managed alternative to a DIY Çiçeksepeti 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 turkish flowers, gifts and marketplace: prices, struck and in-basket prices, variants, sellers and reviews back as clean JSON.

91 E-commerce & Marketplaces APIs on the same key

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