# Online Store Intelligence API — turn a store domain into a profile: e-commerce platform (Shopify, WooCommerce, Magento and more), catalog sample, tech stack and reputation

> store domain → platform verdict + store metadata + tech-stack + catalog sample (price/discount/stock signals) + reputation (mode-scaled depth)
> ReefAPI engine `enrich-store` · 3 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/enrich-store/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 calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **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). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/enrich-store/v1/store_lookup — 8 credits
store domain → platform verdict + store metadata + tech-stack + catalog sample (price/discount/stock signals) + reputation (mode-scaled depth)

**Parameters:**
- `store` (string, required) — Store domain or URL (e.g. allbirds.com or https://shop.example.com). A leading www. / scheme / path is accepted and normalized.
- `mode` (enum, optional, default "basic") — Depth of the lookup. Default basic. catalog scales credits with max_items; rich adds reputation/SERP depth. [one of: basic, catalog, rich]
- `max_items` (integer, optional, default 250) — catalog mode only: walk store pages until this many products are sampled (hard-capped at 1000; for a FULL product harvest use the shopify engine directly — this is enrichment, not bulk export).
- `include_marketplace` (boolean, optional, default false) — rich mode only: also probe Amazon/Etsy presence for the brand (OPTIONAL — false-match risk; every hit carries a confidence score, none is asserted as definitive).

**Returns:** platform{name,confidence,ecommerce_confirmed,supported,partial,evidence,technologies[]}, store_info{name,domain,currency,description,country,myshopify_domain,...}, catalog{catalog_sample{size,products[],price_range{min,max,median,avg,currency},discount_ratio,avg_discount_percent,in_stock_ratio,stock_signals,top_vendors[],top_product_types[]},catalog_estimate{total_products_estimate,estimate_source,collections_count}} — catalog_sample (fetched+analysed) is NET-separate from catalog_estimate (size hint); NO revenue/sales estimation, tech{technologies[],cdn,server}, reputation{trustpilot{found,trust_score,stars,reviews_count,categories,sample_reviews[]},maps{found,rating,review_count,address,...}}, presence{serp[],social_links,policies}, marketplace{amazon,etsy — optional+confidence}; provenance{per-group status+engine+missing_reason: not_found|blocked|timeout|budget|unsupported|error|skipped}; meta.extra.subcalls[] (contributing sources)

**Example request body:**
```json
{
  "store": "allbirds.com"
}
```

### POST https://api.reefapi.com/enrich-store/v1/platform_detect — 2 credits
store domain → ecommerce platform verdict (shopify|woocommerce|magento|bigcommerce|prestashop|custom_or_unknown) from the store's own public JSON capability test + technographic fingerprint — fast, no catalog fetch

**Parameters:**
- `store` (string, required) — Store domain or URL (e.g. allbirds.com or https://shop.example.com). A leading www. / scheme / path is accepted and normalized.

**Returns:** platform{name,confidence,ecommerce_confirmed,supported,partial,evidence,technologies[],note}, store_info{name,domain} (when shopify), provenance{platform}

**Example request body:**
```json
{
  "store": "allbirds.com"
}
```

### POST https://api.reefapi.com/enrich-store/v1/batch — 20 credits
look up to 5 stores in one call (basic mode, cache-first, per-store ok/error)

**Parameters:**
- `stores` (array, required) — Up to 5 store domains (array or comma-separated). Each is looked up in basic mode, cache-first, per-store ok/error.

**Returns:** results[] (one store_lookup-basic payload or {ok:false,error} per input), count, ok_count

**Example request body:**
```json
{
  "stores": [
    "allbirds.com",
    "gymshark.com"
  ]
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

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