# FLO API scraper — search, category browse & product detail for FLO (flo.com.tr), Turkey's largest footwear retailer. Sizes, colors, prices (TRY), discounts, coupons & stock. No account, no browser.

> Search FLO by keyword (`query`), paginated. Every card carries product_id, title, brand, price, special_price (discount), sizes[] (with per-size stock), colors[], image, url, seller_type (flo|marketplace).
> ReefAPI engine `flo` · 3 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/flo/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed or blocked calls are free.
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http, `Authorization: Bearer <key>`) and your assistant can call these actions directly.

## Endpoints

### POST /flo/v1/search — 1 credit
Search FLO by keyword (`query`), paginated. Every card carries product_id, title, brand, price, special_price (discount), sizes[] (with per-size stock), colors[], image, url, seller_type (flo|marketplace).

**Parameters:**
- `query` (string, required) — Search keyword (Turkish or brand name).
- `page` (integer, optional, default 1) — Result page — 1-based, 24 products/page.
- `sort` (string, optional) — Sort order: price_asc (cheapest first) · price_desc · newest. Also accepts a raw FLO sort token (e.g. 'filter_price:asc'). [one of: price_asc, price_desc, newest]
- `max_rotations` (integer, optional, default 8) — Advanced: proxy-exit rotation attempts (1-16, default 8).

**Returns:** products[]{product_id, title, brand, price, special_price, original_price, discount_rate, currency, in_stock, image, sizes[], colors[], seller_id, seller_type, category}, count, total, page

**Example request body:**
```json
{
  "query": "nike"
}
```

### POST /flo/v1/category/products — 1 credit
Browse a FLO category (`category` slug + optional `cinsiyet` gender), paginated — the deep shoe-enumeration workhorse. Same rich card shape as search (sizes, colors, discount, stock).

**Parameters:**
- `category` (string, required) — FLO category slug, e.g. spor-ayakkabi · kosu-ayakkabisi · yuruyus-ayakkabisi · gunluk-ayakkabi · bot · sandalet · terlik · sneaker · hali-saha-ayakkabisi. May also be a full category URL.
- `cinsiyet` (string, optional) — Gender filter for category browse: erkek · kadin · unisex · erkek-cocuk · kiz-cocuk. [one of: erkek, kadin, unisex, erkek-cocuk, kiz-cocuk]
- `page` (integer, optional, default 1) — Result page — 1-based, 24 products/page.
- `sort` (string, optional) — Sort order: price_asc (cheapest first) · price_desc · newest. Also accepts a raw FLO sort token (e.g. 'filter_price:asc'). [one of: price_asc, price_desc, newest]
- `max_rotations` (integer, optional, default 8) — Advanced: proxy-exit rotation attempts (1-16, default 8).

**Returns:** products[]{…same card as search}, count, total, page

**Example request body:**
```json
{
  "category": "spor-ayakkabi",
  "cinsiyet": "erkek"
}
```

### POST /flo/v1/product/detail — 1 credit
Full FLO product by `url` or `product_id`: title, brand, price, original_price, discount_percent, currency=TRY, images[] (full gallery), sizes[] (per-size stock), colors[], coupons[], badges (free-shipping/campaign), rating, seller, description, stock. Parsed from FLO's own window.productDetail JSON (durable) + JSON-LD fallback.

**Parameters:**
- `url` (string, optional) — Full FLO product URL (…/urun/<slug>-<sku>). Provide url OR product_id.
- `product_id` (string, optional) — FLO product SKU — the digits at the end of /urun/<slug>-<sku>. Provide product_id OR url (url is most reliable).
- `max_rotations` (integer, optional, default 8) — Advanced: proxy-exit rotation attempts (1-16, default 8).

**Returns:** product{product_id, title, brand, model_code, url, price, original_price, discount_percent, currency=TRY, in_stock, stock_message, sizes[], colors[], color, gender, images[], coupons[], badges[], rating, rating_count, description, category, breadcrumb[], seller{}, attributes{}}

**Example request body:**
```json
{
  "url": "https://www.flo.com.tr/urun/nike-revolution-7-erkek-siyah-kosu-ayakkabisi-101465072"
}
```

## More
- Try it live, no code: https://reefapi.com/playground?engine=flo
- Human docs page: https://reefapi.com/docs/flo
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
